Skip to content

AgoutiGames/RawSalmonEngine

Repository files navigation

The RawSalmonEngine Salmon Logo

Build Status

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.

Demo-Games

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.

Click to expand

Calaveras originated as an university assignment and is planned to be a smartphone "drag and release" platformer.

Calaveras

Click to expand

Plantower is a tower-defense action-adventure crossover made for the Github GameOff 2019, but it wasn't finished in time.

Plantower

Click to expand

Sounds of Nothingness is a horror themed platformer made for the Ludum Dare 45.

Sounds of Nothingness

Click to expand

Terra Australis is the first game being developed with the RawSalmonEngine. It's a platformer about one of the last thylacines of Australia searching for his fellow marsupials.

Terra Australis

Features

  • 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!

Dependencies

Compile and install

Usage

  • All public headers are inside the include folder
  • By default only a shared library is built
  • Link against libSalmon.so or libSalmon.dll

Contact

Patreon | Homepage | Discord | Twitter | itch.io | Twitch

Why Salmon?

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!