R
arena wars nutzt aber wohhl auch nicht directX, oder? ich würde es als freakware dahinstellen
ich seh zum einen keinen grund auf c# umzusteigen, zum anderen seh ich große nachteile darin, dass man über manche dinge die extrem wichtig sind keine kontrolle hat. es ist ja schön als stöpselware für normale windowsapps, 1000mal besser als c++ mit mfc (was die alternative seitens MS ist). aber für spiele sollte man schon genau wissen was passiert und es auch kontrollieren. ansonsten wären die spieleprogrammierer schon vor jahren auf java umgesprungen.
das es viele nachteile bringt sieht man an dem fallbeispiel j2me. es ist hip, es ist neu, es hat nen garbage collector und managed für dich viele dinge, aber genau das muss jeder entwickler aushebeln, damit es auch wirklich immer richtig läuft.
oder um John carmack mal zu zittieren (aus http://www.armadilloaerospace.com/jc):
Write-once-run-anywhere. Ha. Hahahahaha. We are only testing on four platforms right now, and not a single pair has the exact same quirks. All the commercial games are tweaked and compiled individually for each (often 100+) platform. Portability is not a justification for the awful performance.
und so ging es mir dabei auch als ich j2me testete. mophun und brew hingegen liefen auf anhieb bei mir wie erwartet, mein einmal allokierter speicher zum anfang des spiels wurde niemals mehr reallokiert oder ergänzt und nur zum ende gefreet.
wenn man sich ne gute 3d engine anschaut für pc oder konsolen entwicklung, dann wird man auch sehen, dass so gut wie nicht mit dem speicher rumgeranzt wird, man hat einmal eine große allokation und kann dann in einer stackartigen allokations und deallokationsganz reihenfolge arbeiten, oder man freet einfach alles einmal zum ende z.b. eines levels bzw sieht es als gefreet an.
dazu muss man natürlich ein gutes design haben, man kann sich nicht leisten eine list zu benutzen, die für jedes element das man einfügt mal new aufruft usw.
deswegen seh ich wichtige vorteile von c++ verloren in c#, wenn man irgendwann vielleicht garnicht mehr drauf achten muss wie es richtig zu machen ist, sondern jeder hobby sql programmierer sein 3d zogg machen kann, wird es chancen für c# geben. aber wenn man wirkliche AAA titel machen möchte, wird man sein hirn nicht gegen eine laufzeitumgebung tauschen können.
rapso->greets();