Skip to content

Instantly share code, notes, and snippets.

@apples
Last active August 29, 2015 14:17
Show Gist options
  • Save apples/29b43f9365737fd307eb to your computer and use it in GitHub Desktop.
Save apples/29b43f9365737fd307eb to your computer and use it in GitHub Desktop.

How to Dev a Game

The Journey

  1. Ideas and Design
  2. Engines and Scripting
  3. Art, Animation, and Audio
  4. Aesthetics and the Ludonarrative
  5. Scope and Minimum Viable Product
  6. Resources

Libre

"free, having liberty, at liberty"

All software discussed in this presentation is free, as in "free speech".

Please visit the Free Software Foundation at http://www.fsf.org/ for more information.

0. Ideas and Design

All ideas are terrible,

but no idea is too terrible.

Top-level Genres

  • Arcade
  • Action
  • Adventure
  • Puzzle
  • Simulation
  • Strategy
  • (many others)

Derivative Genres

  • First-person Shooter
  • Metroidvania
  • Roguelike
  • Roguelite
  • Sandbox
  • MMO
  • Minecraft clone
  • (way too many others)

Wikis and Prototypes

  • Create a "design wiki" before anything else.
  • Prototype early.
  • Change the design based on feedback from the prototype.

Keep it Simple!

  • Simple ideas are easy to prototype.
  • Complex ideas take longer to prototype.
  • You need a prototype as soon as possible.

1. Engines and Scripting

  • Pick your tech based on the designs
  • Use an existing engine if possible
  • Scripting should be relatively easy

Engine vs. Framework vs. Library

  • Engines do all the heavy lifting for you.
    • Programmed with scripts.
  • Frameworks give tools to write an engine.
    • Programmed natively.
  • Libraries are just lumps of code.

Frameworks and Engines are often collections of Libraries.

Engines

Beginner

  • GDevelop
  • Construct Classic

Intermediate

  • PyGame
  • EaselJS
  • Oxygine
  • Duality

More Engines

Professional (not libre, but open source)

  • Unreal Engine
  • Source
  • id Tech

Others (not libre)

  • Unity3D
  • ImpactJS
  • GameMaker

Write your own engine!

Pick a framework, write your own, or just hack together some libraries.

C++ and Python are the only languages you need.

C#, Scheme, and Javascript are also nice.

Java considered harmful.

Mobile platforms will require specific tech.

Complete Frameworks

  • Allegro
  • SDL
  • SFML
  • Cinder
  • GamePlay
  • pyglet
  • LWJGL

Partial Frameworks and Libraries

  • Bullet
  • Box2D
  • GLFW
  • SoLoud
  • Boost
  • POCO
  • Python
  • PNG
  • Ogg Vorbis
  • FreeType
  • stb

2. Art, Animation, Audio

The stuff that gets blasted into the player's face.

2D vs 3D

  • Prefer 3D if possible.
  • 3D is easier to deal with in code.
  • 2D mechanics do not imply 2D art.
  • 2D art does not imply pixels.

Animation

Two options:

  • Keyframes
    • Usually better for 2D art.
  • Skeleton
    • Usually better for 3D art.

Graphics Tools

  • Inkscape (scalable graphics editor)
  • GIMP (image manipulation)
  • Piskel (sprite animation)
  • Blender (modelling, animation, video)

Colorblind Modes

  • Around 5-10% of people are colorblind.
  • If your game makes mechanical use of color, consider adding a colorblind mode.

Audio Formats

  • Ogg Vorbis - Strong general-purpose format.
  • FLAC - Lossless compression.
  • WAV - No compression. Do not EVER use for music.
  • MP3 - Never use this. Ogg Vorbis is much better.

Audio Tools

  • Audacity - Sound recording and editing.
  • SFXR (and derivatives like BFXR) - Sound effect generation.
  • Musagi - Music editor and synthesizer.
  • MilkyTracker - Music tracker.
  • LMMS - Music editor.

Map Editing Tools

  • Tiled - Map editor
  • Tile Studio - Map and tile editor

4. Aesthetics and the Ludonarrative

The aesthetics of a game's graphics, music, and mechanics must be complementary.

Aesthetics of Gameplay

  • Character growth reflected in the interface.
    • Bigger health bars
    • More items
  • Character actions tied to scene.
    • Moving faster -> wide FOV
    • Steady aiming -> narrow FOV
  • Large impact (landing from a long fall)
    • Screen shake
    • Dust clouds
    • thump
  • Music changes when in combat.

The Ludonarrative

  • Story told through gameplay
  • Gameplay driven by story

Ludonarrative dissonance

  • Player actions lie outside the narrative.
  • Story and gameplay are not working together.
  • Avoid if possible.
  • You cannot stop the player from acting like an idiot.

5. Scope and MVP

"It's an MMO space combat simulator with voxel terrain destruction and a player-driven economy."

Minimizing Scope

  • You don't need modding support.
  • You don't need online multiplayer.
  • You don't need hats.

Make the absolute bare minimum game you can.

Add to it later.

6. Resources

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment