data-via="@TheShaneOBrien" data-related="Finstern:The author of this post">
“You have 1 bullet. Once fired it enters slow motion, can take hours to reach it’s target. Things you do from then on affect it’s direction”
7:00PM – 8:30pm – Friday
I started at 7pm on Friday night to 8:30pm as I had previously made plans for te night. I knew exactly what tweet I was doing a few weeks in advance, the Slow Bullet idea was perfect for me because a few weeks before I had managed to create a small shooter using Instantiated bullet prefabs with rigidbodies attached. This basically lets me create a bullet which is affected by gravity and basic physics.
So within the first hour I scripted the script to make the bullet appear, created the prefab and modelled a basic table, lever and cannon. You can check it out here: Build 1
11:30pm – 2:00am – Friday
I jumped back in at at about 11:30 and modelled a quick version of the cannon I had envisioned from the get go. I wanted it to be big and complicated and to ultimately have a pathetic result. I animated it, scripted the lever to play the animation on activation and upload it: Build 2
With that set up I decided to script the actual controls. The tweet said that any action taken after wards should have an affect on the bullet. My original plan was to have a huge lab set up with fans and little inventions take swung baseball bats and all sorts of tomfoolery that the player would have to activate to avoid the ball hitting off other things. In the time I had I couldn’t see myself figuring out how to code that functionality or model and texture everything required so I made the decision to give the main character a vacuum with suction and blowing settings.
The code was simple enough, if a button is pressed down, shoot a raycast (invisible straight line), if the raycast hits an object named “bullet” then add/subtract 1 unit of force in the direction the player is facing. With that in I added a basic reticle so the player would know where the center of the screen is and some controls in the GUI to let testers know what was going on, and voilà: Build 3
10am – 5pm – Saturday
After the 3rd build I went to sleep at around 2am. The first thing I did Saturday morning was to finish modelling and texturing my cannon, it is in fairness a simple object but I think it serves its purpose well. Again, I knew exactly how I wanted it to look and sound in my head before I even started, I wanted its startup process to be long and cool, only to make something crappy. With that I decided to record my own sound effects, I managed this by playing the animation in 3DS Max and recording the sounds as they happened, took about 15 minutes in total to really get them spot on.
The other thing I decided to model was the bunker / secret lab this was going to take place in. Went in an Area 51 style of building, had a door on the front and a gap for the ball to escape through. My original vision was to have the gap be a window and the scientist / player would be sure it wouldn’t make it through, but then due to bad funding the lab had installed a loose outward open standard window that the ball would just knock over. I will add it eventually but it didn’t make it into the final game. Build 4
3:30pm – 5pm – Saturday
It was about 3:30pm on Saturday when my friend Paddy asked if I need a hand with anything, at this stage I was set on setting up the outside world, so I asked him to model me a highway/over pass that would provide some obstacles for the ball to go through. I sent him my bunker/lab model for scale and while he modelled that, I made some really basic skyscrapers, walls, set up the lighting and the ground textures. When he sent me the file it wasn’t what I had envisioned at all but it looked great and ended up making it much more of an obstacle course than what I had originally planned, so it made it even better (Thanks Paddy!). I uploaded it so he could see how it looked cos he had to go about his business for the rest of the day.
I also made the decision that the ball moving up and down was really annoying, you only have one bullet and if it goes up and away too far you’ll never get it back so I lock its Y axis. Build 5
5:00pm – 7:00pm – Saturday
I had the idea that the obstacle course could lead to an un-obvious scoring system, I wanted the game to be “get the bullet to the target” but also wanted to make it so people could come back and try new things. I wanted to texture spray painted signs on the pillars saying “+10″ and “+100″ and so on. In real life I sometimes imagine things as a video game, like throwing a bottle in a bin and thinking “What a shot, 500 points for Shane”
So I was thinking that player might do the same thing and if the feel like putting the ball through the obstacles they should be rewarded and if not, no problem. I was originally going to be that if you did do it, then the character would remark “yes! 100 points!” and then the score counter would appear on screen. But due to some really silly coding on my part I was spending way too much time trying to the scoring system to work. You can see in this build that the first obstacle gives you 10 points, but none of the others do, despite being coded in a way that I thought they would. Build 6
8:00pm – 9:30PM – Saturday
Clare Byrne asked me if there was anything she could do to help, I asked her to make the logo if she had the time (she’s often really busy making video game inspired stuff over at 3C Creations!) It turned out great!
I went to the shops to get some supplies (Sugar, Caffeine) and to clear my head. When I got back I added some more buildings and had a eureka moment with the scoring system (thanks to the molyjam chat for putting up with me asking if anyone had any ideas!). Build 7
9:30pm – 1:00am – Saturday – 4 hours sleep – 5:00am – 9:00am – Sunday – 10 hours remaining
Consulting with the Molyjam Chat, I found some people were having a hard to knowing if they were having any effect on the bullet at all. So I modelled a vacuum end, added two particle effects, suction and blowing and I tidied up the reticle and GUI. I also added a timer, in the hopes that perhaps people would want to beat their best times. It was a great time all round.
Then, I decided the game needed something that was static, a moving hazard to the bullet which would set people back if struck. I started scripting a waypoint system but found it too complex, so I used one from a unity scripting wiki. Even still I found it was incredibly difficult to get my cars to take their turns in manner that didn’t end up with them driving on the path or into buildings. I stuck at this for a few hours, happy with my work initially but I left them out of the build because they weren’t working. Build 8
9am – 4:30pm – Sunday – 3.5 hours remaining
I was incredibly annoyed that I couldn’t get the cars to work, so I went on constructing my level and occasionally trying new things to get the cars to work. I eventually found something that worked and was immediately shutdown with the inclusion of a script that made sure the cars didn’t drive through solid objects. I had had enough, my game didn’t need cars, it didn’t need the street and what I had before hand was fine! I decided to play around with music, looping music and music changing onTriggerEnter. It didn’t pan out in the end. The small clip of music I was working with is from Ping Island / Lightning Strike Rescue Op by Mark Mothersborough.
I started writing the win scenario script when it hit me that I just needed to make the buildings, roads and paths saved under a different collision layer. It really pissed me off that it didn’t occur to me sooner but I was just happy that it was working. I quickly (hours work) added 14 cars and 18 waypoints for them to follow around the city. I uploaded and asked a few people to test it out for about 5 – 10 minutes to see if any of the cars went crazy and drove into another universe… and none did! Build 9
4:30pm – 6:55pm – Sunday – The last hours
With the cars sorted and not much time left I quickly finished off my street, I added and resized buildings already in use to give it a big city feeling. I really hoped that if the player focused on the Bullet they wouldn’t notice that it was really as simple as it is. I then added the truck at the end for the player to get the ball into, finished my win scenario script and wrote a trigger script for the ball to end the game and pop up the “YOU WIN” screen, I didn’t get it fully finished but it did it’s job.
Then, a very kind employee at Unity popped into the chat to see how people were getting on, he offered me a Pro license I could use for Molyjam. With this new upgraded version I added in proper shadows, spinning orange lights on top of the cannon and made the whole thing look just a little bit better.
Then I added in the ambient sound effects for the lab and the city, I added car noises to the cars in the street and fiddled with their settings so they give you a proper Doppler effect as they whiz past you!
6:55pm – 7:00pm – Sunday – Infinity
Five whole minutes left on the clock! Look at me go, first game and I have finished 5 minutes ear… SHIT I FORGOT THE MAIN MENU! Typing at a speed that would make Mavis Beacon’s head spin (I know that’s not a real person!) I coded the main menu, no errors first go, lucky me! I edited the original logo down to include some instructions and a molyjam bug, put it in the scene and clicked build. I submitted it to the Molyjam database and linked the chat to it.
It worked, for me at least! For some people the play button did nothing, they could click it for hours and not have anything happen. I checked the code and it was fine, it ran fine on my machine and enough people were reporting it working that I was happy to leave it like that. We have 24 hours to make any changes to the submission site, so I left it at that and went off to visit Clare.
At Clare’s I was showing her the game and she had run into the exact problem with the play button I was hoping might just be based on some random persons browser settings. I quickly wrote a script that boiled it down into a “Press Space to Play” updated and left it at that. In the morning I fixed the old menu’s and put them back in. Final Build
I will upload the source code once I trim it down so that only the files that made it into the game are present.
I know its nothing special and not the best thing around, but having done literally nothing on the scale or scope of this before, I am extremely proud with my game. Next time I would like to work with a team of about two or three people, working alone was great at times but incredibly stressful in the final hours. REGULAR MEALS! I had one fairly large meal on Saturday and forgot to eat entirely on Sunday, instead I was living on a mixture of Lucozade, Red Bull and Coke. I kept me alert but not necessarily awake and I think this is when most of my mistakes and inability to think occurred.
Thanks for reading! I really hope you enjoyed the game and if not I hope you tell me where you think I went wrong and what I could do to avoid it next time.