10 Ways Functional Programming Makes Development Less Painful

Functional programming is a programming paradigm that emphasizes immutability, pure functions, and declarative programming. Here are 10 ways functional programming makes software development less painful: But how does a program like the Nu Game Engine make functional programming as fast or faster than object-orientation? Stay tuned to find out our (open) secrets!

Why ‘Quality of Life’ Features Can (Sometimes) Ruin Your Retro Game Design

I’ve gotten a bit of feedback about OmniBlade (current release here), a portion of which I can’t directly address, specifically in terms of Quality of Life (QoL) features. As far as OmniBlade goes, it’s in a weird design space as a retro-style game. Firstly, if you give a retro-style game all of the quality-of-life featuresContinue reading “Why ‘Quality of Life’ Features Can (Sometimes) Ruin Your Retro Game Design”

Ant vs. Space Marine

vs There are two broad categories of software systems – interruptible and non-interruptible. The interruptible system offers high-level capabilities such as dynamic event handling, but does so at the cost of performance due to an impedance mismatch with the underlying commodity hardware. The non-interruptible system eschews such high-level capabilities to avoid their associated impedance mismatchesContinue reading “Ant vs. Space Marine”

Functional Programming and Data-Oriented Design

These two complementary paradigms, rather than object-orientation, could be the future of game development. Note: This article is a follow up to the previous article, ‘Why Functional Programming Works for Games’. When we tell the story of functional programming and data-oriented design in games, we tell a story of trade-offs. What do you get withContinue reading “Functional Programming and Data-Oriented Design”

A Game Engine in the Elm Style!

A ‘Nu’ way to make games! The Nu Game Engine was the world’s first practical, functional game engine. And it has recently accomplished another first — allowing developers to use Elm-style architecture (AKA, model-view-update) to build their games in the cleanest, most understandable possible way! This article will go over two examples often used by the Elm developerContinue reading “A Game Engine in the Elm Style!”

S-Expression The Ultimate Format

A Powerful F# Library Shows How S-Expressions Can be Superior to XML and Json First, a little historical context… People used to love XML, especially those in the Microsoft camp. XML represented a powerful enabling technology for programmers of that day — data-driven programming without plain text files. Out of this love for XML came many technologies onContinue reading “S-Expression The Ultimate Format”

Why Functional Programming Works for Games

Why I set out to prove that functional programming works for games, and what it might mean for modern game development. A fellow on http://www.fpchat.com slack channel #gamedev asked me the following question about my functional F# game engine, Nu (source available here) – “I was curious of how this project started. Do you have previousContinue reading “Why Functional Programming Works for Games”

Double Cone Design

A Highly Effective Approach for Designing Functional Programs Nowadays, I design my programs with an approach that I call ‘Double Cone Design’. Inspired from a rendering of an elegant mathematical construct called a ‘double cone’ that is intersected by a plane segment, it colorfully illustrates my overall approach to software design – The bottom cone,Continue reading “Double Cone Design”