Archief - [PROG] C++ leren -> mmorpg

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

wlibaers

Legacy Member
Vich zei:
wlibaers zei:
Met VB beginnen? :p
Ehm? Dus als je leert programmeren vanaf nul, dan kan je ook niét beginnen vanaf nul door met VB te beginnen? Da's vrij krom hoor. VB moet je toch ook vanaf nul leren?

Ik zat gewoon verkeerd te quoten :$
Eigenlijk was dat VB-idee gewoon om iets voor te stellen dat velen nog erger zouden vinden dan te beginnen met C. Het had helemaal niets te maken met die tekst die erboven stond.

Blood_Raven

Legacy Member
Weet je je pakt de structuur mee.
Dus wanneer je een nieuwe taal begint te leren dan weet je hoe een for lus zich gaat gedragen, if statements. Je weet hoedat een AND en OR werkt.
Je weet hoedat je variablen moet gebruiken.
Dus deze moet je dan al niet meer leren behalve de syntax hoedat je die doet in de te leren taal.

steinerwarrior

Legacy Member
Dit is wat ik mee begonnen ben om te leren 3D Games te maken:

Basis - Intermediate

- Aan de slag met C++ (Laan, G.) : Voor mij best nederlands boek om C++ te leren als je niks van programmeren kent
-C# zonder stress : goed boek om een volledig casino spel te maken met animatie, geluid, ... en zeer makkelijk voor te lezen
-Beginning opengl game programming of Introduction to 3D game programming : boeken voor het leren van de API's OpenGL en DirectX en slechts 300 blz.Deze boeken leren je alleen Direct3D en niet DirectSound, Netwerk ....
-3D Game Engine Architecture 2nd Edition: In dit boek leer je een game engine opbouwen met alles erop en eraan: SOund, Graphics, Netwerk, ...
-Programming a FirstPersonShooter in DirectX: Leer je een volledige game engine maken en daarbij ook een spel.

Daarna:

-Game Programming Gems (1-5)
-Trick of the 3D game programming Gurus
-Programming Vertex and Pixel Shaders
-Real-Time Rendering
Deze boeken gebruik je om Special Effects, Shaders, Geavenceerde technieken aan je games toe te voegen zoals ze in de GameIndustrie worden toegepast.

Het belangrijkst is als je je eigen games wilt bouwen is dat je:
1)Leert deftig C++ programmeren en denken
2)Daarna deftig leren werken met een API (OpenGl of DirectX)
3)DAN PAS: steek je kleine demotjes in elkaar via een Engine
4)Dan pas een compleet spel

En onthou dat je niet alles moet vanbuiten kennen maar dat je weet hoe je functies en klassen die je in een boek leest of van het internet haalt deftig kan gebruiken en er iets nuttigs mee kan doen

killgore

Legacy Member
steinerwarrior zei:
Dit is wat ik mee begonnen ben om te leren 3D Games te maken:

Basis - Intermediate

- Aan de slag met C++ (Laan, G.) : Voor mij best nederlands boek om C++ te leren als je niks van programmeren kent
-C# zonder stress : goed boek om een volledig casino spel te maken met animatie, geluid, ... en zeer makkelijk voor te lezen
-Beginning opengl game programming of Introduction to 3D game programming : boeken voor het leren van de API's OpenGL en DirectX en slechts 300 blz.Deze boeken leren je alleen Direct3D en niet DirectSound, Netwerk ....
-3D Game Engine Architecture 2nd Edition: In dit boek leer je een game engine opbouwen met alles erop en eraan: SOund, Graphics, Netwerk, ...
-Programming a FirstPersonShooter in DirectX: Leer je een volledige game engine maken en daarbij ook een spel.

Daarna:

-Game Programming Gems (1-5)
-Trick of the 3D game programming Gurus
-Programming Vertex and Pixel Shaders
-Real-Time Rendering
Deze boeken gebruik je om Special Effects, Shaders, Geavenceerde technieken aan je games toe te voegen zoals ze in de GameIndustrie worden toegepast.

