Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Ontwikkelmethode]Games?

Pagina: 1
Acties:
  • 267 views sinds 30-01-2008
  • Reageer

  • killingdjef
  • Registratie: Januari 2004
  • Laatst online: 19-10 14:03
Een vrij eenvoudige vraag die ik niet beantwoord kon krijgen via google.

Ik vroeg mij af wat voor ontwikkelmethode er doorgaands gebruikt wordt bij het ontwikkelen van games. Ik ben zelf een fan van unified process maar vind dat het niet compleet toepasbaar is bij de ontwikkeling van games omdat er essentiele onderdelen die binnen games voorkomen niet behandeld worden.

Bestaan er uberhaupt ontwikkelmethoden die ondersteuning bieden bij de ontwikkeling van games? Zo niet, betekend dit dan dat ieder "games"-project eigelijk een ongeorganiseerde bende is? ;)

  • disjfa
  • Registratie: April 2001
  • Laatst online: 04-11 11:05

disjfa

be

Regel een engine of maak er een en regel dat wat je wilt maken. Regel dan hoe het gemaakt gaat worden en reken op rotzooi. Als je gewend bent aan wat er gaat gebeuren, regel dat.

Wat wil je precies weten? Hoe een game gemaakt word? Precies hetzelfde als elk ander project lijkt me. Geheel liggend aan de situatie en bedrijf.

disjfa - disj·fa (meneer)
disjfa.nl


  • killingdjef
  • Registratie: Januari 2004
  • Laatst online: 19-10 14:03
Sorry dat ik het zeg maar dat is natuurlijk een reply van niks .No offense verder.

Wat ik wil weten is wat voor bestaande methode er voornamelijk wordt gebruikt voor het ontwikkelen van een game. Denk dus aan UP, DSDM, XP etc. etc. En hoe ze dit dus toepassen.

Overigens als je een project zomaar begint en alles pas regelt op het moment dat je het voorgeschoteld krijgt dan ben je managementtechnisch al helemaal fout bezig.Ik betwijfel daarom ook dat dit meer uitzondering is dan regel.

  • EnderQ
  • Registratie: Januari 2005
  • Laatst online: 05:24
Als je het stukje Guerrilla's tactiek ontsluierd leest merk je dat het anders is.
ken je gamasutra.com daar staat veel over de game-industrie.

  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 20-11 21:40

Not Pingu

Dumbass ex machina

killingdjef schreef op donderdag 14 juni 2007 @ 01:53:
Sorry dat ik het zeg maar dat is natuurlijk een reply van niks .No offense verder.
offtopic:
Het is dan ook een topicstart van niks. No offense


Veel gamedevelopment verloopt iteratief, als ik afga op verhalen van mensen die bij grote ontwikkelhuizen werken (Epic, id). Dat is natuurlijk ook logisch, omdat een game uit veel elementen bestaat (rendering, psysics, AI,...) die pas in een laat stadium ver genoeg zijn om te worden samengevoegd. In de tussentijd wil je natuurlijk wel dingen kunnen testen dus lever je iteratieve prototypes op waarin een aantal van de elementen worden getest voor zover ze af zijn.

Certified smart block developer op de agile darkchain stack. PM voor info.


  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Not Pingu schreef op donderdag 14 juni 2007 @ 10:14:
[...]


offtopic:
Het is dan ook een topicstart van niks. No offense


Veel gamedevelopment verloopt iteratief, als ik afga op verhalen van mensen die bij grote ontwikkelhuizen werken (Epic, id). Dat is natuurlijk ook logisch, omdat een game uit veel elementen bestaat (rendering, psysics, AI,...) die pas in een laat stadium ver genoeg zijn om te worden samengevoegd. In de tussentijd wil je natuurlijk wel dingen kunnen testen dus lever je iteratieve prototypes op waarin een aantal van de elementen worden getest voor zover ze af zijn.
Ik heb niet de indruk dat de meeste games puur iteratief gemaakt worden. Vooraf wordt ontzettend veel ontworpen volgens mij, functioneel, ontwerp van engines e.d., grafisch, sfeer, audio. Of er dan tussentijds testen worden uitgevoerd, maakt het in mijn optiek niet echt iteratief.

Bij SDM zie je ook niet op het laatst pas je eerste resultaten. Je hebt bij SDM in feite ook een evoluerende applicatie die verder groeit. (als je kunt programmeren tenminste:))

Fat Pizza's pizza, they are big and they are cheezy


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

killingdjef schreef op donderdag 14 juni 2007 @ 01:53:
Wat ik wil weten is wat voor bestaande methode er voornamelijk wordt gebruikt voor het ontwikkelen van een game. Denk dus aan UP, DSDM, XP etc. etc. En hoe ze dit dus toepassen.
Tja, methodes waar een naam en zelfs een hippe afkorting aan is verbonden worden denk ik voornamelijk gebruikt door de snelle jongens bij de grote corporate bedrijven, waar dat soort dingen als de heilige graal worden beschouwd. Ik hoef denk ik niet uit te leggen dat deze cultuur in schril contrast staat met de gamedevelopment-cultuur, die vooral is ontstaan uit een stel eigenwijze herrieschoppers (maar zich tegenwoordig zeker kan meten met andere professionele productieomgevingen).

Eerlijk gezegd vind ik het allemaal maar een beetje onzin. Begrijp me niet verkeerd hoor, al die ontwikkelmethodes hebben weldegelijk een goed uitgedachte basis, maar je moet het niet in het extreme trekken en zeker niet zien als heilige graal. Wees vooral pragmatisch en pas die onderdelen van methodes toe die er het best bij passen.

Bij ons, en wat ik ervan gezien heb bij andere bedrijven, is dat er vooral incrementeel wordt gewerkt. Je moet er rekening mee houden dat gamedevelopers niet echt te maken hebben met een klant, dat geeft al een heel ander perspectief op de zaak omdat je zelf de features kunt bepalen en niet afhankelijk bent van derden die iets van je willen. Ja, de producer, maar die zal vooral het eindresultaat beoordelen - wat de gamer ziet dus. En dan komen we meteen op de veelgebruikte milestones, wat handige punten zijn voor de producer om de boel eens te controleren en dus waarop bepaalde elementen af moeten zijn (denk aan: level X moet doorspeelbaar zijn, wapen Y moet hanteerbaar zijn, de engine moet water mooi kunnen weergeven, dat soort zaken). Van tevoren worden de goals van de milestones bepaald, en daar werken we dan met z'n allen naartoe.

Welke afkorting hier het best bij past? Geen idee, en het zal me ook aan mijn kont roesten. Het werkt, that's all I care about :)

[ Voor 3% gewijzigd door .oisyn op 14-06-2007 14:19 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

JKVA schreef op donderdag 14 juni 2007 @ 11:32:
[...]

Ik heb niet de indruk dat de meeste games puur iteratief gemaakt worden.
Dan is die indruk denk ik niet helemaal juist ;)
Vooraf wordt ontzettend veel ontworpen volgens mij
Klopt. Het 'design' aspect van de game dan. Idd, storyboard, sfeer, concept art. Maar dit is preproduction, als daar 30 man mee bezig zijn dan is dat veel. Wat er technisch mogelijk is is meestal al bekend, door ervaring van vorige games. En daardoor heb je tevens een codebase om op te bouwen, of je licensed een 3rd party engine. Een engine schrijven from scratch wordt nog nauwelijks gedaan, en als dat gebeurd dan hebben de verantwoordelijken daar dermate veel ervaring mee dat ze niet eerst op papier UML diagrammetjes gaan zitten tekenen oid.

Natuurlijk ga je nieuwe dingen proberen, maar ook dat is iteratief - programmeurs implementeren de feature in X tijd, de artists gaan daarmee aan de slag, en vervolgens wordt de boel geevalueerd. Bovendien zijn er meerdere wegen naar Rome, als er veel wordt geresearched dan wordt ook een hoop werk weggegooid. Op zich zonde van de tijd, maar het geeft het personneel wel een zee van kennis en het resultaat wordt er wel beter van. En dit soort dingen worden weldegelijk verzonnen tijdens het ontwikkelproces, en niet van tevoren.

