Diagram of AI systems in script

Stream Highlights: 2/25/22 – 4/8/22

Some day I won’t procrastinate so much, but I keep putting it off. Here are the stream highlights from the past – counts fingers – 7 weeks! Crikey. Well, as they say in showbiz: leave them waiting more. Or was it wanting more? I don’t remember. I’ve been putting off improving my memory too. Speaking of memories, here are some short to long highlights of my favorite bits from the streams!

At the end of the last highlight chunk and the start of this one, Fred and I had spent some time working on a first pass of Melee AI that supported code making smart decisions (like calculating navigation and shot trajectories) while letting me have script control to customize behaviors and support unique ships. Some highlights from continuing to specialize the AI, support ships with unique input, like the Kohr-Ah and Melnorme, and a complete refactor of how script managed the AI controls:

If you want a detailed technical walkthrough of the AI script refactor and how it’s authored, there are some longer clips where I tried to describe what was going on:

Our goal with this pass was not to create a final AI, but to explore it enough so that we had confidence in our methods – especially when it came to supporting newer, wilder ships and modding – and understood a little better what the remainder of the hard work would be. We were really satisfied! It’s very cool how little ‘smarts’ an enemy ship needs to be convincing and interesting to fight against. We still will have a lot of work to do, but it made sense to move on.

Different parts of the game are always at different levels of completion. I talked about this on stream somewhere, but if having a short, detailed experience is vertical (picking up some minerals, playing a Melee battle), then a long, less-action-packed experience is horizontal (flying between stars in hyperspace, exploring the planets in a star system). Right now, we have a lot of vertical experiences but haven’t focused as much as on the horizontal experiences. Part of this is just because we haven’t tried building them, but also because we didn’t necessarily have good support structures to make those horizontal experiences fun, like having reasons for resource acquisition/loss. Several of the streams were focused on creating these supports using UQM1 as a model or exploring examples of things we could do within them, enriching the long play experience:

In addition to just supporting a lot of the things that UQM1 does, we have ideas for some more experimental game experiences, many of which we’ve sourced from all of you! Among these is the idea of creating what we call Melee puzzles/minigames, which let you take the familiar Melee ships into an experience where the victory condition is not just defeating the other ship. I explored a couple of prototypes around that, and the second one was motivated entirely by community comments (nice job, community!):

On the topic of experimental experiences, one of the biggest and wildest is allowing players to play cooperatively in the adventure mode. A lot of these ideas exist in our head and sound fun, but building support structures to let us prove it and actually trying to prove it is way better than thinking it sounds cool. We never really know until we try. In the first clip, basic support for having two players participate together against an AI in Melee is shown, and in the second I show just one prototype of how co-op can support different kinds of play:

We got a really clever, game-changing feature a couple weeks ago for the Simple scripting language called complex property initialization. If you’re interested in the technical side, Fred and I spent some time walking through why this was so powerful and important. Walkthrough of complex property initialization.

Lastly, there’s always work and conversation unrelated to the immediate task at hand. Here’s a grab bag of various discussions about our past, the Simple language, and the stream itself:

P.S. We know why you’re all here. The unintentional, unscripted comedy:

Thoughts? Special requests? Comment on Reddit!