Multivaders - The script editor

I was digging through Multivaders backups the other day and came across a ton of videos and work-in-progress screenshots. I figured it might be interesting to feature them in a series of articles chronicling development of the game and it's engine, Nudge. The first of these covers the scripting system.

Back in 2008, games programming was still largely restricted to C/C++ programmers and so the learning curve was steep to develop advanced 3D games. There were solutions out there (things like Dark Basic to create games in Basic, and Games Creator to develop in a drag-drop environment) but nothing was as simple as drawing flowcharts and hooking up actions; at least nothing that could allow for complex gameplay loops or complicated design of missions and maps.

As I'd covered in the history of Multivaders, one of the key pillars of the game was user created content. I wanted players to be creating their own deep lore-filled stories, populating the universe with side-quests and making characters and events that drew from their favourite sci-fi TV shows and movies. If I wanted this to be complex and immersive, the engine needed some kind of easy to use, accessible 'scripting' system that players could quickly grasp and utilise. That's where the Script Editor, an integral art of the Nudge engine came in. Here's a look at it in action during a Multivaders session:

The editor was a full drag-drop solution to developing gameplay logic. Players could access and interact with characters, NPCs and objects from the levels and missions, store and retrieve game 'states' (the full state of a level and the characters within it) and variables, perform logical tests, trigger sounds, cutscenes and events, initiate dialogue trees and so on.

As with the rest of the editing system, this was online and multiple people could collaborate and build scripted levels and missions together. The system could also be performed offline, out of the game or online while the game was running. A hot key would bring up the Script Editor and the player could proceed to inspect elements of the map, script logical handlers and test out gameplay in real-time. It was incredibly fast to whip up and try out little snippets of story and missions with the system.

Looking back at it now, the Script Editor still looks relatively easy to use (though I admit, being a programmer I'm approaching it from the perspective of someone with knowledge of games development). It feels pretty simple to knock up advanced gameplay events and actions. Here's a few snippets of the system in action. The final video from the collection above shows the results of the script editor creating a small segment of gameplay logic. The players must defend ore extractors on a moon base.

Script editor Script editor Script editor
Script editor Script editor Scripted sequence

I know that it doesn't look particularly (or technically) advanced, but keep in mind that was developed in 2008. The videos and screenshots above were created a full six years before the release of Unreal Engine 4 and its Blueprint system.

Multivaders


Part of the 'Multivaders' series. A personal video-games development project, spanning 13 years.

Who I am

I'm Blake and I like to tinker with things and make stuff. When I'm not programming or developing random systems, I'm playing with electronics, doodling bits of art, 3D modelling or sculpting and painting things or nerding out watching sci-fi or horror TV.

From 2001 I worked in the games industry, eventually specialising in tools to aid in the development of video games and their engines. In 2011 I left the industry and teamed up with a few other talented composers to utilise my knowledge to help build the company 'Spitfire Audio'.

I also periodically compose soundtracks for video-games and have worked on titles such as The Stanley Parable and Portal Knights. You've probably also heard my music in random TV commercials at some point.

What I'm using to make games

Nowadays I tend to utilise Unreal Engine 5. I use a mixture of (mostly) C++ (Visual Studio 2019, Rider) and Blueprints.

I work with Autodesk's 3D Studio Max to generate the art required, and Adobe Photoshop or Paintshop Pro 6 for texturing. I also dabble with Allegorithmic's Substance Designer/Painter for more realistic texturing work.

I tend to generate tools in Python, C++ or NodeJS depending on what's needed.

Audio-wise, I still use Cool Edit Pro and FL Studio to generate sounds and music respectively.