Windows GhoBo -- A little game of procedural seed-generated puzzles

Micah_DS

Member


/ About the Game \
Play as a little ghost, pushing magic marbles into holes and clearing sprouts to win.
Things are made extra spicy by mixing in a screen wrapping mechanic, plus the sprouts pop up blocks when you pass over to clear them.
All these ingredients are blended together by procedural generation, creating a slightly flawed but (hopefully) fun and a unique puzzling experience.

Levels are very tiny, but don't be fooled, they can still be quite difficult at times.
There are 100,000,000 different seeds to choose from, each containing 10 levels.
Critiques, bug reports, and suggestions are welcome, though I'm crossing fingers, hoping the game is good as is, haha.

(more info on the itch.io page -- link below)



/ Free Download \
itch.io: https://k-bit.itch.io/ghobo

/ Credits \
Entirely created by me (Micah), with the exception of ENDESGA's EN4 Palette.​
A Devlog Backstory
I wrote a 'real' devlog, but it's a mess and rather wordy, so I don't think it's worth going through to edit it so I can post it in a presentable manner.
Instead, I'll just post a summary.

The project was actually started wayyyyyyyyyy back in October of 2017, but back then I had only worked 2 days on it, because I got sick.
After that, the project was placed on the back-burner, in favor of bills and my general survival in this world.

Now, fast-forward to this month of June, 2020.
I was thinking to myself what kind of small one-week project I could do.
BOOM, GhoBo was revived!

-
Back in 2017, the birth of the concept was as a procedural dungeon script, but I must've had Sokoban on the mind because I wondered if I could make block pushing pathways and end up with a procedurally-generated puzzle, so it took that turn.
Back then, I had done most of the main sprites and tiles, but as far as code goes, all I had gotten implemented was the screen wrapping and position checks and basic path-making movements correctly working for the level generation.

Oh, I also left my 2020 self this:

Which, amazingly, I completely understand what I was doing with that back then. It's the aftermath of my visual planning.
The top part was me working out previous and current positioning and surroundings.
The bottom part (the two big messy square bits) was me mocking up a level, in an attempt to get an idea of how/if it'd work.
Visual planning of this nature has saved my life on numerous occasions.

Now, coming back to the present of June 2020, the actual 3rd day of development, the first thing I started on was generating levels.

First, I filled the play area with walls.
Then I basically made a path generator carve out paths in the walls.
I went about it by essentially doing everything in reverse order, so the path start position is the actual end position of the player in-game, and the player start position is the level generators path end.

There needed to be two kinds of movement:
One where the player would be freely moving, not pushing a marble.
The second would obviously be movements when pushing a marble.

Now, why are they different, you might wonder?
Well, when pushing a marble, if the player needs to turn, they would take two steps to get around to another side of the marble. Without a marble, they don't need to take any steps to turn, they just move.
Knowing that, it was really all about alternating between a pushing state and an open state when making the path, and the level generator would move in different ways and create the holes for marbles at the beginning of switching to a marble pushing state, and when switching to a walking state from that, it'd create a marble.
I wish I could say it's complicated and that I'm all smart and everything, but it's really quite simple, honestly.

Anyway, I got that done on day 3, and...
OK, wow, I'm writing too much.
Will anyone read this?
...

Let's cut to the chase:
Basically, I got the meat of the game done in about a week, but somehow I ended up taking just over two weeks on this one week game, because some things required a lot of trial and error and some huge changes to how things worked, and then polishing took a while as well, adding all the bits of juice and necessary feedback and easing (e.g., making the message boxes pop up with a quick expanding animation wasn't so much about making them look better as it was to help remove the feeling of an abrupt appearance that felt slightly jarring. There were a surprising amount of things of this nature, even in such a tiny game).

One of the greater examples of major code changes was me trying out a bunch of different movement handling.
Questions came up, such as: "Single key presses for each step or allow holding directions for continuous movement?", "If holding, how long to pause between steps?", "Should a pause be able to get cut short in any case?", etc.
So after sinking a lot of time into that, I ended up with continuous movements, small pauses between steps, and buffering inputs.
Without the buffering, you could press a direction a little too early and it wouldn't move, even though it felt like it should.

On that note: BUFFERING INPUTS - DO IT.
It's such an important thing in a number of situations in games.
For e.g., Platformer? Buffer the jump so the player can press jump a couple frames before landing and still execute the jump.
Melee combo/chain attack? If you're still in your first swing and tap attack again, buffer it so it performs the second. Etc.
(Just two examples from my own experience, and it's worth mentioning that I noticed other, far more experienced devs have said similar things, like the people behind Dead Cells, and the Celeste devs, etc.)

Ah, I forgot I was going to cut this short and then I go and talk about that stuff... oops.

Anyway, I think the end result is a decent game for a somewhat experimental concept.
Plus, I feel like I got what I needed out of it. There were a whole lot of reasons to make it, but they all essentially boil down to self-improvement/growth as a game developer.
Hopefully this game is just the start. GhoBo wasn't the only barely started project I've had laying around. ;)
 
Last edited:

Joe Ellis

Member
I'm gonna have a play of this later :D
It's like an old gameboy puzzle game, I used to have a cartridge with about 20 games on and this really reminds me of one of the games on there, I can't remember what it was called though.
It's a cool idea aswell :D
 

Toque

Member
Very cool. I mean this is great. Great colour palette. Heck three colours......Nice. It screams mobile potential.
 

Micah_DS

Member
Very cool. I mean this is great. Great colour palette. Heck three colours......Nice. It screams mobile potential.
Thanks! Funny though, the palette is the one thing I can't take credit for. :p It's the EN4 palette, by ENDESGA.
This is stated on the itch.io page and hard to miss, but I realized I should probably state in my OP on here as well, so I've made that edit.

And I've thought the same about it having potential to be a great mobile game, but I currently don't have mobile exports in GMS2, nor the devices needed to test and compile (if I also shoot for iOS), so it isn't financially viable for me right now.
 
Top