AAU Student Projects - visit Aalborg University's student projects portal
A master's thesis from Aalborg University
Book cover


A Game of Paradigms: A Usability Study of Functional Idioms in Gameplay Programming

Authors

;

Term

4. term

Education

Publication year

2019

Pages

137

Abstract

Dette speciale undersøger, om funktionel programmering kan forbedre gameplay-programmering. Funktionel programmering er en stil, der lægger vægt på små, rene funktioner og uforanderlige data. Vi afprøvede påstande fra brancheprofilerne John Carmack og Tim Sweeney om, at spiludvikling ville have gavn af mere funktionel programmering, ved at sammenligne C# og F# i spilmotoren Unity. Først gennemførte vi en brugbarhedsevaluering med erfarne spiludviklere. Deltagerne kunne skrive kortere og mere modulære løsninger i F#, men de var stadig tilbageholdende med at bruge F# i det daglige arbejde. Dernæst målte vi ydeevnen for samtidig kode — programmer, der kører opgaver på samme tid. I de fleste tilfælde var F# en smule langsommere end C#. Til sidst sætter vi resultaterne ind i moderne spiludviklingspraksis for at overveje, hvorfor de observerede fordele ved F# ikke overbeviser erfarne gameplay-programmører.

This thesis investigates whether functional programming can improve gameplay programming. Functional programming is a style that favors small, pure functions and immutable data. We tested claims by industry veterans John Carmack and Tim Sweeney that games would benefit from more of this style by comparing C# and F# in the Unity game engine. We first ran a usability study with experienced game developers. Participants wrote shorter and more modular solutions in F#, but they were still hesitant to use F# in everyday work. We then measured performance on concurrent code—programs that run tasks at the same time. In most cases, F# was slightly slower than C#. Finally, we relate these findings to current game development practices to consider why the observed advantages of F# do not persuade experienced gameplay programmers.

[This abstract was generated with the help of AI]