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


Has Functional Got Game: Evaluating the Benefits of Functional Programming Languages in Game Development

Authors

; ;

Term

4. term

Education

Publication year

2019

Pages

80

Abstract

Functional programming is often credited with improving program correctness and developer productivity, yet most modern game development relies on object-oriented imperative languages like C++ and C#. This thesis evaluates whether a functional, object-oriented language (F#) can be used effectively for game development in Unity without sacrificing performance or imposing excessive cognitive load. We extend Unity with improved F# support, then compare F# and C# using a benchmark suite focused on numerical and vector operations (microbenchmarks) and an autonomous AI game (macrobenchmark). We complement the performance measurements with a usability study examining developers’ ability to work in F# within Unity and to transfer existing Unity knowledge, and we discuss qualitative findings through the Cognitive Dimensions framework. Across these evaluations, we find that the performance penalty of using a functional language is negligible and that the usability of Unity with F# is promising. We outline limitations and threats to validity and suggest future work on tooling, broader engine support, and runtime integration to further improve performance and developer experience.

Funktionel programmering fremhæves ofte for at øge korrekthed og udviklerproduktivitet, men moderne spiludvikling bygger typisk på objektorienterede imperative sprog som C++ og C#. Dette speciale undersøger, om et funktionelt, objektorienteret sprog (F#) kan anvendes effektivt i Unity uden at gå på kompromis med ydelse eller øge den kognitive belastning for udviklere. Vi udvider Unity med bedre F#-understøttelse og sammenligner F# og C# via en benchmarksuite med fokus på numeriske og vektorbaserede operationer (mikrobenchmarks) samt et autonomt AI-spil (makrobenchmark). Ydelsesmålingerne suppleres af en brugervenlighedsundersøgelse, der belyser udvikleres mulighed for at arbejde i F# i Unity og overføre eksisterende Unity-viden, og de kvalitative resultater diskuteres med udgangspunkt i Cognitive Dimensions-rammen. På tværs af evalueringerne finder vi, at ydelsesstraffen ved at bruge et funktionelt sprog er ubetydelig, og at brugbarheden af Unity med F# er lovende. Vi beskriver begrænsninger og trusler mod validitet samt foreslår fremtidigt arbejde med værktøjer, bredere engine-støtte og runtime-integration, der kan forbedre ydelse og udvikleroplevelse yderligere.

[This apstract has been generated with the help of AI directly from the project full text]