Back in July of 2011 I made a thread about my C++ tile engine project, Tsunagari. That project ultimately ran into several fundemental design flaws and became an intertangled spaghetti mess. It was effectively abandoned in December of 2014.
From what I learned during my time coding Tsunagari, I began building Driftwood 2D, a new engine written in Python 3 and PySDL2 with the goal of doing what Tsunagari was meant to do. This new engine design has proven cleaner and more robust, and although my many breaks have delayed its development by several years, in terms of man-hours it has come further in much less time than Tsunagari.
Driftwood 2D is an engine which loads a world package made of images, sounds, maps, descriptive files, and scripts, and then passes itself to the scripts as an interface to its internal API. From there, the scripts in the world package interact with and contol the engine to perform its functions, resulting in a playable game. All public functions in the engine are accessible through the scripts. Maps are designed in Tiled and saved in JSON format, and the engine config file and entity descriptor files are also written in JSON.
The engine provides features for building 2D games, including infinite graphical and walkable layers, resource caching, a virtual filesystem for game data supporting patch files, animations, audio, scriptable entities and scriptable events, configurable input handling, timed callbacks, and all sorts of other goodies. Currently still missing in the latest version are UI/menu and text support, by-pixel rather than by-tile movement and collision for entities (though the movement between tiles is animated), graphical effects, combat, and inventory. Also, not all features have been extensively tested yet.
Currently the latest release is Alpha-0.0.2b, and there is no manual, though the code is extensively documented and the source includes a simple testing world. Driftwood 2D has been tested and confirmed working on Linux, Windows 7, and Windows 10.
GitHub: https://github.com/seisatsu/Driftwood
Requirements:
- SDL2
- SDL2_Image
- SDL2_Mixer
- Python >= 3.5.0 (previously 3.3.3)
- Python jsonschema
- Python PySDL2