[Okada’s World Devlog] v0.15

I found myself yet again taking a break and having a step back from high-octane development on the game. Having a 2 year old certainly doesn’t help!

I’ve been having problems with 2 aspects of the game, which both really need some serious well-thought out plans:

  • From the beginning, i’ve always wanted to have a ‘world wrap’ concept, where the world wraps around on itself. Initially I had implemented this by copying over the world to the right or left based on which direction the player had gone, and eventually de-spawning the repeated worlds which were no longer relevant, but it was highly dependant on world size and objects not existing - and it worked - though it was not practical.
    • The idea in its current form is just sneakily teleporting the player to the opposing side, and having an overlay point where it would be un-noticable, but to build on it further I want to integrate the world into the background dynamically.
    • If the player was in the centre of the world, then the background would include both ‘edges’ of the 2d plane joined together, and moving right would scroll the background left.
    • Lots of half-hearted experimentation has been done, i’ve tried playing around with viewports and minimaps, but never really gotten an implementation which stuck, so this has been mulling over in the back of my mind since the beginning.
    • Ideally it needs to be dynamic too, so that when changes are made to the game world, the background requires no changes (unless the world gets wider as reference points will need updating).
  • Squash mechanics are still very broken
    • Since the concept of squashing blocks and moving them - it’s always been a sore point of mine that the squashing is so inconsistent given it’s an integral part of the game.
    • After re-doing the player movement, it appears to have gotten slightly worse. I’ve been trying many different things - upping physics framerates, predicting next tick positions, but they always result in things not feeling right. So lots of time has been spent trying to solve this, but with a lack of experience in game physics it is proving difficult.

Other than those things, progress has been made slowly.

New puzzles have been added based on initial drafts, some worked out well while others will need revisiting, but they are nice and quick to add to the game after conceptualization.

Some large issues had been identified with the savegame system, and ‘carried items’ or inventory upgrades, and I ended up overhauling both systems to be much simpler and more robust.

I also spent some time adding some dynamic particle effects on use of movement actions, which - thanks to the FSM were really easy to add, along with other pizazz like upgrade item info panels when near.

  • [META] Update main menu, allow skippable splashscreen
  • [FIX] issue #143 Wall grab should only work when you have the item
  • [FIX] Allow jumping out of a wall grab
  • [ADD] Double jump & dash particles
  • [ADD] Fade in / out autosave icon
  • [META] Rework scene dir structure
  • [ADD] Popup panel when near upgradeitem
  • [DESIGN] Added another song
  • [FIX] #172 fixes broken save games by using autogenerated nodePath on all saved objects
  • [FIX] #153 Warpgate warp sound no longer cuts off when warping!
  • [FIX] #152 item persistency bug
  • [FIX] #173 entire save/load system reworked to be less hacky
  • [FIX] #127 sliding under gap now pushes you sideways until a gap can be found, which (mostly) fixes the issue of getting pushed vertically up spaces the player shouldn’t be in
  • [DESIGN] Decorations & New puzzles
  • [ADD] Some small shader options to blocks
  • [ADD] Warpgate light {< gyfcat src=“tightbrownappaloosa” >}}
  • [ADD] Particles to upgrade items
  • [FIX] #154 ice friction bugged
  • [FIX] #155 swim ground snap bug
  • [FIX] Sprint particle emmisions sticking
  • [ADD] More decoration sprites, randomized start frame
  • [WIP] Attempting to fix spongey moving block collision

Finally, as part of this version, the website was re-done using a static site generator called Hugo and instead of tracking in a separate repository and writing raw html which is a bit tedious - it’s simply been added to the games repo, and new posts/changelogs can be added with a single md file!

Peter Alabaster

Full time Software Engineer & Dad. Keep up to date with my projects here.

Another long time away - Shortfalls, game state refinement, UI improvements, and adding more assets & puzzles

By Peter Alabaster, 2022-06-12