Welcome back, Sleepyheads! Itâs hard to believe itâs already the last Friday of September, but here we are. Similar to last monthâs update, Iâve been trying to focus less on getting art assets finalized and focusing more on getting the entirety of the game blocked in. Iâve also been doing some not so exciting compilation time improvements, but Iâll try to focus on the fun and interesting stuff Iâve been working on this month.
This is something I meant to save for later as part of the work to release the game, but occasionally Iâll just start working on something because itâs caught my interest, or just because Iâm working on the laptop and itâs easier to do something thatâs more system design/programming centric. So building out the Achievements system was one of those things. For those unfamiliar, achievements (PlayStation uses the term âtrophiesâ for the same idea) are just a way to occasionally acknowledge something the player has done or a milestone theyâve achieved in-game. This can be a fun way to engage players beyond a single playthrough of the game, as well as to reward players for going above and beyond the normal challenges the game offers in a standard playthrough.
Overwatch has its own dedicated Achievements UI which allows âachievement huntersâ to closely track how theyâre coming along with each challenge.
The plan for Little Nemo is to ship on Steam and Nintendo Switch. While Steam offers a helpful API to unlock achievements on their platform, Nintendo Switch doesnât have any concept of achievements. So while we could just do a simple interface that leverages Steam to do heavy lifting of achievement tracking, that would mean we wouldnât even have the option of achievements on the Switch. By building out a custom system for achievements which can interface with the Steam API (and possibly other achievements APIs if we port to other consoles) we then have the potential to show these achievements via an in-game interface and allow players on the Nintendo Switch to enjoy them as well (at the cost of building our own in-game UI for it).
I didnât do any UI work for this yet, but I do now have an achievement system that will work independently on any platform, whether or not that system supports achievements. The system is relatively robust and allows us to to track singular event type achievements (eg. âYou beat the game for the first time!â) as well as incrementing progress type achievements (eg. âYou traveled a total distance of 10,000 meters in gameâ) with the option to show progress towards the achievement at specified intervals.
Additionally I started planning out all of the achievements Iâd like to have available in the game. This is something that came up as a discussion point in the Discord server very recently as well. The goal with achievements in Little Nemo is to focus the most on achievements that celebrate something you did that might be a bit off the beaten path. Whether thatâs completing a hidden side-quest, or doing things I expect most players wonât do. But I also want to be cautious to not reward things that would be too annoying to complete. I have to be considerate about the fact that there are players out there that will be trying to get all of the achievements in the game, so if thereâs an achievement like âPluck 1,000,000 radishesâ, there are players that would do that to their own detriment. I think the list of achievements I currently have planned out strikes a good balance between all of these concerns.
This is probably something that seems silly to call out to talk about on its own, but itâs an interesting topic. In Little Nemo, the player can crouch by pressing the downward input. It doesnât do much because you canât walk while crouching, so until recently it was only useful to avoid projectiles or attacks coming from above. It was so naively implemented that your physics collider didnât even reduce in size when crouching (only your hurtbox, the part of you that can get hurt by attacks, shrunk down when crouching).
Nemo crouches under a gumball to avoid getting hurt
As we started exploring the moving platforms in the game (especially the toy train platforms of Nightlight City), it became clear that it would be fun to introduce things you have to duck underneath while riding on a train. This of course meant shrinking the playerâs collider from 2 tiles tall, down to only 1 tile tall. Sounds easy enough, but once you do that, it actually introduces a can of worms. If you can fit under something, but you canât move while crouched, what happens if you get stuck under there?! For instance, in some Mario games in these scenarios youâre stuck crouching and have to crouch hop your way out, and in others you just get slowly ejected to the left or right.
Mario getting ejected when being too large to fit in a small corridor in the original Super Mario Bros.
Ultimately, the solution I settled on is a bit more complicated, but I think handles the possible edge cases very nicely. Hereâs the general idea: if youâre crouching and thereâs something above you preventing you from standing upright, youâll continue crouching even if you release the crouch input. As long as youâre still moving (whether thatâs due to riding on something or just because youâre sliding on a slippery surface), you wonât be able to stand upright. Once you stop moving, however, youâre then able to stand upright, even though that means youâll be clipping into a surface above you. Your collider will actually stay reduced in size, despite looking like youâre standing upright, and then once you get out of the tight space youâre in, your collider will snap back to full size.
Colliders are visible here so you can see what happens if you somehow manage to get stuck in a tight space.
The Pet Constellation art is all done, but is still in progress getting imported into the game so that I can share it with everyone. I was hoping that would be done for this update, but weâre still getting the constellations all set up correctly. Something to look forward to in the next update then!
Once that is all set, weâll tackle the Cat Guardian đ rewards and then all of the Special Reward tier content in the game will be done.
Some of the other work Iâve been doing this month is trying to improve iteration and code compilation times. As the codebase for Little Nemo continues to grow, over time my ability to quickly iterate and test things drops. Itâs become bad enough that I decided to spend some time trying to address it this month. Itâs very boring work that involves just untangling and decoupling bits of the codebase, so I wonât bore you with the details.
Thereâs not really much to report on the timeline this month as things have continued on the track I described in previous posts, but I do want to check in on this as usual.
This month I got the enemies and gimmicks grayboxed in for âď¸The Valley of Silenceâď¸ (more on that down below under the spoiler warning), which was the last bit of grayboxing of enemies we needed to complete. Since these are only grayboxed in, I still need to finish the art assets for these enemies, but it allows us to better flesh out the level design of these areas taking into account how these enemy encounters will influence the design and structure of these domains.
So weâre still on track for getting things finished up over the next few months so that we can prepare for a release next year.
I got a new build out this month for those of you with access to the early builds. The original intention was to allow unfettered access to everything that was grayboxed in, but I did end up blocking access to some of the areas that were roughed because you could actually get stuck in them. But this current build does allow you to explore some new areas like Haunted Hollow and see the Palace Gate and some other interesting bits if you really go exploring and want to spoil yourself on it. Iâll be trying to get another build out this month that will allow you access to more of the Nightlight City stuff thatâs been sketched in so you can play with the toy train platforms and other fun stuff thatâs there.
Most of the updates this month were things I could share that were spoiler-free, but I also want to show off a bit of âď¸The Valley of Silenceâď¸ enemies and gimmicks you havenât seen yet.
This cute stuffed cryptid just enjoys rolling snowballs around. The snowballs will roll along the ground bouncing off walls and damaging whoever they collide with so make sure to stay clear.
Teddy Yeti is fairly large, but harmless if you avoid the snowballs.
This enemy is very similar to the Crystaceans found in the Crystal Caverns, employing an area of effect attack if you get too close. This enemy, however, has a weak point on top of it which can only be damaged by the pogostick. Youâll need to be careful to properly aim your pogostick attack because if you miss youâll wound up stuck in the snow and vulnerable to their attack!
Nemo misses a pogostick attack and winds up stuck in the snow next to the dangerous Snow Crab
How did a Burrchin wind up here in the Valley of Silence?! It seems to be having trouble acclimating to the frigid temperatures and the cold makes itâs spikes all the more dangerous because this version of the Burrchin will deal 3 damage instead of only 1. All the more reason to make sure youâve collected some Lucky Coin Shards before exploring the Valley of Silence.
It looks like some of the Scarabiners have adapted to the icy cold. These Scarabiners wonât leave their shell behind when theyâre destroyed, however. The low temperatures have caused their shell to be quite fragile, but the icy shards forming on their backs make them dangerous to the touch. These Scarabiners will just continue walking along whatever surface theyâre on and will leave you alone as long as you can manage to steer clear of them.
Watch out for the Icy Scarabiner climbing around on surfaces!
This is a hazardous gimmick youâll find throughout this domain. In some areas icicles will form, and if you try to pass underneath they could drop on your head. Although these falling icicles are quite dangerous, if you can manage to stand on top of one, you might be able to platform you way to otherwise inaccessible areas.
These sharp icicles will begin falling if you get too close!
As with other areas, there are vegetables you can pluck out of the ground to use as a ranged weapon, but sometimes youâll pull an ice cube out of the ground instead. These blocks can only survive a few hits before they crumble, but theyâll slide along the ground for a ways and bounce off of walls. You can even ride these similar to the Scarabiner shells, so perhaps you can use them to ride over some spikes or just toss it at enemies to take them out.
Nemo plucking, tossing, and riding an Ice Cube
Iâve previously shared some images and videos of the other gimmicks youâll find in this domain: the icy and snowy surfaces (icy surfaces are difficult to move on while snowy surfaces cause you to get stuck if you try pogosticking on them), but these are all of the enemies and gimmicks that I developed this month to finish rounding out the domain.
I ended up working on more somewhat âboringâ (for people that arenât me) and technically oriented stuff this month that is less fun to show off, but I hope youâre still having fun following along. You should make sure to join the Discord if you havenât. Sometimes I share fun little things in there that donât wind up in these posts, or I might just be talking about what Iâm playing. This month I picked up a MiSTer FPGA device and played through Capcomâs Nemo on my arcade cabinet and streamed to the DIE SOFT Twitch channel (the VOD is still up if you want to see it).
Last year I believe I gave a shout-out to this hand-drawn Metroidvania, but their Kickstarter was not successfully funded. Now it looks like Exil has returned with another Kickstarter campaign, so take a look and see if itâs a game youâd like to support.
Embark on an adventure through a mystical world full of magical creatures.
Once again, I really appreciate all of you that have read all the way to the end here. You Sleepyheads have made all of this possible, so I hope youâre still having fun following along with development. Come say âhiâ in the Discord, otherwise Iâll see you in one monthâs time for another update!
-Dave