Entwiklung für Mac & PC gleichzeitig.

Yellow Stone

Yellow Stone

Mitglied
Thread Starter
Dabei seit
16.10.2004
Beiträge
74
Reaktionspunkte
0
Guten Tag,

Ich habe erst kürzlich einen Power Mac G5 erworben und betreibe nebenher noch einen etwas älteren Rechner, auf dem Windows XP seinen Dienst verrichtet.

Ich wollte es eigentlich schon vor 3 Monaten angegangen sein, aber mein letztes Projekt hat ein bisschen länger gebraucht.

Folgendes, ich möchte schlicht das Programmieren lernen :)
Ich habe mir da auch schon etwas Größeres Vorgenommen, worauf ich insgesamt hinarbeiten möchte. Und zwar eine Game Engine und später ein Spiel was auf dieser aufsetzt.

Da ich unter verschiedenen Systemen arbeite (Privat: Windows, Mac OS X; Beruflich: Linux, Windows) möchte ich auch, das das Ganze hinterher möglichst unter allen dieser aufgezählten Plattformen Läuft.

Mag vielleicht etwas zu Euphorisch klingen, aber ich möchte das ganze als eine art Hobby Projekt auch mit anderen Leuten Hochziehen.

Wichtig ist für mich jetzt erst einmal, welche skills bzw. welche Kenntnisse benötige ich/wir (ich wird sicherlich nicht alles alleine machen) um eine Hoch Performate Game Engine zu schreiben. Allen vorweg auch, welche Hochsprache benötige ich dafür? Ich weis aus unserer Firma (Wo einige bei dem Projekt mitmachen würden) das Unter Windows XP und Linux die wo beste C++ sein soll.
Ich habe mir aber mal das Tool XCode angesehen, und zu meinem Enttäuschen bin ich nicht zum Thema C++ fündig geworden sondern immer nur Objective C.
Ok, C++ ist eine Generation höher als C selber, soviel ist selbst mir klar, aber wie schautes den nun mit Ojective C auf den Anderen Plattformen aus? Oder ist das eine art proprietäre Mac OS Sprache, wie es mit C# der fall ist?

Na ja, eine Game Engine ist ja schlicht nicht das komplette Ziel, wir dachten daran unsere eigene Software zu entwickeln, sprich unsere eigenen Editoren für den Grossteil des Spiels (Level Editor z.B.)

Der rest des kleinen Teams kann fast perfekt C++ ich hingegen kann sehr gut mit der Rendering Software Maya umgehen und auch meine PHP5 Kenntnisse sollten von Vorteil sein.

Uns geht es jetzt aber halt darum das Spiel auf alle 3 Plattformen zu bringen. Und jeder ist offen was neues zu lernen, sollte es halt Objective C sein, machen wir das^^

Ok, vileicht bin ich etwas ausgeschweift, ich fasse also zusammen.

Was benötigen wir um ein Spiel (3D Ego Shooter oder Echtzeit Strategie, wir sind noch am grübeln ewnt. Auch ein Genre mix) zu Entwickeln, welches auf allen 3 Plattformen sehr gut und schnell rennt (Gute Programmierung ist klar, aber ich erfrage die Basis) wir möchten da auch möglichst auf OpenSource oder Freie Software und Formate setzen)

Ich denke mir jetzt einfach mal:
- OpenGL als Grafik API
- Objective C als Hochsprache (Engine, Editoren usw.)
- Maya für die Models usw. (Vorhanden)
- Photoshop für Texturen usw. (Vorhanden)
- jemanden der sich mit Audio FX Auskennt :(
- Viel Zeit und Motivation ( ist vorhanden ;) )

Na ja, verbessert mich bitte :)

Aber nehmt diese Fragen bitte auch ernst.
 
Mit OpenGL liegst Du schon mal richtig, da dies auf allen Plattformen zur Verfügung steht. Mit Obj. C leigst Du aber 100% falsch.

Es stehen eigentlich 3 Hochsprachen für soetwas zur Verfügung.

C++
Hier müßt ihr gegebenenfalls einzelne Module für jedes OS getrennt entwicklen. habt aber den Vorteil, eine sehr gute Performance erreichen zu können.

