Wikisage is op 1 na de grootste internet-encyclopedie in het Nederlands. Iedereen kan de hier verzamelde kennis gratis gebruiken, zonder storende advertenties. De Koninklijke Bibliotheek van Nederland heeft Wikisage in 2018 aangemerkt als digitaal erfgoed.
- Wilt u meehelpen om Wikisage te laten groeien? Maak dan een account aan. U bent van harte welkom. Zie: Portaal:Gebruikers.
- Bent u blij met Wikisage, of wilt u juist meer? Dan stellen we een bescheiden donatie om de kosten te bestrijden zeer op prijs. Zie: Portaal:Donaties.
DIV Games Studio: verschil tussen versies
(https://nl.wikipedia.org/w/index.php?title=DIV_Games_Studio&oldid=42744881 Rincewind~nlwiki 3 jul 2007) |
|||
Regel 118: | Regel 118: | ||
== Externe links == | == Externe links == | ||
*[http://div-arena.co.uk Officiële website] | *[http://div-arena.co.uk Officiële website] | ||
<!-- http://www.quickiwiki.com/nl/DIV_Games_Studio --> | |||
{{Wikidata|Q798688}} | {{Wikidata|Q798688}} | ||
[[Categorie:Programmeertaal]] | [[Categorie:Programmeertaal]] | ||
[[Categorie:Computerspel]] | [[Categorie:Computerspel]] |
Huidige versie van 11 okt 2015 om 19:04
DIV Games Studio (ook wel DIV genoemd) is een programmeertaal speciaal gericht op het programmeren van computerspellen.
Het is een bundel met alles dat nodig is om een computerspel te maken, dus naast een compiler ook een IDE, tekenprogramma, geluidseditor enzovoort. DIV is ontwikkeld door Hammer Technologies en is uitgekomen in Spanje in 1998 (2000 voor Europa). Naast DIV 1 is er in 1999 (2003 voor Europa) ook een opvolger DIV 2 uitgekomen, met een aantal belangrijke verbeteringen over DIV 1.
Karakteristieken
DIV Games Studio is een semi-parallelle programmeertaal met een syntaxis die doet denken aan een kruising tussen Pascal en C++. Semi-parallel omdat de taal werkt met "processen" die 'tegelijkertijd' worden uitgevoerd. Procedurele functies zijn tevens mogelijk, maar de parallelliteit geeft over het algemeen zo'n ongelooflijk groot voordeel bij het programmeren van spellen dat er constant gebruik van wordt gemaakt. DIV is niet hoofdlettergevoelig, wat erg fijn werkt en tevens beginners het een stuk makkelijker maakt. DIV heeft standaard ingebouwde grafische functies, wat ervoor zorgt dat je meteen aan de slag kan en niet eerst op zoek hoeft te gaan naar een goede grafische library zoals bij talen zoals C++ en Java. Tevens heeft het ingebouwde functies voor geluid, tekst, rekenen, etc. Hoewel het niet benodigd is, heeft DIV wel de mogelijkheid uitgebreid worden met DLL's, die door gebruikers in C++ geschreven kunnen worden.
DIV is voor MS-DOS, en alhoewel het ook op Windows 95 en 98 werkt, werkt het niet op de Windows-versies daarboven, iets wat de taal uiteindelijk ook de das heeft omgedaan. DIV maakte gebruik van 256 kleuren (veel gebruikte DOS kleurendiepte), en om de te gebruiken 256 kleuren vast te leggen wordt er gebruikgemaakt van paletten. Programma's kunnen gecompileerd worden naar executables (.exe), die onder dezelfde besturingssystemen werken als DIV zelf. Alhoewel het feit dat er executables gemaakt worden anders doet vermoeden, is DIV een geïnterpreteerde taal en is daarom iets langzamer dan bijvoorbeeld C-programma's.
DIV voorbeelden
Hieronder een voorbeeld van een standaard lay-out van een DIV-programma:
Program Mijn_programma; Global //Globale variabelen Local //Lokale variabelen Begin Set_mode(m800x600); Set_fps(70,0); Mijn_process(); Mijn_process(); // Hoofdlus van het programma: Loop Frame; End End Process Mijn_process() Private //Private variabelen Begin Loop Frame; End End
Het "program" blok wordt altijd uitgevoerd zodra het programma gestart wordt, te vergelijken met main() van sommige andere talen (C++, Java). Binnen dat blok wordt er eerst de mogelijkheid geboden om globale en lokale variabelen te declareren en initialiseren. Globale variabelen kunnen overal gebruikt worden (zowel in "program" als in processen), en lokale variabelen zijn variabelen die elk proces standaard meekrijgt. Vervolgens begint het 'echte' programma tussen "Begin" en "End", keywords ook wel bekend van Pascal.
Met Set_mode() wordt eerst de resolutie van het spel op 800x600 gezet, en met Set_fps() wordt de framerate (in het voorbeeld 70) en frameskip (in het voorbeeld 0) van het programma vastgelegd. Vervolgens wordt er 2x het proces Mijn_process aangeroepen, waarna het hoofdprogramma blijft draaien door middel van een oneindige lus. Dit is nodig om het programma draaiende te houden, want zodra de "End" van het "Program"-blok bereikt wordt, is het programma afgelopen en stopt het.
Zoals te zien is in het Process Mijn_process blok, kunnen er eerst 'private' variabelen gedefinieerd worden, variabelen die alleen in het process zelf gebruikt kunnen worden. Vervolgens komt er ook in dit proces een oneindige lus, zodat het proces 'levend' blijft en niet afloopt.
Het "frame"-commando behoeft enige toelichting: het volgende beeld van het programma wordt pas weergegeven zodra er in elk proces en het "program"-blok een "frame"-commando is uitgevoerd. Op deze manier worden alle processen gesynchroniseerd. De semi-parallelliteit kan dus ook worden toegeschreven aan dat alle processen worden langs gegaan en de code tussen 2 "frame"-commando's uitgevoerd wordt in elk proces, en vervolgens wordt dit herhaald en wordt weer de code tussen 2 "frame"s per proces uitgevoerd voor het volgende beeldje, enzovoort.
Wat er in het voorbeeld gebeurt, is dat er eerst een Mijn_process wordt aangeroepen, dat blijft draaien, en vervolgens een tweede Mijn_process, dat ook blijft draaien. Na het aanroepen van deze twee processen draaien ze dus naast elkaar. In vergelijking: in een strikt procedurele taal zou Mijn_process worden uitgevoerd, en de 2e Mijn_process zou pas worden aangeroepen zodra de eerste Mijn_process zou zijn afgelopen.
Terwijl dit voorbeeld niets nuttigs doet, laat het goed de basisstructuur van een DIV-programma zien. Om te begrijpen waar parallelliteit nou goed voor is, kun je je bijvoorbeeld indenken dat het hoofdprogramma tien "vliegtuig"-processen oproept, die naast elkaar blijven bestaan. Elk van de processen draait dan bijvoorbeeld naar links als een ander vliegtuig te dicht bij komt. Dit zou op zijn minst gezegd behoorlijk vervelend zijn om procedureel te programmeren, maar in DIV is het zo gedaan. Juist omdat spellen bestaan uit autonome eenheden zoals vliegtuigen, voetballers, tanks, spelers, etc. die op elkaar reageren is het zo handig om ze ook als onafhankelijke parallelle processen te beschrijven, met ieder hun eigen regels die tegelijkertijd worden uitgevoerd.
Geschiedenis
DIV 1
Een Spanjaard genaamd Daniel Navarro Medrano droomde ooit over een programma om computerspellen te ontwikkelen voor de pc, een programma dat alle specifieke kenmerken had om op een zo handig mogelijke manier spellen te creëren. Dit plan werd ten uitvoer gebracht als studieproject van Daniel. Hij heeft DIV in ongeveer 6 maanden ontwikkeld.
Het begon allemaal met het idee een nieuwe programmeertaal te ontwikkelen, een taal speciaal voor het ontwerpen van games. Veel ideeën werden daartoe door Daniel overwogen en alle bestaande programmeertalen werden grondig onderzocht, op zoek naar een nieuwe benadering voor het maken van spellen. De taal moest begrijpelijk zijn voor beginners, maar ook genoeg te bieden hebben voor professioneel gebruik.
Daniel heeft onder andere gekeken naar de gemeenschappelijke kenmerken van videospellen die verschillen van de kenmerken van 'normale' programma's, en heeft zijn taal daar speciaal op toegericht om het maken van games zo makkelijk mogelijk te maken. Overeenkomsten die hij gevonden heeft waren onder andere het gebruik van graphics, het programmeren van bewegingen, video, het toevoegen van geluiden, enzovoort.
DIV games studio moest meer worden dan een programmeertaal: een grafische ontwerpomgeving waar je, naast het programmeren, ook je eigen plaatjes mee kon maken met het ingebouwde tekenprogramma, je eigen geluiden kon laden en opnemen, je eigen lettertypes en paletten kon samenstellen, explosies kon genereren, etc. Kortom, alles wat je nodig hebt om een spel te maken in 1 pakket. Vandaar ook het woord "studio" in de naam.
En na twee jaar hard werk door Daniel en een groep anderen (om het project commercieel vatbaar te maken) is het er eindelijk van gekomen, in 1998 lag DIV 1 in Spanje in de winkels, uitgegeven door Hammer Technologies. Het was een daverend succes, mede door de lage prijs van 4995 peseta (≈ 30 euro).
Op het internet verschenen veel onofficiële sites over DIV, men besprak DIV in nieuwsgroepen, begon samen aan spellen en wisselde programma's en trucs uit. Dit nog allemaal in het Spaans.
In 2000 werd DIV door de Engelse uitgever Fasttrak in Engeland uitgegeven, waar het evenveel succes boekte als in Spaanstalige landen. Tevens werd het door lokale uitgevers uitgegeven in Nederland, Frankrijk, Duitsland, en andere landen. In Nederland was het een stuk minder goedkoop: 129 gulden. Hoewel dit duurder was dan in andere landen, verkocht het in Nederland niet slecht, mede omdat het hier bij winkels zoals de Free Record Shop in de schappen lag.
DIV 2
In de herfst van 1999 bracht Hammer Technologies in Spanje een opvolger uit van DIV, genaamd DIV2. Omdat DIV 1 pas in 2000 voor de niet-Spaanse landen was uitgekomen, kon men niet meteen DIV2 erachteraan uitgeven. Omdat DIV1 een aantal concurrenten had gekregen, zoals Blitz Basic en DarkBASIC, was Fasttrak van plan om DIV 2 om te zetten naar een versie voor Windows (die ook op Windows XP werkte), en tevens om 16 bit kleuren te ondersteunen. Ook was er het idee om een 2e cd mee te geven met DIV 2 met spellen geprogrammeerd in DIV door DIV-gebruikers, om zo kopers van DIV 2 te laten zien wat er mogelijk was. Men kon hiertoe spellen aan de beheerder van DIV-Arena (online gemeenschap voor DIV) sturen. Het bleek uiteindelijk dat een 2e cd niet ging lukken, en er werd alleen gebruikgemaakt van de overgebleven ruimte op de 1e cd, wat resulteerde in dat er maar een paar spellen van de gemeenschap op kwamen te staan. Ook het plan om DIV2 op Windows te laten werken en om 16 bit kleuren te ondersteunen viel in het water, en in 2003 lag er een Engelstalige DIV 2 in de Engelse schrappen. DIV 2 werd niet uitgegeven in Nederland, maar via online winkels was het toch te bestellen.
DIV2 werd met gemengde reacties ontvangen, en alhoewel het verkoopsgewijs eveneens een succes was, zaten er een aantal vervelende bugs in, zoals een bug met het geluid dat op sommige pc's niet werkte of raar deed. De meeste mensen hadden gelukkig nergens last van, en waren dik tevreden met de uitbreiding.
Met DIV2 werd voortgebouwd op DIV1, de uitbreiding bestond uit 130 nieuwe commando's. Bijvoorbeeld 'mode 8', een semi-3D modus om semi-3D spellen te maken. Tevens was er een 3D level editor in DIV2 ingebouwd, evenals een 'character generator' waarmee je heel makkelijk mannetjes kon maken om in je spellen te gebruiken. Ook waren pathfinding functies nieuw, die erg handig waren om units in spellen hun weg om obstakels heen te laten vinden. Tevens waren er 'teken'-commando's aan de taal toegevoegd, waardoor je met code bijvoorbeeld lijnen, cirkels en boxen op het scherm kon tekenen. Ook kon je nu jpg, bmp en pcx plaatjes importeren, en waren er commando's toegevoegd om plaatjes op te slaan en te laden. Ook waren er nieuwe muiscommando's, een nieuw geluidssysteem dat het toestond audio-cd's af te spelen met DIV, evenals mod, s3m, en XM geluidsbestanden. Ook waren er netwerkcommando's aan DIV2 toegevoegd, zodat er netwerkspellen geprogrammeerd konden worden. Het was niet mogelijk internetspellen te programmeren (maar dat was logisch, aangezien DIV2 nog steeds DOS-gebaseerd was).
DIV DX en dood van de taal
Fasttrak, het bedrijf dat DIV en DIV 2 in Engeland uitgegeven had, had inmiddels aangekondigd de wereldwijde rechten op DIV van de ex-werknemers van Hammer Technologies overgenomen te hebben. Hammer Technologies zelf was inmiddels om onbekende redenen failliet gegaan, en omdat veel DIV'ers bezorgd waren over het voortbestaan van DIV gaf Daniel Navarro Medrano, de maker van DIV, op een gegeven moment de broncode van DIV 2 vrij op internet. Hieruit ontstonden een aantal projecten door gebruikers die ermee verder gingen, onder andere Freediv, Ediv en Cdiv. En al een tijdje eerder waren mensen met het Fenix-project begonnen, ook een op DIV gebaseerde taal.
Fasttrak, dat geprobeerd had om DIV 2 naar Windows en 16 bit kleuren te porten voordat de Engelse versie zou worden uitgegeven maar wat mislukt was, had nu de rechten op DIV in haar bezit en een kans om met de poging verder te gaan en een nieuwe DIV-versie uit te geven. Eerst heette dit project DIV Windows, later DIV Win en uiteindelijk DIV DX. Mike Green, de beheerder van DIV-ARENA (DIV gemeenschapssite) en werknemer van Fasttrak, was de enige die aan dit project werkte. Hij werd er niet door Fasttrak fulltime opgezet omdat hij eigenlijk webdesigner was, en daarom moest hij voornamelijk in zijn vrije tijd aan DIV DX werken.
DIV zelf was inmiddels gebruikers aan het verliezen, omdat men één voor één de overstap maakte naar Windows XP waar DIV en DIV2 niet meer op werkten. Een van de DIV-gebruikers was met een slimme dll gekomen die DIV-spellen met de resolutie van 320*240 wel op Windows XP liet werken, maar dit mocht niet baten omdat de meeste spellen hogere resoluties gebruikten.
Mike Green had intussen een 'worklog' opgezet waar mensen zijn vooruitgang met de ontwikkeling van DIV DX konden volgen, en alhoewel het in het begin veelbelovend leek – hij was aan het werk aan een IDE voor DIV – ging het er steeds meer op lijken dat het project nooit af ging komen. Het was al in 2001 begonnen als aanpassing van DIV2, maar zelfs in 2005 was DIV DX nog niet eens in de buurt van compleetheid. Het duurde allemaal iets te lang, en dat terwijl er oorspronkelijk aan DIV2-gebruikers was toegezegd dat ze DIV Windows gratis zouden krijgen omdat de Windows-compatibiliteit eigenlijk in DIV2 had moeten zitten. En omdat iedereen eigenlijk op Windows XP was overgestapt en dus niemand meer in DIV programmeerde, raakte men best wel gefrustreerd dat DIV DX maar niet uitkwam.
Op een gegeven moment in 2005 was DIV-Arena, de gemeenschapssite waar ook ontwikkelingen van DIV DX werden gemeld, opeens verdwenen. Voor een tijdje stond er op de site een boodschap dat de site spoedig terug zou zijn, maar dat gebeurde niet. Uiteindelijk is ook deze boodschap van de site verdwenen.
Dat was het eind van DIV DX. Later werd nog bekend dat Fasttrak verkocht was aan Avanquest Multimedia, een andere uitgever, en dat DIV DX voorlopig niet afgemaakt zou worden. Mike Green, de ontwikkelaar van DIV DX en werknemer bij Fasttrak, nam in 2007 ontslag bij Avanquest Multimedia. Hiermee blijven de rechten van DIV bij Avanquest achter, een groot bedrijf dat waarschijnlijk niet eens weet dat het de rechten op deze programmeertaal bezit.
Een verdere toekomst zit er voor DIV waarschijnlijk niet in, behalve als iemand de rechten op DIV bij Avanquest weet weg te halen.
Online gemeenschap
Toen DIV door Fasttrak Publishing in Engeland werd uitgegeven in 2000, heeft Fasttrak tevens een Engelstalige gemeenschapssite opgericht voor DIV, "DIV-Arena" (voorheen te vinden op div-arena.com, div-arena.co.uk en divgamesstudio.com). Deze site ontwikkelde zich tot het internationale trefpunt van DIV-programmeurs, alhoewel de meeste mensen op de site uit Engeland en Nederland kwamen.
DIV-ARENA was een communitysite met honderden mensen die elkaar hielpen op een forum. Als men een vraag had, kon men altijd op hulp rekenen op het forum, en op deze manier werd programmeerkennis erg aangescherpt omdat men geholpen werd en er discussies van anderen over programmeeronderwerpen te volgen waren. Tevens was het voor iedereen mogelijk om zijn of haar spel naar een van de game-galerijen te uploaden zodat andere mensen die spellen konden downloaden, beoordelen en becommentariëren. Op deze manier hadden de programmeurs een 'publiek', wat motiverend werkte bij het maken van spellen. Spellen werden ook altijd enthousiast ontvangen, en sommige spelprogrammeurs werden praktisch aanbeden omdat zoveel mensen hen bewonderden om hun spellen. Zo werden ook jonge programmeurs gestimuleerd en geïnspireerd door de creaties die oudere/meer ervaren programmeurs wisten neer te zetten. Alhoewel de meeste bezoekers tieners/twintigers waren, was er ook een vrij grote groep van 'ouderen' (mensen in de 30/40) die vroeger op hun antieke computer spellen geprogrammeerd hadden, bijvoorbeeld met AMOS/STOS (spelprogrammeersoftware voor de Amiga), en in DIV de perfecte opvolger zagen om verder te gaan met hun hobby. Zo ook de beheerder van de DIV-arena, die zijn wortels had in het programmeren van spellen voor computers van 20 jaar eerder.
Er was ook een DIV-chatroom (behorende aan DIV-Arena), een IRC-chatroom waar men programmeerproblemen en andere zaken besprak. Hier waren meestal wel rond de 10 mensen aanwezig op elk moment van de dag, en zo kon je nog sneller hulp krijgen dan op het forum van DIV-Arena.
Om de zoveel tijd werden er ook wedstrijden georganiseerd op DIV-Arena, waarbij Fasttrak prijzen beschikbaar stelde voor de winnaars. Het was een grote eer om in zo'n wedstrijd in de prijzen te vallen, en met prijzen zoals een nieuwe computer deden er ook veel mensen aan mee. Zelfs mensen die alleen een 'runner-up'-prijs wonnen werden hierdoor gestimuleerd.
DIV-Arena is samen met de taal ten onder gegaan. Heel veel van de DIV-gebruikers (en DIV-Arena-bezoekers) zijn overgestapt op Fenix, en zijn ook nog steeds samen in een andere online gemeenschap.
Opvolgers of 'kinderen' van DIV
Freediv, ediv en cdiv, op DIV gebaseerde talen die ontsprongen waren aan het vrijgeven van de code van DIV door de oorspronkelijke maker, zijn allemaal niet afgemaakt en zijn nooit serieus bruikbaar geworden. Cdiv is nog het verst gekomen, een C library om in C DIV-commando's te gebruiken.
Fenix daarentegen, een al in 2000 begonnen project om een gratis DIV-compiler te maken die zowel op Linux als Windows werkte, was in de loop der tijd erg ver gekomen. Fenix heette oorspronkelijk "DIVC", maar dat was al snel in "Fenix" veranderd. Jose Luis Cebrián was de bedenker van het project, en oorspronkelijk was het de bedoeling om alle DIV1-commando's ook in Fenix te implementeren. Dat lukte, de compiler werd volop ontwikkeld door Cebrián en naast het feit dat alle DIV1-functies geïmplementeerd werden, werd er ook begonnen met het implementeren van DIV2-functies. Fenix was, in tegenstelling tot DIV, een commandline compiler en had dus geen mooie ontwikkelomgeving, ingebouwde tekenprogramma's, sprite generator enzovoort. Het enige dat Fenix doet is code compileren, en dit schrok heel veel DIV-gebruikers af omdat ze niet begrepen hoe het precies werkte of het te veel moeite vonden om uit te vinden. Uiteindelijk is dit voor Fenix-gebruikers helemaal niet zo erg – het geeft ze de mogelijkheid om in Windows je eigen IDE/editor te kiezen, en snel te wisselen tussen hun favoriete Windows-tekenprogramma's en hun Fenix-editor, het grote voordeel van een Windows-omgeving.
Fenix was tevens uitgebreid met allerhande dingen die niet in DIV 1 of DIV 2 voorkwamen. Naast dat Fenix natuurlijk 16 bit kleuren ondersteunde en in Windows werkte, waren allerlei commando's uitgebreid met extra parameters, waren er nieuwe commando's en lokale variabelen toegevoegd en bleek Fenix torenhoog boven DIV 2 uit te steken. Ook was Fenix veel sneller dan DIV ooit was daar het op SDL gebaseerd was, wat ook de mobiliteit van Fenix vergrootte.
Fenix werkt heden ten dage onder andere op Windows, Linux, Macintosh, BeOS, BSD, de Dreamcast (console), PlayStation 2 (console), de GP32 (handheld console) en de GP2X (handheld console). Dit maakt het ook voor Linux-programmeurs heel aantrekkelijk om in Fenix te ontwikkelen, en Fenix is tevens extreem populair in de GP2X-scene.
Zie ook
- Fenix Project (taal gebaseerd op DIV)
- Lijst van programmeertalen