[ Voor 3% gewijzigd door .oisyn op 14-06-2007 14:27 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

.oisyn schreef op donderdag 14 juni 2007 @ 14:26:
[...]
Een engine schrijven from scratch wordt nog nauwelijks gedaan, en als dat gebeurd dan hebben de verantwoordelijken daar dermate veel ervaring mee dat ze niet eerst op papier UML diagrammetjes gaan zitten tekenen oid.
[...]
Dat lijkt me sterk. Games zijn tegenwoordig big business en ervaren mensen zouden JUIST het nut van UML diagrammen moeten beseffen. A, omdat je al voordat je gaat coden je gedachten dwingt op orde te brengen, B je gedachten ook gemakkelijk aan anderen kunt overbrengen omdat ze op een duidelijke manier op papier staan, C, je je gedachten weer terug op orde kunt brengen na een paar avonden stevig losgaan, D, je nieuwe mensen gemakkelijk kunt inwerken omdat je documentatie hebt om de rode draad over te brengen.

Bij het maken van een nieuwe engine speelt dit des te meer, want het feit dat je een nieuwe engine maakt, geeft al aan dat je fundamenteel dingen anders gaat implementeren. Dus daar is een vorm van ontwerp voor nodig.

Ik snap best dat ervaren mensen beter kunnen programmeren en niet alles opnieuw hoeven te designen, maar het getuigt juist van professionaliteit als je requirements, modelleren, testen en dergelijke serieus neemt. De enterprise development zit volgens mij wel ongeveer in dat stadium momenteel, maar je gaat me vertellen dat games hier zo erg op achterlopen? Ondanks de vele miljoenen die erin omgaan?

No offense btw... :) Het is meer als vragende stelling bedoeld. :P

Fat Pizza's pizza, they are big and they are cheezy


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

JKVA schreef op donderdag 14 juni 2007 @ 22:29:
[...]
Dat lijkt me sterk. Games zijn tegenwoordig big business en ervaren mensen zouden JUIST het nut van UML diagrammen moeten beseffen.
Euh, je hebt enig idee wat ik doe in het dagelijks leven? :)
A, omdat je al voordat je gaat coden je gedachten dwingt op orde te brengen, B je gedachten ook gemakkelijk aan anderen kunt overbrengen omdat ze op een duidelijke manier op papier staan, C, je je gedachten weer terug op orde kunt brengen na een paar avonden stevig losgaan,
Ik zeg niet dat er niet ontworpen wordt en er maar gewoon wordt begonnen met typen. Maar dat ontwerp is bij lange na niet zo gedetailleerd als een volledig UML diagram van al je code. Doorgaans zitten er niet zo heel veel mensen op een engine, hoor. Als het er 5 zijn is het veel. Bij ons zijn het er 3 (waarvan er 2 op de renderer zitten en ikzelf me voornamelijk met culling bezig hou). In een bedrijf als id software is het er zelfs maar 1 of 2 (en Carmack dult geen tegenspraak :P).
D, je nieuwe mensen gemakkelijk kunt inwerken omdat je documentatie hebt om de rode draad over te brengen.
Dat soort info kun je beter genereren uit de code zelf, dan loopt het tenminste ook synchroon als je dingen aanpast.
Ik snap best dat ervaren mensen beter kunnen programmeren en niet alles opnieuw hoeven te designen, maar het getuigt juist van professionaliteit als je requirements, modelleren, testen en dergelijke serieus neemt.
Je kan het echter ook overdrijven, iets wat in mijn ogen veel teveel gebeurt. Ik zeg niet dat al die dingen compleet niet gebeuren, maar het gaat er gewoon veel pragmatischer aan toe dan hoe jij er tegenaan kijkt. Daarnaast kun je een 3d engine totaal niet vergelijken met een enterprise applicatie. Ik wil niet beweren dat dit prachtige schoolvoorbeeld code oplevert, maar dat is ook totaal niet de bedoeling - het moet doen wat het moet doen, en dat voornamelijk heel erg snel. Je gaat bijvoorbeeld niet allemaal mooie geabstraheerde interfacejes zitten verzinnen, dat is een performance disaster.

[ Voor 36% gewijzigd door .oisyn op 15-06-2007 02:58 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 20-11 21:40

Not Pingu

Dumbass ex machina

JKVA schreef op donderdag 14 juni 2007 @ 22:29:
Ik snap best dat ervaren mensen beter kunnen programmeren en niet alles opnieuw hoeven te designen, maar het getuigt juist van professionaliteit als je requirements, modelleren, testen en dergelijke serieus neemt. De enterprise development zit volgens mij wel ongeveer in dat stadium momenteel, maar je gaat me vertellen dat games hier zo erg op achterlopen? Ondanks de vele miljoenen die erin omgaan?
Game development is gewoon inherent anders dan business software development, voornamelijk omdat je games maakt ipv. business software ;)

Er wordt vaak tijdens het development nog gesleuteld aan het oorspronkelijke ontwerp, bijv. omdat blijkt dat de balans in de praktijk niet zo goed uitwerkt oid. Daar kom je tijdens het testen pas achter. Bij business software heb je dat niet: doelen zijn concreet, het moet dit en dat doen. Bij games ben je er daarmee nog niet.

Certified smart block developer op de agile darkchain stack. PM voor info.


  • MicroWhale
  • Registratie: Februari 2000
  • Laatst online: 10:46

MicroWhale

The problem is choice

Not Pingu schreef op vrijdag 15 juni 2007 @ 08:37:
[...]


Game development is gewoon inherent anders dan business software development, voornamelijk omdat je games maakt ipv. business software ;)
[...]
Dat lijkt me ook precies de reden waarom game-development een meer down-to-earth methode hanteert. Er is geen helder geformuleerd doel dat bereikt moet worden. Veel van de specificaties zijn daarom onderhevig aan de stand van de techniek en de creativiteit van de artiesten en programmeurs.
Zulke dingen zijn niet in een of ander model te vangen. Mocht je het gaan proberen, dan vernietig je volgens mij het creatieve proces dat ervoor zorgt dat het spel leuk en speelbaar wordt.

Het enige belangrijke is dat je vandaag altijd rijker bent dan gisteren. Als dat niet in centen is, dan wel in ervaring.


  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Wat een onzin. Waarom zou game development zoveel moeten verschillen van traditioneel 'enterprise' development? Integendeel zelfs, het zijn juist meestal grote teams die aan een game ontwikkelen en dan lijkt me een degelijk software development proces onvermijdelijk.

Het is misschien wel zo dat er geen duidelijke klant<->developers relatie is, maar ik ben er zeker van dat er een gelijkaardige relatie bestaat tussen andere rollen binnen het development team. Ik vermoed ook dat niet iedereen gelijkertijd door elkaar zit te coden, maar dat ieder subteam zijn verantwoordelijkheden krijgt en die ook gewoon moet nakomen.

Een gedetailleerd upfront design is ook niet altijd nodig. Maar ik verwacht dat game developers ook een hoop kladpapier / whiteboards vol kladden om te communiceren of gewoon zelf wat te brainstormen op welke manier iets aan te pakken?!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

-FoX- schreef op vrijdag 15 juni 2007 @ 13:59:
Een gedetailleerd upfront design is ook niet altijd nodig. Maar ik verwacht dat game developers ook een hoop kladpapier / whiteboards vol kladden om te communiceren of gewoon zelf wat te brainstormen op welke manier iets aan te pakken?!
Ik geloof dat niemand in deze draad anders beweert :). Alleen is er een verschil tussen een globaal ontwerp en een gedetailleerd technisch ontwerpen met klassediagrammem.

[ Voor 12% gewijzigd door .oisyn op 15-06-2007 14:06 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Not Pingu schreef op vrijdag 15 juni 2007 @ 08:37:
Game development is gewoon inherent anders dan business software development, voornamelijk omdat je games maakt ipv. business software ;)
Mwoa. Het is natuurlijk anders omdat er voor een groot deel 'kunst' bij komt kijken (ontwerpen van sound en graphics) maar je hebt weldegelijk een klant (de uitgever) waar je je software aan moet verkopen. Die uitgever geeft jou geld omdat jij beweert binnen X tijd een game uit te gaan brengen met een bepaalde gameplay. Daar komt ook gewoon, net zo goed als bij 'gewone' projecten ook een hoop planning e.d. bij krijgen. Net zoals bij bussiness projecten is het ook de bedoeling dat je binnen een bepaalde tijd en binnen een vastgesteld budget een titel aflevert.

Op GamaSutra staan een flink aantal artikelen over dergelijke trajecten, ze lijken behoorlijk op hoe wij bussiness projecten doen.
Er wordt vaak tijdens het development nog gesleuteld aan het oorspronkelijke ontwerp, bijv. omdat blijkt dat de balans in de praktijk niet zo goed uitwerkt oid. Daar kom je tijdens het testen pas achter. Bij business software heb je dat niet: doelen zijn concreet, het moet dit en dat doen. Bij games ben je er daarmee nog niet.
Dat is, kwa bussiness, niet waar. Als je naar het traditionele waterval model kijkt, zie je inderdaad dat er vooraf heel strict vastgelegd wordt wat er wanneer opgeleverd gaat worden. Grote inflexibele instellingen vinden dat vaak fijn. Maar er zijn genoeg projecten waar juist erg iteratief gewerkt wordt. Dan timebox je dus bepaalde functionaliteit in een subproject van bijvoorbeeld een maand.
.oisyn schreef op vrijdag 15 juni 2007 @ 14:04:
Ik geloof dat niemand in deze draad anders beweert :). Alleen is er een verschil tussen een globaal ontwerp en een gedetailleerd technisch ontwerpen met klassediagrammem.
Ik zou niet weten waarom je niet vooraf classdiagrams zou maken? Voor mezelf is dat ook een methode om m'n gedachten te ordenen. Helemaal als je in een projectteam werkt is vooraf bedenken wat je gaat doen gewoon een must. Als ieder op zich maar classes gaan maken wordt 't volgens mij een chaos?

