(Previous thread describing alphas 1-6 can be found here: viewtopic.php?f=16&t=7207 )
This engine allows you to insert RPG-style battles into your Ren'Py games, supporting FF-style 'active' battles, arbitrary-path-based battles, grid-based, isometric, hex-based and now elevation isometric-tile-based battles.
The system supports many typical RPG features, including a modular skill system, pre-fab skills for melee combat and magical attacks, items and equipment, experience and levelling-up, conditional events, animation and more. All these features are written to be highly customisable to make it easier to tailor the engine to your particular game rules and conventions.
To keep up to date with battle engine development, you may want to subscribe to the newsletter.
The latest release can be downloaded here:
battleengine-a7.5.zip (11.4MB Zip)
(The zip is a zipped-up game directory; unzip it to whichever directory you keep your Ren'Py projects in.)
There's now a page on licensing on the battle engine website; you can find it here. If you're releasing your game for free, there's nothing to worry about, it's a standard CC-BY-NC license; if you're interested in talking about a commercial license for your game, then go and read the article and then get in contact:
Alpha 7 [11.3MB]
Alpha 6 [9.9MB]
Alpha 5 [25MB]
Alpha 4 [25MB]
Alpha 3 [15MB]
Alpha 2 [21MB]
Alpha 1 Windows [11MB]
Alpha 1Mac OSX [15MB]
Alpha 1 Leinnucks [11MB]
The battle engine is released under the Creative Commons Attribution Non-Commercial 2.0 UK license. This means that you may use it in and adapt it for your games, but you must a) give due credit, and b) not use it in a commercial project.
I'm perfectly happy to discuss commercial licensing terms if people want to; contact me through PM or via the contact form on my website.
New Features in A7.5
In the latest release - Alpha 7.5 - the following features have been added:
- Tilemap rotation - view the battlefield from different angles
- New TileUIProvider to make it easier to customise the square highlight graphic
- Tilemaps and elevation now work with hex grids
- Grid and HexGrid Battlefields now use matrix-based projection
- Supporting the rotation, tiles in a tilemap can have alternate graphics to be used at different rotations, like sprite facing.
- Various animation fixes, including repeating magic-attack anims and a fixed current-fighter cursor while walking
- Fighter stats stored as floats, and just rounded upon display
- Experience bonuses fixed to avoid problems with stat-boosting equipment/effects
- Haste skill example modified to have a timeout period
- Sub-skill trees now sort correctly according to weight
- Special narrator character no longer used for battle announcements, to avoid breaking people's games!
Notes for A7.5
- UIProvider has been moved out of engine-display.rpy and into its own file in engine-ui.rpy
- Reset method added to BattlePanner
- The 'offset' parameter has been removed from GridBattlefield and HexGridBattlefield - it was nearly always set one of two ways, and it's been replaced by an 'isometric' parameter. Set isometric=True to have the isometric grid, and False for a straight perpendicular-to-the-screen rectangular grid. This was done during the changes to use matrix projection for the grids - if you want something different, you'll need to subclass GridBattlefield and write your own projection matrix.
- The 'offset' parameter has also been removed from the RPGDamage Extra - it wasn't actually being used, it pre-dated the placeMark setting on sprites, and should have been removed several versions ago. If you're still passing it in, though, it'll now break.
- Subskill trees now sort correctly by weight. Which isn't so much of a 'breaking change' as a 'bugfix', but if you're relying on alphabetical sorting in your subskill trees, you'll need to add weights to the commands now or they won't show in the same order any more.
- 'Active' battle mechanic
- simple turn-based battle mechanic
- card-counter wargame battle mechanic
- FF-style simple face-to-face battlefields
- Abraxas-demo-style fixed-path battlefields
- Tactics-style Grid-based battlefields
- Tilemap-based battlefields with variable height and rotation
- Hex-grid battlefields
- Basic enemy AI
- State-and-facing-aware sprites (so you can have death animations or attack animations or walk in particular directions, etc.)
- Plug-in skills (so far I've done obvious stuff like 'attack', 'defend', 'skip turn', 'move' and limited magic)
- Scenery (single and multi-square)
- Attribute system (e.g. an enemy can have the 'fire' attribute, which makes them weaker to attacks using the 'water' attribute)
- Highly customisable (pick-and-mix to a degree for non-programmers; very open to customisation and extension for programmers)
- Items, Inventory and usage
- Equipment and equip limits
- Experience and levelling
- Condition/result event/mission parameter system
- Equipping, Party-select and Shop screens to facilitate RPG creation