I haven't posted for a while but between persistent bursts of real-life have been quietly preparing usable release of this project - AGT game prototyping engine for STE
If you're someone with a bit of programming experience, interested in designing games, wanted to make something for the Atari STE, were disappointed with the limits of STOS for making games and just don't have the time to code everything up from scratch just to get something worthwhile off the ground, this *may* be for you...Note: This continues work which began in an earlier thread, here: viewtopic.php?f=16&t=29615
Here's an outline of what you can expect from AGT, straight away:
- Produce and test 2D game ideas in minimum time
- Develop in C or a mixture of C and 68k (or can use 68k for everything except the entrypoint/mainloop, if preferred)
- High performance - can match or exceed almost any commercial game, even if using only C. All examples are 50hz.
- Any type of scrolling - vertical, horizontal, 4- or 8-way, fixedpoint vector, direction & speed changes.
- Work with 16x16 or 8x8 tilemaps, of any size
- Single or dual-layer tilemaps (both layers editiable in TILED, with second, transparent layer masked on top of first)
- Live-editable map layers ('mapmod' function) with optimised refresh of edited tiles for animation, doors or limited parallax
- 4 different sprite formats optimised for different scenarios (drawing speed vs. size vs. memory overhead vs. extraction time)
- All sprite methods provide clipping & automatic background clearing/restore
- Flexible entity/AI system supports: -- spawn chaining (entities can spawn or kill entities)
-- vistrigger mode (spawned into map at level load, dormant/no-overhead until entering viewport)
-- plenty of example code for different kinds of behaviour
-- object parent linkage & tracking
- Object Interaction system provides mechanism for collisions, triggers
- Input layer provides direct and debounced key & joystick state.
- Comprehensive tools for converting, extracting assets including maps, tiles, sprites (& related), palettes
- Edit maps in TILED editor and export to AGT in seconds
- Collision tilemaps can be created and imported separately from the main visual tilemaps
- Edit object/entity placements in TILED and export with map for direct parsing by game
- Built-in debugging features including: -- message console for errors, warnings & user info
-- asserts to catch unexpected values etc.
-- game object safety checks & diagnostics (bad animation frames etc.)
-- debugdraw object rectangles
-- memory tracing
-- Hatari and STEEM message logging
- Top/bottom overscan & optional colour boosting via interlaced playfields
- Lots of demos and examples including playable game levels - all with source code
- Wiki tutorials cover the fundamentals with more obscure features illustrated via samples
This is a shortlist of features *currently* supported. None of it is 100% complete but all items listed are now fully usable. Some other features are still WIP. If the system gains use, more features are planned. I may return to maintain this post as things change.
The system is primarily based around Cygwin & m68k GCC toolchain (either BrownELF GCC 6.2 or Vincent's MiNT GCC 4.6 compiler) with a choice of either RMAC or VASM assembler. All tools (except the compiler) are delivered in the bin/ directory as Windows executables. However the system has been successfully used on Linux and OSX either by compiling the tools for those systems or by wrapping the Windows bin/ tools with the WINE emulator (probably the least hassle if you just want to get moving - especially since I have little time to maintain multiple ports/builds of the tools).
While the upper layers (mainloop etc.) are defined in C, the game content can be written in C, C++ or 68k as required. However all of the examples were coded in C to demonstrate whats possible without having to use assembly. They are all 50hz and have plenty going on. There is no baked/prepared data being used - all AI is 'thinking' realtime for every object to provide meaningful examples (it is assumed that you can bake whatever data you like, but it doesn't provide good learning material so I don't use it).
While the demos are aimed at 50hz, the engine will support lower framerates for games which require it.
If you're interested in finding out more or giving it a try, you can find the project, Wiki docs and tutorials here:https://bitbucket.org/d_m_l/agtools
The Wiki & tutorials are WIP and still growing. If there is interest, I'll keep adding to both the engine and the tutorials/examples.
That's all for now. Updates and news on AGT will be posted here from now on - the older thread will be left as it is.