Is Julia good for game development?

It depends on your goals.

I’ve found Julia to be super fun for developing a little game where I can live-code new game rules while my children are playing it. See: https://github.com/c42f/Gameoji

Gameoji is very much a quirky bespoke game which I doubt anybody else will play, but we’re having fun with it. Some features:

  • Terminal-based tile rendering of emojis (with low-res raycast visibility :slight_smile: )
  • 2D dungeon crawler like gameplay
  • “In-person” multiplayer (multiple devices with keyboards can connect, but all rendering happens on the main screen)
  • Change the game logic and game state interactively via RemoteREPL.jl

I highly recommend using an Entity-Component-System abstraction for your game logic; I use @louisponet’s Overseer.jl and this hugely cleaned up the game logic in my game.

I think there’s a few reasons not to use Julia for a game:

  • Distribution! Creating a reasonable-size game bundle for low-latency startup and distribution could be hard. If you care about game distribution you should investigate this early on (see PackageCompiler.jl and related tools).
  • The library ecosystem isn’t very complete (though for 2D you might be fine with the SDL bindings (maybe via GameZero.jl?) and an ECS via Overseer.jl?)

Although the ecosystem of game-specific libraries in Julia isn’t large, many of Julia’s scientific and technical computing libraries are very useful for game development. For example, Julia has various high quality libraries for geometry and image processing, many of which are very applicable to game programming.

30 Likes