[ Voor 14% gewijzigd door Hydra op 15-06-2007 14:32 ]

https://niels.nu


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hydra schreef op vrijdag 15 juni 2007 @ 14:30:
Ik zou niet weten waarom je niet vooraf classdiagrams zou maken? Voor mezelf is dat ook een methode om m'n gedachten te ordenen.
Exact, voor jezelf ja, en hoe iedereen zelf z'n code ontwerpt moet ie zelf weten. Zolang het maar in het geheel past. Natuurlijk is er communicatie over hoe bepaalde dingen met elkaar interfacen, maar verder werkt iedereen toch aardig in z'n eigen sandbox dus hoe dat intern werkt is de verantwoordelijkheid van die persoon. Ik typ ook graag eerst even m'n classes in om een idee te krijgen (in code, ik hou niet van pennen en van die UML tools die voornamelijk met de muis werken wordt ik helemaal gek), maar dat is dus mijn eigen methode en dat wordt op geen enkele manier geenforced.
Helemaal als je in een projectteam werkt is vooraf bedenken wat je gaat doen gewoon een must. Als ieder op zich maar classes gaan maken wordt 't volgens mij een chaos?
Niet als er goede communicatie over is wat het zou moeten doen.

.edit: come to think of it, eigenlijk is het gewoon een vorm van Agile Development.

[ Voor 3% gewijzigd door .oisyn op 15-06-2007 15:08 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

Een leuke anecdote is overigens Project: Snowblind, dat was mijn eerste project bij mijn huidige baas. In de looptijd van dat complete project is het spel 4x van gedaantes verandert (dat was nog voor mijn tijd overigens). Eerst was het een een of ander vampier spel, daarna werdt het Blood Omen 3 (ook een vampier game trouwens), daarna Deus Ex: Clanwars (een FPS), daarna Project: Snowblind. Je kunt je wel voorstellen dat door dit soort wijzigingen code continu overhoop wordt gegooid :)

[ Voor 4% gewijzigd door .oisyn op 15-06-2007 15:05 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
.oisyn schreef op vrijdag 15 juni 2007 @ 14:54:
Exact, voor jezelf ja, en hoe iedereen zelf z'n code ontwerpt moet ie zelf weten. Zolang het maar in het geheel past. Natuurlijk is er communicatie over hoe bepaalde dingen met elkaar interfacen, maar verder werkt iedereen toch aardig in z'n eigen sandbox dus hoe dat intern werkt is de verantwoordelijkheid van die persoon. Ik typ ook graag eerst even m'n classes in om een idee te krijgen (in code, ik hou niet van pennen en van die UML tools die voornamelijk met de muis werken wordt ik helemaal gek), maar dat is dus mijn eigen methode en dat wordt op geen enkele manier geenforced.
Nou, die UML tools kunnen over het algemeen gewoon je classes voor je uitgenereren. En dat muisklikken, tja...

Ik heb zelf in een project gewerkt waarin we met 3 man een object georienteerde API zijn gaan bouwen. Natuurlijk kreeg ieder z'n gebiedje waarin 'ie werkte, maar daar zat ook een hele hoop overlap in, en sowieso is het nuttig om te kunnen discussieren over hoe iets er nu uit moet komen te gaan zien. UML is prachtig om dat de visualiseren. Als je dan een interface hebt, kun je daar direct tegenaan gaan programmeren. De implementatie van de functionaliteit komt later wel, maar omdat de interface vaststaat kun je gaan beginnen. Er is niks irritanter dan dat iemand opeens de interface van een class verandert. Compiled je project opeens niet meer.
Niet als er goede communicatie over is wat het zou moeten doen.
JUIST UML is een tool voor communicatie? Ik weet niet hoe veel je met anderen aan projecten werkt, maar als je in een project zit waar je vlak op mekaar (kwa functionaliteit dus) zit te werken, is zoals je zelf zegt communicatie erg belangrijk. Als je je interfaces definieert vooraf, kun je daaarover discussieren, deze vastleggen, en dan kan iedereen verder. Jij geeft kennelijk de voorkeur aan code als visualisatiemiddel, maar dat print je niet ff uit om op een whiteboard over te tekenen. Ik snap die weerstand tegen UML echt niet.
.edit: come to think of it, eigenlijk is het gewoon Agile Development.
Het gaat hier om het visualiseren van een datamodel, dat heeft niet bijzonder veel met ontwikkelmethodieken te maken IMHO. Zelfs in de "we beginnen en zien wel waar we uitkomen" methodiek kun je UML prima gebruiken om te visualiseren hoe je interface in mekaar zit.

Kijk, ik heb het idee dat de weerstand tegen UML vooral voortvloeit uit 't feit dat we allemaal lui zijn (als je niet lui bent, ben je een slechte programmeur :P), en het meer werk is dan gewoon classes gaan maken. In kleine tooltjes pak ik 't meestal ook zo aan. Maar bij grotere projecten en helemaal als je met grotere teams werkt, scheelt 't uiteindelijk alleen maar tijd.

Ik heb bij een bedrijf gewerkt die hun UML diagram bij een drukker eens in de zoveel tijd op een aantal vellen A1 papier lieten plotten. Was echt retehandig dat je gewoon de conferenceroom in kon wandelen om op die UML muur de relaties tussen classes kon checken.
.oisyn schreef op vrijdag 15 juni 2007 @ 15:05:
Een leuke anecdote is overigens Project: Snowblind, dat was mijn eerste project bij mijn huidige baas. In de looptijd van dat complete project is het spel 4x van gedaantes verandert (dat was nog voor mijn tijd overigens). Eerst was het een een of ander vampier spel, daarna werdt het Blood Omen 3 (ook een vampier game trouwens), daarna Deus Ex: Clanwars (een FPS), daarna Project: Snowblind. Je kunt je wel voorstellen dat door dit soort wijzigingen code continu overhoop wordt gegooid :)
Ik kan me ook voorstellen dat mensen gillend gek worden en een andere baan zoeken...

[ Voor 10% gewijzigd door Hydra op 15-06-2007 15:12 ]

https://niels.nu


  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

.oisyn schreef op vrijdag 15 juni 2007 @ 15:05:
Een leuke anecdote is overigens Project: Snowblind, dat was mijn eerste project bij mijn huidige baas. In de looptijd van dat complete project is het spel 4x van gedaantes verandert (dat was nog voor mijn tijd overigens). Eerst was het een een of ander vampier spel, daarna werdt het Blood Omen 3 (ook een vampier game trouwens), daarna Deus Ex: Clanwars (een FPS), daarna Project: Snowblind. Je kunt je wel voorstellen dat door dit soort wijzigingen code continu overhoop wordt gegooid :)
Inderdaad, en daarom is er ook een proces nodig om het risico te verkleinen dat dit uit de hand loopt. Uiteindelijk moet de codebase controleerbaar blijven en niet een eigen leventje gaan leiden :)

Je zou het wel een beetje als agile development kunnen zien, uiteindelijk probeer je een manier uit te werken die overweg kunnen met steeds veranderende requirements.

Verder is er misschien nog impliciet een algemene manier van werken, die op allerhande manieren kan aangebracht worden... maar het lijkt me uitermate belangrijk dat de opgedane kennis en ervaring tijdens deze game projecten niet zomaar verloren gaan. Zéker met game projecten waar enkel het eindresultaat telt en er vaak in grotere teams gewerkt wordt (+50 personen lijkt me geen uitzondering). Feit blijft wel dat de communicatie in dergelijke grote teams meer in dezelfde lijn kunnen liggen dan in de typische 'enterprise apps', waar je met 'domme' klanten overweg moet kunnen en elkaar moet kunnen begrijpen. Voor een developer in de game industrie zal dergelijke communicatie vlotter verlopen, aangezien ze allemaal als team aan hetzelfde concept werken (bvb 3D artist <-> developer). En is er misschien minder nood aan stricte richtlijnen... maar de nood blijft wel bestaan.

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

UML is enkel nuttig voor communicatie en om dingen éénmalig te visualiseren. Soms zie je ook wel eens dat er geprobeerd wordt om UML te integreren in het development proces met allerhande tools die zich richten op het in lijn houden van de UML met de actuele code. Ik heb dit nog NOOIT zien werken. Het brengt altijd een zware overhead met zich mee en het is voor iedereen een blok aan het been.

