Skip to content

Latest commit

 

History

History
36 lines (27 loc) · 2.18 KB

README.md

File metadata and controls

36 lines (27 loc) · 2.18 KB

TAGE

Tiny Arcade Game Engine (T.A.G.E)

A 2D game engine written for the TinyArcade platform ( https://www.tiny-circuits.com and https://www.kickstarter.com/projects/kenburns/tiny-arcade-a-retro-tiny-playable-game-cabinet )

Rendering

  • It supports rendering of sprites and tile maps.
  • It is running in 16 bit mode for the screen, so RGB565 color format
  • It supports alpha blending for both sprites and tile maps
  • Scanline rendering - The engine doesn't have a full screen buffer in memory at once, but only the buffer for a scan line. This is to save on the 32 KB SRAM
  • Mirroring - Each rendered scan line can be blitted to any number of lines on the screen. For example the 10 bottom lines on the screen can display the 10 lines above, but upside down, to achieve a mirroring affect, like games used to do on the Amiga ( See The Killing Game Show on the Amiga for reference, http://s.uvlist.net/l/y2009/05/58753.jpg )

Scene hierarchy

  • The concept of game object keep track of individual .. well .. objects in the game, such as the player, enemies, NPC's, bullets, etc. Things that move independantly of each other and of the tiled background
  • There is a camera that can pan around on the tile background and on game objects. Game objects always relate to the camera, and not the screen

Audio

  • Mix multiple channels of sound effects into one
  • Currently playback in mono at 11025 Hz

Maths

  • Simple 16:16 fixed point class with some operators
  • Simple 2D vector based on the fixed point class, with some operators

Tools

  • GenerateSine - Generate a sine table
  • png2tilefest - Takes a PNG file and generate a tile bank in C code, that can be included in the built executable
  • tmx2c - Takes a TMX file ( http://www.mapeditor.org ) and generate a tile map in C code, that can be included in the built executable. Will also generate a scene file, so game objects placed via Tiled can be spawned.
  • png2c - Takes a PNG file and generate a RGB565 image in C code, that can be included in the built executable

External dependencies

TAGE is built using the TinyScreen library and SdFat library. They can be found here:

https://github.com/MagnusRunesson/TinyCircuits-TinyScreen_Lib

https://github.com/greiman/SdFat