Broncode van 'Commander Keen: Keen Dreams' komt beschikbaar op GitHub

Een aantal ontwikkelaars heeft de broncode van de pc-klassieker 'Commander Keen: Keen Dreams' op GitHub vrijgegeven. De code is in de jaren negentig geschreven door id Software, de ontwikkelaar die later verantwoordelijk was voor onder andere Wolfenstein, Doom en Quake.

De broncode van de platformgame Commander Keen is beschikbaar onder een GNU GPLv2+licentie. Om de publicatie van de gamecode mogelijk te maken was een aantal ontwikkelaars eerder een crowdfundingactie op Indiegogo gestart om zo de rechten te bemachtigen. Op GitHub is de code, destijds geschreven in Borland C++, te compileren naar zowel een cga- als een ega-versie van de game.

De Commander Keen-serie, waarin hoofdpersoon Keen al dan niet met zijn pogostick door de levels springt, is afkomstig van id Software. Het was een van de eerste side scrolling platformgames voor de pc. In totaal kwamen er zeven delen uit in de Commander Keen-franchise, waarvan een aantal als shareware werd uitgebracht. In 2013 verscheen een port van de Keen Dreams-episode voor Android-smartphones en -tablets.

Commander Keen: Keen Dreams

Door Dimitri Reijerman

Redacteur

17-09-2014 • 13:31

61

Reacties (61)

61
60
48
10
0
4
Wijzig sortering
Anoniem: 297189 17 september 2014 17:25
Wat ik me vooral van de Commander Keen serie kan herinneren is dat Id Software het voor elkaar kreeg om een vloeiende video game op een PC scherm te toveren. De toenmalige PC hardware, met b.v. CGA en EGA video kaarten, was helemaal niet gemaakt voor games en zeker niet voor vloeiende games in kleur op 60fps (CRTs liepen vaak ook op 60 Hz). Door heel slim technische programmeerwerk (slim gebruik van allerlei video registers etc) lukte het hun om een vloeiende scrollende platform game te maken op een PC, wat vrijwel ongehoord was in die tijd.

Afgezien van de programmeertechniek was het game design natuurlijk ook niet slecht. Later is Id verder gegaan op dezelfde weg door lang voordat 3D acceleratorchips voor games op de PC beschikbaar kwamen met een destijds indrukwekkende en vloeiende 3D game te komen: Wolfenstein 3D. Net als Commander Keen maakte deze gebruik van heel slim programmeren van de video kaart (VGA in dit geval, ik geloof dat ze de zogenaamde Mode X gebruikten). Samen met Doom hadden deze spellen ook een grote invloed op de ontwikkeling van echte 3D acceleration voor PCs en consoles en het FPS genre.

[Reactie gewijzigd door Anoniem: 297189 op 23 juli 2024 03:13]

Vraag me af of wat hier staat klopt? Vooral het eerste gedeelte dan...

Kan me herinneren dat ik vroeger, long time ago ook Zeliard (kwam volgens Wikipedia 3 jaar eerder uit) op de PC heb gespeeld wat ook een side-scroller was en in mijn ogen een gewoon vloeiende platform game was. Zo zijn er vast ook andere games? Voor mij was Commander Keen in ieder geval echt geen speciale games ivm de andere games in die tijd...

Kan ook komen doordat het concept vloeiend bij mij toen wat minder opviel, hoewel ik al jaren een C64 en Amiga had gehad. Ik kan me herinneren dat ik een hele tijd Wolfenstein met 10 fps heb gespeeld op een trage 386 zonder dat ik het zelf heel storend vond. Pas toen ik bij een buddy zag hoe het spel hoorde te draaien had ik door dat het bij mij toch niet helemaal draaide zoals de bedoeling was :P
Ik denk dat vooral het vloeiende full-screen scrollen in EGA graphics mode (16 kleuren), waarmee de visuele kwaliteit van consoles benaderd werd, opviel.

