A game engine utilising "Tiled" map files.
The current state of the project resembles a basic programmable 2D Game Engine. The clue of this engine is that it reads all game information from the map files an therefore the majority of game building will happen inside the UI of the streamlined Tiled Mapeditor. The ultimate goal of this project is to implement a full fledged game development environment via Tiled. The currently used Tiled Version is 1.1.4. The minimum version is 1.0 because of the heavy use of typed tiles.
This and following games shall act as a kind of sandbox to properly showcase what the engine is actually capable of doing. Also it greatly helps with further developing the engine. Instead of theoretically figuring out what features are needed for developing a game, we experience it at first-hand. This is somewhat in the spirit of the blender open movies, but at a much smaller scale.
Orthogonal, isometric and hexagonal map orientations
CSV, base64 and base64(zlib) map formats
All tile draw orders even for isometric or hexagonal maps
Adaptive offscreen tile culling (means: Better perfomance with huge maps or many Layers)
Tilesets support color keying, tile spacing and borders
Tilesets and image layers can have bmp, png, jpg and tiff format
Static and dynamic animation support via sprite sheets
Animation via scale and rotation of actors
Flipped, mirrored and rotated static tiles
Layer offset and tileset offset support
Support for tiles greater or smaller than the base tile size
Tilesets can have Alpha, Add or Color Modulate Blend Mode
Image layer suppport with optional parallax mapping
Easy access to custom property values set inside Tiled
Collision detection via the Tiled hitboxes (only Axis Aligned Bounding Boxes yet)
Easy loading and playback of music and sound effects (flac, ogg, mp3, wav)
Positional sound
Text generation and rendering of TrueTypeFonts
Input via: keyboard, mouse, gamepad and touch(by mouse emulation)
Web build ready via emscripten (see SalmonEngine)
It actually works!
SDL 2.0.0+
TinyXML2 2.2.0+
Generally you can just use the bash scripts in the scripts folder
See COMPILATION for details
All public headers are inside the include folder
By default only a shared library is built
Link against libSalmon.so or libSalmon.dll
Patreon | Homepage | Discord | Twitter | itch.io | Twitch
The main reason for developing the engine is and was the development of our own game Numotul - Path of Perception, an action RPG in a low fantasy world, inspired by the culture and history of the native Mesoamerican tribes. The game emphasizes narration, exploration and immersion. You will make tough decisions enabling a truly individual gaming experience. The game's main protagonists are tribal anthropomorphic big cats with their own high culture. This is also the reason for the name of the engine, since there's not much a cat loves more than fish!