Het belangrijkst is als je je eigen games wilt bouwen is dat je:
1)Leert deftig C++ programmeren en denken
2)Daarna deftig leren werken met een API (OpenGl of DirectX)
3)DAN PAS: steek je kleine demotjes in elkaar via een Engine
4)Dan pas een compleet spel

En onthou dat je niet alles moet vanbuiten kennen maar dat je weet hoe je functies en klassen die je in een boek leest of van het internet haalt deftig kan gebruiken en er iets nuttigs mee kan doen
wat ek ook een verdomd interessant (meeste mensen zijn er niets mee) boek vind is gpu gems :). Daar leerde pas verdomd veel over high-tech gfx-engineering :).
Over functies: ook alle overloaded zaken gaan leren is stom, elke deftige editor heeft een auto-aanvulling die je paramaters geeft, gewoon weten hoe een functie noemt en wat hem doet is al genoeg :).

bReChThOu

Legacy Member
lol, alsof je door een boek te kopen ff rap een game kan maken.
c++ is een zeer uitgebreide taal. Het heeft HEEL veel functies maar is ook behoorlijk moeilijk om onder de knie te krijgen. En om een spel te maken, wat al wat meer is dan een gewoon programmaatje heb je heel wat meer nodig dan de gewone 'include' en 'define' commands. Het enige omdit te leren is afaik door het zelf uit te proberen. Desnoods moet je simpele games downen en evt. editten zodat je alles begrijpt wat er gebeurt

alvast veel suc6

bReChThOu!

steinerwarrior

Legacy Member
Ja (neem maar vlug je commentaar in). Het boek Programming a Multiplayer FPS in DirectX leert je een volledige 3D FPS (Multiplayer-game) maken en is voor mij een boek waar je slechts C++ voor moet kennen om dit boek op een vlotte manier te lezen. Daarbij is het voor mij het beste boek die je leert een VOLLEDIGE game maken.
En om een spel te maken, wat al wat meer is dan een gewoon programmaatje heb je heel wat meer nodig dan de gewone 'include' en 'define' commands. Het enige omdit te leren is afaik door het zelf uit te proberen. Desnoods moet je simpele games downen en evt. editten zodat je alles begrijpt wat er gebeurt

Dit is zeker niet juist. Het meeste van een game is opgebouwd uit DirectX en daarvoor gebruik je C++ om ze aan te roepen. Zolang je pointers, arrays, de lussen en alles over de werking van klassen en objecten kent heb je voldoende om een game te maken. De rest is gewoon weten hoe je de functies van DirectX gebruikt en een redelijk wiskundig inzicht. Met editten van games leer je alleen hoe de game werkt en hoe de game loop eruit ziet. Maar door dit te doen leer je zeker niet hoe je een game schrijft, hoe het komt dat je een bepaalde functie aanroept en waarom enz...

.bal

Legacy Member
Wat een gezever.
Niet ieder game gebruikt DirectX, ooit al gehoord van OpenGL (o.a. de Quake-engines)? De meeste engines ondersteunen zelfs beide.
Niet alleen graphics maar ook sound, physics, network, scripting, etc. verdienen aandacht (indien nodig). Er is ook niet zoiets als "de" gameloop, dat hangt volledig af van hoe je alles implementeert.
Bij het programmeren van een serieus game in C++ is wel degelijk kennis van OO nodig (in tegenstelling tot C). Toch als je niet met hacky globals wil werken en alles in 1 source file wil proppen... En dat is imo juist het moeilijkste, een proper en goed werkend design vinden zodat al je componenten kunnen samenwerken. Een game maken gaat heus niet vanzelf :).

killgore

