Advertisement
Guest User

BaconGameJam5 Shadow Infiltration Post-mortem

a guest
Jun 11th, 2013
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.35 KB | None | 0 0
  1. Pre-Jam
  2.  
  3. Before the jam started I decided to work together with a friend I have known (over the internet) for a long time. He introduced me to a friend of his who would be
  4. the artist of the project (3D art/music). We decided to use Unity with C# as I discovered Unity a few weeks back and saw how easy it was to put together a
  5. prototype for a game. We set up the project on github and were ready for the start!
  6.  
  7. Start of the jam
  8.  
  9. Lights out, a theme which I once submitted, was the theme. Interesting theme, we thought, and we started brainstorming putting some ideas together. Most involved
  10. a horror game where you fight off monsters with lights (somewhat inspired by Alan Wake), be it a flashlight or a generator with lights coupled to it. I threw together a quick start of the game where you could move a character with a light attached to it.
  11.  
  12. I asked my friend to program the code for turning flashlights on and off, and it turned out he was not nearly as experienced as a developer as I thought he was, and it was not at a level at which you can create a game in Unity3D (unfamiliar with terms like 'public', 'private', or object oriented programming in General. Together we came to the conclusion that he was better off with some more practice in OOP and maybe a simpler engine. I was better off too, as I was trying to create a game, not teach someone how to make a game (which I didn't even properly know) let alone teach someone how to program.
  13.  
  14. That night I created some code for damaging the bad guys, based on the angle of the bad guy in relation to the flashlight and the distance and range of the flashlight. This was, of course, not perfect as it would work through walls. I also added some very simple AI that worked with potential fields to move to the player, and run away from the flashlight. The build, which is fun to mess around in, can be found [here](https://dl.dropboxusercontent.com/u/43693599/BJ5/Build2.html). The artist created a basic character and some scenery we could use in the game.
  15.  
  16. The next morning (without sleep)
  17.  
  18. I had to drop off my parents at the airport in the morning, which gave me some time to think everything over. I was pretty sure the artist would no longer be interested much anymore as I was just a friend of a friend, which was right, as he
  19. no longer worked on it since that morning, so I was down to myself... After I came home again, I decided to turn the game around, YOU were the one who had to dodge the lights, not the monsters. A sneaking game.
  20. I was inspired by games like Commandos 2, where you could see the vision cone of guards and you would sneak your way around. I created the foundation for raycast-driven detection in lights. This was superior to using just the angle/range method or using a collider, as I could then use shadows (which basically became all of the game). I went to bed at around 1PM and slept until 9PM (I set my alarm at 5.30..).
  21.  
  22. After a long sleep
  23.  
  24. This evening, as I woke up, I had the worst headache I have had in a long time, as I barely ever have headaches. I decided to work on the game nontheless, and a couple of hours later it passed (with the help of some aspirin and caffeine).
  25.  
  26. I perfected the raycast method and created a small concept room which I decided to share with the IRC chat [screenshot](http://puu.sh/3dHom.jpg). The idea in this room is to click the button on the right to disable the green light, hide behind the wall until the red light passes and then make a run for it. Fellow baconeers in the chat said it was nearly impossible to get out of the room without getting hit. I then asked if they had noticed the button, they had not. I decided to make the button glow in the dark so players could see it.
  27.  
  28. This kind of feedback was invaluable and I believe that every gamejammer that is working solo, in an online jam should join the official IRC chat. I expanded the level a bit, I was pleased with the direction the game took.
  29. In the morning I added the mechanic where the player has to block a light with a ball and blinking lights. As I was testing it, I noticed the FPS was horrible (28ish average).
  30.  
  31.  
  32. I quickly pinned down the bottleneck, the raycast system. It was raycasting from every light, around 200 times, every frame. I changed it to do it every 200 milliseconds approximately and only do it when within a reasonable angle and within range of the alarm light. After this, I added "failure" to the game, floating text that only gets shown when close to explain the game, and I made it so that you can
  33. get hit by a light for a fraction of a second without losing.
  34.  
  35.  
  36. Flow
  37.  
  38.  
  39. By this time it was sunday afternoon. I used this afternoon to implement checkpoints, as the people on IRC told me it was too hard to finish in one go. There was a short discussion on IRC about the tediousness of implementing a menu. I then came up with the idea to make it fully ingame, instead of relying on GUI.
  40.  
  41. By this time I got "in the zone", I was adding content rapidly and lost track of time.
  42. I expanded the level quite a bit, refactored some ugly code, added the difficulty levels, added pressure plates and polished some of the lighting effects. I then shared another build, and players told me they were getting stuck in some corners, so I rounded a lot of corners afterwards.
  43.  
  44. In the evening, after dinner, I got quite a lot of feedback on the difficulty of the game, and I did my best to balance it so that it was challenging but not impossible.
  45. I added some action-filled rooms and added a couple of sounds and contacted FaderCreep, who did an awesome job on the soundtrack of the game. After sharing this build, someone told me it took him 20 minutes to beat the game, I then decided the game was long enough and added a simple end to the game. The time was now approximately 9PM and I was drained of ideas, I fixed a bug with pressure sounds and then decided I was done, packaged the game and put it up on the website.
  46.  
  47. The average time to beat the game was 10-15 minutes if you are very good at these kind of games and 15-25 minutes if you are average, which I think is not too short and not too long for a gamejam game.
  48.  
  49.  
  50. Thoughts afterwards
  51.  
  52.  
  53. I learned a lot, I never felt I was under time pressure. I built the game with a pretty relaxed attitude, working off the feedback of those generous people on IRC. I think that without this chatbox the game would not have been the same. Whether or not I would work alone again? I don't know. Working solo has it's advantages and disadvantages. I myself am a programmer mostly, not an artist, level designer. I tried to immerse the player purely based on the gameplay with the "puzzles" and the lighting effects which do somewhat hide that all of the game only has primitive 3D objects except for the rounded walls.
  54.  
  55. Things I would change afterwards to the game:
  56. * Balance: Remove one of the red pressure plates and one of the blue lasers. Add a sign that says "Dying is sometimes faster" so people do not feel bad about dying a lot in the red-box part.
  57. * Make the walls have less friction, as hitting them makes the character slow down a lot.
  58.  
  59. It was really heartwarming to hear from people on IRC they were genuinely enjoying the game and were challenged to beat it. It was even more awesome when they told me they played it again as they liked it so much!
  60.  
  61. Final words
  62. Thanks for the jam, it was a great learning experience. Hope you'll enjoy the game and it wasn't too long of a read ;).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement