Par thy Android - A short followup on "60 FPS to 500"

Last week we published a blog post briefly outlining several steps of optimization of a Haskell game. In the article, the last two steps, which referred to parallelism and concurrency respectively, were inverted, making it sound like the Android version was using the parallel library. ...

From 60 Frames per Second to 500 in Haskell

Haskell is often advertised as fast, easy to parallelize and to optimize. But how much of that is really true? We are going to demonstrate it using a game we are building, including how many changes we had to introduce to increase the game speed by 700% on desktop, how we managed to go from increasing memory consumption in the order of hundreds of megabytes down to constant memory consumption of only 3MB. We’ll also see the impact it had on Android. ...

Declarative Game Programming -- slides, videos and code

Earlier this month, Henrik Nilsson & Ivan Perez presented a tutorial at PPDP 14 on Declarative Game Programming. The goal was to show how real game programming is possible in a purely functional, declarative way. One way of doing so, seeing games as networks of interconnected signals and signal transformers, results in clear, reusable, modular code. To illustrate these ideas, a small but realistic game was demonstrated, featuring many of the complex elements found in arcade games: SDL graphics and sound, Wiimote controller, and differentiated subsystems for rendering and sound, game input, physics/collisions, game logic, etc. The game has several levels, each with its own background and music. To help others interested in functional game programming, all the talk material have been made available, including the slides and the full game code. ...

A new version of Yampa is out (0.9.6)

Yampa is an impressive, arrowized, Functional Reactive Programming (FRP) implementation written in Haskell. We are using it to implement Android games at Keera Studios, and it has been used, among others, to implement the video game Frag (see video below). ...

The most inspiring green screen you will ever see

While Haskell, Idris and other Functional Programming (FP) languages enable writing elegant code, the road to production is, well, bumpy. Writing code for industrial environments has added costs that make certain products too expensive and infeasible in practice. ...

GUI programming in Haskell "the old way"

As discussed in a previous post, purely functional GUI frameworks may fail to deliver in terms of feature coverage, look-and-feel and codebase scalability. As a result, many programmers turn back to good-old Gtk+ for their user interfaces (see, for instance, Ian-Woo Kim’s hoodle). ...

On the state of GUI programming in Haskell

GUI programming in functional and logic languages tends to feel quite hard. There is nothing intrinsic in FP that makes GUI programming extra hard, but when everywhere else you are surrounded by nice, abstract, compositional, high-level descriptive definitions, working at the GUI’s low level feels… well, like you’re doing something wrong. ...