Laden...

Spieleprogrammierung: Sind C#-Programme mittlerweile schnell genug?

Erstellt von Amgon vor 14 Jahren Letzter Beitrag vor 14 Jahren 4.077 Views
A
Amgon Themenstarter:in
2 Beiträge seit 2010
vor 14 Jahren
Spieleprogrammierung: Sind C#-Programme mittlerweile schnell genug?

Hallo,

ich habe mich dazu entschieden, von C++ auf C# umzusteigen - für Windows zu entwickeln scheint mir hier irgendwie einfacher.

Da ist mir so ein Gedanke gekommen. 🙂 Vor ein paar Jahren war C++ ja eigentlich das einzige, was man sich in Sachen 3D-Spieleentwicklung vorstellen konnte. Jetzt ist ordentlich Zeit vergangen und mich interessiert, ob sich das vielleicht geändert hat. C# ist bestimmt immer noch langsamer, aber fällt das noch so ins Gewicht?

Könnte es sein, dass die Zahl der C#-Gameengines in der Zukunft zunehmen wird und dann sogar richtige Spiele von den Firmen so geschrieben werden?

Hoffe, jemand kann mir diese Frage beantworten.

Amgon

J
237 Beiträge seit 2008
vor 14 Jahren

Also es gibt ja XNA von MS und IrrLicht hat zumindest einen .NET-Wrapper.
Es gibt auch ein Spiel, welches auf Basis von C# und Managed DirectX (mittlerweile veraltet) basiert: Arena Wars (wenn ich mich recht entsinne).
Und auch Sims 3 ist größtenteils in C# geschrieben, die gesamte Game-Logik auf jeden Fall.
Ich könnte mir gut vorstellen, dass es in Zukunft mehr in richtung "Managed Games" geht, aber wie lange es dauern wird, bis sich das auf dem Markt behaupten kann, wer weiß...
Ich würd's mir auf jeden Fall wünschen 😁 .

Grüße, JasonDelife.

Beim Programmieren löst man die Probleme, die man nicht hätte, programmierte man nicht.

S
401 Beiträge seit 2008
vor 14 Jahren

Und auch Sims 3 ist größtenteils in C# geschrieben, die gesamte Game-Logik auf jeden Fall.
Ich könnte mir gut vorstellen, dass es in Zukunft mehr in richtung "Managed Games" geht, aber wie lange es dauern wird, bis sich das auf dem Markt behaupten kann, wer weiß...
Ich würd's mir auf jeden Fall wünschen 😄 .

Ich hoffe, dass die Entwickler über den Tellerrand schauen und auf eine Technologie setzen, die sich nicht auf ein Betriebssystem beschränkt.
z.B. Java, OpenGL, OpenCL

J
237 Beiträge seit 2008
vor 14 Jahren

@Siassei
Was ist denn mit Mono? Sims 3 zum Beispiel läuft auch auf dem Mac.

Viele Grüße, JasonDelife.

Beim Programmieren löst man die Probleme, die man nicht hätte, programmierte man nicht.

A
Amgon Themenstarter:in
2 Beiträge seit 2010
vor 14 Jahren

Das hört sich doch schonmal gut an. 😉

Gibt es denn schon eine kostenlose Game-Engine, die man leicht "erlernen" kann?

1.002 Beiträge seit 2007
vor 14 Jahren

Hallo Amgon,

solange nur auf dem PC und nicht auf der XBox verwendet, ist XNA kostenlos und für 2D- sowie 3D-Spieleentwicklung gedacht.

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

S
401 Beiträge seit 2008
vor 14 Jahren

solange nur auf dem PC und nicht auf der XBox verwendet, ist XNA kostenlos und für 2D- sowie 3D-Spieleentwicklung gedacht.

Diese Einschränkung verstehe ich nicht? Möchte MS verhindern, dass es für die XBox zu viele Spiele gibt 🤔

1.002 Beiträge seit 2007
vor 14 Jahren

Hallo Siassei,

damit du die Spiele auf die XBox portieren kannst, musst du Mitglied des XNA Creator Clubs sein, der jährlich kostet.
Analog sieht die Sache bei iPhone-Entwicklern aus: Man kann zwar Programme für das iPhone entwickeln und in der lokalen IDE testen (einen Mac-Rechner vorausgesetzt), jedoch muss man $99 pro Jahr dafür zahlen, iPhone-Entwickler zu sein und damit Zugang zum App Store für iPhone / iPod zu erhalten, um seine Programme dort veröffentlichen zu können. Für nicht-gejailbreakten iPhones ist der Download über das App Store die einzige Bezugsmöglichkeit für Apps.

Wenn Microsoft mit kostenlosen Anwendungen für die XBox eine ähnliche Strategie wie Apple verfolgt, nehme ich an, dass der Hauptgrund (neben den Einnahmen, versteht sich) der ist, dass jede Anwendung erst geprüft wird, bevor sie veröffentlicht wird.
Das ist reine Spekulation, ich weiß nicht, ob Microsoft wirklich so vorgeht, allerdings könnte ich mir so die Kosten erklären. Schließlich will man an der eigenen Plattform ja auch verdienen ...

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

1.346 Beiträge seit 2008
vor 14 Jahren

