Hoog tijd voor een post in onze serie over het maken van mobile games. We hebben het al over een aantal testmachines gehad die je nodig hebt voordat je je mobile game kunt bouwen en releasen en in dat artikel concludeerden we dat het bij Apple behoorlijk overzichtelijk is maar bij Android dat er vele mogelijke machines zijn met vele configuraties. Dat geldt voor processorsnelheid, geheugen, schermresoluties en wellicht nog een paar overige details (bv de aanwezigheid of afwezigheid van een front face camera of hulpchip voor 3d graphics). Laten we eens inzoomen op een van de belangrijke aspecten: schermresoluties
Schermresoluties bij Apple
Als je een mobile game maakt moet je rekening houden met het feit dat je game afgespeeld gaat worden op verschillende schermmaten met verschillende pixeldichtheid. Bij Apple is het overzichtelijk, je hebt eigenlijk maar te maken met 5 maten:
Ipods/Iphones:
480 x 320
960 x 640
1136 x 640
Ipads:
1024 x 768
2048 x 1536
Dus als je in je game rekening houdt met deze opties, komt het goed. Je kan dat doen door voordat je de game start de configuratie uit te lezen en voor elke resolutie een aparte room te maken. Maar soms hoeft dat niet. Als de verhoudingen hetzelfde zijn kan je ook de hoogste resolutie kiezen, dan zal het oudere device het ook goed afspelen (e.g. je kan op een Iphone een game maken op 960 x 640 die ziet er ook goed uit op een 480 x 320 scherm). Of wat ook natuurlijk kan is een zwart (of andere kleur) randje om je game. Games stretchen (een game op een resolutie van 960 x 640 uitrekken naar 1136 x 640) levert in de regel een lelijk gezicht op.
Schermresoluties bij Android
Maar dan de resoluties op Android…je komt zowat elk mogelijke variatie tegen. Hieronder een paar nuttige links over dit probleem:
http://opensignal.com/reports/fragmentation.php
http://developer.android.com/about/dashboards/index.html
http://developer.android.com/guide/practices/screens_support.html#testing
Een paar tips om de berg aan mogelijke schermresoluties aan te kunnen:
- Werk met een emulator en kies een paar van de veelvoorkomende maten om te checken hoe het eruit ziet
- Spaar (oude) android toestellen om te testen
- Neem een paar maten bv 1920 * 1080 en 480 x 800 en beperk je tot die maten. De rest moet rescalen of een balkje om je game. Of gebruik deze tabel:
- xlarge screens are at least 960dp x 720dp
- large screens are at least 640dp x 480dp
- normal screens are at least 470dp x 320dp
- small screens are at least 426dp x 320dp
(bron: http://developer.android.com/guide/practices/screens_support.html. Daar lees je ook wat dp betekent en hoe je android applicaties kunt maken voor verschillende schermen, met verschillende scherptes).
Retro mobile game
Scalen of niet scalen?
Eigenlijk moet je bedenken bij je game of je hem wel of niet wilt scalen. Uiteraard is het het mooiste als je je game tot het randje laat lopen en dit kan je doen door of voor alle schermmaten een versie te maken, maar bij Android is dat niet te doen of door te scalen (je graphics een beetje uit te rekken). Maar dan is het soms net een beetje lelijk. Hoe je dat doet in Gamemaker kan je bv hier lezen: http://gmc.yoyogames.com/index.php?showtopic=541907
Een derde optie is een randje om je game die je zelf maakt op een maat die op alle (bijna alle) devices past.