Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

21

15.11.2009, 10:11

Zitat von »"carli"«

Zitat von »"Stazer"«



also sowas wie libs linken etc. wird bei meinem derzeitigen projekt sofort am anfang erledigt!

Behaupte das nicht so pauschal - ich hatte mal ein C++-Projekt, da musste man jedesmal wenn man eine neue Datei (.h und .cpp) einführen wollte, Vollversammlung veranstalten und Buildscripte synchronisieren. Klar geht es mit CMake.

Kurze Frage: Was hat das einbinden von deinen eigenen .h unc .cpp Dateien mit dem einbinden von Libs zu tun?
AUsserdem: Deswegen sollte man sich vorher genau Gedanken über sein Projekt machen mitsamt UML's, Aufbau, Funktionsweise von Modulen, dann kann man da einfach machen und muss nicht bei der kleinsten Sache immer fragen "Ja, warum macht er das denn?".


Zitat von »"carli"«


Mit Freepascal kann man zzT. zwar noch keine GameBoys programmieren, aber für den Anwendermarkt reicht es vollkommen aus und ist - im Gegensatz zu C++ _wirklich_ plattformunabhängig (auch im Bezug auf GUIs)

Hm, wenn QT dann nicht wirklich plattformunabhängig ist dann muss ich wohl irgendeinen Fehler machen, weil ich mich grad frage warum das dennoch so reibungslos funktioniert.
Verdammt, da hab ich wohl die totale Plattformabhängigkeit von C++ ausgetrickst.

Zitat von »"carli"«


Man muss sich die ToastEngine selber kompilieren. Da macht sich ein "Lazarus runterladen, Starten, Projektdatei öffnen, Playtaste drücken" besser als ein "GCC runterladen, Buildscript bauen, durch tausende Linker errors kämpfen, Libs runterladen, Buildscript in der Konsole ausführen", zumal wir viele Nicht-Programmierer im Team haben (Grafiker, Scripter), denen man die Benutzung eines C++-Compilers nicht zumuten kann.

Dafür kann man auch einen Build-Server einrichten der es dir dann für jede Plattform die du haben willst compiliert und macht, also frage ich mich wo das Problem dabei bestehen sollte.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

22

15.11.2009, 13:12

Ahja.....Die Verlagern auf eine andere Sprache, welche dann eben vorhanden sein muss und/oder ein Framework/Runtime braucht, nennt sich dann Plattformunabhängigkeit. Nebenbei kennt Python ja kleinerlei Bytecodecompilierung, nein </ironie>.

Nur um das klar zu stellen. Mir geht es nur darum meine Meinung zu deinen Aussagen in Bezug auf python,c++,etc. klar zu stellen und nicht den Erfahrungsgewinn durch die Entwicklung eurer eigenen und schon sehr weit fortgeschrittenen Engine zu schmälern. Nur die Argumentationen stoßen mir teilweise doch sauer auf.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

carli

unregistriert

23

15.11.2009, 14:53

Zitat von »"k|haos"«


Kurze Frage: Was hat das einbinden von deinen eigenen .h unc .cpp Dateien mit dem einbinden von Libs zu tun?

Alles sind Parameter, die man dem Linker übergeben muss.
Pascal ist strukturierter, .h und .cpp sind in einer Datei und die Parameter fürs Linken bekommt Pascal selber mit durch Phrasen wie

Quellcode

1
procedure InitOpenGL; external "OpenGLHelpers";
wobei er sich die Funktion InitOpenGL ohne eine zusätzliche Datei einzubinden aus der OpenGLHelpers.dll reinlinkt - ziemlich praktisch.


Zitat von »"k|haos"«


AUsserdem: Deswegen sollte man sich vorher genau Gedanken über sein Projekt machen mitsamt UML's, Aufbau, Funktionsweise von Modulen, dann kann man da einfach machen und muss nicht bei der kleinsten Sache immer fragen "Ja, warum macht er das denn?".

UML's erstelle ich im Nachhinein, so geplant gehe ich nie vor, das zerstört irgendwie die Vision.


Zitat von »"k|haos"«


Hm, wenn QT dann nicht wirklich plattformunabhängig ist dann muss ich wohl irgendeinen Fehler machen, weil ich mich grad frage warum das dennoch so reibungslos funktioniert.
Verdammt, da hab ich wohl die totale Plattformabhängigkeit von C++ ausgetrickst.

Ich will bloß nicht haufenweise QT-DLLs hinterherpumpen.
Ich muss bei Lazarus nur einen Schalter umlegen, dann erzeugt er keine "richtigen" Windows-Programme mehr, sondern QT-Projekte.

Zitat von »"k|haos"«


Dafür kann man auch einen Build-Server einrichten der es dir dann für jede Plattform die du haben willst compiliert und macht, also frage ich mich wo das Problem dabei bestehen sollte.

Warum einfach wenn's auch schwierig geht.

Zitat

Ahja.....Die Verlagern auf eine andere Sprache, welche dann eben vorhanden sein muss und/oder ein Framework/Runtime braucht, nennt sich dann Plattformunabhängigkeit.

Bei mir wäre es andersrum: Ich müsste erst umlernen, um Plattformabhängig zu programmieren ;)

Stazer

Alter Hase

Beiträge: 468

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

24

15.11.2009, 15:15

Zitat von »"k|haos"«

Zitat von »"carli"«

Zitat von »"Stazer"«



also sowas wie libs linken etc. wird bei meinem derzeitigen projekt sofort am anfang erledigt!

Behaupte das nicht so pauschal - ich hatte mal ein C++-Projekt, da musste man jedesmal wenn man eine neue Datei (.h und .cpp) einführen wollte, Vollversammlung veranstalten und Buildscripte synchronisieren. Klar geht es mit CMake.

Kurze Frage: Was hat das einbinden von deinen eigenen .h unc .cpp Dateien mit dem einbinden von Libs zu tun?
AUsserdem: Deswegen sollte man sich vorher genau Gedanken über sein Projekt machen mitsamt UML's, Aufbau, Funktionsweise von Modulen, dann kann man da einfach machen und muss nicht bei der kleinsten Sache immer fragen "Ja, warum macht er das denn?".


Zitat von »"carli"«


Mit Freepascal kann man zzT. zwar noch keine GameBoys programmieren, aber für den Anwendermarkt reicht es vollkommen aus und ist - im Gegensatz zu C++ _wirklich_ plattformunabhängig (auch im Bezug auf GUIs)

Hm, wenn QT dann nicht wirklich plattformunabhängig ist dann muss ich wohl irgendeinen Fehler machen, weil ich mich grad frage warum das dennoch so reibungslos funktioniert.
Verdammt, da hab ich wohl die totale Plattformabhängigkeit von C++ ausgetrickst.

Zitat von »"carli"«


Man muss sich die ToastEngine selber kompilieren. Da macht sich ein "Lazarus runterladen, Starten, Projektdatei öffnen, Playtaste drücken" besser als ein "GCC runterladen, Buildscript bauen, durch tausende Linker errors kämpfen, Libs runterladen, Buildscript in der Konsole ausführen", zumal wir viele Nicht-Programmierer im Team haben (Grafiker, Scripter), denen man die Benutzung eines C++-Compilers nicht zumuten kann.

Dafür kann man auch einen Build-Server einrichten der es dir dann für jede Plattform die du haben willst compiliert und macht, also frage ich mich wo das Problem dabei bestehen sollte.


/word

Steven77

Alter Hase

Beiträge: 515

Wohnort: Münster - Gievenbeach

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

25

16.11.2009, 12:03

Zitat von »"Nox"«

Zum Thema:
Sehe ich das richtig, dass ihr die Skriptsprache selbst entwickelt habt? Wenn ja wieso habt ihr euch gegen gängige Varianten entschieden? (Reine Neugier)


Das ist ja auch immer die Frage danach, was man überhaupt will. Eine ähnliche Frage könnte ja auch lauten, "warum programmierst du dein eigenes Spiel? Es gibt doch etliche geile Spiele, die du so zocken kannst!" Die Antwort darauf wäre vielleicht sowas wie, "weils mir Spaß macht und nicht unbedingt das fertige Produkt im Mittelpunkt steht, sondern der Entwicklungsweg dahin und der Gedanke, selbst etwas chreativ entwickelt zu haben." So, und das lässt sich ja noch weiter runterbrechen: Ich z.B. nutze bei der Entwicklung privater Hobbyprojekte gar keine fremden Libs. Doch wohl sowas "zur Sprache Gehörendes" wie std und von mir aus auch noch boost (im Falle von C++), aber mehr auch nicht. Physik-, Script-, Grafik-, Sound- und sonstige Engines bzw. Frameworks (oder wie man das auch immer nennen mag) progge ich grundsätzlich selber. Klar gibt es fertige Lösungen dafür, genauso wie es ja auch schon fertige Spiele gibt. Aber die Dinger selber zu proggen, genau das ist doch das Geile daran.

PS: Zum Erzeugen der Inhalte (Grafik, Sound etc.) nutze ich übrigens doch fremde Tools wie z.B. Audacity oder Milkshape. ;) Damals unter DOS habe ich selbst solche Tools noch selber geproggt. :lol:
Kommen Sie nie mit einem Schwert zu einer Schießerei.

goldfisch007

Alter Hase

Beiträge: 446

Wohnort: Süden von Berlin

  • Private Nachricht senden

26

16.11.2009, 12:23

is doch das selbe wie:

warum leckt sich der hund die eier?

weil er es kann!

und natürlich macht man sowas aus den oben gennanten gründen
Wir bauen auf und reißen nieder, so ham wir Arbeit ima wieder...
--------------------
http://www.piratenpartei.de/tmp/images/Slogans_5_0.png
--------------------
Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung. (F. Hollaender, geklaut von Helmut xD)

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

27