Op Wikipedia (https://en.wikipedia.org/wiki/Commander_Keen) word dit ook genoemd.
dit is de 1.20 code, de source van 1.93 is no more
Ik zie een commit van 1.92 en de README heeft meer info.

@hieronder: ik zat mobiel dus was even lastig linkjes bij elkaar sprokkelen / posten :P

[Reactie gewijzigd door RobIII op 23 juli 2024 03:13]

A little confusing because revisions have proceeded in three different sequences, the regular (EGA) version, the CGA version, and the shareware version. At present, 1.05 is the latest CGA version, 1.93 is the latest EGA version, and 1.20 is the latest shareware version. Also, some versions with suffixed letters have been used when text and other items changed without recompilation of the program itself.
1.00 (not numbered): Original release.
1.01: Version used on Tiger Software marketing deal.
1.01-360: Specially adapted version to fit on 360K disk for Tiger Software marketing deal.
1.01S: (mistakenly labeled 1.01): Shareware version.
1.02: Registered version.
1.03: Registered version (re-mastered edition).
1.04: CGA version.
1.05: Re-master of CGA version without Gamer's Edge references.
New CGA versions should be numbered 1.06 through 1.12

1.13: Shareware version (re-mastered edition).
1.20: Re-master of shareware version without Gamer's Edge references.
New shareware versions should be numbered 1.21 through 1.90

1.91: Version for Prodigy Download Superstore.
1.92 [rev 0] : Version for Good Times. The shell is not on this version.
1.93 [rev 1] : Version for catalog. Uses DocView Shell instead of old GE shell. Copyrights updated to "1991-1993" with Softdisk Publishing instead of Softdisk, Inc., to suit our present guidelines. Otherwise the same as Good Times version.
New EGA versions should be numbered 1.94 and up.
In 2013 verscheen een port van de Keen Dreams-episode voor Android-smartphones en -tablets.
Waarom wist ik dit niet?

Snel downloaden, wat heb ik toch een mooie tijd gehad met het spelen van die Keen spellen, bedankt voor de port Gerhard Stein :)
Hmm... volgens mij heb ik die nog wel.
Doet me wel weer denken aan vroegah :)

A:\> cd keen
A:\keen\> keen
Ook nooit geweten, terwijl ik in mijn jonge jaren ettelijke maanden aan tijd ingestopt heb (al waren de andere delen beter/leuker w.m.b.)...
Meteen aanschaffen.

[Reactie gewijzigd door Fly-guy op 23 juli 2024 03:13]

Dit wist ik ook niet! Hoe is dit zo stilletjes in de Play Store gekomen? Heerlijk spel dit, vroeger helemaal kapot gespeeld, haha.
Waarom pakken ze dan de sourcecode van de minst leuke keen? :S

Ik hou met heel m'n hart van de Commander Keen serie, maar vond aan Dreams echt NIKS...

Had liever binnekort een "nieuwe" Goodbye galaxy of zo gezien, met nieuwe levels etc.

