Wiki

Clone wiki

Tablua game engine / Requirements

[Work in progress]

This page describes the current requirements for Tablua.

  • The user interface should
  • The project has to main components: The game engine The game box designer

Technology stack

The Tablua game engine will be developed using JavaFX 2.2+. JavaFX 2.0+ technology is a very good fit for a project of this type.

  • Very mature hardware acceleration. Large map images and large number counter images is no problem with either heap usage or performance. Zooming, panning, effects and other transformations on images are hardware accelerated out of the box. JavaFX transparently uses DirectX on windows platforms, and OpenGL on iMac and Linux platforms. See here for a good overview of the JavaFX architecture.
  • Programming model is a natural fit for application type. A crude prototype allowing you to move counters around on a map, with support counter flipping, counter rotation and map zooming and panning can be written with only 200-300 lines of code.
  • Allows for easy development of modern, highly interactive and animated used interface, with clear seperation of concerns (model-view-presenter model), and a very powerful property binding model.
  • Cross platform - Windows, Mac and Linux and possible support port for iOS and android. JavaFX defines API's for handling interaction with touch devices (gestures). Support for ARM processors, for example Raspberry PI.
  • Tooling for JavaFX 2.0+ is very mature, with first class support in NetBeans, Eclipse and IntelliJ. Easy user interface design with SceneBuilder and ScenicView
  • Very good Maven plugin support.
  • Several distribution models to choose from - JNPL (launch in browser), self-contained application packaging support (distributed with JVM for no hassle compability). Custom installer support is provided by JavaFX.
  • Very good media and browser support. Embedded browser support is provided through the WebView component which is based on WebKit.
  • Obviously using Java gives access to the world's largest set of open source components and frameworks.

Java and JavaFX version

The project will be targeted at Java 8 and JavaFX 8. Java 8 introduces Lambda's which allows you to write much more concise code (for JavaFX event handlers for example) and optimize for multiple cores. JavaFX also introduces new features like touch device support and new controls. Java 8 is available as early access preview, and is expected to go final later this year.

Updated