Holodeck Game Engine

Introduction

Holodeck is a set of tools and API’s used for games development originated from "Write Once, Run Anywhere" concept.

History

The challenge of porting games to different handsets - with different screens and abilities - grew a special interest for Maysalward team to develop more robust game engine, in order to minimize the time and cost required for game porting. Hence, Holodeck was born.
Holodeck started as a game engine for Java Micro Edition (J2ME). But under the continuous research and innovation held, Holodeck has grown to become a cross-platform game engine used to build portable games for different environments (JavaME, Android, BlackBerry, GWT, JavaFX, Desktop and Web) based on "Write Once, Run Anywhere" concept. We also developed various design tools that helps game designers create sprites and animations that work directly with Holodeck.

Before Holodeck –2007

We worked on a simple tool that helped us in developing & porting games for old MIDP handsets based on our team in Ukraine work which contained the game loop thread implementation and resolve conflicts in handsets key codes, and a problem in Arabic letters in Sony-Ericsson devices.

Holodeck idea –2008

Holodeck name is inspired from the movie Star Wars, to express a mechanism to facilitate the game development process, so developer does not need to change any code line to suit the game other environment, like Holodeck room in the movie.

First Holodeck draft –May 2008

We started developing first set of classes matching native MIDP API's, similarity of names will decrease changes on origin code. We started with MIDlet, Display, Canvas, Graphics, Image, Font and etc. Target handsets in this phase were all MIDP handsets (Nokia, Motorola, Samsung, etc.) in addition to Desktop and Applet.

Holodeck enlargement & recession –2009/2010

Continued supporting and added new features to Holodeck platform, and approached to expand the umbrella of Holodeck to include everything that is built on the Java language, including Android and Blackberry devices, in addition to a set of tools help in the game development process, such as; build animations and collision detection mechanism. But the bad conditions we could not be finalized at the time.

Holodeck back to life –Nov 2011

Began to work seriously to continue activity, began working on Animateck, Fonteck and CollisionArea tools, which works on the division of an image to slices and then fitted to form a game's item, and find the areas that get the collision.

Holodeck working on BlackBerry –May 2012

Holodeck was modified to fit the BlackBerry’s API; it has been conducting all the necessary adjustments to fit the BlackBerry’s, including touch-screen and full keyboard. Now any MIDP game can be run on any BlackBerry devices as a BlackBerry application not MIDlet, without any changes on the game code except "import" statements. It was tested on Carrom game, becoming the first MIDP game working on BlackBerry devices using BlackBerry’s API.

Holodeck working on Android –Aug 2012

In this phase we managed Holodeck to support Android devices and did all necessary modifications, even resources management R.java class and Manifest file.

Holodeck supporting on Google Web Toolkit (GWT) –Nov 2012

GWT is a great open source tool that allows web developers to create and maintain complex JavaScript front-end applications in Java, which used to increase the Holodeck umbrella to fit all web browsers.

Holodeck is a social connector –Jan 2013

Holodeck also connects your game with most popular social networks; Facebook, Twitter and BlackBerry Messenger easily.

Holodeck had it’s own resource manager –Mar 2013

Holodeck resource manager is a compile time tool, which works every time the application compiled to secure the game resources in a bin file.

Future Work –May 2013

Will begin work on the necessary adjustments to fit the C#, C++ and Objective-C platforms, and expected to be completed within eight months, to be possible to run old games on iOS, Windows Phone, Tizen and Nokia Asha devices, as is now being BlackBerry and Android devices.
Then begin work on developing the infrastructure of Holodeck, adding new features programmed as giving permissions to developer to use native features on BlackBerry, Android and J2SE.

Holodeck the Cross-Platform

Holodeck designed to minimize time and cost required to port games to different platforms, even non-Java platforms, it has a portable polymorphism API for every supported platform, enable the developer to use JavaME syntax to develop his application, and run it as a native in the supported platforms:
  • Java (JavaME, JavaSE, Applet and JavaFX).
  • Android.
  • Blackberry.
  • Google Web Toolkit (GWT).
  • iOS, Qt and Windows Phone support in progress.


Holodeck the Game Engine

Holodeck is fully multithreaded well-structured game engine managing the game lifecycle, ticking and rendering. Have a unique technique using single native drawing canvas and let the developer to use dummy GameCanvas to draw the game items with specific time delay, GameWorld to calculate game logic and update the game status. GameLoop will manage the relation between GameWorld (ticking) and GameCanvas (rendering). In this way Holodeck resolved the conflict between needs of physical and mathematical calculations every short period to avoid getting the wrong results, and rendering the game items on the screen in most apart periods to avoid a load in memory.


Holodeck the Tools

Holodeck came with set of assistance tools to help the developer in writing more sufficient code, especially on handling resources and features does not supported by native API.


Animateck

Animateck is an animation builder tool used to slice an image into tiles, create a set of frames from the tiles that are sliced in the first step and create an animation from these frames. Sets of classes are implemented to help developer to use the animation. New feature was added to the tool; Collision Area technique based on rigid-body dynamics, which help for implementing collision detection especially in, fight games.
  • Designed and implemented the tools core and UI.
  • Research and development of a rigid-body dynamics engine.
  • Used: NetBeans 7.0, Java 1.6, Mac OS X 10.7.5


Fonteck

Fonteck is font builder tool help the developer to use PC installed fonts or true type fonts files at compile time and attach the generated bitmap fonts in the executable file to use it in the game.
Add the following ant code lines into build.xml file to use any installed font in your game:
<taskdef
  classpath="path/to/ResourceBuilder.jar"
  classname="jo.mrd.resource.Builder"
  name="build"/>

<build dest="${build.dir}/compiled/fonts.res">
  <font
    name="font-name-which-uses-int-the-game"
    src="path/to/.ttf file"
    size="font-size"
    charset="character-to-be-included"/>
</build>

Holodeck the Social Connecter

Holodeck support the Facebook, Twitter and BlackBerry Messenger connectivity feature to be integrated in the game.


Holodeck the Resource Manager

Holodeck manages images, sound and bin files and fixed loading bug in all platforms. In other hand Holodeck supports packing – unpacking resources for security needs.

No comments:

Post a Comment