Op zich wel leuk dat ze 't doen.. maar vind 't nog steeds jammer dat ze er de (in mijn ogen) slechtste keen game voor uitkiezen..
Je hebt gelijk, ik vond hem vroeger ook slecht, met name omdat ik hem speelde alsof dit het 7e deel was. Maar eigenlijk wordt deze game als versie 3.5 gezien, en is dus eigenlijk de ontwikkeling van de oude stijl keen 1,2,3 naar de nieuwe stijl keen 4,5,6 (die ik zelf het leukst vond).
Keen Dreams had duidelijk wat weg van delen 4,5,6 maar ik vond het er toch altijd minder goed en afgewerkt uitzien. Ik dacht vroeger dat dit deel 7 was en het leek wel of deze titel ook niet door ID software zelf was gemaakt, maar was uitbesteed aan een andere ontwikkelaar. Vreemd was de ondersteuning voor muis en een cursor (keen's spaceship) in het menu, dat zie je later dan weer niet terug in deel 4,5,6.

Ik begrijp nu zo langzamerhand dat deze titel eerder een ontwikkelingsfase is geweest van oude naar nieuwe engine die later werd gebruikt voor delen 4,5,6. Die delen zijn dus ook verder uitgewerkt en ogen duidelijk beter dan Keen Dreams. Ik begrijp dus ook dat de vrijgegeven broncode 1.20 ouder is dan die van keen 4,5,6. Anderzijds vraag ik me af of Keen Dreams ooit wel echt bedoelt is om uitgebracht te worden, ik heb zo'n vermoeden dat het niets meer was dan een ontwikkelingsfase, een testplatform voor de nieuwe delen, maar dat ze het spel later toch op de markt hebben gebracht, ondanks de afgeraffelde inhoud (er was volgens mij niet eens muziek!). Beroerde enemies die respawnen, slechtere animaties en dan het thema zelf... dromen? Het had echt niets met Commander Keen te maken.

Anyway, ik speculeer maar wat, kan ook de WiKi erbij gaan halen, maar soms is speculeren gewoon leuker :P

[Reactie gewijzigd door BruT@LysT op 23 juli 2024 03:13]

Keen Dreams was gemaakt omdat de Carmacks, Romero en Hall nog een openstaand contract bij Softdisk hadden toen ze er weggingen en ID software oprichtten.

Dus terwijl ze bij ID aan de mainstream Keen games werkten deden ze tegelijkertijd Keen Dreams voor softdisk. Eigenlijk was de codebase gewoon een fork en werden features erheen gepoort toen ze gemaakt werden in de 'echte' keen games en natuurlijk had het niet 100% de aandacht van wat de andere games kregen.
Gaat me niet om de smartphone versie, maar voor de pc versie. Gewoon oldschool á la vroeger.

Heb de ouwe Keen games op steam, maar na een tijdje raak je hier toch ook wel op uitgekeken... Men kan maar een X aantal keren iets herhalen voor t saai word..
Ik vond Goodbye Galaxy wel de beste delen denk ik. Al moet ik zeggen dat dit misschien meer door nostalgie komt omdat dit de 1e Keen is die ik heb gespeeld :) Verder leuk initiatief.
Ik heb redelijk wat warme zomerdagen op mijn kamer doorgebracht begin jaren '90 van de 20e eeuw. Gordijnen dicht, versterkertje met boxjes aan mijn geluidskaart voor een iets beter geluid (lees: geweldige synthetische Adlib-muziek en geluiden) en gaan met die pogo-stick :)

Voor de mensen die willen zien wie de muziek voor een aantal Commander Keens heeft gemaakt (Bobby Prince) is dit korte stukje interview (komt uit "A visit to Id Software") leuk om te zien dat er achter sommige liedjes een "verhaal" zit: https://www.youtube.com/watch?v=9w3yoIOK-9U (je ziet Bobby Prince hier achter zijn computer met MIDI-keyboard de muziek voor o.a. Commander Keen maken). Als je dit beeld erbij ziet geeft dat gelijk weer een extra nostalgisch gevoel.

Voor meer discussie over de broncode verwijs ik naar Reddit.

[Reactie gewijzigd door Tjeerd op 23 juli 2024 03:13]

Als iemand die ze allemaal op volgorde (behalve Keen Dreams dan, die heb ik als laatst gedaan) heeft uitgespeeld ben ik het wel met je eens hoor :). Vooral de The Armaggeddon Machine (deel 5) vond ik erg leuk om te doen. Maar Aliens Ate My Baby Sitter (6) was ook fantastisch.
sarcastic offtopic: Yes, over 4 jaar zullen we een HD versie op de PC, PS4, XB1 en WiiU kunnen spelen.

Ontopic: Wat een heerlijke throwback naar de jaren 90 :D
Ik snap sowieso niet, afgezien van de rechten, waarom er niet meer van dit soort oude games worden uitgebracht. De gameplay van veel oude spellen was goed en gezien veel mensen hersendode spellen als candy crush spelen moet er toch best wel een markt zijn voor deze oude games.
Ik wil weer rondscheuren in de Ferrari F40 in Testdrive 1, auto's tunen in Street Rod, flipperen in Pinball Dreams, de weg oversteken in Frogger of gewoon door de grond graven met Digger :) (ok, ik kan ook even dosbox opstarten)
Anoniem: 532744 @teek217 september 2014 16:41
GOG is leuk maar ze geven geen garantie dat het spel werkt op jouw systeem. Ze bieden ook geen ondersteuning bij problemen, en je krijgt ook je geld niet terug.
Sommige games draaien helaas niet op Windows 7.
uhmm, inderdaad draaien niet altijd alle spellen van gog.com op alle systemen maar je krijgt tegenwoordig wel degelijk je geld terug

