Posts

Showing posts from 2022

Implementing Rocky: Who Wins When Push Comes To Shove?

Image
Many gamers probably never have to think about the order in which entities perform their frame updates. If developers make their games immersive enough, then gamers never have to. But someone has to think about that nitty gritty stuff, and today it’s going to be me and you.

Mini-update 6

Image
Fan games are awesome! We've been hard at work on ours, but there are so many other projects that deserve shout-outs that I would be remiss not to mention a few of them.

Implementing Gol: Code Reuse For The Win!

Image
Well, dear reader, all our hard work together is paying dividends. I don’t think there was a single problem implementing Gol that wasn’t already solved somewhere else. It was just about putting existing pieces together. Regardless, let’s go over what those pieces were.

Mini-update 5

Image
Welcome back to Lolo's adventures! Check out the castle we made! This castle will feature in our first game mode which we are calling Lolo: Return to Adventure. We are building a complete linear campaign in the style of The Adventures of Lolo with the explicit intention of giving players a satisfying set of puzzles that also (re)introduces them to every puzzle mechanic on offer in Eggerworld.

Who Is This For?

Image
Eggerland was moderately successful thirty years ago and has since fallen into relative obscurity. It certainly doesn’t have a loud fan base like some other retro games. In fact, most people seem to say, “Oh yeah, I remember those games.” Not exactly the glowing reminiscence you see for other games like Curse of Monkey Island or Baldur’s Gate, both of which have seen highly-anticipated renaissances in the past few years.

Mini-update 4

Image
Everyone is here! The project is progressing faster than we can share it! Big ol’ blog posts take time, time that we've spent on coding and art-ing and stuff instead. The deep dive posts are ongoing, but since there was a dearth of blog content for most of September, I’d like to catch you up on what we did get done by sharing a mini-post:

Better NES-Era Controls For a More Civilized Age

Image
Lolo’s control can be frustrating. There, I said it. Longtime players can control Lolo with ease, but even experts periodically succumb to the dreaded half-step-too-far that botches the whole puzzle. ACalmMind and I have tested new players’ reactions to Lolo’s controls; without a bit of help, the reception is generally frustration. Calm, Devnull and I are determined to do better, and we have several ideas for how to improve these finicky controls.

Implementing Pushey: Eggerland's Namesake Mechanic

Image
The Eggerland and Adventures of Lolo franchise draws much of its rich puzzling from the ability to push eggs and emerald frames. Snakey becomes mechanically interesting once you account for the game’s pushing mechanics, so let’s finish Snakey and do the pushey-push thing. B efore we begin, let’s go through some helpful context. Normally the ground doesn’t move much and that simplifies the code for standing on it. Programming challenges start to appear when mobile entities start standing on each other and pushing each other around, challenges that many games sidestep or don’t implement at all . We can’t just sidestep pushing for Eggerworld because pushing is a pillar of Lolo’s arsenal. Lolo can push a single egg or emerald frame as long as there is space for it to be pushed into. Once the pushed thing bumps into any obstacle, further pushing in that direction becomes just as immovable as any rock. FYI, each entity in our code is responsible for its own movement in its own update() meth

Implementing Snakey

Image
Snakey is a complicated beast, just standing there... menacingly . This one’s gonna be a doozie, so join me and we’ll embark on the most perilous implementation yet.

Mini-update 3

Image
This simple puzzle we’ve been sharing periodically is now a real, fully-solvable puzzle! Check out this video of us playing it: There’s still much to do, but we feel good about delivering some real value here. We still see demand for Eggerland and Adventures of Lolo content; streamers like Ugblut the Orc still dust these games off and play through them. You should check out his Twitch stream to watch him play through Adventures of Lolo 3 as well as other awesome games. This does mean we’ve prototyped mechanics for entities to push other entities around. Expect to see details on that in the next blog post. Stay tuned!

Choosing a Data Structure for the Game World

Image
We’re constantly refactoring our code behind the scenes, and as far as I’m concerned, that’s okay. You know what? It’s not just okay, it’s an excellent strategy for this project. I generally advocate for the leanest code to solve the most immediate problems. The code will grow and change as needed once we learn more over time. I’ve seen so many developers try to guess every wrinkle in the face of legitimate unknowns, and the most common results I’ve observed are analysis paralysis and overengineering. I think it’s usually more important to just get it done than to do it perfectly. This is how I picked a data structure for entities when putting Lolo into a puzzle room . Honestly it wasn’t a profoundly consequential decision (a two-way door) so I just picked a LinkedList and moved on. And yet retrospection is foundational to growth, especially in creative endeavors. So now let’s revisit that data structure through the lens of what we’ve learned since. At a high level, we’ve tried to ke