Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Talk submission to ElmEurope 2019

Gamedev in Elm - From Zero to Game Jam

Games are fun to play and fun to make! Elm is a great way to get started building games. We'll take a whistlestop tour of 2d-game math, visuals, dealing with time, common data modeling solutions, and more. You will be equiped with the knowledge to participate in a game jam and turn your ideas into a playable game.


Games are a fun and exciting kind of program to write but can differ quite a bit from the kind of software we're used to writing as web devs. For many, writing a game is an aspirational yet intimidating goal.

Part of the problem is not even knowing where to start. The "unknown unknowns" prevent people from even trying.

The goal of this talk is to give a quick overview of various game concepts and provide inspiration and confidence for people to successfully participate in a game jam.

Game jams (particularly non-competitive ones) can be a great way to get started as they provide a theme and a deadline. These sorts of constraints are great at getting you to actually ship a game.

The talk will be a quick tour of the following topics:

  • the Elm Architecture is a game loop!
  • the visuals (HTML, SVG, Canvas, WebGL)
  • 2d-game math (world/character/screen coordinate systems, vector addition)
  • time (tick-rate, time diffs, effects over time)
  • data modeling (multiple game screens, generic renderable entities, transitioning between different game states)
  • participating in a game jam

For many years, writing a canvas web game was an aspiration for me. However I never got much further than moving a few squares on a screen before giving up. Recently I've joined several Elm game jams and have submitted completed games in each of them. Many lessons were learned along the way. I can give an intro to gamedev in Elm from a beginner's perspective.

The goal of this talk is to give brief overview of gamedev concepts, enough to give people confidence to take the plunge and participate in a gamejam without feeling completely lost.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.