Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(+2)

Fantastic work! Fun mechanic, presented in a comical way! The colour choice is captivating as well, and your geometry shapes fill everything nicely.

Really liked the fact you had to make a tower of your dead bodies to get out of pits XD

Since I am also a Godot user (even though I am still a beginner), I have some hints to offer, if you would have them (the trick is, you have to give up some of your secrets in return hehe).

Questions (that while I have a general idea, I am looking forward to listening to your solutions):

  1. How did you instance your levels? Because on the menu, when I clicked on the level
    selection button and selected level 4, after completing it, it took me back to lvl1, instead of lvl 5. I still have no idea how to make a level selecting menu myself (I assume you make a ton of Buttons and make them each one lead you to a scene each). So then I suppose you have an Autoloaded scene that handles the number of the current scene? And it just doesn't get updated through this method? (I don't know, but I would like to learn so please share!)
  2. In regards to the audio, really cool tune and nice sound effects! But after I kept dying and time passed the music stopped. I just make a loop in one of my Global/Autoloaded scenes by going to the Audiostreamplayer, Node-> Signals, and emit the finished() signal to your script. Then $Audiostreamplayer.play() and you create an infinite music loop!
  3. Perhaps using the Audiostreamplayer instead of the Audiostreamplayer2D will stop the issues with sounds playing from different parts of players audio devices. When I have games like yours where the action is just on one screen, or to play the effects of the main character or something that is happening there and then I use Audiostreamplayer. If its a game where you can move the camera around, and you have to explore or something approaches, I use Audiostreamplayer2D. Try them and see!
  4. I've recently started exploring switches. Could you please explain how yours work? I can see you have a button(pressed/not) and a lever(side 1/side 2). You also have locked/unlocked walls. How do you connect one with the other?
  5. Did you use a Tilemap node for decoration and/or placing any of the switches and spikes?
  6. And for the main mechanic, do you turn the player node to a Staticbody2D somehow? I have no idea XD
  7. Any tips/tutorial on presenting text as cool as yours here?

Thank you and well done! Any questions you can answer (whenever you have time, no rush) would be fantastic!

(+1)

Oh wow what a hefty comment. Time to make my own! Thank you a lot for the great comments! And thank you doubly for them great tips! No secrets here, we all need to learn and get stronger together (whoops wrong game jam). Let's see what I can offer :) 

  1. It was a last minute system I whipped up. I have an autoload script that just held references to the scenes in an array (ordered by level order). And a current_level variable that acts as the array's index. Everytime you reach a portal, we send a signal to the autoload to go to the next level: the current_level increments and we use change_scene to well... change the scene. I forgot to properly set current_level  to the selected level so when you click 4 for example, current_level would still be at 0, then increments to 1, loading level 1.
  2. I did the autoload music thing. But I forgot to make it loop. Oops. It was one of the last things I added, and I didn't bother to check it cause I finished my own levels too quickly haha.
  3. I didn't know that they worked differently! Thank you so much. Definitely going to give those a try. And the Audiostream 2D functionality is giving me some fun ideas in the future!
  4. Ooh okay! Area2D and groups is the way to go! Here's the basic concepts/logic.
    1. Lever checks if a "player" has entered and is then activated. It does not revert back. 
    2. Button checks for the first "player" or "stone" to enter. When an additional body enters, it doesn't activate again, but keeps count of the new body. It only releases when the last valid body leaves.  
    3. Toggleblocks (The locked walls) have an Activate() function that toggles them between "active" and "inactive". Disabling their collisons and changing their sprite.
    4. I have an export array variable on buttons and levers to "wire" them together. When triggered, they run through all the items within the array and call their Activate() functions. I want to use this to my advantage when adding a few more mechanical doodads later on. Like a cannon? Or a laser? Or even portals mwahahaha!
  5. Yes! The basic blocks is a single autotile. Right now the spikes are on a separate tilemap, but I might turn them into a Toggleblock of their own. Togglespikes! Switches, Buttons, Toggleblocks are all different scenes. The level Portal itself is a scene too! Use the grid snapping to align them with your tilemaps. I keep them in their own node called "LevelGizmos" for some proper organization~
  6. The player character(boxboy)is a KinematicBody. The statue (notboxboy) is as well. This allows me to control their gravity in a way. It's like instantiating a bullet! But instead I instance a petrified version of the character in his place.
  7. It's my first time trying to do text like this. Find a good font and experiment with NinePatchRect. I made a scene called "Dialog Box" that contains a label and the NinePatchRect for the background. GDQuest has some real good UI tutorials :) As for color, white text on black always feels a bit classy to me.

You can get a hold of my twitter on my itch page. It's not really active but don't be shy to send a message! I know that's a lot of information to take in, so if you want to clarify some more you can contact me there!