Legacy Member
Al bij al komt het gewoon terug neer op kunnen software engineering, zorgen dat je het overzicht bij alles behoudt. Iedereen kan een simpel game proggen, maar bij de ene zal de code onduidelijk zijn en een ramp om te debuggen/aan te passen en dan nog eens tergend traag met slechte algoritmes, terwijl de andere vrij vlot kan overschakelen naar iets nieuws en het meeste vlotjes verloopt.
Voor game-engines zelf is het eigenlijk vooral enkel de core-engine (grafische engine, geluidsengine, ...) die het moeilijke proggen omvat, omdat daar het meeste snelheids-verbruik inzit en dus meest optimalisatie vereist. Als je dat eenmaal deftig hebt afgewerkt is het toevoegen van nieuwe game-play elementen simpeler & veel meer traditioneel programmeren (kzeg niet dat het makkelijk wordt he :)).
Maar het feit blijft dat je vrij veel kennis gewoon moet hebben.
Je moet goed c++ (of de taal waarin je progt) kennen, je moet kennis hebben van de api's waarin je multimedia engines zijn geschreven, wat zelfs in je gameplay ga je vaak nog speciale effecten moeten toevoegen (bv. speciale particle emitters). En dan natuurlijk moet je nog liefst uitgebreide kennis hebben van meetkunde en liefst ook wat discrete wiskunde (logica, grafenleer, combinatieleer, ...). Want dat heb je zelfs buiten je basis-engine nog genoeg nodig om dingen te berekenen :).
Spijtig genoeg echter is een groot deel van deze zaken niet aanleerbaar in een boek :). Het enige waar boeken goed voor zijn is je nieuwe zaken leren, nieuwe methoden, nieuwe wiskundige begrippen, ... . Of je er genoeg inzicht voor hebt hangt compleet van jezelf af!.
bv. je kan path-finding algoritmes schrijven adhv grafenleer, maar als je rechtstreeks die basisalgoritmes gaat kopiëren heb je mssch wel een zeer goed, maar ook zeer traag algoritme. Wil je een doenbaar algoritme, dan zal je zelf het inzicht moeten hebben hoe dit op te stellen en te distilleren uit al die kennis die je hebt ;).

Dus, boeken zijn zeer nuttig om zaken te leren, maar deze helpen je echt geen game maken, als jij alle code rechtstreeks overtypt van een boek, leer je het niet. ALs je begrijpt wat er in het boek staat en met behulp van hun uitleg eigenlijk een totaal ander game maakt, dan zal je er mssch iets mee zijn :).
Daarom lees ik bv. programmatie boeken gewoon 's avonds in bed of zo, sommige vinden dat vrij raar, maar zo leer ik het best, ik lees hoe je die nieuwe dingen doet, hoe alles werkt, ... en de volgende dag (of wat later :p) pruts ik zelf zoveel ik kan totdat ik weet hoe het werkt en vooral, wat je er mee kan aanvangen. Tijdens dat prutsen komt dat boek bijna niet meer boven, tenzij om de juiste syntax van sommige zaken eens na te kijken. Mensen die uit een programmatieboek leren met dat boek naast hun terwijl ze alles overtypen op pc zijn meestal niet goed bezig.

(kan zijn dak wa tegenstrijdigheden of oncorrecte (imho) dingen heb getypt, nadeel van in 3x uw tekst te typen)

steinerwarrior

Legacy Member
Kzal maar met dit beginnen voor het duidelijk te maken dat een boek je wel degelijk leert een volledige game te maken:
"Westwood College, which offers a wide variety of courses and bachelor degree programs, has selected Programming a Multiplayer FPS in DirectX as one of their core text books for their game development program. " -> Zo zie je maar dat het zelfs door hogescholen wordt gebruikt bij de opleiding tot game programmer.Nu nog commentaar?



In het boek Programming a Multiplayer FPS in DirectX leer je wel degelijk hoe je alles van SOund, Netwerk, Input, Threads, Script-systeem, Animeren,... ineensteekt en doet samen werken om een volledig game te leren. Game Loop bestaat wel! Deze is de loop waarin de game wordt gespeeld. Daarbuiten heb je dan nog de implementatie van alle objecten enz. (Ken geen zin om dat hier allemaal uit te leggen als je het wil weten moet je maar dat boek kopen en dan zal het wel duidelijk worden.) Het boek is van een game-engine designer geschreven. DUs je leert wel degelijk hoe het ook in de game-bedrijven van vandaag in zijn werking gaat, alleen is die engine niet even groot en gecompliceerd). Aan de hand van die engine kun je met gemak nog andere functionaliteiten eraan toevoegen. Dus het leren hoe je een game engine maakt zoals het in realiteit in de gameindustrie gaat via een boek gaat wel (Mensen die al jarenlang ervaring hebben lezen ook boeken zoals Game programming Gems)

