John Carmack bezig met Doom-RPG voor mobieltjes

De invloedrijke ontwikkelaar John Carmack, onder meer bekend van de Doom-serie, werkt op dit moment aan een op Doom geïnspireerde role-playing game voor de mobiele telefoon, zo schrijft hij op zijn blog. Nadat hij voor de grap eens een game voor zijn telefoon in Java schreef en merkte dat dit best gemakkelijk ging, kwam hij tot de conclusie dat het leuk zou zijn eens op Doom gebaseerd spel voor de mobiele telefoon uit te brengen. Carmack gaat op zijn blog in op de problemen waartegen hij tijdens de ontwikkeling aanloopt. De eisen die een telefoon stelt aan een spel zijn streng; zo mag de totale grootte van het spel slechts zo'n 200KB zijn, minder dan een texture in Doom III. Ook aan de besturing van games op het mobieltje kunnen niet al te hoge eisen worden gesteld; toetsen reageren traag en werken ook voor de gamer niet lekker.

John Carmack (cartoon) kleinHij ontwikkelde een concept waarin de speler stap voor stap beweegt door een driedimensionale wereld. Dit kan zowel voor de speler als de telefoon het maximale uit de mogelijkheden halen. Begon Carmack nog met een positieve indruk van Java, gaanderweg is deze omgeslagen in een aversie tegen de vele nadelen van Java. Zo is Java traag; waar de hardware van een telefoon vaak sneller is dan bijvoorbeeld een Gameboy Advance, vertraagt Java de boel aanzienlijk. Ook is Java lang niet zo portable als gedacht, op iedere telefoon lijkt wel een eigen variant van Java te draaien, met eigen problemen. Ook mobiele telefoons zijn niet echt een game-platform. Naast de eerder genoemde gebrekkige besturing, is de latency van datapakketjes zo hoog dat multiplayer bijna geen mogelijkheid is en valt een tijdige afhandeling van belangrijke processen ook niet binnen de kundigheid van de telefoon.

Door Willem Kerstholt

30-03-2005 • 10:00

75

Bron: Weblog Carmack

Reacties (75)

75
73
22
4
2
41
Wijzig sortering
Hij ontwikkelde een concept waarin de speler stap voor stap beweegt door een driedimensionale wereld.
Sorry, maar dit concept is toch oeroud, Dungeon Master, Eye Of The Beholder, etc?

Volgens mij waren er al zulke games voor mobieltjes, zelfs?
Maar dat is toch geen reden dat het zou mislukken? Elk idee is al een keer bedacht, maar het gaat om de manier van uitvoeren.
[no flame intended]
John Carmack is ook nooit verantwoordelijk geweest voor vernieuwende spel concepten, of uberhaupt voor een spel concept. Hij is meer technisch dan creatief.
Hier op kantoor hebben de technische mensen vaak ook een inbreng op de uitvoering van een concept. Soms ontstaan deze ook op de werkvloer
Daarom gebruik ik ook het woord "verantwoordelijk".
[licht off-topic]
Wat dacht je van first person shooters zoals wolfenstein, doom en daarna echte 3d met quake etc. Dit zijn de roots van fps spellen en toch echt het werk John Carmack.
Vernieuwend is hij dus wel degelijk geweest.
[/ licht off-topic]

Verder denk ik dat het nooit echt een grote hit gaat worden dat gamen op je mobiel. Er is teveel verschil kwa snelheid in types telefoons en het werkt nooit echt lekker. De 2 games die ik tot nu toe heb geprobeerd waren behoorlijk kort en de gameplay was al helemaal om te huilen (logisch een telefoon gamed niet lekker).
Het is zijn programeer werk. Maar niet zijn design\creatief werk.
Wolfenstein 3d was Tom Hall
Doom was o.a. Romero
Quake was o.a. Romero en American McGee

Wat mij leuk lijkt is als het Keen 4 tal weer eens samen een spel maken: Tom Hall (Creative design), John Romero (Code), John Carmack (Code), Adrian Carmack (Art).
1: je kan toch ook creatief zijn met technische dingen? een hele mooie manier een probleem weg-coden.

2: zonder die technische mensen hadden er nooit mooie games e.d. geweest

3: volgens mij was carmack in het begin van iD games maar met 1 of 2 anderen, dus dan zal hij ook wel het spelconcept naar iets goeds hebben uitgebouwd.
Dat is grappig, ik heb al een hele tijd Doom 1 op mijn telefoon staan, gewoon geport door iemand naar het Windows Mobile platform. Nu heb ik het geluk dat mijn telefoon Windows draait, een 200MHz processor heeft en 320MB geheugen (opslag) maar ik denk dat de meeste nieuwe telefoons van dit moment wel zo snel zijn dat ze dit soort graphics aankunnen.
Jeetje man, is dat niet een beetje overkill voor Doom 1 ;)
Uhm.. Doom 1 draaide op een 386 (33Mhz min) en 20MB diskspace. En VGA display grootte (320x240) lijkt me al groter dan een gemiddelde telefoon.

(edit: oops, het is 320x240 en niet 320x200, anders is het niet 4:3)<div class=r>[Reactie gewijzigd door El_Muerte_[TDS]]</div><!-- end -->
En VGA display grootte (320x200) ???

VGA was altijd naar mijn weten 640*480...


Overigens draait doom ook gewoon op een nokia 7650 met 3.6 mb intern geheugen. deze telefoon heeft een 66 mhz processor.

Wanneer je dat vergelijkt met een dos bak die draait op een 386 33 mhz waarbij de 7650 een veel geavanceerder OS op de achtergrond heeft draaien vergeleken met DOS is dat wel een geinige vergelijking. (Ja, rick is zich er van bewust dat op een 386 windows 3.11 kon draaien...)
De oh zo populaire modeX resoluties.
640x480x4 is nog VGA ja. Dan heb je maar 16 kleuren.
doom en ook q1 draaiden onder dos in 320x240... een kwart van normaal vga, maar wel met 256 kleuren... VET MAN :P
Ik draaide Doom ook al op mijn SonyEricsson P800. Werkte perfect.
Hoe kun je nu van een taal zeggen dat tie traag is?

C is even snel als Java...

Het is 'm die JVM die het doet.. Java is op alle systemen gelijk.. Wat de JVM er me doet dat wil nogal eens verschillen.

Ja er zitten nadelen in java, zeker maar die zitten in elke taal. Dat de jvm traag is, ligt niet aan Java.. dat ligt aan hoe de jvm gemaakt is.

Daarnaast er zijn wel degelijk compilers om Java ineens door te compilen naar machine code.. (gcj bijvoorbeeld). Wat ik daarmee gedaan heb leverde mij wel degelijk een snel werkend geheel op.

Mensen die hier Breed spelen, als ik me niet vergis zitten daar delen in die gecode zijn in java. Dus het kan wel.

Niet op telefoons natuurlijk...
Je kan het op meerdere manier bekijken:

execution time:
Java is geen machine code, daardoor zal de gecompilede byte-code altijd geintepreteerd moeten worden. Hierdoor is de taal traager dan een taal die wel machine code produceert (C\C++, Pascal, etc.).
Soms kan je Java code volledig naar machine code compilen, waardoor het net zo snel als elke andere programeer taal is. Maar vaak kan je de Java code niet volledig naar machine code compilen waardoor er een deel nog steeds als java byte-code uitgevoerd word. Natuurlijk is java is dat geval niet meer runtime portable, waar je vaak toch aan vast zit (in het geval van telefoons dus).

compile time:
Java is ook niet bijzonder snel in compilen. Ik weet niet of C en C++ sneller of trager zijn bij compilen (vast niet). Maar Pascal bijvoorbeeld is verschrikkelijk snel in vergelijking met Java.

development time:
Daar zou je lang over kunnen twisten of Java sneller is voor het ontwikkelen, of juist trager. Dus deze kan je net zo goed buiten beschouwing laten.
Janoz Moderator PRG/SEA @Verwijderd30 maart 2005 12:09
Je vergeet 1 ding: JIT

Just in time compile kan er voor zorgen dat een stuk bytecode efficienter kan worden omgezet dan een normaal stuk native gecompileerde code. Dat lijkt vreemd en tegenstrijdig, maar het verschil zit hem in het feit dat de Jitter de code kan optimaliseren volgens de op dat moment aanwezige randvoorwaarden. Een stuk vooraf gecompileerde code kan hier geen rekening mee houden.
JIT helpt maar in de praktijk is C++ altijd sneller dan java. Java is ook niet bedoeld als C++ substituut. Toch vind ik dat java overgewaardeerd is, op hoeveel hoge scholen en universiteiten leert men eerst java aan en dan pas in de laatste jaren C++ ... gewoonweg belachelijk.
@oeLangOetan: ze gebruik Java omdat Java redelijk makkelijk aan te leren is (onderandere voor de OO concepten). Vroeger werd vaak Pascal gebruikt, zelden word C of C++ gebruikt omdat het gewoon een verschrikkelijke taal is om mee te beginnen. Besides, je moet mensen niet een programmeer taal leren maar programeer concepten. In welke taal je het dan implementeerd boeit niet. In alle (procedural) programeer talen werkt een quicksort op dezelfde manier.
1 van de redenen waarom "Java" traag is, komt doordat men de meest domme dingen met die taal kunnen doen, wat MB's aan geheugenlekken oplevert (stucturen die naar elkaar blijven refereren), of bijvoorbeeld objecten bij de vleet aanmaken:

