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

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

11

14.11.2009, 14:31

okay... du bringst ein gutes argument python nicht zu benutzen.
battlefield2 und besonders 2142 sind extrem schlecht geschrieben(für so teure spiele) und relativ langsam. ich hab selbst 2 jahre lang 2142 gespielt: http://www.youtube.com/watch?v=xrg7NgJt_Jw
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

12

14.11.2009, 15:56

Zitat von »"Lerikson"«

Python ist langsam??

Naja das ist immer eine Frage der Relation. Aber ich würde Performance jetzt nicht gerade als Vorteil von Python nennen, ob die Performance ausreichend ist kommt auf die Anwendung an.

Jedoch steht Python in der Riege der Skriptsprachen eigentlich noch recht gut. Die sind alle nicht sonderlich flott wenn man versucht sie mit Java, C# oder gar C++ oder C zu vergleichen.

Aber trotzdem eine sehr flexible und praktische Sprache finde ich *g*

13

14.11.2009, 16:18

Zitat von »"carli"«

ich seh doch, wie verarmt die Sprache C++ ist, weil die meisten Foreneinträge nur Linker Errors sind.
Du erinnerst mich an fricky auf c-plusplus.de. Naja, er ist eben auch einer, der Programmiersprachen schlechtredet, ohne sie genügend zu kennen. Schade eigentlich.

Zitat von »"Lerikson"«

Neben bei ist die Entwicklungsgeschw. deutlich höher als in C++ !
Kommt drauf an, wie gut man die Sprache beherrscht, für welchen Anwendungszweck man programmiert und welche Bibliotheken man nutzt. Aber so pauschal würde ich das nicht sagen.

Lerikson

Alter Hase

Beiträge: 412

Wohnort: nördlich von Hamburg

Beruf: Schüler

  • Private Nachricht senden

14

14.11.2009, 18:46

Zitat

battlefield2 und besonders 2142 sind extrem schlecht geschrieben(für so teure spiele) und relativ langsam.

Wenns an Python liegen sollte, warum gibt es dann ganze Spiel Libs ?
(Panda3d, Pyglet, Pygame)

Zitat

Zitat

Neben bei ist die Entwicklungsgeschw. deutlich höher als in C++ !

Kommt drauf an, wie gut man die Sprache beherrscht, für welchen Anwendungszweck man programmiert und welche Bibliotheken man nutzt. Aber so pauschal würde ich das nicht sagen.


Also hier mal ein ganz banaler Vergleich vom Hello World:

Python:

Quellcode

1
print "Hello World!"


C++

C-/C++-Quelltext

1
2
3
4
5
6
7
#include <iostream>

int main()
{
    std::cout << "Hello World!";
    return 0;
}


Oder schau dir mal hier die Ersten Tutorial Programme an ( die Länge ) http://www.panda3d.org/wiki/index.php/Main_Page

@Topic: Ich find die ToastEngine allein schon wegen ihrem Namen gut^^
Errare est humanum. -Windows ist menschlich ;-)

dv

Frischling

Beiträge: 30

Wohnort: Südamerikanischer Dschungel

  • Private Nachricht senden

15

14.11.2009, 20:15

Soll das etwa ein Vergleich sein?
Das erinnert mich an die D3D<->OGL-Flamewars, in denen Spinning-Cube-Code als Vergleichsmaß genommen wurde. Das war gleichermaßen unsinnig.
~dv();

Lerikson

Alter Hase

Beiträge: 412

Wohnort: nördlich von Hamburg

Beruf: Schüler

  • Private Nachricht senden

16

14.11.2009, 20:20

Zitat

Soll das etwa ein Vergleich sein?
Das erinnert mich an die D3D<->OGL-Flamewars, in denen Spinning-Cube-Code als Vergleichsmaß genommen wurde. Das war gleichermaßen unsinnig.


Zitat

Also hier mal ein ganz banaler Vergleich



...mach nen besseren ( vll könnte ein Mod die Diskussion ja abspalten ?)
Errare est humanum. -Windows ist menschlich ;-)

dv

Frischling

Beiträge: 30

Wohnort: Südamerikanischer Dschungel

  • Private Nachricht senden

17

14.11.2009, 20:28

Genau hier ist das Problem: man kann so einen Vergleich nicht machen. Niemand wird Python für Hochperformantes oder low-level Code nehmen. Ebensowenig für Code, der ein sehr breites Spektrum von stark optimiertem Code bis hin zu abstrakten Formulierungen hohem Grades abdecken muss. Ein Beispiel dafür sind Scientific Computing-Anwendungen, bei denen man mit C++ direkt algebraische Ausdrücke schreiben und diese dann zur Compilezeit mittels Metaprogrammierung in hochgradig optimiertem Code verarbeiten kann. Daneben gibt es eigtl. nur Fortran, und C. Meshoptimierer, (Ent-)Packer usw. würde ich auch nicht in Python schreiben wollen. Code, der die Speicherverwaltung selbst in die Hand nehmen muss (hallo, Konsolenwelt) ist mit Python ebenfalls ungut machbar.

Wer aber zB Gameplay-Skripte in C++ schreibt, ist selber schuld. "Right tool for the right job." Es wird auch niemand C++ für Webzeug nehmen usw.
~dv();

18

15.11.2009, 01:30

Zitat von »"carli"«

Zitat von »"Deppomat"«

Ist in C++ auch möglich ;)

muuuuhaha
hast du schonmal einen Datei-Existenz-Check in C++ plattformunabhängig gemacht, ohne pro unterstütztem Betriebssystem weitere 3 Zeilen zu lassen?

Hast du schonmal eine GUI gebaut, ohne 2 Versionen des Codes zu schreiben oder massig DLLs mitzuliefern?

