Two big things this week: a new demo for Alice is Dead, and starting on the next game!
Checklist
- Released a new demo for Alice is Dead
- Started a new game, The Five Words of Power
- Pulling together a handful of ideas I’ve had about map making
Alice is Dead Demo
We released the first demo for Alice is Dead, based on the first episode of the original trilogy, a couple of years ago. I’ve made quite a few changes under the hood since then, either to fix things up that we didn’t like in the original, to tighten things up that slipped for the original demo release, or in preparation for later parts of the game.
The most immediately obvious change will probably be that we’ve added a whole extra room to the beginning of the game. When the original Flash games were released, point-and-click “escape room” type games were quite common on online game portals like Newgrounds, where it was originally posted. When we released the demo, some of the feedback we got was that in the context of getting a game from Steam, it was far less reasonable to assume that every player would understand the general loop of the game (i.e. click things, collect items, use items on stuff, combine them, etc). This first room is a stab at cajoling the player into that loop by making it… the only thing they can really do. Hopefully it helps!
Don’t you want to click those things? Art by Hyptosis.
Another big thing is the addition of a conversation system. The later episodes of the game had a number of conversations with characters, but the first chapter didn’t. Since I’d built the system anyway, I suggested we add a conversation with the Caterpillar, so now you have a chat with him; in the original game he was one of very few other living creatures you meet in the first episode, and the only one that displays outright intelligence… but he was completely silent.
A less in-your-face change, though hopefully a big improvement, is to switch the way we handle audio for rooms. The first demo, unlike the original game, simply had a “radio” style music player, which would loop through a few tracks as you played. This was, I guess, an expedient way to deal the with music, but it definitely lost something from the original where the sound changed as you moved through the world – so I built a system for defining ambient audio room by room, including being able to define different volume, panning, and effects like adding echo or being muffled.
Oh, and hey, the game auto-saves now. You won’t have to play through the entirety of the game in one sitting!
The Five Words of Power
I’ve written vaguely a few times about wanting to do something more story-driven for my next game, and I’ve nailed down the general plot and overall gameplay. It’s called The Five Words of Power, and it’s going to be a top-down, action adventure game with light RPG and puzzle elements (think Legend of Zelda, basically). The general framework of the story is pretty standard, honestly – darkness descends on the land, and a young priestess is chosen to go out and do what she’s been trained from birth to do: gather the five Words of Power that will grant her the ability to seal away the darkness once and for all. It’s pretty straightforward as a base, and provides a good structure for the kind of game it will be, but since the intent is to force me to stretch my actual story-writing muscles, I’m not just going to take the easy route of making it jokey and wink at the player constantly about how “gee this sounds pretty original!” The actual journey, assuming I actually manage to meet the brief here, is going to be about Grace, the priestess, her memories and the weird upbringing she had as a literal tool of her religious order, along with the weight of actually doing something heroic and fighting for something larger than yourself. Here’s hoping I’m successful and the game is fun AND the story doesn’t just feel over-wrought and boring. Won’t know how it turns out if I don’t just do it, right? I personally love this style of game, and I’ve always wanted to make one (… to start with, I have more in mind!) so this seemed like a good focus for the next project.
So far, along with writing a bunch to flesh out my ideas and put them down so I don’t forget them, I’ve mainly been prototyping a map building and loading system, pulling in bits and pieces of ideas that I’ve had about how to handle maps. Pretty much all of the map-based games I’ve built so far (specifically, SimpleQuest, Escape From Evil Island, and my work-in-progress prototypes of Black Mountain) have used the map as the root of gameplay. The player is on one single map, and switching maps completely unloads the world and loads in a new one. Anything to preserve information across maps needs to live outside somewhere, because maps are entirely torn down and recreated.
This is fine, for the most part! It’s how a lot of games are made. It always bothered me a bit, though, and each time I’ve sort of stretched a little bit because there were things that I wanted that didn’t quite fit that model, and I’ve worked around by adding other little things on top of it. All of those games have special boxes defined in the levels to control the camera – rectangles that I would draw out manually, and the camera would be locked to whichever box the player was currently in. Outside of those boxes, all of the monsters or NPCs that weren’t visible were still there, doing their thing. This wastes CPU and memory that doesn’t need to be used, and it also leads to situations where the player might be hearing things happening that weren’t important right then. In Evil Island I added a bunch of checks to see whether an enemy was currently on screen, and/or in the same camera box as the player. Switching between these maps means carefully linking up events in two separate map files, and the obvious/easy way to do that turns out to have a lot of problems as you change things over times.
The system I’m working on here instead has me building maps in pieces, which I call MapChunk
s (borrowing the term “chunk” from Minecraft), which can be placed into a World
. When entering a chunk, the camera is automatically locked to that chunk’s boundaries, and it handles spawning/despawning entities on that chunk, and the chunk the player just left, automatically. You can even put the same MapChunk
in the world multiple times, and the way I instance the chunks will handle the duplication just fine. I also have an intermediate type called a Zone
(pulled from old MUD terminology) which is a collection of MapChunk
s, either pulled from external scenes or defined right there in the Zone
file, and arranged together as they’ll get plunked into the world.
All of this lets me have a more seamless and fluid understanding of what makes up the world, and it also lets me pull some tricks that you saw in classic games that HAD to pull these kinds of shenanigans because of memory constraints (like the aforementioned duplication of MapChunk
s in different parts of the world). It should also, conveniently, be handy when I want to build a dungeon- and world-map system.
Just to be clear, this is all placeholder art in the screenshots, the game is not going to look like it was released on the Atari 2600. Characters in the screenshots are from the Gumdrop Galaxies character template from Robocelot.
I’m also pulling in two prototype bits I’ve built in the past (and didn’t really completely finish, so they’re not just a drop-in things). One lets me add extra metadata to a scene placed from a SceneCollection in a TileSet into a TileMapLayer (to let me set data on those scenes individually, which standard TileMapLayers can’t do), and one to let me both have better edging between tiles (think where grass and dirt meet) and also use fewer tiles. Neither of these are completely working yet, so I’ll leave those for another week. I’ll have to get a project page up for Five Words, as well, I suppose.
Thanks for reading!