UML is echter wel zeer nuttig om als communicatie tool te gebruiken zodat iedereen weet wat er bedoelt wordt met een pijltje of met een <<includes>>, maar daar houdt het voor mij op.
UML is statisch, code niet en daarmee is alles gezegd :Y

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
-FoX- schreef op vrijdag 15 juni 2007 @ 15:19:
UML is statisch, code niet en daarmee is alles gezegd :Y
ik hoop van harte dat de publieke interface van je code ook niet enorm dynamisch is, anders heb je toch echt een probleem. Een UML class diagram bemoeit zich niet met code, maar met je interface.
-FoX- schreef op vrijdag 15 juni 2007 @ 15:14:
Je zou het wel een beetje als agile development kunnen zien
Ik vind het voorbeeld van Oisyn een goed voorbeeld van wat geen 'Agile' programmeren is, maar gewoon mismanagement. Als je projecten compleet omgooit betekent dat dat je in veel gevallen beter 'from scratch' kan beginnen. Leuk dat kennelijk sommige uitgevers dit een prima manier van geldverspillen vinden, maar als mijn projecten 100% over budget zijn heb ik echt wat uit te leggen.

[ Voor 43% gewijzigd door Hydra op 15-06-2007 15:26 ]

https://niels.nu


  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

-FoX- schreef op vrijdag 15 juni 2007 @ 15:14:
[...]

Inderdaad, en daarom is er ook een proces nodig om het risico te verkleinen dat dit uit de hand loopt. Uiteindelijk moet de codebase controleerbaar blijven en niet een eigen leventje gaan leiden :)

Je zou het wel een beetje als agile development kunnen zien, uiteindelijk probeer je een manier uit te werken die overweg kunnen met steeds veranderende requirements.

Verder is er misschien nog impliciet een algemene manier van werken, die op allerhande manieren kan aangebracht worden... maar het lijkt me uitermate belangrijk dat de opgedane kennis en ervaring tijdens deze game projecten niet zomaar verloren gaan. Zéker met game projecten waar enkel het eindresultaat telt en er vaak in grotere teams gewerkt wordt (+50 personen lijkt me geen uitzondering). Feit blijft wel dat de communicatie in dergelijke grote teams meer in dezelfde lijn kunnen liggen dan in de typische 'enterprise apps', waar je met 'domme' klanten overweg moet kunnen en elkaar moet kunnen begrijpen. Voor een developer in de game industrie zal dergelijke communicatie vlotter verlopen, aangezien ze allemaal als team aan hetzelfde concept werken (bvb 3D artist <-> developer). En is er misschien minder nood aan stricte richtlijnen... maar de nood blijft wel bestaan.
Vandaar dat ik ook richtin .oisyn de opmerking plaatste. Ik weet wat je voor werk doet en vandaar de "lichte charge" :), maar in mijn optiek is de games industrie nog niet echt volwassen als technieken zoals een Unified Modelleertaal niet serieus genomen worden.

Fat Pizza's pizza, they are big and they are cheezy


  • MicroWhale
  • Registratie: Februari 2000
  • Laatst online: 10:46

MicroWhale

The problem is choice

UML is niet meer dan een communicatiemiddel voor personen uit ICT en niet-ICT om relaties aan te geven tussen entiteiten. Zodra iedereen inde ICT zit wordt er gewoon klassen, objecten, databases, tabellen, relaties, etc... gesproken.

Soms werkt het reuze handig, bijvoorbeeld om een taak van een secretaresse te visualiseren en aan haar voor te leggen ter evaluatie.
Soms werkt het averechts, omdat men bijvoorbeeld teveel in één diagram modeleert waardoor het overzicht verloren gaat. Als een UML-diagram niet op één A4 is af te drukken is het m.i. al te groot; je kunt het niet fatsoenlijk aan de klant uitleggen.

Het enige belangrijke is dat je vandaag altijd rijker bent dan gisteren. Als dat niet in centen is, dan wel in ervaring.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hydra schreef op vrijdag 15 juni 2007 @ 15:12:
[...]


Nou, die UML tools kunnen over het algemeen gewoon je classes voor je uitgenereren. En dat muisklikken, tja...
Dat kunnen m'n refactortools in m'n IDE ook. Uiteindelijk typ je hetzelfde in.
Als je dan een interface hebt, kun je daar direct tegenaan gaan programmeren.
Ik geloof dat je me niet helemaal begrijpt. Wat ik bedoelde te zeggen was dat er niet zo gedetaileerd werd ontworpen. Natuurlijk is er communicatie over een bepaalde interface (maar wij gebruiken daar geen UML voor). Maar wat er achter die interface zit wordt pas uitgewerkt als het geimplementeerd wordt (en natuurlijk bestonden daar wel globale gedachten over).
De implementatie van de functionaliteit komt later wel, maar omdat de interface vaststaat kun je gaan beginnen. Er is niks irritanter dan dat iemand opeens de interface van een class verandert. Compiled je project opeens niet meer.
Euh, als iemand je interface verandert zonder de boel intact te houden zou ik nog maar eens goed met 'm gaan praten ;)
JUIST UML is een tool voor communicatie?
Idd, een tool. Niet per se de tool. Let's agree to disagree. Bovendien moet ik daarbij zeggen dat ik in een game nog nooit een ingewikkelde inheritance-tree heb gezien. En naar afzonderlijke classes kun je ook wel in codevorm kijken.
Het gaat hier om het visualiseren van een datamodel, dat heeft niet bijzonder veel met ontwikkelmethodieken te maken IMHO.
Excuus, die opmerking staat er idd een beetje raar zo. Het was meer bedoeld als algemene reactie op de vraag van de topicstarter :). Uiteraard staan die dingen compleet los van elkaar.
Ik kan me ook voorstellen dat mensen gillend gek worden en een andere baan zoeken..
Dat zal ook best wel gebeurd zijn, maar je hebt een hart voor gamedevelopment of niet. En als je aan een wat lower budget titel werkt dan moet je daar rekening mee houden (wat dacht je dan van Duke Nukem Forever)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Maar .oisyn, vermits je toch een game developer bent; kan je misschien wel eens vertellen hoe je dagdagelijkse taken er zoal uitzien? Wat je moet doen.. hoe je ergens aan begint en vooral wat de scope van jouw taken zijn.

Ik denk dat de TS daar meer aan heeft dan het oeverloos gezwans over de superpowers van UML :)

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hydra schreef op vrijdag 15 juni 2007 @ 15:24:
Als je projecten compleet omgooit betekent dat dat je in veel gevallen beter 'from scratch' kan beginnen.
En dat is dus onzin. In onze codebase zit nog altijd code van soul reaver 1 (1999). Veel code is reusable, maar veel code ook niet. From scratch beginnen betekent meer werk dan bepaalde delen omgooien (een engine hoeft er bijvoorbeeld niet voor aangepast te worden - scripts daarentegen weer typisch wel).

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

-FoX- schreef op vrijdag 15 juni 2007 @ 15:47:
Maar .oisyn, vermits je toch een game developer bent; kan je misschien wel eens vertellen hoe je dagdagelijkse taken er zoal uitzien? Wat je moet doen.. hoe je ergens aan begint en vooral wat de scope van jouw taken zijn.
Ik werk voornamelijk binnen de 3d engine en de tools daaromheen. Mijn specialiteit is culling (bepalen wat wel en wat niet getekend hoeft te worden om de boel snel te laten verlopen), en heb daarvoor een systeem ontwikkeld dat zich vrijwel volledig tussen de game en de renderer (het apparaat dat met de GPU communiceert en de juiste data klaarzet) bevindt. Het is een systeem dat regelmatig uitgebreid wordt met nieuwe features en ik maintain het nu al een jaar of 2.

Aan de totstandkoming van het systeem heb ik vrij weinig te maken gehad - de specs waren al aardig vastgelegd door eerdere projecten (je hebt cells die verbonden zijn door portals, en daarbinnen leven entities en lights) en m'n lead had al de globale interface voor de game gedefinieerd en dat ben ik gaan implementeren. Sindsdien heb ik me bewezen en heb ik een wat meer leindende rol erin :)

Zo hadden de cells op dat moment nog geen gedefinieerde geometrie, en werden de objecten handmatig aan de cells verbonden. De uiteindelijke goal was meer dat de levels opgedeeld werden in afzonderlijke cells door deze in Maya te modelleren. Dus moest er een tool komen (de "cellifier") die die geometrie verwerkt in een door de game bruikbare datastructuur. In principe heb ik een spec gemaakt over hoe die dingen dan geauthored moeten worden, en met commentaar daarop heb ik dat uiteindelijk verwerkt in de tool. Niemand die interesseert hoe die tool intern werkt, als hij maar werkt, en dus is hier ook geen enkel code communicatie met iemand over geweest. Voor mezelf heb ik natuurlijk de globale werking van de tool uitgewerkt, welke subprocessen nodig waren en wat de output precies moest zijn. In de loop der tijd zijn hier wijzigingen aan gemaakt (er komt bijvoorbeeld een request dat ze ook een child cell binnen een cell willen kunnen definieren), en de laatste grote feature was "occluders" (grote objecten die het zicht ontnemen - alles wat achter een occluder zit hoeft niet gerenderd te worden).

En dat gaat ook weer door een spec te maken van het algoritme en hoe ze geplaatst moeten worden, daar komt commentaar op, ik ga het implementeren. Als het goed werkt dan wordt het gebruikt, als het niet goed werkt dan wordt het in de kast gestopt om het er wellicht nooit meer uit te halen (je kan van tevoren niet echt zeggen hoe het gaat performen en hoeveel het bijdraagt aan de effectiviteit van het cullen - je moet het dus gewoon proberen).

Natuurlijk ben ik hier niet al die tijd alleen maar mee bezig geweest, en krijg ik ook af en toe andere tasks. Zo ben ik nu bezig met een tool die in-game cubemap screenshots maakt, zodat die weer gebruikt kan worden voor de spherical harmonics belichting of reflectietextures. In principe is dat ook gewoon weer: maak een spec, verwerk het commentaar, implementeer, evalueer. Voor die screenshots moet ik natuurlijk aanpassingen maken aan de renderer om dat te exposen, maar dan kom ik niet met een heel ontwerp op de proppen oid. Ik praat met mijn collega's over hoe ik dat het beste kan aanpakken, ik pas de code en de interface aan (ik zie de nekharen van Hydra al overeind gaan staan :P), en uiteindelijk werkt het. (Of niet, en ik ben fout bezig ;))

Over het algemeen, als ik kijk naar hoe de tasks worden geassigned aan de medewerkers, dan is iedereen toch voornamelijk met zijn eigen ding bezig. Neem als voorbeeld mijn cellifier tool. Je zou kunnen plannen dat een iemand de tool maakt, en een ander de implementatie in de game om wat met die data te gaan doen. Maar bij ons is het meer dat diezelfde persoon dat allemaal gaat doen. Je moet er ook rekening mee houden dat de interne werking op zich best complex is, en we allemaal specialisten in ons eigen sub-vakgebied zijn. Ik ben goed in wiskunde en geometrische algebra, dus ik ben de uitgewezen persoon om dat te implementeren - je kunt niet een willekeurige programmeur op het project zetten. En dit geldt voor een heel groot deel van de taken van een game. De een is gespecializeerd in audio programming, de ander in physics, etc.. Voor mijn dagelijkse werk communiceer ik ook maar met een paar mensen (m'n baas, m'n 2 collega's op het rendering team, de lead tools (voor algemen tool-vragen), de lead artist (dat is een beetje mijn klant), de producer en de documentatieman (ja daar hebben wij een mannetje voor :P))
Ik denk dat de TS daar meer aan heeft dan het oeverloos gezwans over de superpowers van UML :)
Dan moet ie daarnaar vragen en niet naar loze ontwikkelmethoden ;)

