Skip to content

Instantly share code, notes, and snippets.

@apples
Created March 26, 2015 21:40
Show Gist options
  • Save apples/a0a38c0ecd2f72ca5e18 to your computer and use it in GitHub Desktop.
Save apples/a0a38c0ecd2f72ca5e18 to your computer and use it in GitHub Desktop.
slides.html
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<style type="text/css">
@import url(https://fonts.googleapis.com/css?family=Droid+Sans:400,700,400italic);
@import url(https://fonts.googleapis.com/css?family=Ubuntu+Mono:400,700,400italic);
body { font-family: 'Helvetica', 'sans-serif' ; }
h1, h2, h3 {
font-weight: normal;
}
.remark-slide-content { font-size: 200%; }
.remark-code, .remark-inline-code { font-family: 'Ubuntu Mono'; }
</style>
</head>
<body>
<textarea id="source">
class: center, middle
# How to Dev a Game
---
# The Journey
0. Ideas and Design
1. Engines and Scripting
2. Art, Animation, and Audio
3. Aesthetics and the Ludonarrative
4. Scope and Minimum Viable Product
5. 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/](http://www.fsf.org/) for more information.
---
class: center, middle
# 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.
---
class: center, middle
# MAKE 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
- http://www.gamedev.net/
- http://gamedev.stackexchange.com/
- http://www.reddit.com/r/gamedev/
- http://www.gpwiki.org/
- http://gameprogrammingpatterns.com/
- http://opengameart.org/
---
class: center, middle
...questions?
</textarea>
<script src="https://gnab.github.io/remark/downloads/remark-latest.min.js">
</script>
<script>
var slideshow = remark.create();
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment