Rowdy.nl schreef op dinsdag 21 november 2006 @ 15:34:
Ten eerste, ik vindt het een leuk ambitieus project, en zal het ook wel blijven volgen... Maar d'r moet me toch iets van het hart...
[...]
[...]
Wat is nou de werkelijke keuze voor C#? Gezien de nogal geïrriteerde/verdedigende reacties van sommige 'leiders'/deelnemers van dit project met hun 'het is makkelijker te leren' verweer krijg ik steeds meer het vermoeden dat het gros van deze mensen nog nooit C++ van dichtbij hebben gezien. Ook als ik naar de myreacts kijk kunnen een heel stel nooit een programmeeropleiding hebben gehad. (Normale opleiding begint met Java, dan C++ en vervolgens .NET)
Hoi Rowdy, natuurlijk is een taal niet zomaar te leren, maar dan gaat het eigenlijk nog niet eens om de taal zelf, maar om het principe erachter. Laat het nu zo zijn, dat het principe achter de 3 talen (java, C#, C++) gelukkig hetzelfde is, namelijk dat ze zijn gebaseerd op OOP. Elk van deze 3 talen heeft zowel voor als nadelen, dat kan je natuurlijk niet ontkennen. Het voordeel van C# en Java boven C++ is, dat men weinig rekening hoeft te houden met memory management (het expliciet werken met pointers en references vraagt mijnziens meer kennis en inzicht) Het nadeel is dat deze misschien in performance onderdoen voor C++ omdat ze niet direct op de machine draaien (Java draait op JVM, C# op .NET).
Vooral degenen die het hardste schreeuwen dat C# zo makkelijk is. En dat doet mij dus vermoeden dat ze ooit een keer Visual Studio gedownload hebben en dmv het beter klik en sleep werk met eventueel een tutorialtje of copy-paste van een willekeurige site zichzelf 'programmeren' in C# aangeleerd hebben. en aangezien deze mensen zo bang zijn dat ze zelf in C++ zouden moeten coden is er uiteindelijk gekozen voor C#. Toch? Lijkt mij een iets realistischere reden.

Oh boy, cmon, "bang om in C++ te coden" is natuurlijk je reinste onzin. We willen de gelegenheid bieden aan mensen die net begonnen zijn met OOP of er aan willen beginnen, om ook mee te helpen met het project en daarbij ervaring op te doen. Ikzelf had misschien liever voor C++ gekozen, maar sinds we het zo toegankelijk mogelijk willen houden voor mensen om zich bij ons aan te sluiten, hebben we voor C# gekozen (op basis van de leerdrempel die voor C# mijnziens lager ligt dan die van C++).
Dat je code kunt kloppen in C# is niet moeilijk; dat is het grote voordeel van C#, het is heel makkelijk, en heel veel zaken zijn idd heel snel te realiseren in C#. Maak bedenk daar wel bij dat die ene handige functie zo globaal gemaakt is dat ie in 99% van de gevallen voor overhead zorgt die je in een andere taal niet hebt.
Het wordt nog erg leuk; als ik de deelnemerslijst zit zitten er (gelukkig) een paar mensen bij die wél verstand hebben van programmeren en een gedegen opleiding hebben gehad. Die mensen komen straks met een mooi software model op de proppen, met een dik klasse diagram, generics, etc etc... En dan snapt 80% er niets meer van en ben je klaar...

Ik kan je verzekeren dat in het programmeerteam de meeste mensen een degelijke opleiding hebben genoten of er mee bezig zijn. Daar ben ik ook blij om, want wanneer ik geen vertrouwen had in de kennis en kunnen van de andere deelnemers had ik waarschijnlijk minder snel mijn medewerking aan verleend aan het project (Ik ben immers ook aan het afstuderen dus ik wil mn tijd niet besteden aan onnuttige dingen

). Bovendien hoeft niet iedereen de kennis te hebben om software te modelleren, zolang er maar meerdere mensen zijn die het wel kunnen en zich ook daarmee bezig houden binnen het project.
Net zoals de test van denyos in het eerste topic, die heeft 'even' een tweetal kleine applicaties gemaakt. Een in C++ en een in C#. In dat specifieke geval had C# een hogere framerate dan C++. Conclusie: C++ stinkt en C# is super.

Beetje kromme conclusie imho, professionele bedrijven steken daar niet voor niets veel tijd in. En denyos heeft een super methode die het in een half uurtje test met enorme betrouwbare resultaten...
Natuurlijk is het zo dat je niet zomaar kan bepalen of de performance in C# daadwerkelijk zoveel beter of slechter is dan C++. Zoals je het laat overkomen, heeft de ene post van denyos over FPS al een grote invloed op de besluitvorming, dat is natuurlijk onzin.
Het is gewoon erg grappig, ook wordt overal verwezen naar de notulen, waarin zoveel besloten is. Een klein voorbeeld:
[...]
Leuk, zeer uitgebreid ja. Waarom is er eigenlijk voor ogre3D? Ervaring? Super engine? Wat zijn de voordelen tov andere engines? Heeft iemand er al wat (code?) voor liggen? In de notulen vind je normaal de voor en tegens, mogelijke opties, een conclusie je waarom je iets gaat gebruiken.
Je doet nu net of we geen andere engines hebben bekeken en als een kip zonder kop hebben gekozen voor Ogre3D. Omdat het misschien niet duidelijk is waarom we voor Ogre hebben gekozen, zal ik dat even toelichten. Het is zoiezo geen optie op een commerciele engine te nemen, gezien we niet willen betalen voor een licence (ookal is dit maar enkele tientallen euro's). Dan gaan we dus kijken naar opensource engines. Hierbij hebben we verschillende engines bekeken (bron:
http://www.devmaster.net/engines/ ), en onze keuze daarbij afgewogen. Feit blijft dat Ogre3D gewoon de beste Graphics Engine is en ons de meeste mogelijkheden bied, zowel qua integreren met andere engines, als het gebruik van 3D models van een bepaald formaat. Mocht je je afvragen of ik daadwerkelijk andere engines heb bekeken, ik heb zowel met Irrlicht gewerkt als met Ogre, en ik kan je vertellen dat de code Irrlicht op bepaalde punten gewoon niet goed inelkaar zit, er zitten wat kromme dingen in die beter hadden gekund, met name op het gebied van het koppelen van models aan de scene.
Dat de notulen tot op heden niet zo uitgebreid zijn geweest, daar kan ik opzich nog wel inkomen, en daar kan ik je geen ongelijk in geven.
In diezelfde notulen vind ik ook nergens de keuze voor de programmeertaal terug zoals sommige mensen beweren...
Waar vindt ik de FS en/of TS? Onderbouwingen voor keuzes?
Ook de reacties op goede argumenten voorC++/tegen C# zijn ronduit belachelijk. De kern van elke reactie is 'makkelijk'. C# is makkelijk. DirectX is makkelijk. Ogre is makkelijk icm C#.
Waarom ga je in hemelsnaam zelf een spel maken? Dat is niet 'makkelijk'. 
Wie heeft ooit gezegd dat een spel maken gemakkelijk is?

Het kost enorm veel tijd en inspanning, inzicht en kennis. Neemt niet weg dat het enorm uitdagend is, en dat er ook daadwerkelijk mensen zijn die de ervaring die ze opdoen bij dit project willen en kunnen gebruiken in de toekomst.
Normaal verloopt zo'n software project ietsje anders:
- Functionele specificaties (wat wil je, hoe moet het werken, use cases etc)
- Wat zijn de opties? (Talen, engines etc) Groepen maken die die opties gaan bekijken en testen. Aan de hand van die zaken een goede keuze maken die onderbouwd is.
- Technische specificaties maken met een degelijk ontwerp.
- Planning maken met mijlpalen
- Teams maken die de verschillende onderdelen gaan ontwikkelen
- Ontwikkelen, mijlpalen halen, planning bijstellen, stukjes testen
- Testen
- Over bovenstaande moet constant evaluatie/bijsturing/controle/voortgangsbewaking plaatsvinden...
Zoals ik het hier zie is er een idee geopperd, van daaruit is er een 'vergadering' gehouden en is er praktisch gelijk in de tak ontwikkeling gesprongen. Maar kom even tot bezinning, gooi weg wat je hebt, en ga lekker rustig met de mensen die je nu bij elkaar hebt rustig om de tafel zitten en begin vooraan.

Aint it cute, but its wrong... Niemand is nog echt aan het ontwikkelen geslagen, hoe kom je daar bij. Er zijn hoogstens wat prototypes om te kijken hoe we bepaalde triviale dingen kunnen realiseren zoals input en geluid, zodat we een beter inzicht krijgen in wat de mogelijkheden zijn.
Ik ben blij dat je ons de ins en outs verklapt van ontwikkelingsmethoden, maar laat duidelijk zijn dat we hier ook zeker bewust van zijn, en dat we nu ook eerst bezig zijn met een degelijk plan van aanpak voordat we uberhaubt gaan kijken hoe de game er daadwerkelijk uit moet komen te zien in alle aspecten, en daarna pas een technisch ontwerp gaan maken alvorens we uberhaubt echt gaan beginnen met produceren.
Hou er in ieder geval rekening mee dat je hier heel erg veel tijd in moet gaan steken. Een games bedrijf met een hele hoop professionele, ervaren mensen kost het veel tijd om een goede game te maken. Het zou onrealistisch zijn dat een groepje tweakers (no offense) dit zomaar even binnen een korte tijd voor elkaar krijgt...
Zie bovenstaande als positieve kritiek, het komt misschien heel lullig en vijandig over, het is niet zo bedoeld... ('t schijnt dat ik soms lullig uit de hoek kom...

)
Ik zie alle verdedigingen van bepaalde mensen die zich ondanks bovenstaande waarschuwing dit toch persoonlijk op gaan vatten en de verwensingen aan mijn persoontje etc wel tegemoet...
Veel succes iig met het project...
Bedankt voor de kritiek, ik hoop dat het wat duidelijker is, dat het niet zomaar een bijmekaar geraapt zooitje is, maar dat we wel degelijk weten waar we mee te maken hebben en er enige ervaring aanwezig is binnen het team. Natuurlijk zijn we geen van allen professionals (nog niet iig

), en dat de ervaring redelijk beperkt is, dat is natuurlijk geen wonder. Neemt niet weg dat, zoals ik al eerder zei, het project wel meetelt in de ervaring van mensen en dat deze ervaring met aspecten van het ontwikkelen van games dus groeit naarmate het project vordert. We zijn er van bewust dat het een lange tijd gaat duren voor we uberhaubt iets hebben, maar dat mag lijkt me.
Verder, mocht je je geroepen voelen om mee te helpen in het project, dan ben je natuurlijk van harte welkom (dat geldt overigens natuurlijk voor iedereen).