Global Game Jam 2020
I admit at first I did not want to go... I can't really tell why, probably because I was a bit unsure about my skills of building a game.
But, a friend peer pressured me to join his team, 2 days before I joined the Jam and we had a group of 6.
4 3D artists and 2 codes (blueprint).
So, upon the great theme reveal we sat down to discuss what kind of game are we going to make about the theme, which by the way was REPAIR.
we had many interesting ideas, from saving the world to cleaning up the oceans and at some point fixing someones mental health?
I believe we spent a proper 2-3 hours thinking very carefully about what we going to make and if it is even possible with the 48 hour time constraint, well it's slight more then 48 hours but the ideal time is 48 hours to build and then it's polishing.
The idea in the end was to make a game with reverse psychology, you DON'T want to REPAIR.
So we came up with this:
You play as a Hydra in ancient Rome, a sword is randomly playing around and may or may not cut your head, and as you know or not, Hydra cannot lose it's head, each time you remove one, 2 comes up, so it's an endless cycle.
The idea, that this game is a "Party" game, one tablet and 2-4 players, each player have a unique coloured head and you want to keep as little heads as possible BUT you don't know where the sword gonna hit so... keep moving the heads!
Later that day we started to create the game, 2 artists worked on the environments, while 2 others worked on the Hydra itself - Head and body.
The other coder worked on the UI and UX while I was working on the main mechanics.
I have started with a blank project, I have added some primitive objects and used them as the soon to be Hydra.
The idea of the damage zone was an idea of a class that contains 4 hit boxes with a random hitting trigger.
At this point it was relatively easy thing to do as it was a simple code to create.
The Hydra heads were a little tricky, my initial idea was create a space inside the hit boxes where the heads would spawn inside at a random location inside the box, this is a idea of a box inside a box.
I found it to be a bit too complex and decided to make something more easy and quick, I put target points inside the boxes and randomised a spawn inside them.
Playing around with the timings to get it right was a little bit annoying but achievable.
Next was the heads moving, touch component was needed, and with that the use to a Tick to keep the location updated every time, I have give it a constraint so it would move up down and right or left, no depth was needed as it was in some sense a 3D side scroller... without the scroller...
My biggest problem was the wrong use of the touch method, there is an object and channel, and of course I used the wrong one... as soon as I swapped it worked!
So, that was day one.
On day 2 I was having some trouble with the damage boxes as they were not doing the damage correctly and would sometimes hit and sometimes do nothing, I found out that my code was running against itself somehow...
Also the spawning was not taking place as I have not connected the right node to where I needed to.
The other coder needed my assistance as he had problem to assign the players and transfer the data to the next map/level.
This was fixed later when I remembered the Game Instance is the one thing needed to make it happen, as game instance is a data container in the game that transfer data around the game from different blueprints and other objects.
While I was waiting for the 3D assets to be ready I have experimented with some particles effects to add later into the game, I also used them to get a better visual representation for the damage that the boxes caused.
The day went really fast as we were all trying to optimise and make everything game ready so that tomorrow morning all we need to do was to slap it all in and hope it would work.
Last day, and as soon as we got in the lab we got the bad news that the 2nd coder is sick and cannot come, for me it was absolutely terrible news, as I had to recreate all the stuff he have done and hope that it would work in tune with my code.
I have extracted his work and gave it shot to see if it works, unfortunately most of his work was very incompatible to my code and he used a very crude way to make all the elements.
So, I had to actually recreate all what he done in a slightly more efficient way.
I took me about an hour or two and was able to incorporate more stuff in.
Eventually, we had one code for all and was just needing to apply all the assets in.
After lunch we started to inject everything into the main game.
The first thing we had some trouble with was the textures not loading correctly, some of the 3D arteists were making textures inside Maya, there nothing wrong about it it's just that it's not efficient and cause problems later on, it is always better to separate all the assets to different apps so later all can be rework in the event something wrong happens.
Other artists worked with Photoshop, which also done some problem because the use of Photoshop and saving in different file type course some problems in Unreal,lucky I was able to overcome theses problems by simple changing the files inside the engine and later it worked, in other occasion some textures did not load due to the problem of Maya not uploading the texture info into the FBX file and thus Unreal was not able to understand what is missing.
Later I fixed, most of the visual problems but had notice 2 main critical problems:
1. The head would get damaged but just one at a time, so if 4 heads should get damaged on 1 would while they rest don't.
2. The colour coding would not work after a head got respawned.
After looking for some help one of our tutors noted that my basic code was correct but not executed the right order, so all I had to so is just reconnect a few node and it worked.
Same with the colour, thought later I found that even my tutor made a mistake I had to fix him fixing me!
At the end the game worked just a minute before the deadline.
Eventually, we had a game, not 100% perfect and clean but working, and playable.
There are many things that need fixing such animations, timers, a menu and the game time.
At the moment the game does not end which means... that after 5 minutes the computer memory gets filled with many many many heads to the point the whole system crash.
This was a good challenge for me, I was very insecure about my skills and I think that I have done a pretty good work and got a satisfying results after 48 hours of intense coding and working with others about a game we just made in a few hours, yes it could have been much better but overall it was a good experience.
I think I challenge myself to make more complex things, and with all the experimentation I have done so far I can now try to make more better and complex games.
Link of the official page and download link
Here are some images from the game.