You are here: start » geeny » home » features

General capabilities

  • Portability: scripting source files, compiled script, game save files and multimedia files are binary compatible across different platforms (Linux & Win32 so far). In most cases, porting a game or application is reduced to copying all the required files next to a different executable.

Scripting language

  • Fast run-time linking allowing true polymorphism of objects (like ie Smalltalk) without the performance penalty.
  • All operators and built-in functions working with vector/list arguments.
  • Fast multicall on object arrays. Both features vastly reduce the need for loops, one of the traditional performance bottlenecks in scripting languages.
  • Database manager for scripted objects, which simplifies tasks like debugging and saving or loading the game state.
  • Code generation and compilation at run time. Also the ability to alternate the behavior of a single object instance without modifying its class.
  • Transparent garbage collection.
  • Simple interface to engine resources (ie sprites, animations, skeletons, meshes) in form of either engine objects or base classes to derive script objects from. For engine objects, the calling syntax is identical to that of script objects.
  • Modularity: the database and script may be split across different modules.
  • Exception handler: when runtime error occurs, the entire state of the calling stack is dumped into a file using a comprehensible format.
  • Speed: examples are Cosmos Remake, where ships are rendered pixel-by-pixel using the script, the voxel landscape renderer in Dragon’s Breath is also made in script.
  • ...Still under development: prolog-like interface for database searching. This should also make it easier to implement AI algorithems like path-finding.

Graphics

  • Integrated software renderer for sprites, triangles, lines and polygons.
  • Blending modes like alpha-blending, addition, subtraction, multiplication, min/max, posterize etc.
  • Multi-texturing with any number of layers and any blending modes between layers.
  • Anti-aliased lines.
  • Anti-aliased polygons and polygonal areas.
  • A multilayered sprite engine with animated sprites and programmable collision detection.
  • A 2d particle animator and renderer.
  • Fast skeletal animation.
  • ...Still under development: Perspective correction, volumetric textures, texture filtering.
  • OpenGL 2.1 integration for (optional) accelerated graphics.
  • Using software renderer to render into OpenGL textures.

Sound and Music

  • Simple interface to sample playing, in two levels - either play and forget (setting volume, panning and frequency) or create a channel using it to play different samples, but also control parameters while playing.
  • Using channels the same sample can be played multiple times simultaneously.
  • Portable support for .wav and .ogg files.
  • Playing music from .ogg stream.
  • Playing music from Impulse Tracker (.it) file.

Networking

  • Bi-directional communication with a http server based on a url adress is possible (for downloading / uploading hi-score results and such).
  • ...Still under development...
 
geeny/home/features.txt · Last modified: 2015/11/18 07:37 by matija
Recent changes · Show pagesource · Login