In het lezen van boeken doe ik ook s'avonds in men bed. En de volgende dag pruts ik ook (door zelf het te proberen te maken en het boek gebruik ik natuurlijk als ik op een functie niet kan komen of zo of als ik iets nog een wel overlezen hoe het werkte enz..) De beste manier om het te leren is eerst lezen en dan op jezelf dingen in elkaar te steken via wat je gezien hebt.

Natuurlijk weet ik dat er nog andere API's bestaan zoals OpenGl (mijn voorkeur ook voor graphics) maar voor Input en Sound heb je toch DirectX nodig of een andere API.

En nog iets Alles is leerbaar uit boeken! Hoe zou je het anders leren? Uit je zelf? Als je naar school gaat leer je ook uit een boek of cursussen ... Daarbij zijn boeken veel beter om iets te leren dan via het internet

killgore

Legacy Member
steinerwarrior zei:
Kzal maar met dit beginnen voor het duidelijk te maken dat een boek je wel degelijk leert een volledige game te maken:
"Westwood College, which offers a wide variety of courses and bachelor degree programs, has selected Programming a Multiplayer FPS in DirectX as one of their core text books for their game development program. " -> Zo zie je maar dat het zelfs door hogescholen wordt gebruikt bij de opleiding tot game programmer.Nu nog commentaar?
ja

als ik men cursussen gewoon overtyp/uit mijn hoofd leer ben ik gebuisd.

Boeken zijn echt nei alles ze <_<, uit boeken kunde dingen LEREN, ma tis nie omda ge ergens een boek over gelezen hebt da ge het kunt. Zo stelt gij het wel voor (mssch u bedoeling niet, maar zo komt het wel over).

Hellsgamerz

Legacy Member
Ik weet niet of er hier iemand met al eens vermeld heeft, maar niet alles van je game moet in C++ geschreven zijn. Als je een (zelfgeschreven) library gebruikt die in C/C++ geschreven is kan je de rest van het spel gerust in eender welke andere taal schrijven. Alles wat AI routines is moet immers zo snel niet lopen, dan ben je beter af met een gemakkelijkere taal (=minder bugs!)

Neem nu SDL: een heel goeie lib met bindings voor zeer veel talen:http://www.libsdl.org/languages.php

killgore

Legacy Member
Hellsgamerz zei:
Ik weet niet of er hier iemand met al eens vermeld heeft, maar niet alles van je game moet in C++ geschreven zijn. Als je een (zelfgeschreven) library gebruikt die in C/C++ geschreven is kan je de rest van het spel gerust in eender welke andere taal schrijven. Alles wat AI routines is moet immers zo snel niet lopen, dan ben je beter af met een gemakkelijkere taal (=minder bugs!)
hier niet vermeld maar in alle discussies over java <-> C/C++ <-> c# hebben toch al enkelen het ingezien dat dit kan & eigenlijk wel handig kan zijn (cfr nwn dat c++ engine heeft & c# tools).

edit: nwn2 dus

.bal

Legacy Member
steinerwarrior zei:
Natuurlijk weet ik dat er nog andere API's bestaan zoals OpenGl (mijn voorkeur ook voor graphics) maar voor Input en Sound heb je toch DirectX nodig of een andere API.

Er zijn talloze gratis/open-source Input (SDL, OpenInut, ...) en Sound (FMOD, Audiere, OpenAL, BASS, ...) API's die zich kunnen meten met DirectX. En bovendien werken ze dan ook nog eens niet alleen op Windows :).
Met alle respect, maar ik denk dat je nogal een eenzijdige visie hebt daaromtrend (ook ivm die gameloop), misschien door dat boek? Nogmaals, ik wil hiermee niets uitlokken, het is gewoon een vaststelling (die verkeerd kan zijn) :).

steinerwarrior