frame.setColor(new Color(23,43,21));

i.p.v.

static final Color myColor = new Color(23,43,21);
...
frame.setColor(myColor);

Het verschil in code is miniem, het geheugengebruik en de executietijd niet.

Verder blijf ik java wel traag vinden. Start java maar op met "-v", en zie hoeveel classes geladen worden om jouw simpele JFrame te tonen.. |:(
ik denk dat er voor de huidige gsm/gprs niet echt game toekomst is .

maar over een paar jaar als meer mensen een pda met belfunctie hebben met bv een uitrol scherm dan zou het wel een hit kunnen worden ,,, geheugen kaartjes kosten nu al erg weinig ......
Waarom niet, de gameboy was jaren geleden echt wel een hit hoor... En de playstation portable momenteel ook.
Ja, vooral na dat pixel-gedoe is t een echte hit :+
De bedienbaarheid en scherm is qua om,vang en resolutie niet te vergelijken met een gemiddelde 06.....
Je zult toch echt richting een combo pda/gsm moeten .. en dan zouden er ook nog een andere interface aan moeten anders is het niet te doen......
desnoots met een soort inklikbare uitbreiding , zijn er al blijkbaar
Had nokia niet al zo'n flop gebouwd ?
die flop heet de N-Gage en is met z'n tamelijk meevallende verkopen wellicht geen hoogdraver, maar als flop is ie toch ook wel gefaald.

Die NGage was vooral een kloteding in het gebruiksgemak, niet eens zozeer vanwege de prutte speelbaarheid van van alles: de games liepen prima, maar het beeld is bagger lelijk en even en andee game => batterij eruit om de MMC kaart te wisselen. Lekker handig.
De gameboy was geen telefoon!!! Dat is precies wat hij zegt: de huidige TELEFOONS zijn ongeschikt als mobielgaming platform omdat de apparaten niet bedoeld zijn voor dit gebruik. Het OS is vaak naadje, het Java gebeuren lijkt heel leuk maar natuurlijk waren de problemen van Java al bekend ("portability" die vaak gebakken lucht blijkt, traagte) en de invoer mechanieken zijn niet bedacht met het oog op reactiesnelheid.

Als je een Razor Boomslang muis bij je GSM geleverd krijgt kun je het gametoys noemen.Tot die tijd is een gsm een telefoon waar je fotootjes mee kan nemen en je office werkzaamheden op kan verrichten. Verdere functionaliteit is in negen van de tien gevallen ongewenst en overbodig.
een telefoon is inderdaad niet goed voor gamen, en een gameboy zal misschien ook wel niet goed zijn voor bellen...wie weet
Vergeet niet dat de meest 'non-grafische' RPG's héééél Populair zijn!
Dus als je niet je pc hoeft op te starten om dit toch te kunnen spelen, zal zeker een markt voor zijn!
volgens mij zijn de meeste mensen de text-based RPG al lang vergeten, of hebben ze ze zelfs nog nooit meegemaakt
Dat is dan alweer voor een nieuwe generatie telefoons, want de huidige games op mijn 6230 zijn precies 64Kb of eronder..
Of een slechte vertaling. (Ik heb niet gekeken.) Op veel telefoons (lees: nokia serie 40) mag een midlet maximaal 64 kB zijn. Het beschikbare geheugen is ongeveer 200 kB.
en juist op de 6230 (de eerste S40 2.0 telefoon) mag een applicatie groter zijn (128kB). Vrijwel alle nokias daarvoor is de limiet 64kB, vandaar dat de meeste applicaties nog 64kB zijn voor niet-symbian nokias.

(RAM geheugen is ook meer geworden, 512 kB ipv zo rond de 210 kB)
Waarom is het vreemd dat spelletjes niet zo makkelijk voor een telefoon zijn te ontwikkelen? Een telefoon is toch niet in eerste instantie een spelletjescomputer? Ik vind dat een beetje een omgekeerde wereld om dan te zeggen dat een telefoon slechter functioneerd dan een gameboy. Die gameboy van mij kan heel slecht bellen bijvoorbeeld. Ik krijg echt nooit iemand aan de lijn.
Java is leuk makkelijk te programeren maar het vreet geheugen. het is voor de gebruiker niet direct te zien of iets geheugen eet of niet.

@El_Muerte_[TDS]
C(++) is geen gedrocht. het is practisch en zeer compact. zonder C is java niet eens mogelijk (waar mee denk je dat de VM geprogrammert is)
en daarbij C is af.
het enige wat verbeterd kan worden is de compiler.


Ze moeten gewoon linux op de telefoons donderen. en een compiler kit voor je pc waar je je telefoon selecteerd. en dan krijg je een optimized pakketje voor je mobiel.
No offense, maar dit zeg ik al járen van java! Dit sterft een langzame dood. Multi-platform my ass. Zo lang blizzard dingen als WoW op de PC en op de Mac kan laten werken, Atari hetzelfde kan met UT2004, en dat je toch nog saampjes kan spelen, vind ik dat er géén markt is voor Java.

Hanzehogeschool BI met afkeer van Java (en dat moeten we leren).

Leuk detail: op m'n Sybian foon staat ook Doom1, maar dat is niet in JAVA gemaakt, dat is in symbian z'n eigen API gemaakt (is ook geen 200KB ;))
ja, natuurlijk is C/C++ portable, maar dan moet je de broncode hebben, en het schijnt gebruikelijk te zijn die niet mee te leveren. Bovendien moet je voor elke processor opnieuw compileren, en dat kan dus alleen de fabrikant doen, als de fabrikant het geen goed idee vindt om platform X te ondersteunen heb je dus dikke pech. Verder is java niet alleen processor-onafhankelijk.