Um ein xna spiel für die xbox freigeben werden soll müssen erst prüfer durchschauen. soweit ich weiß 3. wenn das spiel auchnoch in mehreren Sprachen daherkommt sind es sogar noch welche die die zweite sprechen. Dann kostet der Store Microsoft auch Geld.
Wenn du nur für den pc entwickeln willst kannst du xna nehmen. eine andere Möglichkeit währe SlimDX, ein reiner directx wrapper. Wenn du schon in c++ mit directx gearbeitet hast wird dir das leichter fallen.

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo Siassei,

Möchte MS verhindern, dass es für die XBox zu viele Spiele gibt

typischerweise wird die Hardware einer Konsole durch den Verkauf der Spiele subventioniert. Deshalb muss MS sicherstellen, dass sie von dem Verlauf der Spiele auch Geld abbekommt. Der reine Hardwareverkauf der Konsolen ist nicht gewinnbringend oder für sich gesehen sogar ein Verlustgeschäft.

Damit sollten wir das offtopic aber auch wieder gut sein lassen.

herbivore

D
69 Beiträge seit 2008
vor 14 Jahren

Also an der Grafikkarte wirds nicht scheitern - ob ich jetzt HLSL unter .NET/XNA oder C++/DirectX ausführe ist realtiv Wurst.

Bei Prozessoren sieht das ganze schon anders aus - da ist C++ Deutlich im Vorteil, allerdings haben die Spieleentwickler noch immer Riesen Probleme mit Mulitcoreunterstützung und .NET 4.0's hauptinhalt ist multicoreunterstützung... Und wenn bald flächendeckend Vierkerner eingesetzt werden..?

Bleibt noch der Speicher - da ist .NET doch um einiges Hungriger, allerdings haben mitlerweile die meisten Spieler 2-4 gig ram - heißt hier ist das ganze auch nicht mehr sooo kritisch.

Allerdings wenn man ehrlich ist muss man sagen das reines .NET für ernsthafte Spieleprojekte immonent noch Träumerei ist und sich frühestens in 5-6 jahren anfangen wird durchzusetzen - meiner meinung nach. Immerhin müssten sich die Spieleentwickler auch ersteinmal in .NET einarbeiten.

Allerdings wird .NET von der Spieleindustrie auch nicht ignoriert, sehr viele Tools werden mitlerweile in .NET geschrieben - weil's einfach schneller geht.

Und was spricht denn dagegen das man die Engine in C++ schreibt und die Spiellogik und das Scripting in .NET macht, immerhin ist C# doch deutlich schöner als das recht prozedurale Lua und bietet bessere IDEs.

Das sich Java durchsetzt glaube ich nicht - Spiele sind immer noch Microsoft Terrain

Bei Risiken oder Nebenwirkungen fressen sie die Packungsbeilage oder schlagen sie ihren Arzt mit ihrem Apoteker.

1.346 Beiträge seit 2008
vor 14 Jahren

c++ ist in sachen geschwindigkeit nicht mehr haushoch überlegen. Beim aufruf einer methode wird sie kompiliert, das kostet zeit. aber wenn das getan ist gibt es hochgradig optimierten code. man braucht cshon einen sehr guten c++ programmierer um dann performanter zu sein. zum speicher: soo viel mehr braucht eine .net anwendung nicht. bei spielen sind es haupütsächlich texturen die ins gewicht schlagen. und die sind in .eet fast genau so groß.

6.862 Beiträge seit 2003
vor 14 Jahren

Komplett in C# bzw. einer anderen .Net Sprache geschriebene Spiele werden sicherlich noch bissle auf sich warten lassen, aber die schon angesprochene Möglichkeit .Net Sprachen für die Spiellogik zu benutzen wird schon öfter mal genutzt. Da muss man auch Unity nennen, welches C#, Boo und Javascript als .Net Sprachen fürs Skripting unterstützt. Die hosten die Mono Runtime selber in ihren erzeugten Anwendungen, so das keine weiteren Abhängigkeiten fürs System gegeben sind. Und damit lassen sich Spiele für Windows, MacOS, IPhone und Wii erzeugen. .Net Spiele laufen also schon jetzt auf den unterschiedlichsten Plattformen und nicht nur Windows wie oft gesagt wird.

Baka wa shinanakya naoranai.

Mein XING Profil.

C
114 Beiträge seit 2008
vor 14 Jahren

@pdelvo

Leider gibt es aber noch Punkte, an denen C# nicht mit C oder C++ mithalten kann, einfach weil die Optimierungen nur lokal in einem kleineren Gebiet gemacht werden und nicht auf einen größeren Bereich bezogen. Das kann teilweise einen Performance Unterschied von ca. 1 zu 7 ausmachen.
Bezüglich C# als Scriptsprache in Games kann ich aber aus Erfahrung mit Unity sagen, es ist super! Ich muss wohl keinem sagen, dass C# einfach und angenehm zu schreiben ist.

„Heute back ich, morgen brau ich,
übermorgen cast ich die Königin nach int;
ach, wie gut dass niemand weiß,
dass ich Rumpelstilzchen heiß!“

"Bei Stylefragen sollteste nen Mac-User oder ne Frau fragen."