Sevgi Engine is a new open source video game engine for classic Amiga computers which provides the required tools and generates the boilerplate code to create high performing Amiga games using only the C programming language. It is built around the great ScrollingTricks by Georg Steger.
- Performance
All display algorithms aim to perform at a locked 50fps on a single buffered native Amiga chipset display. It implements an optimized version of the algorithm Scroller_XYUnlimited2_64 from ScrollingTricks. Benefits highly from Fast Ram where available. - System friendly
Aims to work on all ROM versions (2.0+) providing a clean quit back to OS without needing WHDLoad. - AGA Support
Supports all features provided by the AGA chipset. - No limitations
Designed to support all the well known visual tricks known by the popular Amiga video game titles while not limiting more experimental effects to be implemented. - Easy development
A native editor program is provided to generate code, manage game assets, edit color palettes etc. called Sevgi Editor. Other elements like game logic, animation and events require programming knowledge in C. The programming and compiling can be made natively (on the Amiga OS - using native compilers) or cross platfrom (on Windows or Linux PCs - using cross development tools). Sevgi Editor can import game maps made in Tiled. - Templates
Generates ready to compile and run game code from template genres which aims to ease bootstrapping. The templates include test assets. - ptplayer
Implements the great ptplayer by Frank Wille for music and audio effects. - No third party dependencies
The game executable will not require any libraries1 - Documentation
The engine code is very well commented and documented in detail in Amigaguide format.
Sevgi Engine code and template assets are generated using the provided editor called Sevgi Editor.
- ECS or AGA Amiga
- Kickstart 2.0+
- MUI 3.8 (for Sevgi Editor)
This source code which creates Sevgi Editor (which then can generate the engine code) is developed to be compiled with gcc (using any of adtools or bebbo's cross toolchains2). To compile for 68k3 target:
make
Compiled binaries can also be acquired from aminet.
Sevgi Engine code is suitable to be compiled with any Amiga compiler. Makefiles for SAS/C and gcc are provided and these compilers are tested to work. It includes and uses SDI_headers, so (hopefully) it is compiler agnostic.
Sevgi Editor comes with some ready to compile and run game templates from different genres which demonstrates its features using some free assets.
Sevgi Engine and Sevgi Editor is under MIT Licence. Meaning you can use it in whatever project you want as long as you include the original copyright and license notice. ptplayer is public domain under The Unlicence licence.
Sevgi Engine is still a work in progress. Some new features planned are:
- Support for different level display implementations (i.e double buffering, split screen etc.)
- More graphical effects
- A native tilemap and gameobject editor
- Functions for UI elements
- More templates for different game genres
If you make use of Sevgi Engine and find shortcomings, contributions like feature requests, bug reports or even pull requests will be highly appreciated. Please don't hesitate to fork this repository and open a pull request to add your features and/or bugfixes.
Footnotes
-
Except diskfont.library. And even that is avoidable if you do not use any Amiga font asset. ↩
-
These toolchains should be built using MUI and CGX prefixes of course. ↩
-
Since this source includes and utilizes SDI_headers, it can be compiled also for MorphOS and AmigaOS4 targets, yet these two are not tested to work. ↩