Posts

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...