http://www.gog.com/support/website_help/money_back_guarantee

4. How does it work?
If, within 30 days after the purchase of your game, you experience technical problems or game-breaking bugs that prevent you from finishing your game, contact our customer support. They will do their best to help you fix the problem and if, at the end of their attempts to solve the problem your game is still not working, we'll give you back your money.
Men hoeft oude games niet opnieuw uit te breiden omdat alle oude games met wat stuntwerk nog gewoon draaien.

Offtopic: itt de consoles :) Flame!
Inderdaad, maar het blijft verbazingwekkend dat de uitgevers niet met een minimale investering de games zo bundelen dat ze zonder stuntwerk weer aan het grote publiek te brengen zijn.

En wat ik nog veel leuker vind, is dat men b.v. zoals met OpenRA en Brutal Doom de klassiekers pakt en deze weer helemaal wat meer up to date brengt. (hogere resolutie support, modernere controls, nieuwe content en connectiviteit)
Dat is nog eens wat anders dan games die na jaren functionaliteit verliezen (ik kijk naar jullie Games voor Win Live & Square Enix :( )

Offtopic: Hoezo consoles niet? Ik kan prima de vorige gen emuleren op m'n gamebak hoor! :X
Alleen jammer dat er geen F40 in TD1 zat, maar een Testarossa. De F40 zat geloof ik wel in TD2 The Duel.
Inderdaad ja, je hebt gelijk, testarossa zat in td1, de f40 in td2 :)
Als je hier en daar in de code files bladert merk je dat ze in die tijd niet heel veel aan versie beheer deden.

The 1.93 source was lost a long time ago. Judging by 1.20, which is supposedly based off 1.93, this is probably the only change that was made


Op GitHub is de code, destijds geschreven in Borland C++, te compileren naar zowel een cga- als een ega-versie van de game.

Daarnaast weten ze blijkbaar ook niet meer hoe ze de code in die tijd compileerde want de code is geen C++ en de project file is een Turbo C Project file.

Die goeie oude tijd....
Wat dat betreft zat de complexiteit toentertijd in het leren kennen van je systeem dichtbij de hardware. Er was inderdaad geen versiebeheer (backups af en toe maken misschien), geen internet, geen 'standaarden', geen bibliotheken. Vrijwel alles zelf programmeren qua beeldaansturing, qua geluid en qua invoer afhandeling. Het op de markt brengen van je software was een stuk moeilijker en daardoor was de concurrentie relatief minder.

Daarentegen hoef je heden ten dage niet meer zo dicht bij de hardware te programmeren (OpenGL of DirectX bijv.), maar moet je wel aan versiebeheer doen. Komt er veel meer communicatie/internet bij kijken met de buitenwereld in je code en zit je niet meestal niet meer in een achteraf hokje te programmeren maar moet je van alle markten thuis zijn als ontwikkelaar. En je product op de markt zetten is vele malen eenvoudiger geworden sinds het inernet. Maar daardoor is de concurrentie ook moordender.

Mij klinkt die "goede oude tijd" wel "spannender" om te zijn opgegroeid, maar je moest wel ontzettend goede hersens hebben en wiskundig inzicht om het wiel uit te vinden. Waar je nu ontzettend veel tutorials en instructiefilmpjes en voorbeeldcode zo van het internet kunt plukken en je zonder veel moeite iets in elkaar zet.

[Reactie gewijzigd door Tjeerd op 23 juli 2024 03:13]

Ik heb Commander Keen drie jaar op mijn computer gehad, en ik bleef altijd vast zitten bij het stuk dat je een level moest kiezen, ik wist niet dat je met een bepaalde knop een level kon starten. Tot ik eens bezoek kreeg van iemand die in 1x een level startte, er ging een wereld voor mij open :p
Dat had ik met StreetRod (1 en 2) de vroegere NFS zeg maar.