Java
Mit dem Umweg über Java3D seid ihr eigentlich vollständig Betriebssystemunabhängig, habt aber Einschränkungen in der Performance.

C# bzw. Mono
C# steht auch unter Mac und Linux zur Verfügung dank dem Mono-Projekt. Es gibt sogar schon eine frei verfügbare Gameengine, die unter Mono entwickelt wurde.

Sieh dir doch mal Crystal Space an, ist unter C++ entwickelt und läuft auf Win, Max und Linux.

Den Link für das projekt unter C# finde ich gerade nicht. Sollte er noch auftauchen, reiche ich Ihn nach. :)
 
Warum übersehen eigentlich alle immer bei der Projekt-Auswahl in XCode das "C++-Tool" ganz unten? ;)

Wenn das Programm auf allen Plattformen laufen soll, könnt ihr ruhig in C++ programmieren. Ist kein Problem. Ihr könnt auch Objective-C nehmen, aber dann bekommt ihr vielleicht Probleme auf anderen Plattformen, da ihr euch erst die Compiler zusammensuchen müsst.

Als Fenster-Verwaltung solltet ihr dann SDL nehmen. Das läuft auf allen Plattformen und ist für Spiele-Programmierung optimiert.

Für die Editoren würde sich dann wxWidgets gut eignen. QT gibt es nicht als freie Version für Windows und GTK+ braucht unter OS X den X11-Server. Oder ihr macht eine Version für jedes System, was aber unnötiger Mehraufwand ist.

Und was fast jeder "Hobby-Spiele-Entwickler" immer wieder vergisst ist die Sound-API... ;) Hier bietet sich ebenfalls SDL an, oder aber OpenAL wenn ihr Raumklang haben wollt. SDL bietet nur Stereo-Sound.

Aber je nachdem wie schnell euer Spiel sein soll und wie gut es aussehen soll, müsst ihr unter umständen eh die Shader der Grafikkarten benutzen. Das hat dann aber nix mehr mit C++ zu tun. ;)

Naja. Was ihr braucht ist eine Menge Verständnis für höhere Mathematik. Weil die ist Sprachenunabhängig.... ;)
 
Ich würde als Sprache Deutsch bevorzugen, sollte auf allen System laufen. *ringeltsichvorlachen*. Sorry

Kingvalle
 
Da gibt es noch viel mehr. ;) Also neu ist die Idee wirklich nicht. ;) Da Problem ist halt das die meisten Ego-Shooter machen, welche mir langsam aber sicher langweilig werden. Da ist einfach nichts neues...

Erst waren es die reinen Adventures, danach waren es die Echtzeit-Strategie-Spiele und jetzt sind es halt Ego-Shooter auf die alle abfahren...

Es ist halt wie mit den Linux-Distributionen. Da will auch jeder seine eigene machen... ;)
 
Hallo Yellow Stone.
Du hast große Pläne - das ist schön. Du solltest aber erst klein anfangen.
Wenn du programmieren lernen willst, dann fang erst ganz klein.

Projekt Nr. 1: Programmier Tic-Tac-Toe

Das ist mein voller Ernst. Da du ja anscheinend keine Erfahrung im Programmieren hast, dürfte dieses Projekt für die ersten paar Wochen oder ggf. sogar Monate ausreichen.
 
@ -Nuke-

Vielen Dank!

Also setzen wir im bereich Grafik auf OpenGL für Audio OpenAL und als Basis Sprache für alles andere C++ :)

Na ja, ewentuel isses ein bisschen zu hoch gesteckt, aber unser spiel möchte hinterher MINDESTENS so gut aussehen, wie UT 2004 es jetzt tut (Vom Modeln & Texturieren her, ist da zumindest kein Problem für mich) sollte es dennoch ein Strategie spiel werden, hatten wir die Qualität von C&C Generals ins Auge gefasst.
Und es sollte halt überall Mit aktueller Hardware Passabel laufen... (1280x1024 in 32 Bit @ ca.40fps)

