Archive:

Subscribe:Atom Feed

"Lumo Journal: Week 36"

Posted: 29 January, 2024

Lumo Journal

29.01.2024

Was asked if I had a logo for the game, and, er, yeah. Balls. That’s a thing. Wrote a design brief and sent it off to a few people for tender, and knocked up a quick placeholder for the publisher’s deck.

Phil did the logo for the first game, and I don’t think he was expecting me to use it in the final release, but it fit, and stuck as the project grew. I don’t want to stray too far from it, but yeah, things need to evolve.

Did a few more bits and pieces in the build to make it a “real game”, rather than a collection of Dojo tests:

30.01.2024

Made some progress on the Logo design. Not straying too far from the original, just in case anyone actually recognises it. Is brand equity a thing?

The big job of the day was a refinement to the respawn system. Certain rooms may need to set an arbitrary respawn point, say if you go through a check-point, or you’ve just collected something important, so I extended what I wrote last week and added a generic RespawnPointActor that can be placed anywhere. Rooms can call into the GameMode to change the respawn details as they desire.

Also added a placeholder cut-scene when you collect the Wand, and did some work in that room to hide the Duck and Wand Charge until the cut-scene has played. That room’s nicely re-entrant, now.

Blocked out The Backdoor, with a teleport back to the hub, and added a few more rooms from Jet Set Willy 1 to the TODO list.

31.01.2024

With The Backdoor’s teleporter now linking back to the Hub, I decided to get persistent state implemented. Eventually, the PlayerState and GameState will get serialised to a file in the active save-slot, but for now, I just need to push everything up to the GameInstance and pop it back out whenever a map has loaded. I’ll handle multiple saves and all that jazz at the end of the project.

My save game stuff is trivial, because I always build my stuff around boolean events; the player’s opened a door, the player’s collected a thing, the cut-scene has played, etc. Each event sets a single bit, in a bitfield, that gets stored in the GameState.

Some of the bones for this were in place – I was half building it as I went – so the first chunk of work was tidying up what was there, making it orthogonal across the PlayerState and the GameState, making sure the GameInstance was actually storing it, and that the GameMode pushed and popped everything to the right place, at the right time. And then commenting it for Future Gareth, who’ll pop along at some point to write code that spits everything out to a file.

The second half of the day was spent playing through Moon Base to make sure everything was checking the GameState, during map loading, and setting itself to the appropriate state. Found a couple of bugs, and a few things that weren’t re-entrant in the slightest.

02.02.2024

Had a big push, today, to get the rest of the game wired up so you can move freely between the Hub, and each of the Zones. Lots of detail work, lots of play-testing, a few new cheat modes, and some extra dev-menu buttons later, and (I think) I’m there. Everything remembers what you’ve done, RoomControllers handle map reloads, and the Hub has placeholder cut-scenes for first entry – the Intro Sequence – and subsequent visits, when you should have some paint to drop off.

It suddenly feels like a game! Which is a nice way to end the week. Pub, then a curry, me-thinks.

Previous Post: "Lumo Journal: Week 35" Next Post: "Lumo Journal: Week 37"

Friends:

If you like any of my work, please consider checking out some of the fantastic games made by the following super talented people: