Work Since Last Devlog
- Decided to redesign the project after receiving a friendly reminder that a successful platformer from last year was also about climbing a mountain with jump power-ups. The game is now about finding food for hibernation. This is good in a few ways: namely, I’m no longer committed to setting the game in and around a mountain, and layouts can be more abstract. I’ve added horizontal wrap-around for the player so that they can move from the rightmost screen to the leftmost one and vice versa.
- To complete these changes, I’ll most likely need another week. I’ve scrapped the old maps that I had, and am starting over with an 8×8 screen map (each screen is 32×18), so 64 possible screens total.
- Added various sound effects and implemented the player’s ‘defeat’ state and animation. These resources have been sitting around for a while, just not properly plugged in.
- Added devices that take coins in exchange for activating moving platforms on a given screen. These devices are comprised of three actors: a machine graphic / prop, a pad that the player steps on to try activating it, and an optional sign indicating the cost of turning it on. Only one of these devices is supported per screen.
- Added fireball actors that defeat the player on contact.
- Added two turret actors that periodically fire shots at the player. One fires shots that cannot pass solid terrain, the other fires shots that can pass through everything.
- Made the player somersault while jumping if having been walking forward on solid ground for at least two seconds, cumulatively. Player may jump or swim within this timeframe (though the counter won’t increment while not touching solid ground) as long as they continue to hold forward and keep updating their X coordinate. This has no impact on gameplay, it just just amuses me greatly.
- Added an additional “treading water” sub-state so that the player remains at a steady Y position at the surface of a body of water, instead of bouncing up and down.
- Added an evil ghost, suspiciously resembling the player, that passes through solid obstacles and defeats the player on contact. The closer the ghost gets, the slower the player moves, but the ghost can only patrol one screen and is returned to its starting position when off-screen.
- Miscellaneous core fixes, some long overdue: Changed sound functions to check for the existence of files before attempting to load and play them. Changed the animation switching function to work with both index numbers and named strings instead of just the former. Added a simple restart hotkey for debugging, after seeing it mentioned in the LÖVE Discord.
I hit a couple of snags this week: the aforementioned desire to redesign the game’s objectives, and also challenges in exporting an HTML5 version. It looks like it’s been a few years since the love.js emscripten port has been maintained, and my understanding is that it no longer targets the latest version of LÖVE. Early on, I had converted a simple LÖVE test project through love.js successfully, but I have not been doing frequent web builds since then, and now my current project isn’t able to launch. (It says “Running” but nothing happens.) There is also a self-contained LÖVE Web Builder, which works for small test projects, but the resulting package can’t seem to locate main.lua in my project’s .love file. If I swap main.lua for a simple “Hello World!” main.lua, including requiring one other source file, that will work. So there is an issue somewhere between that simple test file, and my current project. I’m not sure how to troubleshoot this, and right now, I don’t have the time to isolate the project in small pieces to figure out what the culprit is. Maybe in the future I will reach out to the support forum to figure this out, but for now, the game will be download-only.
That said, this doesn’t mean that the HTML5 situation with LÖVE won’t change in the future. I think the best thing to do right now is not worry about it too much.
I’m getting a bit faster with adding new actors. I’m going to need a few more hazards in order to fill out the remainder of these screens.
Plans For Next Post
- Fill out the rest of the map, package the game, get it uploaded, and move on.