Was für uns noch wichtig ist (Sorry, habe vergessen es zu erwähnen) Das spiel muss/soll Netzwerk, besser noch Internet Fähig sein.
 
KAMiKAZOW schrieb:
Hallo Yellow Stone.
Du hast große Pläne - das ist schön. Du solltest aber erst klein anfangen.
Wenn du programmieren lernen willst, dann fang erst ganz klein.

Projekt Nr. 1: Programmier Tic-Tac-Toe

Das ist mein voller Ernst. Da du ja anscheinend keine Erfahrung im Programmieren hast, dürfte dieses Projekt für die ersten paar Wochen oder ggf. sogar Monate ausreichen.

Na ja, Programmieren kann ich schon, aber.. halt nur PHP5 & MySQL...
Soll aber stark behilf sein, wenn man schon was kann...
 
sorry, nimms jetzt nicht persönlich aber ich denke du wirst den codern bei eurem projekt keine grosse hilfe sein im programmieren :) auch wennde php kannst du wirst c/c++ net so schnell lernen das du da irgendwie mithelfen kannst, maybe wirste in einem halben jahr fähig sein da was zu coden aber die anderen werden deinen code wahrscheinlich eh neuschreiben weil er einfach nur scheisse sein wird. sorry is aber so für programmieren braucht man erfahrung... Und das ihr es min. wie ut 2004 aussehen soll ist auch viel zu hoch für euch denke ich mal. ich hab zwar keine ahnung von opengl programmierung aber, guckt da war ne riesen firma mit total viel erfahrung am programmieren und dann wollt ihr, hobby programmierer die zum teil netmal c/c++ können es ihnen nachmachen? Sorry, aber hoffnungslos.

ABER: zeig mir das ihr es doch schafft ;)
 
@ crashx

Na ja, meine großen Trümpfe sind halt, das ich sehr gut im 3D und Grafik bereich bin Models wie in UT2004 stellen keine herausforderung dar und auch die Levels sind nicht das Hint Limit wenn es da Problemem geben könnte, dan höchstens in der Leistungsfähigkeit der Engine, die grafiken sind absolut kein problem. Ich will es halt nur lernen. Die anderen schreiben Datenbanken Programme und solche scherze. Als ich denk schon, das die was drauf haben.

Und na ja, ich hab schon ein par C++ Tutorials Durch gehauen, mein erstes DOS Programm ( ne art Frage antwort Spiel ) rennt schon ganz gut und der Code ist laut den Anderen auch nicht der schlechteste... mal sehen was ich in nem Jahr oder so kann... Ich hab in PHP & MySQL immerhin eine Eigenen Forums Software Geschrieben, also so ganz unbegabt bin ich ja nicht ;)

Ich hab mir jedenfahsl Mal das Buch „Einstieg in C++“ von Galileo Computing bestellt. Mal sehen was ich damit reißen kann...
 
ich hab nie behauptet das du unfähig bist. wollte nur sagen das man net von einem tag auf den anderen eine sprache lernen kann. und naja son if else frage antwort spiel da kann man auch recht schwer was falsch machen ;) Aber stell dich drauf ein das es länger als ein Jahr dauert zu lernen einen code zu schreiben der deinen anforderungen gerecht wird ;) Viel glück :)
 
@ crashx

Na ja, dammit habe ich sowieso kein problem, und der rest warscheinlich auch nicht da wir sowieso erst im nächstem jahr dammit anfangen wollten.

PHP habe ich auch nicht von heute auf morgen gelernt ;) und wenn ich bedenke das ich vor nem jahr als ich jemanden mal ein par fragen wegen PHP gestellt hatte die antwort bekommen habe " du brauchst Mindestens ein halbes Jahr bis du das so halbwegs kannst" na ja, nach 3 Monaten konnt ichs schon so gut, das eben diese Person mich gefragt hat und heute Korigiere ich seinen Code :cool:

Na Ja, mal sehen, ich denke da wir derzeit nur zu 5. sind, wird das ganze eh mehr als 3-4 jahre in ansüruch nehmen bis a was bei rauskommt. ewentuel sind wa dann ja schon so gut, das wir Doom 3 locker nieder Coden ;Achtng ironie;
 
Yellow Stone schrieb:
...wie UT 2004 es jetzt tut (Vom Modeln & Texturieren her, ist da zumindest kein Problem für mich) ...

Autsch! :eek:

Tut mir leid, aber schraube deine Anforderungen mal meilenweit runter...

Ich will dein Können nicht anzweifeln, aber zu hohe Anforderungen zerstören schnell jedes Team. Denn Spiele-Programmieren ist keine spaßige Arbeit, wie viele Denken. Das ist ne Menge Stress und auch manchmal sehr frustrierend.

Modeln und Programmieren sind 2 verschiedene Sachen. Ich kenne das von meinem Kumpel. Der sagt auch "och, machst du da nen Shader, dann hier das und dann da das", etc. Klar in Modeling-Programmen klickt man sich alles zusammen und fertig ist die Sache. In OpenGL ist das harte Schreibarbeit.

Aber stell dir bitte nicht vor das du was modellierst und der Programmierer ruft eine Funktion auf und alles funktioniert.

Klar kannst du schicke Modelle erstellen und riesige Texturen drauf klatschen, aber bedenke das du Speicher sparen musst. Du kannst kein 2 MB Modell mit 20MB-Texturen durch die Grafikkarte jagen. Da kannst du dir ja alleine ausrechnen was da pro Sekunde alleine für ein Modell an Bandbreite drauf geht.

Leichte Rechnung. Bei Epic sitzen haufenweise Programmierer mehrere Stunden am Tag an einer Engine mit massig Erfahrung. Die brauchen 3 Jahre für so etwas wie UT2004.

Ihr 5 Mann durchschnitt 2 Stunden am Tag, na? 10-20 Jahre?

Ich würde als Anforderung erst mal Quake1 oder so nehmen. Das ist realistischer.
 
OK, du kannst schon programmieren. Super. Dann dürfte dir Projekt Nr. 1 ja recht einfach fallen.
Objective C soll recht einfach zu lernen sein. Auch wenn du schon ein C++-Buch bestellt hast, kannst du dir ObjC mal anschaun. Wenn du hinterher in mehr als einer Sprache fit bist, ist das doch nur von Vorteil. :)
Ich hab's zwar schonmal in anderen Threads gepostet, aber mit http://www.gnustep.org/ hast du eine ObjC-Umgebung, die weitestgehend kompatibel zu Cocoa (Mac OS X) ist. Unter Linux läuft GNUstep schon sehr gut. Unter Windows ist GNUstep wohl noch nicht ganz so weit.

Wenn ihr was größeres programmieren wollt, dann flehe ich euch an: Nicht noch eine 3D-Spiele-Engine. Die gibt es wie Sand am Meer. Noch in diesem Jahr wird id Software wohl noch den Source von Quake 3 unter GPL freigeben. id gibt schon fast traditionell immer die vorletzte Engine frei. Wie auch schon früher werden auf Basis davon weitergehende Entwicklungen stattfinden und was könnte eine bessere Vorlage zum Lernen sein als der Code von Profis?


EDIT: Eine Freundin von mir hätte liehbend gern eine kostenlose Mac-Version vom Linux-Spiel GLines (ohne, dass sie sie mit X11 herumquälen muss). Mach alternativ daraus Projekt Nr. 1 und poste es dann hier. :)
 
wenn das Programmieren den so super lange dauert, warum haben es die jungst von .theprodukkt geschaft innerhalb von nur 3-4 Wochen das mini Spiel .kkrieger von 0 an zu schreiben :confused:

http://www.theprodukkt.com/kkrieger.html

Dammit das nicht falsch verstanden wird, das ist für uns nur ne Zielsetzung, das Game soll schon grafisch anschpruchsvoll sein, aber keine killer app!

wir wollen halt ALLEs entwikeln, von 0 auf das entergebniss sozusagen.

Na ja, lassen wir uns halt überraschen ;)
 
KAMiKAZOW schrieb:
Wenn ihr was größeres programmieren wollt, dann flehe ich euch an: Nicht noch eine 3D-Spiele-Engine. Die gibt es wie Sand am Meer.