16.11.2009, 13:39

Naja...das ist doch recht einseitig betrachtet, weil neben den von mir Erkenntnisgewinn und den von euch angesprochenen Spaßfaktor etc. pp., bedeutet es doch einen deutlichen Mehraufwand. Und gerade wenn man was größeres anpackt, ist es doch meist sehr aufhaltend, wenn man alles selbst macht.
Natürlich gibt es auch Fälle, wo fertige Lösungen nicht den eigenen Anforderungen entsprechen. Genau deshalb fragte ich nach den Gründen.
Wem natürlich eher das Entwickeln ansich und weniger das fertige/spielbare Projekt interessiert, den mag dieser "Zeiteinsparfaktor" weniger interessieren.
Problematisch sind eigenen Lösungen, wenn andere diese nutzen sollen. Denn warum sollten diese eine Lösung wählen? Warum ggf. eine neue Sprache lernen, die nicht sonderlich weit verbreitet ist?

Daher die Frage: "warum eine eigene Sprache?". Weil auch wenn das Entwickeln Spaß macht, so muss man doch auch an die Menschen denken, die diese nutzen wollen/sollen (wenn es denn auch für andere gedacht ist).
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

carli

unregistriert

28

16.11.2009, 17:12

Ja, es stand im eigentlichen Sinner der Spaß dahinter,
ich wäre nie glücklich geworden, wenn ich einfach weiter Clonk-Objekte gescriptet hätte, denn das kann jeder. Aber eine eigene Engine ist dann schon was besonderes, vor allem, wenn man sich ein System entwickelt hat, dass es so noch nicht gibt - ich nenn bloß mal ein Beispiel:

über die Torque Engine wurde gesagt:

Zitat

Es ist unmöglich, bei Torque bloß durch Verändern der Scripts ein anderes Spiel als Tribes zu erstellen

- im Prinzip haben wir ein frozen "Gegnerprojekt" (http://www.clonk.de/cx.php?lng=de), das ein Spielprinzip umsetzen wollte und dabei eine fertige Engine nutzte (die Nutzererstellte Scripts verbot, außerdem siehe Zitat, außerdem konnte man dort nicht graben) und da war es von vornherein klar: wir machen eine eigene Engine - und auch die Scriptsprache (an Java angelehnt) haben wir selbst entwickelt - einfach, weil es keine Sprache gab, die unseren Vorstellungen entsprach und gleichzeitig Hackersicher ist und gleichzeitig JIT-Code erzeugen kann.
Demzufolge ist es sinnlos zu fragen "Warum programmiert ihr nicht in C++" oder "Warum nutzt ihr kein Phyton" oder "Warum nutzt ihr keine fertige Engine", denn die Antwort lautet: "Dann wäre es nicht die ToastEngine".

Wenn man danach fragt, was es schon gibt, kommt man eben auf die Idee, dass es die ToastEngine noch nicht gibt. Spiele, die eine fertige Engine nutzen, allerdings schon viel zu viele.

Warum sollte Steve Jobs das IPhone entwickeln und kein stinknormales schwarz-weiß-Handy? Das wäre viel leichter und da gibts doch schon Vorlagen!

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

29

16.11.2009, 19:06

Es geht doch nichts über ein bisschen Polemik :? . Ist ja vollkommen in Ordnung eine eigene Lösung zu entwickeln, aber anderen Varianten dafür ihre Kompetenz abzusprechen empfinde ich als sehr vermessen. Immerhin waren so einige Aussagen einfach sachlich nicht wirklich haltbar, meiner Ansicht nach.
Übrigens gab es schon vor dem IPhone smartphones...Also nichts neues, sondern einfach nur ein wenig besser (vermarktet?).

Wie gesagt (ich wiederhole mich), ich habe nichts gegen Eigenentwicklungen. Ich habe auch nichts gegen Kreativität. Auch sage ich nichts gegen Sammeln von Erfahrungen.
Nur mag ich kenne dogmatischen Aussagen wie "das geht mit xy nicht" oder nicht wirklich fundierte Argumente: Denn hackersicher ist nichts, es gibt einige Skriptsprachen, die vorkompiliert werden können und den von dir genannten Anforderungen entsprechen, und das es viel zu viele Spiele gibt, sehe ich nicht so! Ich denke eher, dass es zu wenig Spiele und zuviele angefangene Engines gibt. Aber das ist nur meine Sicht der Dinge.

Nebenbei finde ich eure Fortschritte schon sehr beeindruckend.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

carli

unregistriert

30

16.11.2009, 19:15

Joar, ich hab ja auch nicht gesagt, andere Sachen wären doof, sie waren eben bloß schneller geschrieben, als ich mich hätte in eine Library einarbeiten können ;) (und Eigensupport ist immer noch am schnellsten)

[Edit:] Theoretisch gesehn geht alles, dank Alan Turing ;)
Aber eine Multiplikation mit Brainfuck ist eben nicht gerade der Brenner ;)

Werbeanzeige