Ren'Py Battle Engine - Elevation

26 Aug in programming, videogames, VNs

Elevation PreviewElevation Preview

A new release of the Ren'Py Battle Engine is due imminently, so what have I been doing with my time?

Well, originally I was planning to make this the release in which I finally integrate battle-engine stuff into Ren'PyScript, so users can set up simple fighters, skills, items/equipment and battles without having to write any Python. I've left that to one side for now, however, as I've received some requests for features I have been thinking about adding for a while and I've redirected efforts. First up, as can probably be guessed from the shot above, is elevation... and tilemap support. You can see a preview of an early version of the elevation code in this YouTube video.

The system now reads in a text file describing a set of tiles with particular graphics, and another text file describing a map using those tiles, including optional elevation data, and will construct the battlefield from that data. Since that video preview was made, I've also implemented jumping states for transitions which move up or down too far, and the option to jump over intervening gaps to reach squares on the other side.

Additionally, I've also been working on a collection of screens to aid in the creation of RPG-type games using the battle-engine. Here's the revamped equipment screen, with hover-over preview of stat changes, grouped classes of equipment and so on:

Equipment Screen PreviewEquipment Screen Preview

It looks a bit similar to the previous equipment demo UI, but even leaving aside the aforementioned improvements, this version is also handy to invoke in only a single line of Ren'PyScript.

There will also be screens for party selection and shopping in the next release, all based on existing battle-engine classes for fighters and inventory lists, for minimal hassle.


Hi Jake, I just started using battle engine on renpy. I want to ask if it is possible to move a fighter within a label after battle.Start()? I jumped to the label using CallLabelInNewContextResult in TimedCondition. On the elevation demo, how do I add a moving AI fighter? I get errors when i try to add one.

Could I ask you to contact me via the contact form you can get to via "Contact Me" in the site menu to the right? It'll send me an email that I can reply to, and email is a much easier way to talk through programming issues. If you prefer not to use email, then you could try this thread on the Lemmasoft forum:

To answer your questions in brief, it's certainly possible to move fighters around in code - it's done quite extensively in Chronicle of Mars - but it's also not straightforward at the moment. I have some code I can send you which will help quite a bit that will be going into the next release.

As to adding a fighter to the elevation demo - you'll have to let me know what the errors are.

I'll look out for an email!

- Jake

Post new comment

The content of this field is kept private and will not be shown publicly.
By submitting this form, you accept the Mollom privacy policy.
Theme Originally by, hacked around by Jake, textures from