Long time no see! We have been coding a lot for Undead Legions – Resurrection in the past weeks. Specifically, we’ve added scripting capabilities for Workshop levels, i.e. you can now override the creatures’ default behaviour by adding corresponding Lua script files in your level folder before uploading. Furthermore, we refactored ancient code that remained unchanged since we started working on Undead Legions Resurrection in 2015. The current implementation now supports different kinds of environments and adding new environments with new graphic sets is easy now. We might actually integrate environment customization for the Workshop in the future.
As a starter, we added a new environment, the Ice World, where you’ll fight hordes of nearly frozen Undead (who would have thought!!). This step was really overdue, we couldn’t stand seeing the same old ground textures and decorations over and over again. Ulr is a completely new game in the first place!
During our Kickstarter campaign, we anticipated March/April this year for a release, but it will certainly take a few more months before we are there. We totally underestimated the implementation of the Workshop capabilities and the Lua scripting, because we’ve never done that before. In the end, we rewrote the complete implementation for the creature controllers. The good thing is that all this now works truly awesome. Those of you who have obtained a Playtester key for the game can now subscribe to a Workshop item that we have uploaded, which overrides four different controllers with appropriate, well documented Lua scripts. Take a look at this example .lua file to get an impression of how scripting for creatures works in Ulr.
With the new framework in place we’ll get our hands back on actual game content. Stay tuned!
Now that we are on the right track with our Lua interface, we’re incrementally testing more complex AI scripts and adding features to it. This time, we’re testing the newly implemented, configurable automatic target acquisition. Depending on the configuration, Lua scripts will receive an “onTargetUpdate” event at certain points. The script makes the Zombie patrol in circles, and he will always attack the strongest (i.e. highest life) hero. That’s a bad strategy, of course, and the Zombie behaves a little funny. The script could be further improved by adding a cooldown timer to prevent the seemingly chaotic change of targets, but honestly, we don’t think that our little Zombie here actually cares.
So, finally we’ve implemented an awesome Lua interface for the creature AI. It took us quite some time to get into the topic, because integrating Lua in a real-time engine comes with several different challenges, at least when you’ve never done this before. It turned out that the most difficult part was to maximize the performance of the Lua scripts while still offering a neat interface that you can work with when programming your AI.
We’ve actually completey redesigned the control implementation several times now, and we are very happy that we’ve found a solution that works well and pretty fast. AND we’ve made a short video showing Lua scripted AI in action:
Pretty fast means that for the bats (as in the video), using Lua yields around 95% of the performance of the corresponding hard-coded AI. The lag after spawning the 250 bats occurs due to the huge amount of simultaneous script registrations, and won’t occur in normal situations.
The next step is to further develop our Lua interface to allow for programming more complex behaviour and to clean up and refactor the current creature control implementation. Stay tuned!
The current development version of Undead Legions – Resurrection has been sent to all playtester backers from the Kickstarter campaign and they can now create their own levels and upload them to the Steam workshop. Since we want to continuously add new content to ULR after its release, we decided to make the creature AI scriptable with Lua scripts, so that gamers can program their own AI for any creatures in their levels. That way, we’ll hopefully see a huge variety in coming levels! The current AI implementation isn’t very suitable for neat Lua scripting, so we are currently refactoring quite a bit of code, but we’re sure this extra work will more than pay off once we’re done!
We took a short break after our successful Kickstarter campaign for Undead Legions – Resurrection, but we’re back on track now. The “Playtester” backers are going to get their access to the development version this week. We decided to integrate the Steam Workshop features up front, so we can easily manage their user created content. The next thing on our list is creating content for the next 10 levels, including a new boss arena.
The next step after our successful campaign is to make the current development version of UL – Resurrection available to all “Playtester” backers. There are some minor things we need to get our hands on first, so give us one or two days. After that, we’ll post a rough development plan for the rest of this year.
We reached our financing goal on our last day on Kickstarter! This means we can put all our energy into the final development phase of Undead Legions – Resurrection and make it a rock solid Rpg shooter. We are still giving away free preview keys for Steam until the campaign ends this evening. Stay tuned for more updates!