[ Voor 13% gewijzigd door .oisyn op 15-06-2007 16:35 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
MrWilliams schreef op vrijdag 15 juni 2007 @ 15:26:
UML is niet meer dan een communicatiemiddel voor personen uit ICT en niet-ICT om relaties aan te geven tussen entiteiten. Zodra iedereen inde ICT zit wordt er gewoon klassen, objecten, databases, tabellen, relaties, etc... gesproken.
Uh-huh |:(

Als ik met een collega developer over een datamodel zit te kletsen zitten we toch echt UML classdiagrammen te tekenen op 't whiteboard hoor 8)7
.oisyn schreef op vrijdag 15 juni 2007 @ 15:44:
Dat kunnen m'n refactortools in m'n IDE ook. Uiteindelijk typ je hetzelfde in.
Refactortools bieden nou niet echt de mogelijkheid even een stukje dialoog uit te printen en dit aan iemand te laten zien.
Ik geloof dat je me niet helemaal begrijpt. Wat ik bedoelde te zeggen was dat er niet zo gedetaileerd werd ontworpen. Natuurlijk is er communicatie over een bepaalde interface (maar wij gebruiken daar geen UML voor). Maar wat er achter die interface zit wordt pas uitgewerkt als het geimplementeerd wordt (en natuurlijk bestonden daar wel globale gedachten over).
Ik zeg ook niet dat UML een must is. Als ik op een whiteboard zit te kladderen is het vast ook geen 100% 'valid' UML. Boeiend. Het gaat erom dat je grafisch objecten en relaties visualiseert. Je zegt dat je dit zelf ook doet? Nou, prima. Waarom gebruik je niet iets wat dan meteen een codeskeleton uitspuugt? Scheelt 't je alleen maar tijd.
Euh, als iemand je interface verandert zonder de boel intact te houden zou ik nog maar eens goed met 'm gaan praten ;)
Ja, dat mag niet, da's m'n punt. Je interface verandert niet veel, dus je UML net zo min.
Idd, een tool. Niet per se de tool.
Dat zeg ik niet. Maar UML is zo breed bekend dat iedereen het meteen herkent, en als iemand een UML classdiagram niet kan lezen is 'ie sowieso een slechte developer.
Dat zal ook best wel gebeurd zijn, maar je hebt een hart voor gamedevelopment of niet. En als je aan een wat lower budget titel werkt dan moet je daar rekening mee houden (wat dacht je dan van Duke Nukem Forever)
Ik geloof niet dat een tolerantie voor een 'no-end-in-sight' project iets te maken heeft met een 'hart' hebben voor gamedevelopment. Ik kan me niet voorstellen dat het soort projecten wat jij bescrhijft (dat opeens de scope compleet verandert) de way to go zijn ind e games industrie. Ook daar geldt tijd = geld.
.oisyn schreef op vrijdag 15 juni 2007 @ 15:53:
En dat is dus onzin. In onze codebase zit nog altijd code van soul reaver 1 (1999). Veel code is reusable, maar veel code ook niet. From scratch beginnen betekent meer werk dan bepaalde delen omgooien (een engine hoeft er bijvoorbeeld niet voor aangepast te worden - scripts daarentegen weer typisch wel).
"In veel gevallen"

Een 3D engine is natuurlijk een extreem goed voorbeeld van iets dat redelijk los staat van het overall gamedesign. Hello captain obvious. In plaats van in te hakken met voorbeelden zou het de discussie absoluut ten goede komen als je je meer focussed op het doel van een tekst. Het punt is dat grote wijzigingen in de projectscope gewoon reteveel tijd en geld kosten. Het verbaast mij enorm dat gewoon ongeveer de essentie van een spel, de basis van het design, gewoon omgegooid kan worden. Het lijkt mij nogal demotiverend als een groot deel van wat je gedaan hebt overnieuw gedaan moet worden.
.oisyn schreef op vrijdag 15 juni 2007 @ 16:18:
[...]
Zo hadden de cells op dat moment nog geen gedefinieerde geometrie, en werden de objecten handmatig aan de cells verbonden. De uiteindelijke goal was meer dat de levels opgedeeld werden in afzonderlijke cells door deze in Maya te modelleren. Dus moest er een tool komen (de "cellifier") die die geometrie verwerkt in een door de game bruikbare datastructuur. In principe heb ik een spec gemaakt over hoe die dingen dan geauthored moeten worden, en met commentaar daarop heb ik dat uiteindelijk verwerkt in de tool. Niemand die interesseert hoe die tool intern werkt, als hij maar werkt, en dus is hier ook geen enkel code communicatie met iemand over geweest.
Vraagje: wat gebeurt er met die tool als jij ontslag neemt of toevallig overreden wordt?

https://niels.nu


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hydra schreef op vrijdag 15 juni 2007 @ 16:46:
Ja, dat mag niet, da's m'n punt. Je interface verandert niet veel, dus je UML net zo min.
Mijn punt is dat het wél mag, zolang de boel compilend blijft.
Ik geloof niet dat een tolerantie voor een 'no-end-in-sight' project iets te maken heeft met een 'hart' hebben voor gamedevelopment. Ik kan me niet voorstellen dat het soort projecten wat jij bescrhijft (dat opeens de scope compleet verandert) de way to go zijn ind e games industrie. Ook daar geldt tijd = geld.

[...]

"In veel gevallen"

Een 3D engine is natuurlijk een extreem goed voorbeeld van iets dat redelijk los staat van het overall gamedesign. Hello captain obvious. In plaats van in te hakken met voorbeelden zou het de discussie absoluut ten goede komen als je je meer focussed op het doel van een tekst. Het punt is dat grote wijzigingen in de projectscope gewoon reteveel tijd en geld kosten. Het verbaast mij enorm dat gewoon ongeveer de essentie van een spel, de basis van het design, gewoon omgegooid kan worden. Het lijkt mij nogal demotiverend als een groot deel van wat je gedaan hebt overnieuw gedaan moet worden.
Euh, nou ga je verschillende discussies door elkaar lopen voeren. Jij zei dat je beter from scratch kunt beginnen, ik zeg dat dat niet zo is. Nu zeg je dat het vervelend en demotiverend en tijdrovend is. Ja duh, dat is het idd. Het is soms alleen realiteit, en daar heb je maar mee te leven, ik maak die beslissing verder niet. En nou moet je ook niet denken dat altijd gebeurt, maar soms dus wel, en ik denk vaker in de gamedevelopment dan bij andere projecten. Als je dat niet wilt dan moet je geen games gaan maken. Ik moet er ook niet aan te denken om gamelogic te gaan coden dat aan dat soort veranderingen onderhevig is (afgezien van het feit dat ik gamelogic niet boeiend vind). Gelukkig werk ik aan een engine en kan ik mijn ei kwijt in de techniek die redelijk stabiel is.
Vraagje: wat gebeurt er met die tool als jij ontslag neemt of toevallig overreden wordt?
Dan hebben we sowieso een probleem, aangezien goed personeel amper te vinden is. Er is hier 1 persoon die evt. mijn kennisniveau in dit specifieke gebied (geometrische algebra) zich aan kan leren. Als we iemand anders waren tegengekomen die dat ook kon dan hadden we 'm aangenomen. Maar daar doel je natuurlijk niet op. Er is documentatie over het algemen proces, en voor de details dan kijkt mijn vervanger maar in de code. Het is niet nodeloos ingewikkeld oid (alleen specialistische kennis vereist, niet over mijn code maar over het vakgebied), en ik heb er ook niet echt veel moeite mee om te graven in andermans code (ik heb al zat subprojecten van anderen overgenomen, de capturetool waar ik nu mee bezig ben is ook door iemand anders opgezet). Dat we geen UML diagrammetjes tekenen wil niet zeggen dat er geen documentatietool over de code heen gaat om HTML pagina's uit te spugen.

[ Voor 11% gewijzigd door .oisyn op 15-06-2007 17:07 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
.oisyn schreef op vrijdag 15 juni 2007 @ 17:01:
Mijn punt is dat het wél mag, zolang de boel compilend blijft.
Gast, ik ZEG LETTERLIJK dat je een interface niet mag veranderen als dat dingen breekt! Je moet echt eens wat aandachtiger gaan lezen.
Euh, nou ga je verschillende discussies door elkaar lopen voeren. Jij zei dat je beter from scratch kunt beginnen, ik zeg dat dat niet zo is.
Ik zeg in "veel gevallen". Als halverwege bijvoorbeeld blijkt dat je van een voxel engine naar een normale 3D engine over moet kun je die voxel engine bijvoorbeeld wel wegkieperen. Vandaar: grote veranderingen hebben een grote impact, en die wil je dus in princiepe voorkomen. Lijkt me niet zo moeilijk toch?
Nu zeg je dat het vervelend en demotiverend en tijdrovend is. Ja duh, dat is het idd. Het is soms alleen realiteit, en daar heb je maar mee te leven, ik maak die beslissing verder niet. En nou moet je ook niet denken dat altijd gebeurt, maar soms dus wel, en ik denk vaker in de gamedevelopment dan bij andere projecten. Als je dat niet wilt dan moet je geen games gaan maken. Ik moet er ook niet aan te denken om gamelogic te gaan coden dat aan dat soort veranderingen onderhevig is (afgezien van het feit dat ik gamelogic niet boeiend vind). Gelukkig werk ik aan een engine en kan ik mijn ei kwijt in de techniek die redelijk stabiel is.
je zegt dat je niet in gamedevelopment moet gaan werken als je niet tegen sterk veranderende requirements kan, maar aan de andere kant hou je niet van sterk veranderende requirements :)
Dan hebben we sowieso een probleem, aangezien goed personeel amper te vinden is.
Da's natuurlijk geen reden. M'n punt is dat je belangrijke onderdelen van een toolset zodanig moet documenteren (en op welke manier dat boeit me hier ff niet) dat iemand anders het in princiepe binnen afzienbare tijd over kan nemen. Dingen als een set UML diagrammen (slechts een voorbeeld, in het geval van jouw tool zal dat aangezien het vooral wiskunde is waarschijnlijk niet opgaan) e.d. helpen ook daar weer.

Ik heb zelf meegemaakt wat er gebeurd als een tool door 1 persoon ontwikkeld wordt, bij veel klanten ingezet wordt, en hij eigenlijk de enige is die echt weet hoe het intern werkt. Kerel vertrekt, en wij zaten toen met een stuk baggercode van jewelste (ook mismanagement aan de kant van ons bedrijf). Die tool wordt nu dus herschreven.

https://niels.nu


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hydra schreef op vrijdag 15 juni 2007 @ 17:26:
[...]


Gast, ik ZEG LETTERLIJK dat je een interface niet mag veranderen als dat dingen breekt! Je moet echt eens wat aandachtiger gaan lezen.
Anders doe je even normaal en lees je je eigen zin en kom je erachter dat hij open staat voor meerdere interpretaties, en niet alleen degene die jij, en alleen jij, in je hoofd heb waar ik niet bij kan :). Mijn interpretatie was dat je bedoelde dat (Jan en Alleman) de interface gewoon niet mag veranderen (punt). Daar is best wat voor te zeggen namelijk, maar daar zijn wij niet zo heel erg strict in. Ga anders even een stukje lopen ofzo, al die opwinding is slecht voor je hart.
Ik zeg in "veel gevallen". Als halverwege bijvoorbeeld blijkt dat je van een voxel engine naar een normale 3D engine over moet kun je die voxel engine bijvoorbeeld wel wegkieperen. Vandaar: grote veranderingen hebben een grote impact, en die wil je dus in princiepe voorkomen. Lijkt me niet zo moeilijk toch?
Ik beweer toch ook niet anders :?
je zegt dat je niet in gamedevelopment moet gaan werken als je niet tegen sterk veranderende requirements kan, maar aan de andere kant hou je niet van sterk veranderende requirements :)
Zie antwoord op vorige quote. Ik heb het idee dat we een beetje langs elkaar heen praten :)
Da's natuurlijk geen reden. M'n punt is
Ja dat zei ik al met "Maar dat bedoel je natuurlijk niet". Daarna komt de verklaring op je daadwerkelijke punt.
dat je belangrijke onderdelen van een toolset zodanig moet documenteren (en op welke manier dat boeit me hier ff niet) dat iemand anders het in princiepe binnen afzienbare tijd over kan nemen. Dingen als een set UML diagrammen (slechts een voorbeeld, in het geval van jouw tool zal dat aangezien het vooral wiskunde is waarschijnlijk niet opgaan) e.d. helpen ook daar weer.

Ik heb zelf meegemaakt wat er gebeurd als een tool door 1 persoon ontwikkeld wordt, bij veel klanten ingezet wordt, en hij eigenlijk de enige is die echt weet hoe het intern werkt. Kerel vertrekt, en wij zaten toen met een stuk baggercode van jewelste (ook mismanagement aan de kant van ons bedrijf). Die tool wordt nu dus herschreven.
Volgens mij heb ik in mijn vorige post al duidelijk gemaakt dat het niet zo is dat wij niet documenteren. Wat ik in het begin van deze draad heb gezegd, en dat was de aanleiding van deze hele discussie, dat wij tijdens het ontwerp niet hele en gedetailleerde UML diagrammetjes zitten te tekenen om het systeem op te zetten. We hebben een wiki vol met proposals, specs en algoritme documentatie, alsmede een Doxys repository van de hele codebase. Ook definieren we parameter, pre- en postcondities en doelen van functies gewoon in de comments in code (die weer meegenomen worden door Doxys om documentatie uit te genereren). Samen met de comments in de implementatie (waar het 'waarom' in staat, en niet het 'hoe' - de discussie over zelfdocumenterende code komt weer boven drijven) moet een derde zonder voorkennis daar toch een eind mee kunnen komen.

