This weekend Ludum Dare #36 will take place! If you know me a bit, you'll know that I love joining this game jam: it is a fantastic challenge of game development skills. During Ludum Dare, you have 48 hours to make a game from scratch, on your own.
I was sharing some tips to succeed in Ludum Dare and game jams in general, and Sole suggested I should make a post with them. So here we are!
Disclaimer: I am going to assume that your goal in the jam is to submit** the best game you could have made**. Some people have different goals –like trying out a new engine or language, or just have some fun with friends– and that's OK, but most of these tips are meant to maximize your chances of submitting a solid entry.
Before the jam
Do some preparations! Decide which tools you will be using, and make sure they are updated. You might want to postpone the decision of the engine or framework you will be using until the jam's theme is announced, since some engines are more catered to a genre than others.
Whatever you choose, do use tools and tech you are familiar with. This is extremely important. You don't want to lose time learning how to do something, specially basic stuff.
You should also set up a code repository. Even though you might participate alone and don't need to share or sync code, you will want to be able to roll back, and you absolutely want backups. Trust me on this.
If you already know which engine you will be using, create a blank project and make sure you are able to deploy a build into your target platform. If there are any issues, it's best to solve them the days before, instead of in the first precious hours of the jam.
Speaking of preparations, think about the food! Stock up on healthy snacks and avoid junk food. Some ideas: nuts, raisins, whole fruits, hummus, guacamole, carrot sticks, edamame, hard-boiled eggs, dark chocolate…
Give some thoughts to your main meals too. If you buy some pre-washed mixed leaves bags and canned meat or fish, you can quickly make a salad for dinner. Or maybe you can prepare a big pot of stew and put it on tuppers to consume during the weekend.
If you are thinking "Salads in a jam?! I'm going to order pizza, and eat ramen, and cookies and chips. That's what jams are for!", think again. Unhealthy foods are hard to digest, cause sugar spikes and you will have less energy and way less mental clarity.
You want to be at your best physically and mentally for the jam.
During the jam
Sleeping is the most important thing you can do. DO SLEEP. The hours you spend coding and not sleeping are the hours where most of the bugs are introduced. If you are tired, you can't be productive.
Yes, there is time to sleep. And if you are wondering, yes, there is time to exercise, as well as going out for a walk and get fresh air.
Exercise makes you energetic. Sleep gives you rest. A walk outdoors gives you mental clarity.
All of it makes you more productive, less prone to make mistakes and gives you more motivation and will power to finish the jam.
Do not settle for the first idea that comes to mind so you can start coding as soon as possible. A jam is a good chance to be bold in terms of creativity. Or at least to finish a project and feel good because you have actually shipped a pet project!
Ideally, your game idea should be original, fun and small. Of all of these three, the most important to submit a game is small. If you have a very cool idea, with a fantastic and fun mechanic, but it requires lots of feature or lots of art assets, ditch it. This is what happened to me in Ludum Dare #31, where I had to submit an unpolished entry because the initial scope was too big.
Do some brainstorming and discard your first ideas. Dig deeper into your brain. You can afford to spend a bunch of hours here in the design phase. What you can't afford is to change your game at the middle of the jam!
Still at brainstorming phase #ldjam pic.twitter.com/Pt1zSVEMzF— Belén (@ladybenko) April 16, 2016
Once you have your ideas, list the features you need to code and the assets you need to create (you can do this in a piece of paper or in a TXT, or in a shared Google doc if you are participating with more people). Mark the essential things somehow, with an asterisk or underlining them. This is the stuff you will be implementing and creating first. And be prepared to move stuff from "essential" to "nice to have"!
Having a list of features to implement, bugs to fix and assets to create helps a lot. It is also satisfaying to strike them out once they are done! But you do need some sort of time management in place.
After a few Ludums, I have come up with some sort of schedule that works for me. Depending on your time zone, your skills and your preference your weekend could be different, but I find that allocating time gives me peace of mind because I know that there is time for everything. It also helps me to know whether I'm on track or I'm in big trouble!
Roughly speaking, on Saturdays I spend my time designing the game and coding the main mechanics. On Sundays I add the audio, the art and spend some more time polishing. If you want to see a more detailed breakdown of my hours, you can read one of my post-portems.
I also use the pomodoro technique to timebox my working time. In this way, I take regular breaks and work in focused chunks of time. In the mini-rests between pomodoros I check out Twitter, have a glass of water, take screenshots, etc.
With your game idea decided, you can code now! Start by implementing the core mechanic first, with placeholder graphics –these are just colored rectangles or circles.
Don't be embarrassed of your code! Nobody is going to look into your repository and make fun of you because your code is not DRY, or is dirty, or you are not using design patterns. Take all the shortcuts you can. This is a game for a jam! If you love the end result and want to release a more complete, polished version later, you can always start from scratch. Think of your jam entry as a prototype for a game, and focus on finishing the game instead of code cleanliness.
And for the love of all that is good, commit and push often to your repository! Having an online backup gives you peace of mind. And being able to roll back gives you the freedom to try crazy things with the code, knowing that if you make a real mess, you can always go back to a safe check point!
Art and sound
Audio is essential for gameplay. It is crucial to play sound effects to give feedback to the player of what is going on.
If you ever need to choose between audio and graphics, choose audio.
My game jams are better when I just add some basic sound effects before creating any art at all. I tend to leave composing the background music till the end, because it's something I can do if I'm tired.
Also, keep your art simple. It helps to pick an style you can quickly reproduce. In my case, this is pixel art. I found that if I choose retro pixel art for my games, I have time to produce animations as well, which in turn makes the game more polished. You might find you work better with other styles: abstract geometric forms, or scanning doodles quickly drawn on paper… that's up to you! But whatever you choose, you should be able to produce graphics with it fast.
People who run marathons often speak of The Wall, that usually happens near the end of the race. Is the moment when your body is really tired, your legs are killing you and your mind is constantly whispering that you could quit, that 30km are more than enough and that you deserve a big pizza right now.
I have yet to run a marathon, but as a game jam veteran, that feeling of wishing to quit when you are almost there is very familiar to me. It always happens, and it will continue to happen. For me this moment is at its peak on Saturday night, when I'm about to go to bed. I feel tired, and I think that there's still a lot of programming I need to do, that I won't have time to finish a decent game and that I could quit and enjoy a nice sunny Sunday outdoors.
And the way to deal with this thinking is to detect that it is happening, and do the jam anyway. You are not failing if you submit an incomplete game. You are not failing if your game is not very fun. You are not failing if your art is just some rectangles colored in bright colours. If you submit anything other person can play with, you win. So chill out!
It also helps to have an accountability partner that checks on you and gives you a pep talk if needed. I started to do this a few jams ago, and it really, really helps. This partner doesn't need to participate in the jam, it could be anyone! A friend, a colleague, a relative. Someone you can call or text and that will support you no matter the excuses your mind can invent.
Another thing that helps to keep your spirit up is to post screenshots or animated GIF's of your work in progress in social networks. I use Twitter, and since I always make HTML5 games, I add a link to the game so people can play it. In this way, I get feedback, see where people struggle and whether the game is fun or not! When you are making a game in a weekend people tend to be in awe and they will give support and cheer for you –see for instance this tweet and its replies.
After the jam
Congratulations! You shipped a game! Pat yourself in the back and sleep well, you have earned it.
The next day I shamelessly boast about what I did. I always have a hard time speaking nicely about the things I do, but with my Ludum Dare games somehow I can bypass this and just spam everybody with the URL of my game.
I like to write a post-mortem after every Ludum Dare. People like reading them –so you will get more people to play your game–, and it will help you to analyse what went well, what went wrong and how you can make a better game next time! I post this post-mortem in my blog, and also in the Ludum Dare page so other participants can read. It is very fun and you can learn a lot by reading other people's post-mortems so do check the posts at Ludum Dare.
And that's all! Remember to cheer for me on Twitter this weekend, and have a nice jam!