Naja. Sie wollen ja wohl ein Strategie-Spiel machen.
Wie ich schon gesagt habe, einen weiteren Ego-Shooter würde ich auch einschläfernd finden.

Für das erste Spiel, was man je programmiert hat, sollte man nicht gleich UT2004 im Auge haben. Visionen sind ja OK, aber Columbus brauchte auch erst mal eine Ausbildung und ein Schiff bevor er lossegeln konnte. ;)

@Yellow Stone

Ähm, die Leute die kkrieger programmiert haben, haben aber schon Erfahrung in Spiele-Programmierung und besonders Effekte. Die machen schon seit Jahren Demos für die Assembly-Ausstellung. Außerdem benutzen die DirectX, welchen bei solchen Effekten leichter ist, als OpenGL.

Die haben 20 mal mehr Erfahrung als ihr. Trotzdem wäre ein Projekt wie UT2004 für die auch keine Leichtigkeit.
 
Zuletzt bearbeitet:
Sorry, aber man merkt, dass Du von der Entwicklung wirklich noch nicht viel Ahnung hast.

Ich beschäfftige mich jetzt schon gut 10 Jahre mit Software-Entwicklung und studiere es auch. Und ich wäre über glücklich, wenn ich so gut wäre, wie Jungs aus der Demoszene. Denn die haben es wirklich drauf.

Und wenn Du das making of richtig lesen würdest, müsste Dir auffallen, das die Jungs mitte 2002 angefangen haben und Anfang 2004 mit der ersten Beta von Level 1 fertiggeworden sind. Und die haben 100% nicht bei 0 angefangen, sondern zumindest Bibliotheken aus Ihren Demoprojekten verwendet haben.

Darüber hinaus ist das eigentliche Coden (selbst wenn es nur ein paar Wochen waren) höchstens 25% des Gesamtaufwandes. Sachen wie Analyse und Software-Design sind sehr wichtig und sehr aufwendig, vor allem bei dem was Ihr vor habt, denn Ihr schreibt nicht nur eine Software. Vielmehr schreibt ihr viele einzelne Komponenten, die dann irgendwann mal in eine vollständige Applikation (das Spiel) integriert.
 
Achja. Eine Frage noch.

Wollt ihr wirklich ALLES alleine machen? Also auch die Physik-Engine?

Wenn ja, dann hoffe ich einer von euch ist Diplom Physiker und ein anderer Diplom Mathematiker.

Ansonsten hört es da schon auf. Es gibt Firmen die beschäftigen sich alleine schon nur mit der Physik-Engine, also ohne Grafik. Das Ergebnis kann man sich dann bei denen kaufen. Beispiele wären Havok und Karma. 2 Engines.

Eine kostenlose und dafür oft genutzte wäre die Open Dynamic Engine.
http://www.ode.org/

Aber die kommt bei weitem nicht an Havok oder Karma ran. Alleine schon von der Performance.

Oder wollt ihr die wirklich alleine machen?
 
Vorschlag

Wie du siehst, stehen Nuke und ich der Sache recht kritisch gegenüber, daher hier mal ein Vorschlag:

Entwickelt eine nette Spielidee und entwickelt es in C++ und benutzt dafür fertige Engines aus dem OpenSource Bereich (z.B. Crystal Space und ODE) für die unterschiedlichen Anforderungen.

Wenn ihr das zum Erfolg gebracht habt, und immer noch Bock drauf habt, könnt Ihr immer noch anfangen, die Engines selbst zu entwickeln. Denn gerade die Entwicklung der Game- Grafik- und Physik-Engine ist super ätzend, denn man sieht nicht wirklich was.

Im rahmen meines Studiums mußte ich das Spiel "Fang den Hut" unter C++ entwickeln mit sauberer Trennung zwischen Oberfläche und GameEngine. Das Testen der GameEngine sah dann eher so aus, das man in der Konsole irgendwelche Daten an die Engine geschickt hat, und dann geguckt hat, ob das richtige Ergebnis raus kam, erst dann haben wir die Oberfläche entwickelt.
 
Zurück
Oben Unten