Unity 5 versus Unreal Engine 4: Artificiële intelligentie van 3D vijanden voor een HTML5 project
Rusty Bolt is een Belgische indie studio. Deze studio wilt een nieuw project starten voor een 3D spel in een HTML5 browser die intensief gebruik zal maken van kunstmatige intelligentie en WebGL. Na onderzoek via een requirements-analyse van verschillende mogelijkheden van game engines komen we terecht bij twee opties namelijk Unity 5, die Rusty Bolt al reeds gebruikt, of de Unreal Engine 4, wat voor hen onbekend terrein is. Qua features zijn ze enorm verschillend, maar ze voldoen elk niet aan één voorwaarde die Rusty Bolt verwacht van een game engine. Zo biedt Unity Technologies wel een mogelijkheid om software te bouwen in de cloud. De broncode van Unity wordt niet openbaar gesteld, tenzij men er extra voor betaalt. Deze game engine is dus niet volledig open source in tegenstelling tot Unreal Engine 4.
We vergelijken dan verder ook deze twee engines, namelijk Unity 5 en Unreal Engine 4. We tonen aan dat deze engines visueel verschillen van features, maar ook een andere implementatie van de artificiële intelligentie (AI) hanteren. Zo beperkt Unity zich voornamelijk op path finding van de AI, terwijl Unreal Engine 4 daarbij ook Behaviour Trees bij betrekt. Technisch zitten er ook verschillen in beide engines. Men kan de Unity engine op meer verschillende systemen draaien dan de Unreal Engine 4. En Unity 5 heeft ook lagere systeemvereisten dan Unreal Engine 4. Unity is verder ook enorm populair en heeft ook een groot marktaandeel, terwijl Unreal Engine 4 de grootste groei toont aan populariteit sinds 2015. Beide game engines gebruiken een verschillende objectgeoriënteerde programmeertaal, Unity 5 maakt gebruik van C# en JavaScript, terwijl Unreal Engine 4 enkel geschreven kan worden in C++ maar hebben wel een eigen visuele scripttaal via Blueprint Visual Scripting. Maar als we echter kijken hoe ze hun geschreven code omzetten naar een werkend HTML5 geheel gebruiken beide hiervoor eenzelfde tool gemaakt door Mozilla genaamd emscripten.
In beide game engines maken we ook een basis AI prototype in vergelijkbare omstandigheden en omgeving. Op dat prototype voeren we een aantal tests en metingen uit. Zo komt duidelijk naar voor dat de ruimte die nodig is om een nieuw project aan te maken bij Unreal Engine meer dan vier keer groter is dan voor Unity 5.3. Het laden van de editor gaat bij Unity slechts één seconde sneller. Bij Unity 5 maakt het laden op verschillende browsers, zoals Firefox en Chrome, wel een verschil van ongeveer drie seconden langer wanneer men cache gebruikt. Als we gaan kijken bij Unreal Engine 4 is er nauwelijks tot geen verschil is tussen de snelheden van de verschillende browsers.
Uiteindelijk komen we tot de conclusie dat de engines enorm verschillen en toch hun taak goed volbrengen. De keuze voor een bepaalde game engine is dan ook iets persoonlijk en varieert van project tot project. Deze keuze wordt dan best gecombineerd met de verwachtingen van een game engine in functie van het bedrijf en het project.
Meer lezen