Deliverance

Deliverance

This game is from ldjam.com, which is currently unavailable.
You can try viewing the original page on Web Archive (may not load correctly).

Deliverance


THE ACCOUNTANT SLAYS DRACULA!

Retrospective


We're masochists, and decided to write our own game engine in an obscure programming language. This follows in the footsteps of our ld52 and fleshes out the technology. While our ld52 entry used extremely simple sprite-based animations, this time we wanted to focus on a much more dynamic world, involving enemies and a new skeleton-based animation system.

In addition, we designed a new state machine-based abstraction for the player character, which dramatically improved the speed at which we could add new features. This was a good and a bad thing. Good in that we could experiment with cool stuff much more easily and quickly, but bad in that it meant we finalized all the gameplay details very late into the process.

Implementation


The game is built from scratch in Haskell, using raw SDL as the backend, and functional reactive programming (in the form of Yampa) to deal with all gameplay concerns. FRP is a delightful abstraction that allows you to work and switch between continuous functions and state machines, depending on whichever would be easier for the task at hand. It would be infeasible to write an engine of this size in a weekend if we had to do all the usual timer management bullshit that games usually fall back on to do this sort of thing.

Screenshots

Found a bug?
Tell us on Discord