• [ << ]
  • [ 0 ]
  • [ 1 ]
  • [ 2 ]
  • [ >> ]
May '09
30

Java Game Development

29-01-2009, gepubliceerd in de WeLoveIT van Mei 2009.
Door E.Hooijmeijer

Computerspellen geschreven in Java zijn lastig te vinden. Dat is eigenlijk raar gegeven het feit dat er al jaren uitstekende ontwikkelomgevingen voor Java beschikbaar zijn en er nu ook middleware is die het maken van spellen sterk vereenvoudigt. Kortom de tijd is rijp om spel software in Java te gaan schrijven. Naast het tonen van een aantal commerciële voorbeelden van succesvolle spellen geschreven in Java vertelt dit artikel hoe je aan de slag kunt om zelf een spel te maken.

Waarom spellen maken in Java?

Op het ogenblik worden de meeste spellen in C++ geprogrammeerd. Java heeft een aantal voordelen ten opzichte van deze taal. Java kent een hogere productiviteit door een uitgebreide standaardbibliotheek en door het gebruik van een virtual machine die zorgen over platform specifieke zaken weg houdt bij de programmeur. Daarnaast zijn er veel programmeurs die Java beheersen en maakt de taal op bijna iedere Hogeschool of Universiteit deel uit van het lespakket. Qua performance doen de recente versies van Java niet meer onder voor programma's geschreven in C++.

Naast deze voordelen zijn er uiteraard ook een paar nadelen. Om te beginnen hebben computer spelen toegang nodig tot de (door hardware geaccelereerde) scherm drivers, wat alleen mogelijk is via de Java Native Interface (JNI). Dit probleem is opgelost door de komst van middleware. Een tweede en wat subtieler probleem wordt veroorzaakt door het automatisch geheugen management dat periodiek kostbare processor cycli consumeert en tot een merkbare hik in de spel ervaring kan leiden. Met een beetje aandacht valt ook hier aan te ontkomen.

Commerciële spellen gemaakt in Java.

De commerciële spellen die gemaakt worden in Java worden over het algemeen alleen als download of als online spel aangeboden. Voorbeelden zijn: Nord , een multiplayer rollenspel bedoeld voor de Scandinavische markt. Daarnaast zijn er actie spellen gemaakt door Puppy Games zoals Droid Assault, Tribal Trouble en Titan Attacks. PeaceMaker is een serieus simulatie spel en heeft als doel het Israëlisch-Palestijns conflict op te lossen. Het spel heeft een aantal prijzen gewonnen op het gebied van diplomatie en vrede. Helaas is het om te spelen nogal één dimensionaal.

Hoe kan je in Java spellen ontwikkelen?

De standaardbibliotheek van Java biedt alles wat nodig is om een leuk 2D schiet- of platform spel te maken. Er is heel veel mogelijk met heel weinig code. Om een idee te krijgen van de mogelijkheden is de website van de jaarlijkse Java4K wedstrijd aan te raden. Hier staan allerlei games geschreven in standaard Java die maximaal 4096 bytes groot zijn. Weinig code, veel plezier. Van sommigen is ook de source code beschikbaar.

De standaardbibliotheek is heel uitgebreid, maar gelukkig zitten de essentiële onderdelen in slechts enkele packages. Om te beginnen is dit de java.awt package waarin alles zit om de spelwereld te visualiseren en te kunnen reageren op de invoer van de speler. De andere essentiële package is de javax.sound package voor geluidseffecten.

In zijn algemeenheid bestaat een spel uit 4 opeenvolgende stappen die telkens opnieuw worden uitgevoerd. De eerste stap is het tekenen van de spel wereld op het scherm en het laten horen van eventuele geluidseffecten. Dit dient als invoer voor de speler die vervolgens reageert via de muis of het toetsenbord. Deze invoer wordt verwerkt door het spel en het interne model van de spel wereld word aan de hand hiervan ververst. Daarna begint de cyclus opnieuw. Dit is wat men de 'game loop' noemt.

  • [ << ]
  • [ 0 ]
  • [ 1 ]
  • [ 2 ]
  • [ >> ]