Spellen waarbij je in het boekje moest zoeken naar de kleur van een auto en als het goed was dan kon je het spel spelen. Als je geen boekje had kon je met gokken redelijk snel in de game komen.
Op een gegeven moment had je dan een lijstje met kleuren en nummers.

Naast Keen mogen ze van Streetrod toch ook wel een remake maken hoor !
Street Rod is niet heel lang geleden als special edition uitgekomen en freeware, een nederlands bedrijf heeft de rechten gekocht. Een remake zijn zij ook aan het maken in een online vorm!!! Gratis download van de extra disks editie en originele: http://streetrodonline.com/ (ook voor nieuws updates over de online editie)

Overigens zit hier een heel erg leuk verhaal achter hoe de maker aan de zeldzame expansion disks is gekomen van street rod, aanrader om te lezen!

EDIT, paste van de readme:

Street Rod SE
=============
This is Street Rod SE (Special Edition) and features a standard Street Rod version with 25 replacement cars.

Changelog:
---------
1.0.0 (release date: 07/01/2014)
- Added Street Rod Car Data Disks.
- Removed copy protection screen.
- Fixed highlighting of the letter 'I' in first splash screen.

Credits:
-------
Luís Vasquez for finding the Data Disks.
Tiago Lopes for supplying the splash screen fix.

Contact:
-------
marco@streetrodonline.com
www.streetrodonline.com

[Reactie gewijzigd door Anoniem: 610862 op 23 juli 2024 03:13]

Zo hey, tijd voor een enorme nostalgietrip. Bedankt!
Bedankt voor deze info, u just made my day! Geweldig man, ik was 7 jaar toen ik streetrod speelde, en nu dit, gewoon extra auto's die we in 25 jaar niet gezien hebben!? Hoe ziek! En dan als klap op de vuurpijl zit de 1957 Plymouth Fury nu in de game. Ik vond Christine destijds geweldig, hoezo nostalgie ten top :D
Het voelt de laatste tijd alsof ik achteruit leef, alsof vroeger de toekomst was en ik terug ga naar het verleden.. ehhh mjah :P
StreetRod, daar noem je me wat. Dat is lang geleden. Hallo pink slips.

Ik geloof dat de kleuren ook zo werden gekozen dat ze slecht waren te kopieren met een kopieermachine.
Ik heb enorm genoten van de eerste 3 of 4 delen.
Vermakelijk, genoeg uitdaging. Ga even zoeken naar de Android versie. :*)
Commander Keen in Keen Dreams - Google Play :)

[Reactie gewijzigd door Ryan_ op 23 juli 2024 03:13]

De gratis variant in de Play Store is een ripoff?
Prachtig, C code die aan alle kanten pointer math toepast. Vroegah was leesbare code niet de norm, je werd geacht te snappen hoe je code low level te werk ging en dat ging zover als dat je snapte hoe de CPU zijn werk zou gaan doen. Het zit nog niet zo vol met inline assembly als ik zou verwachten, dat is bij source code van latere games (wolf3d, doom) toch wel even andere koek :)

Wat ben ik blij met moderne operating systems, high level programmeerplatformen en krachtige hardware zeg. Alhoewel iets werkend krijgen in die tijd wel een groter gevoel van overwinning gaf, tegenwoordig is het toch een veel kleinere prestatie.
Wat is er nu weer mis / niet leesbaar aan pointer arithmetic? Ja, je moet je even verdiepen in de programmeertaal die je gebruikt, maar ik gebruik het tegenwoordig nog steeds regelmatig. Scheelt aanzienlijk in de snelheid boven het gebruiken van allerhande high-level wrappers. Ik verwacht dat mensen die mijn code moeten weten ook gewoon fatsoenlijke kennis van de taal hebben, en goede commentaren en variabele-namen brengen veel meer leesbaarheid dan het vermijden van essentiële onderdelen van de taal, en komen bovendien de prestaties niet ten kwade.

Assembly erbij betrekken maakt het inderdaad nog wel weer een stuk lastiger en bovendien minder portable, dus dat is wat mij betreft een goed ding dat dat tegenwoordig eigenlijk niet meer gebeurt behalve in kernels e.d.

Op dit item kan niet meer gereageerd worden.