Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

What was the hackiest thing you did during the game jam?

A topic by Crime Dog created Aug 07, 2019 Views: 2,665 Replies: 161
Viewing posts 41 to 54 of 54 · Previous page · First page
Submitted (1 edit)

Our game (right here https://itch.io/jam/gmtk-2019/rate/463306) is physics based (can you see where this is going ?), made with Unreal Engine 4 (CAN YOU SEE WHERE THIS IS GOING ??) and the player controls a bullet which, of course, moves at high speed (you probably see where this is going) and so if the player tries to go through the floor with enough momentum, they glitch out of the universe and have to restart the game.

How did we fix that ?

We hoped the player wouldn't try to go through the floor.

Just played your game!

Your hope paid off, I uh... didn't try to go through the floor?

So glad I didn't have to deal with physics programming for Negative Nancy.

I still have nightmares about forces and counter-forces...

Submitted (1 edit)

I can say that I'm a bit normal tier when it comes to coding a game, But when it comes to art & animation... I'm damn horrible. So this jam (as always) I've gone nuts and did some programmer art & programmer juice.
One example of my hacky programmer juice is that I've abused (a lot of) programmatically (procedurally?) generated animations (aka spamming cos()/sin() and random() functions) to add some amount of juicy feeling.

Here, The GIF below is one of the motion that can be seen in game, And below that is the code that I used to make it come alive.

Motion:

Code :

Quite a programmatic apocalypse, And beautiful... Isn't it?
(Also looks like my code readability is just as horrid as the hack... lol)

(PS2 : oh yeah.. the link for those curious adventurer, You can see this tech in action : https://zikbakguru.itch.io/game-game-game-game)

This looks great!

Next time you're at the normal-tier programmer's ball, push your glasses up your face with one palm and state to the room:

"Mmwhy yes, I have indeed dabbled with procedural animation."

You'll be the life of the party!

Seriously it looks great, thanks for sharing your code! I rarely have the luxury of working with an animator, so stuff like this is super helpful. I think the outcome looks fantastic!

Submitted

Well, I did something "hacky", but I later found out it didn't work as intended...
So what I did was, when you die in my game, you just respawn without the scene loading, as I thought it'll cut the loading screens time.
But, after adding new ideas, it didn't help at all, as enemy health didn't reset at all, and there were a lot of mines on the field! There were many bugs in the game, I found out recently!

If you want to try it out, here it is:  https://itch.io/jam/gmtk-2019/rate/462383

Oooh yeah, that can be a pain.

I don't like getting scenes to reload in Unity either, but you do have to think up your own ways of managing game-state if you don't use it.

If you have some kind of levelStart() function where you spawn all the enemies and such, that could be a good place to reset everything?

Submitted

Bit Late on this but I kinda cheated on graphics for myself, I dont have much talent on digital art so it was faster for me to hand draw all my art. I did a card game (https://ilprinny.itch.io/one-card-income for context) so I saved time by hand drawing then just taking a picture with my phone. the rest of the graphics are unity defaults!

The picture of your hand for the drake made me laugh.

Your game is faaaaantastic by the way! Totally hooked me.

I would love to see you develop it further!

Submitted

thanks so much, yeah I totally ran out of time for the drake xD and I've been working on a "Patch version" for post jam with plans to work on it further. Would love to see where it can go 

Yeah for sure. The cool thing about a game like yours is that it's really easy to commission art to spec, so you can make it look reeeeeally good on a shoestring budget once you're happy with it!

Submitted

yeah, if I decide to invest in it I probably will get prober art. I Think I may do the art myself, it will be good practice incase I cant invest in a future project. I dont how far I will take it yet so I'm uncertain for now.

Submitted

This is less of a hack and more of "I'm too lazy to do it the right way"

I'm using Godot for my entry https://mrcdk.itch.io/only-one-finger-driver-mark

Godot UI system is really powerful (the Godot's editor is made with the same UI parts you have access in the engine) so  I used them to create all the "GUI" elements in the game. My game gimmick is that you only have one finger so I wanted the cursor to be that, only one finger. Each UI element in Godot has a property to select the mouse cursor it will use (the arrow, the pointing hand,...) when you are interacting with it. Because my game uses a lot of those elements, changing the cursor mode to each one would take a while... unless you are me and do this in a autoload/singleton (in Godot, a node that loads at the beginning before the scene is loaded and is always loaded) :

func _enter_tree(): # a function called by the engine when the node first enters the scene tree
    # set the default cursor to pointing hand
    Input.set_default_cursor_shape(Input.CURSOR_POINTING_HAND)          # load a custom graphic for the cursor          Input.set_custom_mouse_cursor(preload('res://assets/hand.png'), Input.CURSOR_POINTING_HAND, Vector2(17, 5))
    # connect the scene tree "node_added" signal to the function "_on_node_added"
    get_tree().connect("node_added", self, "_on_node_added")
    
func _on_node_added(node): # the function connected to the scene tree "node_added" signal
    if node is Control: # if the node added is a Control (base class for all UI elements in Godot)
        node.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND # Set its default cursor to be a pointing hand

Part of https://github.com/mrcdk/gmtk_gamejam_2019/blob/master/Globals.gd
This way, I made sure that the cursor will always be the pointing hand one and didn't have to worry about adding new UI elements.

Another "I'm too lazy" moment was inputing the text in the fields. I really didn't want to code an input field from scratch... so... I created fake input key events when clicking on the on-screen "keyboard" buttons here https://github.com/mrcdk/gmtk_gamejam_2019/blob/master/Keyboard.gd and blocked all the input events that came from the physical keyboard:

func _input(event):
    if event is InputEventKey and not event.has_meta('fake'):
        get_tree().set_input_as_handled()

Part of https://github.com/mrcdk/gmtk_gamejam_2019/blob/master/Main.gd
Notice how I set metadata in the fake key event I generate in keyboard.gd and only consume the input key events that aren't marked by that metadata (all the ones triggered by the physical keyboard) 

So, some explanation on how this work. In Godot the input event system has the following flow explained in the documentation. As you can see, first the _input() function will process the event and, if the event isn't handled, then the GUI input will process it. Because I'm dealing with GUI elements, if I handle the input event in an _input() function I'll be sure that the event won't reach any GUI element. Put 2 and 2 together and that's how I did it.

That's unreal.

You're the living embodiment of 'that'll do'.

I applaud you.

Submitted

Our character is two halves connected by a tail. The tail joints kept breaking so we had to increase the position calculations in Unity and devise a system to reduce the characters movement force the faster they go ':D

See how it turned out: https://itch.io/jam/gmtk-2019/rate/463922#post-881731


(+1)

That kind of physics engine manipulation makes my teeth itch.

The result was great though! I had a wonderful time winning your game.

I think it would be totally worth tightening up the physics and expanding this out into a little game, it was really fun, even playing it solo!

There's a great GDC talk by Bennett Foddy on YouTube talking about gamefeel guidelines for physics, might be worth tracking down?

Submitted

Thank you I'll start looking now :D If we continue it I'm not sure using Unity's physics is the right option either. The joints are just so easy to break just by doing things like setting constant velocity. Also, I've played it solo so many times testing it I've gotten good at it :'D

Ah, here it is! Give some of this a go before rolling your own solution, maybe?

https://www.youtube.com/watch?v=NwPIoVW65pE

Submitted

Thank you, watching it now! :D

No worries, let me know what you think! I found it helpful.

Submitted

Hey! My team and I attempted something quite tricky for the jam, but I'm super proud of it and it would mean a lot if you were able to take the time to give it a play and rate the game!

MICROVANIA - A One Screen Mini-Metroidvania with a Twist!  

https://itch.io/jam/gmtk-2019/rate/462198

And a few notes to help you play it! (The Game Jam build has a few bugs and quality of life issues) 

  • - It works with Keyboard OR Gamepad 
  • - You can view the controls in the menu (Esc or Start) 
  • - The Player has 3x Health but will be instantly killed by Dragon Fire
  •  - If you die twice, you should close and reopen the game (it breaks more and more with each death) 
  • - There are two Winning Endings (You Kill the Dragon, or You Give the Dragon What it's Looking for!) 
  • - There are 5 secret Gems hidden throughout the game if you can't find the last one, keep looking!

Ah, yes I gave it a play on the first day I think!

Do you have any stories of dodgy hacks you had to pull to get it working?

Share!

Submitted

Yes, actually! Sorry, I meant to write more than my copy/pasta, but I got caught up!

We had to get SUPER hacky and call in reinforcements!

The core team was myself and my programming buddy, Damon.
On Saturday we realize we overscoped and overplanned a bit, but not to be outdone, we called in one of my other coder buddies to give us a hand. He got the moon up and running and started on the dragon but had to leave in a rush and wasn't able to give us any progress on the dragon. On Sunday, we had most of the game running, but had no dragon!

The dragon was vital to giving reason for one-screen!

So I called in another programming buddy and he gave us 5hrs to cram the dragon in!

We couldn't fit anyone else on the Unity Collab group, so we had to send unity packages back and forth between the two others who joined late. The dragon originally was going to breathe fire in a bomber-man format, but in the time crunch we had to mix it up! The dragon is completely tied together at the last minute. 

That and every asset you see is from the asset store!

"Slides curly bracket cut out over the spotlight on the roof"

PROGRAMMERS, ASSEMBLE

(2 edits)

My main menu and game over screens are just pictures slapped on top of the game level. If you press jump on the main menu it even plays the sound effect.  I had my 11 year old daughter voice Zeus

https://padr81.itch.io/by-zeus-beard

Perfect.

Considering zeus' penchant for shapeshifting, who can say that zeus CAN'T be an 11 year old, haha!

Good point, I can now say that was intentional and not a hack.

Submitted

In our game SURVIVOR, I left the main menu design and programming to the last few hours. The menu consists of 3 buttons (Next Level, Previous Level and Play). After laying out the buttons, I discovered that they are not working and do not respond to mouse clicks. I think the error was due to the pixel perfect camera but I had no time to debug. Therefore, I added 3 lines of code to do the button function by keyboard presses (Left, Right and Space) then changed the text on the play button from "Play" to "Press Space to Play". I then assumed that I never planned to add clickable buttons to the menu (the button are still there just for cosmetics :D).

We also had a hedgehog-like enemy which I wanted to give a rolling attack or spine melee attack but I didn't want to animate any of those. So I changed my mind and made it use the same bullet attack I was making for the cannon enemy and assumed that they are gun-armed hedgehogs.

The only other hack I always use in any jam (which seems to be pretty common) is the large singleton class "GameManager". Any info that needs to be known by everything is there. It is also responsible for all of the sound effects (except jumping which I dirtily embedded into the character controller). I know that this is a horrible programming practice but tight deadlines always wins over code cleanness every single jam.

Submitted (1 edit)

1) death trigger was originally quickly implemented as a test on whether position.y was lower than some constant (like, -10). However in one of the scenes the level was moved around a bit and was entirely below that constant, so... yeah, we had to change that quickly ^^

2) again with death triggers, I didn't have the time/didn't want to look how to restart/re create the player object/relink it to the camera and so on, so death is actually just a Teleport of the player to the last checkpoint. This can be seen whenever there are moving platforms around, as they don't reset.

https://itch.io/jam/gmtk-2019/rate/459177

Also not a hack per se, but since this was our first time using unity (we only had a few hours of xp with it watching a couple of online tutorials) we lost quite some time with functions that where not performing as advertised in the documentation, becouse those functions where meant for 3D games and we had to use the 2D variant... After loosing like 1.5 hours on one of those and 30 minutes to another, I put up a sign on the desk in big letters : "DOESN'T WORK ? TRY ADDING 2D AT THE END OF THE FUNCTION!"

Submitted

I really wasn't liking my game's looks for most of the jam, so halfway through I decided to draw a cupcake to calm down... Turns out it looked cute in the game with a different color palette so i just went with it xD

Cupcakes ftw. :) 

Here's the free cupcakes --> https://itch.io/jam/gmtk-2019/rate/462549

(+1)

Hey, just chucked your game a rate! It's a really cute aesthetic, had a good time with it.

Those cupcakes made me hungry though.

We had a similar moment when we accidentally doubled the dialogue text in Negative Nancy, and it created a drop shadow effect that looked so much better. (for context -->https://itch.io/jam/gmtk-2019/rate/462193?after=40#post-887310)

It's the best when stuff just works out (feel like it's a rarity in game dev, haha)

Submitted

I swear, for the majority of the development time, I was using THIS to check for negative numbers:

str(move.y).begins_with("-")

What that means is I was converting the characters vertical velocity into a string and checking if the first character was a minus sign.

._. Don't laugh, I was in a hurry.

I eventually went on Reddit for help on an unrelated bug and got schooled on that and other crappy code lol. Thank you random Reddit user for making my game run better.

Submitted

I accidentally left the dev "skip room" button in my game's final build.  1 commenter found it.

Submitted

in my game, there are doors that make a sound as they open. The doors are opened by specific light switches. I wrote a system for making the audio quieter as the distance to player increased. 

In one of the levels, the player activates a switch to open a door that’s pretty far away. I had an issue, though, the door was so far away that the the audio’s gain was 0. So, rather than fixing the audio system, I just placed another door in the level slightly offscreen so the sound would play from that door instead as it opens offscreen. Problem solved!

Submitted

Crafty!

Viewing posts 41 to 54 of 54 · Previous page · First page