As we all rush to make our games I thought I'd share some tips / best practices I've learned from doing game development for the past 6 months. Please feel free to share your own tips and tricks with the rest of us as well :)
1. Plan ahead - The first thing I did when I read the announcement was to pull up Notepad and write a few ideas for the game jam. Planning your features / code ahead can be very useful in making sure you don't spend too much time focused on the wrong thing :).
My notes for my game idea:
Puzzle platformer game based on a switching mechanic where two objects are tagged and switch places for a limited amount of time
-Shoot one object and tag it -> change material
-Shoot second object and tag it -> change material and call EventSwitch event
-EventSwitch switches object transforms and starts timer
-After timer runs out, switch objects back
->Disable gravity while objects switch so you can switch objects beneath your feet
-Longer switch time
-More than 1 pair can be switched at a time (max 2 pairs)
-Switch positions of a small block with a long block to form a bridge and cross a chasm
-Switch positions of movable object so now you can ride the object while it moves (create BP that moves with TM)
-Can switch multiple pairs in the given amount of time
-Switch position of interactive objects -> trampoline, slide, ladder, etc
-Movable platform -> moves sideways or up and down
-Switch that opens a door
-Ladder that lets you climb
2. Leverage your strengths - If your strong point is programming, make sure you lean on those skills when designing your game and vice-versa with the art. In my case, I have a coding background, so I will keep art to a simple low poly style with minimal animations. If you are an artist, keep the gameplay elements simple (easy to code) and focus on creating beautiful art!
3. Create a prototype FIRST - This is huge and I learned this the hard way. I recommend you flesh out your mechanics first and implement a prototype to test gameplay BEFORE worrying about your assets. While you code, use simple cubes to depict characters. At this stage, your goal is to see if your idea will work (technically) or whether is fun. After you nail down a good amount of functionality, only then create your assets and import them.
I wasted countless hours while making my first game because I would create 2 features and then start building a level. Then I would incorporate another feature that would break my level so I had to redo it again (say now you can double jump so your platforms need adjusting).
4. Making a prototype and making a game are two different things - Your prototype above is just the code to get your mechanics going. A game will include your prototype, plus actual art assets and a bunch of stuff a game needs that you dont think about - start menu, pause menu, death and restarting the level, HUD, etc
Make sure you give yourself time to implement that functionality and dont leave it to the very end :)
Thats all for me, anyone else want to share some advice?