Legacy Member
Ja ik ben niet eenzijdig, maar ik zeg directX omdat ik het zelf gewoon deze gebruik en die andere zie ik zeker niet als minder.
Boeken zijn echt nei alles ze <_<, uit boeken kunde dingen LEREN, ma tis nie omda ge ergens een boek over gelezen hebt da ge het kunt. Zo stelt gij het wel voor (mssch u bedoeling niet, maar zo komt het wel over).
Dat weet ik wel. Uit boeken leer je (en dus ook hoe je een volledige game maakt) en dan moet je natuurlijk veel praktijk doen om er ervaring mee op te doen. Das is ook wat ik wil zeggen. Ik ging er gewoon niet mee akkoord dat je uit boeken NIET kunt leren hoe je een VOLLEDIG game opbouwt.
Zo das ook al weer gezegd:)

Marbug

Legacy Member
Well hoe ik momenteel programmeer is miss niet zo'n goeie methode omdat ik meestal in men code dingens gebruik die ik nog niet geleert em :)
Ik ben nu over de helft van Grand Cru maar de vraag die ik ij nog altijd stel is wanneer ik dat boek uit heb, welke ik erna dan ga kopen ?
deze:
steinerwarrior zei:
Kzal maar met dit beginnen voor het duidelijk te maken dat een boek je wel degelijk leert een volledige game te maken:
"Westwood College, which offers a wide variety of courses and bachelor degree programs, has selected Programming a Multiplayer FPS in DirectX as one of their core text books for their game development program. "
want ik weet niet of die in (http://www.hcw.be verkrijgbaar is? Ik koop niet graag iets over het internet en deze winkel is nu ok het dichtste bij. over winapi, directX, openGL daar ken ik niets van en ik vemoed dat ik die dingens ga nodig hebben. Dus welk boek raden jullie aan? en nog iets ik moet niet speciaal direkt over gaan naar hoe ge een 3D game moet designen, maar 2D mag dus ook (is dat niet een makkelijke mannier om te beginnen? (en ja ik weet al dat een 3D engine helemaal anders is dan een 2D))
btw: met de taal daar heb ik geen problemen mee, ik begrijp het snel dus np :)

steinerwarrior

Legacy Member
Basis - Intermediate

- Aan de slag met C++ (Laan, G.) : Voor mij best nederlands boek om C++ te leren als je niks van programmeren kent
-C# zonder stress : goed boek om een volledig casino spel te maken met animatie, geluid, ... en zeer makkelijk voor te lezen
-Beginning opengl game programming of Introduction to 3D game programming : boeken voor het leren van de API's OpenGL en DirectX en slechts 300 blz.Deze boeken leren je alleen Direct3D en niet DirectSound, Netwerk ....
-3D Game Engine Architecture 2nd Edition: In dit boek leer je een game engine opbouwen met alles erop en eraan: SOund, Graphics, Netwerk, ...
-Programming a FirstPersonShooter in DirectX: Leer je een volledige game engine maken en daarbij ook een spel.

Daarna:

-Game Programming Gems (1-5)
-Trick of the 3D game programming Gurus
-Programming Vertex and Pixel Shaders
-Real-Time Rendering
Deze boeken gebruik je om Special Effects, Shaders, Geavenceerde technieken aan je games toe te voegen zoals ze in de GameIndustrie worden toegepast.

Het belangrijkst is als je je eigen games wilt bouwen is dat je:
1)Leert deftig C++ programmeren en denken
2)Daarna deftig leren werken met een API (OpenGl of DirectX)
3)DAN PAS: steek je kleine demotjes in elkaar via een Engine
4)Dan pas een compleet spel

En onthou dat je niet alles moet vanbuiten kennen maar dat je weet hoe je functies en klassen die je in een boek leest of van het internet haalt deftig kan gebruiken en er iets nuttigs mee kan doen
Deze boeken boven vermeld. En ook deze nog:

Tricks of the windows game programming gurus" is voor 2D-games te leren programmeren met DirectX en C/C++.

Marbug

Legacy Member
ah ja nog iets da'k ben vergeten te vermelden, source voorbeelden (links) zijn ook altijd welkomen dat zal zeer handig zijn :)

Marbug

Legacy Member
- Aan de slag met C++ (Laan, G.) : Voor mij best nederlands boek om C++ te leren als je niks van programmeren kent
-> is C++ Grand Cru niet hetzelfd dan ?
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan