Of year 2002
Main LTGameJam page here

The engine

About

The engine is a complete game framework, giving you initialization, rendering, input, camera, resource management and support/utility/helper classes. Basically you should concentrate on your game/entity logic only.

The engine provides:

  • Sprite rendering for entities (10-100 thousand sprites, each having position, size, texture and color).
  • Terrain with utility methods (getting altitude, etc.).
  • Billboard rendering for UI (up to several thousand world/screen space alpha blended sprites).
  • Simple static mesh rendering for extreme cases (where sprites are not enough).
  • Templated world subdivision system ("grid") for game interactions.
  • Keyboard/mouse input handling and listeners.
  • Camera.
  • Lots of utility methods (ray-terrain, ray-entity intersection, etc).
  • Templated pool storage container for game entities.
  • Your game logic timing at fixed rate (rendering happens at variable rate, entity positions are interpolated).
  • Unified framework for resource management (sprite textures, ordinary textures, effects, meshes).
  • Game skeleton (game that does practically nothing, fill in your game).

Performance

The main bottleneck in dealing with lots of game entities is system RAM throughput - keep this in mind. We tried to optimize the engine side (entity pools, rendering, etc.) as much as we could and managed to squeeze out relatively good results, but the end game performance depends on your game logic anyway.

We typically got 60-70 FPS with very simple game featuring 50k game entities on AthlonXP 1500+, DDR RAM and GeForce2Ti. "Real game" logic slows that down to 40-50 FPS, which we take as quite acceptable.

Download

Download:

  • Source (172KiB) - the complete source code, MSVC project/workspace, needed binary files. Requires MSVC6 and DX8.1 SDK.
  • Docs (196KiB) - engine API documentation, very few of UML, tutorial and example source from tutorial.



Site typed in by NeARAZ, 2002.