PixelPerfectEngine
A downloadable tool
PixelPerfectEngine is a (currently) 2D engine written in D, which is specifically made for creating authentic pixel-art graphics without misalignment, etc.
Features:
- Color lookup and palette swap effects.
- Sprite layer with horizontal and vertical scaling, complete with the shimmering typical of old systems.
- Tile layer with optional per-line scrolling.
- Transformable tile layer (Mode7)
- Input handling (currently via SDL2).
- Has its own map format to support its own features, editor is capable of importing CSV tile maps.
- Graphical User Interface (Concrete), influenced by old GUIs (Amiga Workbench, Win3.1, etc). Primarily made for its own editors (e.g. PixelPerfectEditor), but probably could be used for games too.
- Text formatting support via a custom XML (ETML) file format, single file is capable of holding multiple text chunk in one.
- Bitmap text drawing with variable width.
- Audio subsystem that runs its own "plugins" (modules) for effects and sound synthesis.
- QM816 - phase modulation engine capable of replicating digital FM synthesis sounds, alongside with some extra capabilities (user-definable wavetables, amplitude/ring modulation for things like resonance, greater feedback control, etc.).
- PCM8 - PCM playback module, which is capable of playing back 8 and 16 bit PCM, IMA ADPCM, Dialogic ADPCM, Mu-Law and A-Law PCM.
- DelayLines - adds delay and reverb effects.
- MIDI sequencer.
- Editors:
- PixelPerfectEditor - Editor for tilemaps, sprite placement, etc.
- test1/PPE Audio Development Kit - Module routing, presets, etc. (MIDI 2.0 editing will be added later on).
- WindowMaker - Window layout editor.
Coming later:
- Moving some of the rendering to the GPU, which will enable more complex sprite transformations, and even 3D (background tiles will likely still be rendered on the CPU).
- Scripting in some form (once I'm finding a suitable replacement for Lua).
- Language and localization support.
- More audio modules.
- MIDI 2.0 file support (likely have to invent my own format).
- Guide on setting up a D development environment.
GitHub page: https://github.com/ZILtoid1991/pixelperfectengine
Example games, full with openly available sources are coming soon!
Status | In development |
Category | Tool |
Author | ZILtoid1991 |
Tags | Game engine, Open Source, Pixel Art, Retro |
Download
Install instructions
The download link provides some precompiled binaries of the test cases, an example game (Snake), and two of the editors. The third one is its own project (PixelPerfectEditor). The currently supported CPU architectures are x86-64 and AArch64, previously 32bit x86 platforms were supported (likely still compile). Due to lack of hardware, MacOS is not supported, and Android support is not yet implemented.
A guide on how to set up a D development environment and the engine will be added later on. D is very similar to other popular curly-bracket languages (C, C++, C#, Java, etc.), so it's very easy to learn, for more info visit https://dlang.org/!
Development log
- Anti-AI art commitmentJan 22, 2024
- v0.11.0-alphaJan 22, 2024
- On the subject of dropping Lua as a scripting engineDec 13, 2023
- v0.10.6Nov 22, 2023
- v0.10.3Sep 16, 2023
- Release of v0.10.1Sep 01, 2023