dark        
TheBlondeBass blog header photo
TheBlondeBass's c-blog
Fronts 47Posts 940Blogs 48Following 0Followers 62


 
 

LONG BLOG

A quick guide to game jams

   0

Caffeine helps.

Hello! I've recently cooked up a summer-long game jam I'm calling the Flaming Hot Jam, aiming to be a first game development experience for people. I thought it'd be interesting to be part of something like that with a lot of other people I know. It's planned to take place between June 21 and August 21. The goal is to, as a team of the size of your choice, finish and submit a game during this time period. The theme your game will have to follow is going to be revealed on June 21.

Since this is a first game dev experience for many, I figured I'd write a quick guide about game jams/software development. I'll probably skip over some important concepts, so feel free to ask any questions in the comment section below. This is as much a tutorial as it is an AMA!


THE GIST OF CREATING A GAME

When the theme is revealed, teams brainstorm to find interesting game concepts that fit it. Don’t worry about spending too much time throwing different ideas at the wall – it’s good to have a strong idea of where you’re going early on, especially considering how much time we have in this game jam. Strong foundations will make the rest easier.

A brainstormed idea can be as simple as:

Concept: Co-op game where two players control half of a shared character.
Fits the theme because: The players must find unity to progress


Some ideas can be discarded early on.

And then you can go into more details of ideas you find interesting. Be ready to answer questions like these before starting your work:

  • Can you describe your hook in a sentence or two?
  • What is the goal?
  • What are the controls?
  • What is the setting/what are the characters like? (especially if you have dedicated art team members)

To make sure everyone agrees with and is comfortable with the direction. Then, the work to do can be divided in tasks. For example:

  • Create a game object affected by gravity and collisions.
  • Move this character left and right.
  • Give it a jump. Give it a weapon. (etc with other actions)
  • Create other game objects with collisions, physics (or not)
  • Create a test area with all game objects to interact with (with placeholder art)
  • Create art for these different game objects
  • Create a more typical level with these game objects.
  • Create menus.
  • Write a piece of dialogue.
  • Add a user interface for health, coins, etc.

There is no task that’s too short to describe individually. Assigning tasks to people will make it so two people are never working on the same thing at the same time, which is essential.

At regular intervals, take a step back to assess what is accomplished so far, the difficulties you’re facing, and the work left to do. Do so as a discord call for example, if you’re a team. Make a dev update if you’re alone! Changing your perspective will let you escape the frustration of being stuck more easily.

GAME ENGINES

What's a game engine?

Game engines are built-in environments to create games in. They handle most of the boring technical stuff for you, such as displaying visuals on the screen and playing music and sound effects! They allow you to focus on the things unique to your game, while abstracting away things that are shared by most.

Here are some popular game engines. The list is in no way exhaustive but sticking to a popular game engine lets you check out tutorials made by other people online. This is crucial to get you up to speed more quickly.

Got good examples of game engines?

All-purpose engines:

Unreal Engine is the most popular game engine around. Thanks to its exhaustive feature set, you can do anything from a simple 2D title to an augmented reality game. You can also target a variety of devices with your games. You can write custom code in C++.

  • Known games using Unreal Engine: Fortnite, Final Fantasy VII Remake, Dragonball FighterZ, A Hat in Time.
  • Free*, licensing UE costs 5% of the revenue of games passing the 1M dollar revenue threshold.

Unity is a popular engine for smaller-scale projects. While not as efficient as Unreal Engine, it’s known to be better suited for 2D visuals for example, and to be easier to learn overall. You can write custom code in C#.

  • Known games using Unity: Hearthstone, Ori and the Blind Forest, Superhot
  • There is a free* version available to developers with less than 100k yearly revenue. More feature-complete versions cost 40$+ a month.

Game Maker is a game engine almost entirely used by 2D independent games. DeScruff would know more about this one. It has its own script language that is considered easy to learn.

  • Known games using Game Maker: Hotline Miami, Rivals of Aether, Hyper Light Drifter.
  • 39$ a year or 99$ permanent. There's a free trial for a month.

Quirkier engines:

Ren’py is an engine dedicated to visual novels. I’ve used it to create the Bass Awards, which you should totally check out if you haven’t already. The basics of displaying scenes and dialogue are extremely straight-forward, and you can write additional logic for your visual novel in Python. Windows/Linux/Mac OS/Android builds are supported.

  • Known games using Ren’py: Doki Doki Literature Club, Long Live the Queen.
  • Free!

RPG Maker is an engine meant to create RPGs, but it is also used for combat-less adventure games. It’s particularly useful for creating level designs quickly, with its simple interface for tiles and collisions.

  • Known games using RPG Maker: Lisa the painful RPG, Yume Nikki.
  • 80$

Pico-8 is a fantasy console meant to emulate old console limitations. Perfect to ensure your game has an authentic old-school feel.

  • Known game using Pico-8: Celeste
  • 15$

NOT USING AN ENGINE?

It’s possible, but more difficult. My past game jams have been straight python, plus the map editor Tiled. Make sure there’s an experienced coder in your team before trying this!

COLLABORATING ON A PROJECT

Note: only necessary if working as a team

Let’s say that your game is more than a solo project. You’ll want a way to synchronise your files not only between your PCs, but also between collaborators. Sending them via email or usb stick is a surefire way to lose progress. There’s got to be a better way.

Enter, source code management! I won’t go too much into how it works, but the general gist is that it provides a history of files, and a current version that all contributors can modify on their own.

The general flow is like this. First, using a git client like GitKraken, clone your repository (that you create in your source code management website, like GitHub).

You now see a “main” (named develop or default or master) branch that contains a snapshot of all the files. You create a branch offshoot from this main branch on your machine, then commit it after modifying some files. Your branch is kind of like a save slot in a video game. You may choose to commit as many times as you want until you want to make your changes available to everyone, in which case you push your branch and open a pull request to bring your changes back into the main branch.

In short:

  • Branch -> switching to a different save file. Do this before…
  • Commit -> saving your game. Don’t do this directly on the main branch, because other people are also working on it.
  • Pull -> Get the latest versions of the save files known online.
  • Push -> Send your save files online
  • Merge (through a pull request) -> synchronise your changes with the main save file

It may sound a little complex at first, but this is quite a convenient way to allow people to work in parallel. I suggest using GitHub as your host website, and GitKraken as the software you install on your machine. SourceTree is a decent alternative to GitKraken that’s less stable but is more fully featured without paying.

You may also want some way to track your progress/objectives. Trello is free to use and can do the trick nicely.

SOME USEFUL FREE SOFTWARE

Visual Studio Code! It’s a free multi-platform text editor by Microsoft. By itself it’s a fairly simple program, but it has an active extension community that supports a ton of different coding languages.

Gimp for image editing, Davinci Resolve for video editing and Audacity for Audio editing (if necessary).

THE TOO LONG: DIDN’T READ

Before the jam begins, you can prepare yourself by learning the following concepts.

  • In a coding language (python is an easy one, but you can go with whatever), do a classic Hello World, then try writing a function and a class to get used to these concepts. Search for “X tutorial” online, where X is the name of the language.
  • Try one of the game engines above to your taste and fiddle around with it, following a tutorial.

If this is a team project:

  • Create a repository to share files together
    • Text documents, spreadsheets and presentations can use Google Drive.
    • For the rest, create a repository in GitHub. Software like SourceTree or GitKraken may be used to pull/push/create commits (get comfortable with what these terms mean).

IF EVEN THAT IS TOO LONG:

If you have someone with coding experience in your team, they could show you the ropes! Or you can contribute art, voice acting, etc. Or make a non-video game! The possibilities are endless.

THAT’S ALL FOLKS

Any questions?

Login to vote this up!

LOOK WHO CAME:


TheBlondeBass   
Kevin Mersereau   146
D-Volt   52
LaTerry   45
Roager   10
Retrofraction   8
RolanberryPrins   8
AtomicBanana   7
zatoseyes   6
BNix   3


 
 

  0 COMMENTS

Please login (or) make a quick account (free)
to view and post comments.



 Login with Twitter

 Login with Dtoid

Three day old threads are only visible to verified humans - this helps our small community management team stay on top of spam

Sorry for the extra step!

 

About TheBlondeBassone of us since 11:32 PM on 12.03.2015

Everything's going to be okay. Take a deep breath, you got this.