[ Voor 5% gewijzigd door .oisyn op 15-06-2007 17:46 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

.oisyn schreef op vrijdag 15 juni 2007 @ 17:41:
[...]
We hebben een wiki vol met proposals, specs en algoritme documentatie, alsmede een Doxys repository van de hele codebase. Ook definieren we parameter, pre- en postcondities en doelen van functies gewoon in de comments in code (die weer meegenomen worden door Doxys om documentatie uit te genereren). Samen met de comments in de implementatie (waar het 'waarom' in staat, en niet het 'hoe' - de discussie over zelfdocumenterende code komt weer boven drijven) moet een derde zonder voorkennis daar toch een eind mee kunnen komen.
Kan zo'n tool fatsoenlijke documentatie genereren? Dus documentatie op een ander (hoger) abstractieniveau dan de code zelf?
Hydra schreef op vrijdag 15 juni 2007 @ 16:46:
[...]
Dat zeg ik niet. Maar UML is zo breed bekend dat iedereen het meteen herkent, en als iemand een UML classdiagram niet kan lezen is 'ie sowieso een slechte developer.
[...]
Tot je class diagrams met aggregaties en composities tegenkomt. Ik denk dat er genoeg developers zijn die ze niet goed kunnen plaatsen. En ze zijn juist ontzettend handig om de iets fijnere details van de werking van je relatie weer te geven. Zijn dat dan allemaal slechte developers? Volgens mij valt dat wel mee.

Maar goed, het ging eigenlijk over de manier hoe je een game development project uitvoert, niet over een persoonlijke vete of de kwaliteit van UML.

Fat Pizza's pizza, they are big and they are cheezy


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

JKVA schreef op vrijdag 15 juni 2007 @ 18:05:
[...]

Kan zo'n tool fatsoenlijke documentatie genereren? Dus documentatie op een ander (hoger) abstractieniveau dan de code zelf?
Nee, maar daarvoor kijk je dan weer in de specificatie :). Overigens kijk ik bijna nooit in die Doxys gegenereerde output, met specs en code zelf kan ik me behoorlijk uit de voeten maken in andermans systemen. Op voorwaarde dat er een competent iemand achter zat iig, die cellifier waar ik het eerder over had was een remake van een oude tool die niet aan de nieuwe specs voldeed, en aan mij de taak om dat aan te passen. Man, wat een gedrocht was dat. Na een week wroeten (ook compleet zonder docs overigens) besloot ik dat het wat handiger was om dat ding compleet opnieuw te maken (om maar even aan te geven dat natuurlijk niet alle code herbruikbaar is, maar dat heb ik dan ook nooit beweerd ;))

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • killingdjef
  • Registratie: Januari 2004
  • Laatst online: 19-10 14:03
Inderdaad, dit topic drijft af naar een "UML versus the World!!1"-topic :)

Waar ik eigelijk nieuwsgierig naar was is hoe het ontwikkelproces van een game eruit ziet. Ik ging er eigelijk bij voorbaat van uit dat er een methode gebruikt wordt met vaste milestones en manieren van ontwikkelen. Ik begrijp dat eigelijk iedere games-developer zijn eigen draai aan een project geeft?

Wat ik graag wil weten is wat wanneer gedaan wordt, op welke manier, welke milestones er zijn en welke plaats zaken als bijvoorbeeld testen hebben binnen een dergelijk project. Een stappenplan -wat- -wanneer- wordt ondernomen lijkt mij een interessant gegeven.

Aangezien .oisyn de enige gamedeveloper hier is, denk ik dat ik mijn vraag aan hem moet richten.

[ Voor 5% gewijzigd door killingdjef op 18-06-2007 03:02 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

Tja, maar dat kun je op internet ook wel gewoon vinden: http://en.wikipedia.org/wiki/Game_development :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 20-11 21:40

Not Pingu

Dumbass ex machina

Hydra schreef op vrijdag 15 juni 2007 @ 17:26:

Da's natuurlijk geen reden. M'n punt is dat je belangrijke onderdelen van een toolset zodanig moet documenteren (en op welke manier dat boeit me hier ff niet) dat iemand anders het in princiepe binnen afzienbare tijd over kan nemen. Dingen als een set UML diagrammen (slechts een voorbeeld, in het geval van jouw tool zal dat aangezien het vooral wiskunde is waarschijnlijk niet opgaan) e.d. helpen ook daar weer.
Voor sommige toepassingsgebieden werkt dat, voor andere niet. Zolang het doel en de werking van een stuk code makkelijk zijn uit te leggen, kan een 'willekeurig' ander programmeur die code overnemen.

Maar als we het hebben over iets dermate specialistisch als een AI library (waarvoor je niet alleen moet kunnen programmeren, maar bij wijze van spreken ook een doctorale graad in AI moet hebben) dan wordt het andere koek. Je bent dan ook exponentieel langer bezig met het je eigen maken van de bestaande code.

Dat er binnen game development veel mismanagement voorkomt, ben ik wel met je eens. Projecten waarvan de richting op de helft van de rit ineens verandert dankzij de nukken van een manager (ik ken verhalen over Unreal 2, Pariah, noem maar op), of idd gevallen waarbij hele stukken code bij het wegvallen van een developer gewoon opnieuw moeten worden geschreven door zijn opvolger.
Maar aan de andere kant: als de publisher roept: "Je fantasy spel moet een piratenthema krijgen want Pirates of the Caribbean doet het goed in de bios" kun je daar vaak weinig tegenin brengen.

Certified smart block developer op de agile darkchain stack. PM voor info.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

Niet zo gek als je bedenkt dat maar een klein percentage van de gamedevelopers echt winst maken, dan doe je alles om sales veilig te stellen (en dat betekent doorgaans meegaan met de huidige hypes)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • killingdjef
  • Registratie: Januari 2004
  • Laatst online: 19-10 14:03
Ahh kom op, een wikipedia link is cheat als je zelf in het vak zit. Je kan toch je eigen ervaringen kunnen delen? Of vallen die onder een evt. NDA? :)

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Not Pingu schreef op maandag 18 juni 2007 @ 12:45:
[...]
Voor sommige toepassingsgebieden werkt dat, voor andere niet. Zolang het doel en de werking van een stuk code makkelijk zijn uit te leggen, kan een 'willekeurig' ander programmeur die code overnemen.
JKVA neemt rol advocaat van de duivel:
Maar wat als de maker van de code niet meer in staat is om het uit te leggen om weet ik wat voor dubieuze reden, wat dan? Als het gemakkelijk uit te leggen is, is het ook een kleine moeite om het te documenteren.

Fat Pizza's pizza, they are big and they are cheezy


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

killingdjef schreef op maandag 18 juni 2007 @ 20:23:
[...]


Ahh kom op, een wikipedia link is cheat als je zelf in het vak zit. Je kan toch je eigen ervaringen kunnen delen? Of vallen die onder een evt. NDA? :)
Waarom zou ik hier een heel verhaal moeten tikken over iets waar ik maar voor de helft zicht op heb, terwijl het heel duidelijk en haarfijn staat uitgelegd op een internetpagina? Jij bent degene die cheat door lui te zijn en hier maar gewoon de vraag te stellen, terwijl je daar ook makkelijk naar had kunnen zoeken ;)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • JeroenB
  • Registratie: November 1999
  • Laatst online: 14-11 22:30
Wat bizar dat deze potentieel interessante discussie op de een of andere manier in een soort UML flamewar is veranderd :) Vooral aangezien UML niks met methoden of processen te maken heeft (het is een taal!)
killingdjef schreef op maandag 18 juni 2007 @ 20:23:
Ahh kom op, een wikipedia link is cheat als je zelf in het vak zit. Je kan toch je eigen ervaringen kunnen delen? Of vallen die onder een evt. NDA? :)
Volgens mij heeft .oisyn in zijn post over zijn dagelijkse werkzaamheden een heel mooi beeld geschetst van hoe het ontwikkelproces in zijn werk gaat bij een game developer. Zijn opmerkingen over het opstellen van een spec, commentaar verwerken, implementeren en wijzigen geven een goed beeld van de mate van formaliteit in zo'n project.

Wat mij vanuit traditionele software ontwikkeling leuk lijkt om te weten zijn zaken als:
- Resource management. Games hebben geen SQLServer Compact Edition embedded lijkt me, dus hoe vinden ze al die maps, textures, geluidseffecten, etc. terug? Is het een script waarin maps worden gelinkt waarin al die andere dingen worden gelinkt? En staat daar dan tot op de file-offset-in-de-resource-file in waar alles staat? Of is er een flexibelere manier van het vinden van de data?
- Testen. Het nabootsen van een productie-omgeving om losse (basis)componenten te testen lijkt me lastig in een console-wereld. Leveren bedrijven als Sony en Microsoft daar standaard omgevingen voor of zitten de game developers vrolijk minigames te maken de hele dag om hun voortgang te zien/verifieren?

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

JeroenB schreef op zaterdag 23 juni 2007 @ 21:45:
- Resource management. Games hebben geen SQLServer Compact Edition embedded lijkt me
Nee, dat zou beetje veel overhead zijn voor een simpele statische database waar alleen maar (door 1 iemand tegelijk) uit gelezen wordt :)
dus hoe vinden ze al die maps, textures, geluidseffecten, etc. terug? Is het een script waarin maps worden gelinkt waarin al die andere dingen worden gelinkt? En staat daar dan tot op de file-offset-in-de-resource-file in waar alles staat? Of is er een flexibelere manier van het vinden van de data?
Hier zijn natuurlijk verschillende implementaties voor denkbaar. Veel games gebruiken gewoon een soort filesystem-in-een-file. Alle resources (meestal in een "cooked" vorm zodat de binaire data zonder alteveel processing meteen at runtime gebruikt kan worden) worden gewoon bij filenaam genoemd door bijv. een configbestandje of een script, en opgezocht in de database.

