Game development met Clojure in Unity

podcast

In de aflevering van deze week vertelt Richard van Roy over zijn passie voor Clojure en game development. Bekijk op YouTube, luister Spotify, of lees de onderstaande samenvatting.

Richard van Roy verzorgde 30 november een hack night op de Bink over game development met Clojure in Unity. Richard is werkzaam bij Eonics, sinds kort vader en werkt dagelijks met Java. In zijn vrije tijd was hij graag bezig met game development en wil dat in de toekomst zeker weer oppakken.

Clojure is een functionele programmeertaal is gerelateerd aan Lisp. Richard: ‘Ik kies graag voor Clojure omdat het een korte code heeft met een korte feedback loop. Bij Java is er heel veel code die je moet compileren en naar de server gepusht, veel pipelines eromheen en uiteindelijk krijg je zelfs een geprinte versie waar je een handtekening onder moet zetten. Alles moet heel voorzichtig want je wilt niet iets kapot maken en je kunt niet zomaar experimenteren. Bij Clojure gaat dat een stuk makkelijker. Unity is een populaire game engine, ondersteund door Clojure. Unity werkt op .NET en Mono en Clojure kan het daar naartoe compileren.’

Clojure is stateless, in tegenstelling tot bijvoorbeeld Python. ‘Als je een spel maakt kun je bij Clojure op ieder moment doorgaan, je hebt geen side effects en een snelle cyclus. Bij debuggen kun je niet alleen step forward maar ook step backwards doen. Clojure is een soort vloeiende manier van denken en heeft in het begin zelfs iets magisch. Daarom raad ik iedere developer ook aan om zich verschillende families en  programmeertalen eigen te maken want je wordt dan veel beter in het kijken naar abstracties.’

Richard heeft ook in zijn dagelijkse werk wel eens helemaal functioneel gewerkt. ‘Ik moest toen statistische data vergaren en die vervolgens visualiseren en die app heb ik from scratch in Clojure gebouwd. Ook heb ik tweemaal een augmented reality applicatie gemaakt met Unity. In vergelijking met andere functionele programmeertalen zoals Scala kun je bij Clojure de core van de taal zelf uitbreiden en is het een broeibed van nieuwe programmeertechnieken. Prachtig om mee te experimenteren dus.’

Je kunt Clojure goed oppakken als beginner omdat het een schone en simpele taal is waarvan de grondbeginselen in basisblokken opgebouwd zijn. ‘Clojure is praktisch en compileert naar JDK, .Net en JavaScript. Bovendien is bij Clojure alles wat beschikbaar is krachtig en uniform waardoor je in alle lagen Clojure kunt gebruiken. De Unity engine game wordt echt aangestuurd door Clojure dus als je daarmee wilt werken is het wel handig als je Clojure al een beetje kent.’

Richard is thuis ook wel actief bezig (geweest) met game development. Momenteel werkt hij aan een game die populaire games als basis gebruikt: retro throwback, een moderne take met graphics en het sfeertje zoals Richard zelf die game van vroeger herinnert. Van de zomer wil hij de grafische kant af hebben om op kickstart te zetten zodat de commentaren hem zullen motiveren om door te gaan.

Wil je ook aan zelf aan de slag met het voorbeeld dat Richard heeft gemaakt? Bekijk dan deze cursus op de Eonics academy.