hast du schonmal ein build-Script gesehen, das auf allen Plattformen funktioniert und nur aus einer Zeile besteht?

Quellcode

1
lazbuild src/gwx.lpi

Das Problem ist, dass C++ wirklich plattformunabhängig ist und einem enorme Freiheiten bietet. Ich glaube es gibt einfach mal ekine Programmiersprache, die so ein weites Spektrum abdeckt, wie C++.

In C++ gibt es halt für alles den perfekten Weg, weil man einfach alles beliebig ersetzen kann. Wenn einen std::strings nicht gefallen, nimmt man eine eigene Klasse. Für GUI's gibt es eine Millionen Toolkits, manche davon lassen sich völlig ohne Mehraufwand unter zig Plattformen benutzen, andere nur unter einer. Dann gibt es noch auf vielen Plattformen diverse Compiler, die natürlich auch irgendwie kleine Unterschiede haben.
Aber wenn man sich die richtigen Komponenten zusammensucht, dann ist Multiplattformentwicklung unter C++ bestimmt so einfach wie unter Freepascal. Man muss es sich nur erstmal zusammensuchen und evtl. konfigurieren.


Zitat

@Scriptsprache:
Ja, die haben wir selber entwickelt - einfach, weil wir eine konkrete Vorstellung davon hatten, wie die Scripts aussehen sollten, was sie können sollen.

Finde mir mal eine Scriptsprache, die Klammern {} verwendet, objektorientiert ist, Integers, Floats und Strings beherrscht, Operatorüberladungen und außerdem sich noch eventuell in JIT-Code übersetzen lässt. -->selbst Java würde da rausfliegen, weil Java keine Operatorüberladungen kennt.

AngelSkript sollte das alles können. Wie groß der Unterschied zu Squirrel da ist, kann ich nicht einschätzen, aber rein von den Beschreibungen und von dem was ich bisher gelesen habe, sind beide recht ähnlich.
Lieber dumm fragen, als dumm bleiben!

Stazer

Alter Hase

Beiträge: 468

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

19

15.11.2009, 02:59

Zitat von »"carli"«

@C++:
nein. Bloß weil ihr keine andere Sprache kennt (ich kenne C++ und weiß, auf was ich mich sonst einlassen würde :o Buildsystem - Headers - Das Grauen in Person), müssen wir die noch lange nicht nehmen.
Es gibt viele Sachen, die haben sich einfach aus driftigen Gründen durchgesetzt (Windows, C, Ottomotor, Mehrwertsteuer), obwohl es bessere Alternativen gibt - aber nur wenige Leute, die bereit sind, umzudenken.
C++ ist in den 70er Jahren entstanden, wurde allein für Unix entwickelt. Problem: Unix kennt keine DLLs, also braucht man wieder einen riesen-Workaround.... es geht alles. Die Frage ist nur: mit welchem Aufwand?
Wenn du bereit bist, mehrere hundert Arbeitsstunden damit zu verbringen, 2 Buildsysteme zu bauen und das Programm nach C++ zu übersetzen? gerne. (wobei ich C++ nur nutze, wenn ich dazu gezwungen werde.)

Edit: ich hab mal ein C++-Projekt angefangen (mitarbeiten ist sowieso kein Problem), es scheiterte daran, dass wir für jede Plattform einen Entwickler brauchten, der das entsprechende Buildsystem gepflegt hat. Wir waren nur noch damit beschäftigt, uns mitzuteilen, welche Sources neu hinzugekommen sind und welche Libs dazugelinkt werden - das ist einfach verschwendete Zeit gewesen, in der man schon zig andere Sachen programmiert bekommen hätte.

Fazit: es geht alles, die Frage ist nur: Wie unsauber und mit welchem zusätzlichen Zeitaufwand..... (denk mal drüber nach)


@Scriptsprache:
Ja, die haben wir selber entwickelt - einfach, weil wir eine konkrete Vorstellung davon hatten, wie die Scripts aussehen sollten, was sie können sollen.

Finde mir mal eine Scriptsprache, die Klammern {} verwendet, objektorientiert ist, Integers, Floats und Strings beherrscht, Operatorüberladungen und außerdem sich noch eventuell in JIT-Code übersetzen lässt. -->selbst Java würde da rausfliegen, weil Java keine Operatorüberladungen kennt.


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

carli

unregistriert

20

15.11.2009, 08:19

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.


Zitat

Das Problem ist, dass C++ wirklich plattformunabhängig ist und einem enorme Freiheiten bietet. Ich glaube es gibt einfach mal ekine Programmiersprache, die so ein weites Spektrum abdeckt, wie C++.

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)

@C++ und Linker Errors:
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. Diese Menge an Plattformunabhängigkeit brauchen wir garnicht, oder hat von euch jemand nen SPARC-PC zum gamen? oder ein anderes Betriebssystem als Win, Linux oder Mac?

Python:

Quellcode

1
print "Hello World!"




C++

Quellcode

1
2
3
4
5
6
7
#include <iostream> 

int main() 
{ 
    std::cout << "Hello World!"; 
    return 0; 
}


ToastScript:

Quellcode

1
log("Hello World")



Zitat

Python ist langsam??

Scriptsprachen allgemein sind mein Spezialgebiet, ich hab meine BELL drüber geschriben und ToastScript existierte schon vor der ToastEngine (die Engine ist nur eine "Haut" für die Scriptsprache), und ich bin in der Lage, die Scriptsprache später auf JIT-Code auszubauen. (hatte schonmal eine Sprache entwickelt, die nur JIT-Code erzeigt hatte) Das würde die Geschwindigkeit von Phyton ja nochmal enorm überbieten.

Werbeanzeige