Wijzelf gebruiken een uitgebreid resourcesysteem dat werkt met IDs ipv bestand- of resourcenamen. Alle levels en objecten staan in afzonderlijke files, maar die files zijn op zich weer allemaal databases met alle resources die nodig zijn voor dat level of object (denk aan mesh, textures, materials, animaties, scripts, etc.). Ze worden gebouwd met een buildtool (ik denk vergelijkbaar met XNA Build) die met een top-down approach alle resources en dependencies daarvan gaat bouwen - als je het commando geeft een level te bouwen, dan introduceert dat level weer dependencies naar bepaalde textures en objecten die in dat level gebruikt worden die daardoor ook gebouwd worden, etc.. Natuurlijk wordt bijgehouden wat al gedaan is, zodat alleen veranderde elementen opnieuw gebouwd hoeven worden. Eveneens wordt er een database bijgehouden die unieke IDs bijhoudt van de resourcenamen, zodat we in-game alleen nog maar IDs hoeven te gebruiken ipv relatief ruimteverspillende strings.

In zo'n database staat niet alleen de binaire data van de resources, maar ook metadata die aangeeft op welke plaats in de binaire data pointers staan naar andere resources. In de runtime zijn er verschillende resource handlers, die bij het inladen van een resource dat aan hun type voldoet ingekickt worden en op die manier een class kunnen instantieren. De metadata wordt vervolgens gebruikt om de pointers in de resources te laten wijzen naar de class instances of simpelweg gewone binaire data van andere resources. Als we dus een stuk mesh inladen voor een object, dan is dat al meteen een instantie van de klasse RenderModel, en die heeft eveneens automatisch referencies naar de gebruikte textures (als instanties van de klasse Texture).

We hebben eveneens een asset manager GUI met editors danwel viewers voor de meeste resources, en waarmee je de dependencies kunt doorzoeken en de buildtool kan aanroepen. Sommige soorten resources zijn real-time-editable, dat wil zeggen dat we de game vanuit de GUI kunnen opstarten (op zowel PC als console), en door de resources aan te passen in een editor kunnen we meteen in real-time de veranderingen in de game zien. Denk aan het plaatsen/verplaatsen/verwijderen van objecten, het aanpassen van eigenschappen zoals de kleur en intensiteit van een licht, etc. Hierdoor kunnen verschillende elementen makkelijk getweakt worden, zonder opsteeds opnieuw de data te moeten bouwen en het game opnieuw te moeten runnen
- Testen. Het nabootsen van een productie-omgeving om losse (basis)componenten te testen lijkt me lastig in een console-wereld. Leveren bedrijven als Sony en Microsoft daar standaard omgevingen voor of zitten de game developers vrolijk minigames te maken de hele dag om hun voortgang te zien/verifieren?
Voor veel componenten van een game hebben unit tests niet zo heel erg veel nut. Je kan bijvoorbeeld moeilijk een test ontwerpen voor de physics engine om te zien of de reactie van een botsing wel loopt zoals die moet lopen. Of de tests worden dermate complex dat je de tests zelf ook moet gaan testen :)
Als je iets gemaakt hebt om te testen dan ga je eigenlijk gewoon de game spelen. Natuurlijk niet vanaf level 1 oid, want die bestaat wellicht nog niet eens, maar gewoon een simpel level dat snel laadt, evt gemodificeerd zodat je code ook daadwerkelijk aangeroepen wordt en je de boel goed kan controleren. Als dat niet makkelijk kan dan maak je gewoon wat debug-code zodat de specifieke case die je wilt testen ook daadwerkelijk optreedt.

Voor de echt uitvoerige gameplay tests zijn natuurlijk aparte mensen ingehuurd, die in principe gewoon continu de game doorspelen en fouten rapporteren (in het laatste stadium voor de release). Verder hebben de consoles (maar de PC tegenwoordig ook als je het "Games for Windows" logo wilt voeren) een aantal eisen waaraan je game moet voldoen (dat verschilt natuurlijk per console, maar denk aan: je moet corrupte savegames kunnen herkennen, een textuele opmerking op het scherm mag niet korter dan 2 sec weergegeven worden, de naam "Xbox" moet correct gespeld zijn (inclusief casing), etc.), en dit zijn tests die de consolemakers ook zelf testen nadat je je game bij hen hebt gesubmit. Als er tests falen dan moet het opnieuw (uiteraard krijg je een rapport met wat niet klopt). En aangezien elke submission weer geld kost kun je er maar beter voor zorgen dat het in een keer goed is ;)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
TS, zoek anders een een van de zovele mod teams op, en kijk hoe het daar aan toe gaat.
Geeft toch al een aardige indruk. (m.a.w. komt vanuit mijn eigen ervaring veel overeen met hoe .Oisyn het beschrijft.)

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 25-11 22:57

dusty

Celebrate Life!

Het lijkt erop dat sommige mensen niet realizeren dat zoals .oisyn al hebt gezegd game-development compleet anders is dan business development. Het is over het algemeen ook een andere slag van programmeurs die bij een game development werken, en slechts een klein gedeelte van de programmeurs zullen makkelijk in beide gebieden kunnen developen. ( Ik gok zo op mensen die zichzelf hebben leren programmeren en ook een opleiding voor programmeren daarna hebben gevolgd aan deze beschrijving zullen kunnen voldoen. )

Als ik een development fout maak in mijn code en de fout wordt niet opgemerkt kan dat het bedrijf dat mijn software gebruikt enkele tien-duizenden euro's/dollars kosten. Als .oisyn een foutje maakt wat niet wordt opgemerkt, zal de engine hoogstens wat trager werken, en uiteindelijk zullen ze een patch uitbrengen. Maar geen van hun klanten zullen geld verliezen wegens een bugje. Dat verschil maakt ook dat je juist als business-developer stricter moet omgaan met documentatie van code en design.

Ik heb een tijdje gewerkt bij een speech-recognition bedrijf, de code daarvan blijft compleet in-house, en er geldt meer het eind resultaat dan de complete documentatie, netzoals bij Game-Development. Aangezien klanten alleen het eind resultaten zien, worden bugs gefixed als ze gevonden worden en als ze dus waard zijn te fixen. Ook bij dat bedrijf had iedereen zijn eigen specialiteit.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • ravenger
  • Registratie: Juli 2001
  • Laatst online: 09:16
mja wat oisin vertelt kan ik wel bevestigen vanuit mijn ervaring met game development, het is allemaal vrij pragmatisch. Ikzelf werk bij een studio die voornamelijk kleinere games maakt, en we werken heel sterk vanuit een simpel gameconcept. Er wordt dan ook vrij veel gesproken met designers over wat de game zou moeten inhouden, en vanuit dat punt bedenken we wat voor systemen we nodig hebben. We implementeren deze dan van de grond af op, beginnend met iets heel basaals en we borduren daar dan op verder door steeds nieuwe dingen erbovenop te bouwen, gewoon erg iteratief dus.

Natuurlijk werken we wel met milestones, maar omdat onze projecten vrij kort zijn, 3 maanden max, hebben we er meestal maar 3 (alpha, beta en final), waarbij de alpha een first playable is, de beta eigenlijk een redelijk af product is waarin de game in principe staat maar waarin nog kleine dingen moeten gebeuren en de final spreekt voor zich ;).

Ikzelf ben wel een UML fanboy vanuit mn informatica opleiding, maar ik merk dat dat soort dingen voor game development vrij informeel gaan. Ik maak af en toe wel es een diagrammetje zodat ik duidelijk heb hoe ik het ongeveer wil hebben, maar uiteindelijk is het een leidraad omdat je van te voren toch niet alles maar kunt verzinnen. Het communiceert natuurlijk wel makkelijker wanneer je een diagrammetje hebt waarop je kunt laten zien hoe je het ongeveer voor ogen hebt, maar omdat er bij ons maar 5 mensen aan een game werken is dat vaak niet echt nodig.

  • Depress
  • Registratie: Mei 2005
  • Laatst online: 24-11 21:01
dusty schreef op maandag 25 juni 2007 @ 08:34:
Het lijkt erop dat sommige mensen niet realizeren dat zoals .oisyn al hebt gezegd game-development compleet anders is dan business development. Het is over het algemeen ook een andere slag van programmeurs die bij een game development werken, en slechts een klein gedeelte van de programmeurs zullen makkelijk in beide gebieden kunnen developen. ( Ik gok zo op mensen die zichzelf hebben leren programmeren en ook een opleiding voor programmeren daarna hebben gevolgd aan deze beschrijving zullen kunnen voldoen. )
YES, ik kan dadelijk in beide werelden terecht.

Dit vind ik dan overigens dus niet waar. Het is wat net je 2e specialiteit is(naast programmeren). Als je een All Rounder (Je weet van alles iets) bent is het stug dat je mee gaat helpen in een game. Een game word gemaakt door een team, en elk teamlid heeft eigen specialiteiten en ze werken daarom in "hokjes van elk een andere vorm". Als allrounder ga jij daar nooit tussen komen. Het hokje voor jou bestaat niet namelijk, je bent overal een kleinere versie van.(Het visualiserend vertellen :+ )

Wat je krijgt is dat je dan als een infodesk over code gaat rond lopen op de werkvloer, en dat heeft dan weinig meer met gamedevelopment te maken.
Pagina: 1