Results 1 to 8 of 8

Thread: Welke technologieën voor onze game?

  1. #1
    HB Forum Owner Spirit Of Atlantis's Avatar
    Join Date
    March 18th, 2004
    Posts
    12
    Follows
    0
    Following
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)

    Post

    Ik dacht dat het misschien wel handig zou zijn als we de soorten technologie?n waarmee men games kan maken op een rijtje zouden zetten, zodat we een overzicht hebben en daaruit kunnen bepalen welke richting we op willen.
    Ik weet ze zo niet allemaal uit mijn hoofd, dus als jullie nog dingen willen toevoegen...feel free to do so.

    Er zijn voor zover ik zo kan bedenken een aantal globale soorten approaches om een game te designen, welke denk ik grofweg te verdelen zijn in:

    <font size="4">1) 3D Games</font>
    De technologie?n, welke hiervoor beschikbaar zijn, om zulke games te maken zijn er nogal wat, maar ik zal proberen er zoveel mogelijk op te noemen, maar zoals ik al zei, als iemand anders nog andere dingen weet, feel free to add.

    1.1 De professionele manier:
    a) OpenGL (Open Standard)
    b) DirectX (Closed Source)
    c) SDL (Open Source) (SDL is een library zoals DirectX, maar dan Open Source)

    Deze 3 API's/Libraries(programming) worden vaak gebruikt om de grafische engines te maken, daarnaast kan men onderdelen uit DirectX en SDL ook gebruiken om de audio-engine van de game mee te programmeren, de input(keyboard) en bijvoorbeeld networking voor multiplayer games en nog een aantal andere zaken.
    Dus met DirectX en SDL is het mogelijk om gehele engines te schrijven.
    Het voordeel hiervan is, is dat je dan alles zelf in de hand hebt, tot in het kleinste detail.
    Het nadeel van het schrijven van een engine from the ground up is dat het vrij lang kan duren, zelfs met 20 man, maar dan heb je het over een full-fledged engine, die vrij veel mogelijkheden van moderne grafische kaarten gebruikt.
    We hebben tot(of t/m?) Januari, dus ik weet niet of we het zouden redden als we voor deze manier van aanpak kozen.

    1.2 De Open Source manier
    Een andere mogelijkheid is gebruik te maken van al bestaande Open Source full-fledged game engines.
    De 2 voornaamste die ik ken:

    a) Crystal Space :: website
    Dit is volgens mij eigenlijk meer een Development Kit(SDK) voor games en is dus volgens mij minder beperkend dan een game engine die al gereed is.
    Dit heeft als voordeel dat je vrij veel vrijheid hebt in het maken van de game, maar niet zoveel zoals bij het maken van een game engine van de ground up.
    Maar ook dit kan betekenen dat het maken van een game vrij veel werk is/kan zijn hiermee.

    Voorbeeld Screenshot:
    crystalspace5gkth

    b) (The) Nebula Device :: website
    Dit is een full-fledged C++ game engine met een vrij professioneel karakter.
    Omdat de game engine van tevoren al is vastgesteld heb je natuurlijk minder vrijheid in de looks van de game, maar daar staat wel tegenover dat je je dan volledig kan richten op het maken van de game zelf.
    Dit kan dus tijd besparend zijn, maar dit betekent denk ik niet dat het makkelijk zal zijn, want een game engine die je niet zelf gemaakt hebt, daarvan moet je waarschijnlijk eerst de code bestuderen, zodat je weet wat je moet doen om bepaalde resultaten te krijgen.
    Soms is zo'n engine meerdere 100k regels code, maar ik denk niet dat het nodig is elk stuk blindelings te kennen, maar toch wel enige bestudering en tests zullen wel nodig zijn mochten we hiermee aan de slag gaan.

    Voorbeeld screenshot:
    nebuladevice1dpth

    c) Sylphis3D :: website
    Dit is niet een superbekende engine, maar is wel een revolutionaire engine, welke gebaseerd is op het concept dat men een game moet zien als een operating system en bijvoorbeeld karakters in die game als processen.
    Om de engine te gebruiken wordt Python als voertaal gebruikt, dat zou misschien een nadeel kunnen zijn omdat misschien niet veel mensen in de groep deze taal beheersen, ik beheers het zelf ook niet, maar aangezien het een script-style-achtige taal is zoals PHP of Perl is het misschien vrij snel onder de knie te krijgen.
    Dus als we een revolutionaire high-tech game zouden willen neerzetten dan zou dit misschien een optie zijn.
    Maar ik weet hier in ieder geval vrij weinig nog van, het is splinternieuw en ik weet niet of de documentatie en community support al echt op gang is gekomen, dus dat zou moeilijk kunnen worden, maar ik heb de engine toch maar even genoemd om toch een beetje te proberen een volledige lijst neer te zetten.

    Voorbeeld screenshot:
    sylphis3d20mfth

    1.3 Voormalige/Huidige Closed Source engines
    Er is ook nog een mogelijkheid om bestaande of voormalige closed source engines te gebruiken, zoals bijvoorbeeld de onlangs vrijgegeven Quake III engine.
    Ik heb de source code bekeken en dat zag er vrij pittig uit.
    Het vergt wel wat bestudering denk ik en het aantal regels code was niet mis, 300000+.
    Maar het is een optie.

    a) Quake III engine
    b) ...En dergelijken.

    1.4 Game mods
    Ik weet niet of het toegestaan is voor de Game Design minor, maar misschien mag je zelfs een game modden, zoals bijvoorbeeld Unreal 2, maar of je van modden echt leert om een game te maken, hmmmm...er moet dan waarschijnlijk wel veel gemoddeld(3DS Max/Maya) worden en gescript.

    1.5 Game design software
    Voorbeelden hiervan zijn.

    a) Game Maker :: website
    Hier werd in de les door de leraar ook al over gesproken.
    We krijgen hier ook nog een workshop van als ik me niet vergis.

    Voorbeeld screenshot:
    gamemakerinterface0xxth

    b) Game Studio (niet gratis) :: website
    Dit is een software pakket waarmee je vrij professioneel uitziende 3D games kan maken.
    Ik heb het nooit gebruikt, maar ik zet het hier toch maar neer voor de volledigheid.
    Tevens is het niet gratis zoals de andere opties.

    Voorbeeld screenshot:
    gamestudioneon3bgth

    1.6 Shockwave games
    Wat ook een mogelijkheid is, is om de 3D game te creeeren in Macromedia Director en dan te laten runnen in Shockwave.

    Director heeft namelijk een DirectX 7(vrij oud) API waarvan je gebruik kan maken via Lingo(de taal waarmee je in Director scripts schrijft)
    Wat ik persoonlijk een nadeel vind aan deze optie is dat Lingo script naar mijn mening een vrij ongebruikelijke syntax heeft waar niet veel mensen aan gewend zijn, ik ben er in ieder geval nog niet aan gewend en dat maakt het vrij lastig werken.

    Voorbeeld screenshot:
    shockwaveoversize0il

    1.7 Java3D/Java openGL games
    Ik denk dat de meeste mensen dit soort games wel kennen van het internet of van mobiele telefoons.
    Het zijn de 3D games die afgespeeld worden in een Java-applet waarbij gebruik gemaakt wordt van de Java3D API.
    Onlangs heeft Java er in versie 1.5 ook een openGL API bij gekregen, dus daar kan men tegenwoordig ook gebruik van maken.
    Als ik me niet vergis is QuakeIII zelfs een keer nagemaakt met Java, zodat het in een java applet in multiplayer mode te spelen was in een internet browser, waarbij gebruik werd gemaakt van de Java3D API, omdat openGL toendertijd voor Java nog niet beschikbaar was, wat dus naar mijn mening vrij indrukwekkend was van degene die dat voor elkaar heeft gekregen.(Java3D staat niet bekend als een goede 3D library)
    De game hoeft niet als applet geprogrammeerd te worden maar kan ook gecompiled worden naar een soort van java executable bestand.
    Ook is het zo dat iedereen die de game wil spelen de Java Runtime Environment geinstalleerd moet hebben.


    <font size="4">2) 2D Games</font>

    Ook 2D games zijn natuurlijk met verschillende technieken te maken/ontwikkelen.


    2.1 De professionele manier:
    a) OpenGL (Het 2D gedeelte)(Open Standard)
    b) DirectX (DirectDraw) (Closed Source)
    c) SDL (Het 2D gedeelte) (Open Source)

    Hiermee kan je zelf een grafische 2D engine en/of een game engine schrijven.

    2.2 De Open Source manier
    We zouden eventueel net als bij 3D games Open Source 2D game engines kunnen gebruiken om de game te maken.
    Hier zijn er denk ik meer dan genoeg van te vinden.

    2.3 Game design software
    Een voorbeeld hiervan is.

    a) Game Maker :: website


    2.4 Shockwave based games
    Een andere mogelijkheid is om met Macromedia Director een 2D Shockwave based game te maken, Director leent zich hier vrij goed voor.

    2.5 Flash based games
    Ik denk dat iedereen deze games wel kent of ooit eens gespeeld heeft op internet.
    Het zijn gewoon games gemaakt in Macromedia Flash, de graphics zijn vector graphics en de gebruikte scripttaal is ActionScript.

    2.6 Java based 2D games
    Ook met Java kan je vrij makkelijk 2D games maken, zowel in applet vorm als (java)executable vorm.

    2.7 ASCII based shell/console/commandprompt games
    Dit zijn games die vroeger veel werden geschreven voor DOS en dergelijken.
    Deze zijn text-based/ASCII-based, soms nog wel leuk, maar grafisch niet echt indrukwekkend.
    Meestal voldoen hier de bijgeleverde native C en C++ Standard Libraries al om deze games te maken.

    <font size="4">De Tools</font>

    Als we een 3D game zouden gaan maken, zouden we voor het moddeleren/texturen/animeren van de 3D models onder andere 1 of meerdere van deze applicaties kunnen gebruiken:

    3D Paketten:
    a) 3DS Max
    b) Maya
    c) LightWave
    d) Softimage|XSI
    e) Houdini
    f) Blender
    g) ...En vele anderen

    Het voordeel van Blender is, is dat het gratis is en een interne game engine heeft.
    Een nadeel is, is dat Blender een vrij non-intuitieve GUI heeft voor mensen die ermee beginnen te werken, alles wordt met hotkeys gedaan en veel features zitten verstopt.
    Ook is het nog niet echt een game-industriestandaard zoals bijv 3DS Max of Maya.
    Mijn favoriet is Maya en dat is ook een opkomend pakket voor games(Naast de positie die het al heeft in de high-end CGI industrie)
    Maar 3DS Max wordt het meest gebruikt om models voor 3D games te maken.

    2D Paketten:
    a) Photoshop
    b) Painter
    c) The GIMP (gratis)
    d) Adobe Illustrator (vector-based)
    e) ...En nog vele anderen, teveel om op te noemen eigenlijk, maar met photoshop kom je al een heel eind.(Texture painting etc)

    Vector Software:
    a) Macromedia Flash
    b) Macromedia Director
    c) Adobe Illustrator
    d) ...En nog een aantal anderen.

    Programmeer Tools:
    a) DEV-C++ :: Download
    Gratis Open Source C en C++ IDE(Integrated Programming Environment).
    Heeft eigenlijk alles wat je nodig hebt, Standard Libraries, gebruikt de GCC compiler en linkt object files.

    b) Visual Studio C++/.NET
    Is een mogelijkheid om te gebruiken, via Saxion kan een studentenlicentie voor 20 euro worden aangeschaft en dan krijg je Visual Studio C++/.NET Pro en de MSDN libraries.(Heb hier zelf nog geen gebruik van gemaakt, ik wacht tot VS 2005 Pro uit is)

    c) Notepad++ :: Download
    Ik gebruik het zelf, gewoon handig omdat het syntax highlighting heeft en gratis is en te koppelen is aan GCC.

    d) GCC
    Industriestandaard C/C++ compiler. (Tevens gratis)
    Voor degenen die liever niet met een IDE werken maar hun code bijvoorbeeld schrijven in Notepad++.(Doe ik soms ook, IDE's zijn vaak vrij zwaar op het systeem, DEV-C++ en JCreator vallen dan wel weer mee op dit gebied.)

    e) JCreator :: Download
    Een (gratis) Java IDE, doet alles wat je nodig hebt om Java based dingen te programmeren.

    f) Eclipse :: Download
    Is een professionele Open Source Java IDE ontwikkeld met hulp van IBM en is als ik me niet vergis op het moment de industriestandaard voor Java-based programmeren. Met plug-ins kan je het ook modden voor andere talen zoals C++.


    Ik denk dat het meeste, zoniet alles, wat hier staat, dat jullie dat waarschijnlijk al wel kennen.(Kennen in de zin van er al eens over gehoord te hebben of erover gelezen te hebben of het zelfs al eens gebruikt te hebben)
    Maar ik dacht, ik zet het toch maar voor de handigheid allemaal even op een rijte.
    Ook als er mensen zijn die misschien niet zo bekend zijn met deze dingen, dan denk ik dat dit toch misschien handig van pas zou kunnen komen.
    Als mensen hier iets aan willen toevoegen, feel free to do so.
    En als jullie al ideeen hebben over wat voor een game jullie willen(2D/3D/Vector?) of welk type game jullie in gedachten hadden(RTS, FPS, RPG, Etc?), dan is het misschien handig om die op het forum te posten dan kan iedereen van onze groep het ten alle tijden lezen.(Mits de hostboard servers en/of DNS(tk) servers niet down zijn tenminste)


    -
    David

    <font color="#a62a2a" size="1">[ September 20, 2005 02:53 PM: Message edited by: Spirit Of Atlantis ]</font>

  2. #2
    Inactive Member Ronald_Enschede's Avatar
    Join Date
    September 21st, 2005
    Posts
    12
    Follows
    0
    Following
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)

    Post

    Ik heb zelf wel gehoord van veel termen, maar heb geen ervaring met programmeren of werken in de programma's. Ik heb echter wel ervaring met het 3D modelleren in Solid Works. Vanuit dit programma kan gecoverteerd worden naar formaten die 3Dmax en maya bijvoorbeeld ook kennen. Vorig jaar heb ik een beetje kennis opgedaan over Maya en 3DSMax, en 2 jaar geleden iets met Rhinoceros.

    Ronald

  3. #3
    Inactive Member Qnarf's Avatar
    Join Date
    September 21st, 2005
    Posts
    17
    Follows
    0
    Following
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)

    Post

    jah ik heb hetzelfde een beetje als Ronald. Dit is natuurlijk omdat wij dezelfde studie doen [img]biggrin.gif[/img] maar ik ben Game Design gaan doen om meer te leren over het programmeren. Maar ook ik heb wel over veel termen gehoord.

  4. #4
    HB Forum Owner Spirit Of Atlantis's Avatar
    Join Date
    March 18th, 2004
    Posts
    12
    Follows
    0
    Following
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)

    Post

    Ik heb zelf ook nog niet genoeg C/C++ programmeerervaring om een 3D game te programmeren, maar dan wel weer veel ervaring met 3DS Max en Maya.
    1 van mijn mindere vaardigheden is audio.
    Wat we zouden kunnen doen is, dat de mensen die bepaalde dingen goed beheersen(Zoals, Programmeren, Audio, 3D Art) hun vaardigheid uitleggen aan anderen welke het minder of nog niet beheersen.
    Of we kunnen ook kiezen voor een aanpak waarbij iedereen bij zijn eigen vaardigheid blijft en dat gebruikt in het maken van de game.
    Ikzelf zou eigenlijk wel alle aspecten van het maken van een 3D-game willen leren.
    Of we moeten hopen op dat we nog een aantal goede lessen/workshops krijgen waarin veel wordt uitgelegd.

    Ik hoop dat de leraar nog een beetje gaat uitleggen hoe het algemene raamwerk van veel games is opgezet.
    Ik weet bijvoorbeeld dat veel games een game-loop(Engels) bevatten, deze game-loop is een soort stuk code dat zich telkens opnieuw en opnieuw herhaalt en wacht op "events"(input van de gebruiker) en als een event plaats vindt(gebeurt), dan kan de grafische engine daarop reageren en dan ziet men wat er op het scherm gebeurt en zo ontstaat dan interactie tussen beeld en mens.
    Maar hoe dit precies allemaal in detail in elkaar zit, dat weet ik ook nog allemaal niet en hoe bepaalde libraries aan elkaar gekoppeld moeten worden om deze samen te laten werken moet ik ook nog uitzoeken.(zoals openGL-library-elementen laten reageren op event-library-elementen).
    Ik hoop dat we daar nog wat over gaan krijgen in de lessen.
    Anders vraag ik dat voor de zekerheid Donderdag aan de leraar, dan zal ik direct vragen wat voor dingen we zoal gaan leren en dan weten we een beetje waar we aan toe zijn.

    <font color="#a62a2a" size="1">[ September 21, 2005 04:07 PM: Message edited by: Spirit Of Atlantis ]</font>

  5. #5
    Inactive Member nostro's Avatar
    Join Date
    September 26th, 2005
    Posts
    10
    Follows
    0
    Following
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)

    Post

    Ik heb verder in ieder geval weinig programmeerervaring. Ooit in een grijs verleden eens met blender geknoeit, maar daar ben ik niet veel wijs uit geworden. Ik hoop inderdaad ook een beetje op wat David zegt, workshops of iets in die richting...

  6. #6
    Inactive Member windel's Avatar
    Join Date
    September 20th, 2005
    Posts
    16
    Follows
    0
    Following
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)

    Post

    Gametype

    Wat betreft het game type, ben ik voor 3D. Ik denk dat we een kant en klaar pakket moeten downloaden, in elk geval een ready to use pakket waar we zelf zo min mogelijk aan hoeven te klooien. Zoiets als crystal space ed.

    Mijn ervaring
    Ik heb zelf ooit met openGL een MS3D model geladen en laten weergeven. Vanaf dat moment zakte de moed me in de schoenen, vandaar dat ik ertegen ben op het wiel opnieuw uit te vinden.

    OS
    Ik draai thuis linux, dus het zou GrEaT zijn als we iets open source achtigs, of sobiezo iets linux compatible nemen.

  7. #7
    HB Forum Owner Spirit Of Atlantis's Avatar
    Join Date
    March 18th, 2004
    Posts
    12
    Follows
    0
    Following
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)

    Post

    Ik heb Crystal Space gedownload om eens te kijken hoe het en elkaar zit.
    En het blijkt dat het werkt via CVS, CVS staat voor "Concurrent Versioning System".
    Dit heeft zowel een voordeel als nadeel.
    Een concurrent version system is een soort client server model waarin de broncode van een computer programma centraal op een server wordt opgeslagen, zodat iedereen die een CVS-client heeft in kan loggen op die server en simultaan kan werken aan de broncode.
    Dit is handig voor ons, zo kan iedereen, die kan programmeren simultaan(of juist niet) aan de code werken.
    Maar dit heeft ook een nadeel, in ieder geval voor mij...ik heb nog nooit met CVS gewerkt.
    En het kan best zijn dat meer mensen in de groep nog nooit met CVS gewerkt hebben.
    Het is wel de industrie standaard...iets van 50%+ van alle software is geschreven met behulp van CVS, maar ikzelf kan er nog niet mee werken, ik heb de CVS client al wel vast gedownload en geinstalleerd en even de broncode van Crystal Space ermee bekeken, maar verder dan dat ben ik niet gekomen. Ik heb geen CVS-server opgezet.
    CVS is er zowel voor Windows als Linux, maar de Windows versie heet winCVS.
    Ik denk dat als we met crystal space gaan werken, dan kan dat denk ik bijna alleen via CVS, omdat het een open source CVS project is.
    Maar misschien kan het ook gewoon direct via een IDE zoals Visual Studio C++ of Dev-C++, maar dat heb ik nog niet uitgezocht.
    Of we een 2D of 3D game gaan maken, ik denk dat we er niet aan kunnen ontsnappen veel te moeten programmeren of scripten, tenzij we een game maken met een programma zoals Game Maker.

    Ik denk dat ik ook nog ga uitzoeken of er ook met Subversion(SVN) aan de broncode gewerkt kan worden in combinatie met TortoiseSVN.
    Subversion of SVN is de opvolger van het CVS protocol/systeem en volgens mij iets moderner en gebruiksvriendelijker.
    Maar ook hier heb ik nog nooit mee gewerkt, ik weet alleen toevallig dat (professionele en open source) programmeerteams aan het overstappen zijn van CVS naar het nieuwe SVN en als Crystal Space of welke engine we ook gaan gebruiken ook met SVN overweg kan dan lijkt me dat handiger dat we SVN gebruiken ipv CVS, omdat dat wellicht makkelijker te leren is en dan is onze kennis ook weer direct up to date met het nieuwste van het nieuwste.
    Het klinkt misschien allemaal wat vaag dit, maar het schijnt de manier te zijn waarop men (in teams) met Open Source broncode werkt en ik weet zelf (nog) niet zeker of CVS/SVN de enige manieren zijn om dit te doen, want als we het(CVS/SVN) niet hoeven te gebruiken zou dat ons tijd kunnen besparen, omdat we anders dat ook nog weer onder de knie moeten krijgen om met die open source engines(2D/3D) te werken.

    PS: Trouwens, de vorige week vertelde de leraar dat we 2 games moesten maken en dat we voor de 1ste game 6 weken hadden.
    De leraar trok ook lootjes met onderwerpen voor de game en het uit die trekking kwam dat elke groep een game moet gaan maken met als onderwerp: Eten.
    Voor de 2e game hebben we 9 weken.
    Maar ik denk dat iedereen dat wel mee had gekregen.

    PPS: @Windel, volgens mij is Crystal Space inderdaad cross-platform, dus ook geschikt voor Linux.
    Welke distributie draai je trouwens?

    <font color="#a62a2a" size="1">[ September 26, 2005 09:43 PM: Message edited by: Spirit Of Atlantis ]</font>

  8. #8
    Inactive Member windel's Avatar
    Join Date
    September 20th, 2005
    Posts
    16
    Follows
    0
    Following
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)

    Post

    Okee, ik ga ook even naar crystal space kijken. Ik zal het downloaden via cvs. Maar cvs is volgens mij niet zo moeilijk. Het is alleen maar elke keer weer update en commit acties zodat je up to date blijft met de rest.

    Ik draai Kubuntu 5.10 de breezerige badger.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •