The Serpent Engine
Serpent is our game and content framework solution. It has been in heavy development for almost a year and is shaping up nicely. Our initial focus is on 2D content, however we have now built a sufficient base to allow extending our goals to 3D and XR applications.
Serpent is written entirely in the D Language - allowing us to take advantage of fantastic language features such as CTFE, thread pools, C++ interoptability, etc.
Currently we support modern Linux distributions, as we develop exclusively on Linux. The next supported platform will be Windows, and eventually we will begin to support consoles and other platforms too.
lispysnake2d launched (2019)
Our initial research implementation was written in C, using only SDL and some convenience libraries. While it had full sprite rendering and Tiled support, it became apparent that C/SDL_Renderer was a very naive approach.
serpent launched (2019)
We launched serpent to address the shortcomings of the C/SDL lispysnake2d approach. Using a cross-platform language, libraries and the BGFX rendering library came together to create something very powerful.
Paddle Demo Released (2020)
After extensive work and architecture reviewing, we were able to release our first public demo of a Serpent-based game.
Get ready for alpha
Get all work completed for the first alpha. Build parallel demos to flesh out feature requirements
- 4 First Stable Serpent Release
- 5 Release our first true game built with Serpent
It is wise to keep in mind our current development philosophy. We take specific milestone goals and apply them to a working demo concept. Each demo is used to flesh out features, and to validate that new code and functionality do not break our existing use cases.
- Vulkan and OpenGL support
- Incredibly powerful and fast Entity Component System
- Almost complete support for Tiled Map Editor maps
- Fast 2D sprite batching
- Physics integration via Chipmunk 2D Physics
- Audio integration via SDL_Mixer (which we will replace with OpenAL)
- Powerful, simple APIs
- 2D Rendering over fully 3D pipeline (shader based)
Please note this list is not complete, it serves only to illustrate the scope and ambition of the first full Serpent release.
- Full property based animations (including uniforms)
- Integration of first-class scripting
- Full animation support (procedural, keyframe, cross-interpolation, etc)
- Character animation (2d/skeletal/etc)
- Full font support
- GUI rendering system (overlay)
- Object / asset management system
- 3D Cameras
- 3D Audio
- 3D Physics
- Full input management and abstraction (gamepads, trackers, etc)
- Visual scripting
- Animation editor
- Full shader pipeline support (post processing, etc)
- Shader caching/compilation/storage
- Offscreen render support
- Physics debug rendering (2d/3d)
- Asset management tool
- Multiplayer-friendly APIs and systems
- (Eventually) XR/VR support