Barry Buff - hero for hire (and his accomplice Asami in 2 player) have signed up to escort a princess and her ladies-in-waiting to their home land. Having purchased a map from a local trader, it doesn't take them long to realise that it's fake and has lead them to be helplessly lost in the middle of a wide expanse of plains. Not only that, but they soon realise that they've lost the princess and are now surrounded by some small green folk.
Their leader steps forward. 'We will return to you your princess if you can beat us in a game of Snatch the Wench.'
Our heroes look at each other dumbfounded, and realise that they must have stumbled into Goblin Gardens. There is nothing they can do but comply with the goblins silly game.
With each wave, goblins will attempt to snatch the ladies-in-waiting. It is up to you to protect them by snatching the goblins instead and tossing them off the side of the field. If you manage to catch all of them, you will move onto the next round. Do this 50 times, and you will win the game. However, the amount of goblins will increase with each wave, and they will become increasingly quicker (though thankfully, so will you). If the goblins manage to snatch all the ladies-in-waiting, the game will be over.
Move your player with your controller or directional keys on keyboard.
This game only uses one button to interact with everything. On keyboard it's Z or C and with controllers it varies but usually it's A or X.
To grab a goblin, move over them then press and hold the button. To let go, release the button. If you release the button while standing still you will drop the goblin. If you are moving and you release the button, you will throw the goblin in the direction you're moving.
If a goblin has a lady-in-waiting, you may attempt to retrive her by either throwing another goblin at them, or by GRAPPLING them. You can GRAPPLE a goblin by moving over to one that is holding a lady-in-waiting and pressing the button. You will then have to wrestle the lady-in-waiting from them by repeatedly tapping the button as fast as possible.
There are three levels of goblins: green, orange and red. Greens are the easiest, reds being the hardest. Higher level goblins will move faster and be harder to grapple with. If a goblin is knocked over, they will increase a level if they manage to get back on their feet. If a red goblin is knocked over, they will explode. Be warned: if the player is within the vicinity of an explosion they will be knocked down and take some time to get back up. However, explosions also send other goblins flying, so use this to your advantage.
Points are scored by throwing a goblin off the field or throwing a goblin into another. You will get a multiplier bonus for additional goblins knocked over. All points are multiplied by the amount of ladies-in-waiting you have remaining, so try to keep them for as long as you can for those precious points.
If, by some strange luck and skill, you manage to beat all 50 waves, you will get a last endless wave to play. This is to allow you to rack up as many points as possible, but the game will become a bucking bull - constantly glitching and becoming ever more unplayable to put an end to your game. See how long you can last.
This game was initially started for the Ludum Dare 46 game jam, which follows the theme of 'Keep it Alive'. I was having too much fun making the game so it wasn't finished for the competition, but has now become a project I am going to continue to develop.
If you find any, please let me know!
I feel like I'm wasting a lot of tokens with counters/timers in my game.
For example, most of my timers work like this:
timer -= 1 if timer <= 0 then timer = timer_reset --do stuff here end
So I'm using a lot of global variables to store the timer values and timer reset values, as well as it not being a function in itself. I did try to make a function from it with something like:
function(timer, timer_reset) timer -= 1 if timer <= 0 then if timer_reset ~= nil then timer = timer_reset end return true else return false end end
But that only reduces the timer variable within the function, and not the original. When looking up on if there was a way to reference the original variable, I just found posts saying this isn't possible in Lua.
Is there a better method for this?
The game is currently in development but I have made available a one level demo to play around with.
The objective is to manoeuver the bubble around the bath, collecting enough (10) to float out of the water and into the next level.
Hazards come in the form of dirt, which will deplete your bubble count, or bumping into the fish or the diving nail brushes.