Ben eigenlijk een groot voorstander van vrije software, en al helemaal op telefoons (ze zijn persoonlijk, dus wil ik ook zelf kunnen bepalen wat ie doet), maar zelfs dan kan java nog handig zijn.
Janoz Moderator PRG/SEA @Verwijderd30 maart 2005 11:54
Grappig om zoiets van een BI-er te lezen. Als ik jou was zal ik nog maar eens goed op gaan letten de komende jaren. De software ontwikkeling bestaat niet alleen uit games. Dat geldt al helemaal als je bedrijfsinformatica doet.

Wat wil je dan gaan doen later? .Net? Ik zal je uit je droom helpen jochie, dat is namelijk hetzelfde.
Multi platform vindt ik juist een hele handige functie. Wat blizzard (of Id) doet is hun C code gewoon porten. Kost wat meer werk....

Java in J2EE is juist super snel en stabiel. Geen rare null pointers enzo
Jij hebt duidelijk nog niet goed opgelet op je opleiding. Heb je uberhaubt wel eens geprogrammeerd? Ik krijg het idee dat je van die leuke buzzwords leert en hier en daar er iets over leest er daar gelijk je sterke mening op baseert.

Dat een extra laag van abstractie de performance beinvloed is logisch, maar dat het daardoor gelijk onzin is slaat nergens op. Het concept is juist erg goed, je kunt op die manier een applicatie ontwikkelen door je puur bezig te houden met de essentie en niet met platform of systeem afhankelijke zaken. Dat dit een langzame dood gaat sterven is gewoon onzin, sterker nog, deze stijl van programmeren gaat langzaam aan (bijna) alle andere stijlen vervangen.

Er is nog genoeg werk te doen, dat is duidelijk. Maar jij stelt dat het bijna aan het eind van zijn tijd is. Technieken als deze beginnen pas net populair te worden en het staat nog maar in kinderschoenen. Je hoeft het niet gelijk zo af te branden als je niet weet wat het precies inhoud.
200k voor een mobiele javagame is al best een hele hap. 3D kan een stuk kleiner, helemaal met de Java3D Standaard. Dan krijg je bijvoorbeeld games als Speed Racer 3D In de praktijk valt het trage reageren van toetsen ook enorm mee, hangt er ook vanaf hoe zwaar de game is. Wat ik echter niet snap is dat zo'n hoogstaand figuur niet voor Symbian kiest. Dan programmeer je direct op de hardware waardoor 3D games ontzettend krachtig worden :P. Zelf heb ik op mijn telefoon bijvoorbeeld Clusterball en Xyanide 3D . Nadeel is alleen dat het aantal Symbian toestellen beperkt zijn :(
Hij kiest voor java omdat daar verreweg de meeste toestellen voor zijn. Symbian is er alleen voor high end toestellen nog. Er zijn meer java toestellen als windows mobile + symbian + palm + BREW bij elkaar. En 80% van de windows mobile, sybian (100%), palm en BREW toestellen hebben zelf ook java.
Zelf heb ik op mijn telefoon bijvoorbeeld Clusterball en Xyanide 3D . Nadeel is alleen dat het aantal Symbian toestellen beperkt zijn
Vreemd, ik zie bij de informatie van die spelen bij OS "java" staan? :7
Het kan aan mij liggen, maaar het woord telefoon zegt toch al genoeg. Laten we de spullen eens gebruiken waar het voor bedoeld is.
Dus met een telefoon bel je en als je dan zo nodig spelletje wilt spelen koop dan een PSP o.i.d.

Op dit item kan niet meer gereageerd worden.