Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 02, 2025 07:52

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Fr Aug 05, 2011 05:59 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

ich bin schon seit laengerer Zeit immermal wieder am Ueberlegen endlich mal eine Script Engine in meine GameEngine einzubauen, dazu hab ich aber im vorraus ein paar fragen:

1) Ich bin mir immer etwas unsicher wofuer man die Script Engine im endeffekt braucht.. Wenn man alles in C++ macht ist es ja um einiges performanter, allerdings auch durchaus aufwendiger (zumindest von der Compile Zeit her).

Machen aktuelle Game Engines ALLES in der Script Sprache? Also den gesamten Spiel ablauf? Oder nur gewisse dinge?
Ich bin eben mal wieder ueber Unity3D gestolpert, und eines der beworbenen Features ist das man ganz simpel sein Spiel auf jedem OS/Device testen kann.

Also z.B. kann man auf knopfdruck das spiel im iPhone starten (aus dem UnityEditor heraus) um aenderungen zu sehen.
Da wird ja nichts kompiliert fuer, also muss theoretisch auf dem iPhone ja die Engine als app laufen die dann ueber remote mit den Daten gefuettert wird, also Geometry, Texturen etc. Und soweit ich verstanden habe kann man auch wirklich das spiel dann da testen, sprich alles was irgendwie Programmiert wurde vom Entwickler muss auch uebertragen werden, das geht aber ja nur wenn es alles Scripte sind.

Da frage ich mich dann, ist das so performant?
Oder machen die das auf irgendeine andere art und weise?

Ich stelle es mir durchaus komplex vor alles was den Spielablauf betrifft via script zu loesen. Allein bei einem Shooter wenn man Schiesst. Den Raytrace bietet einem ja noch die Engine, aber das auswerten welcher spieler getroffen wurde und welchen schaden das verursacht etc, das muesste ja das Script uebernehmen.


Und eine andere Frage diesbezueglich:
Ich bin irgendwie nicht so recht motiviert eine eigene Script Engine zu basteln, das ist mir irgendwie zu trocken und die Performance wuerde vermutlich auch lange nicht an fertige, bewaehrte heranreichen.
Gibt es sehr gute empfehlenswerte Engines? (fuer C++)

Mein erster gedanke war einfach eine Python Anbindung zu machen fuer die Engine, aber nachdem es scheinbar kein spiel gibt welches Python benutzt muss das sicher einen Grund haben, oder?

Aya~


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Aug 05, 2011 07:08 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 06, 2005 18:34
Beiträge: 362
Wohnort: Hamburg
Ich arbeite derzeit mit Unity und bin als alter C++ hase sehr glücklich über die performance. Die Spiellogik wird komplett gescriptet. Mit C#, JavaScript oder Boo(Python dialekt). Die Scriptsprachen haben zwar ihre Nachteile, aber auch einige Vorteile bezüglich der Benutzbarkeit, so setzt Unity z.b. sehr viel reflektion ein um objekt instanzen einfach im Editor verändern zu können, was den Editor sehr gut und einfach erweiterbar macht. C++ schreiben kann man mit Unity nur, wenn man in C++ geschriebene dlls einbindet. Ich hab bis jetzt noch keine großen performance nachteile bemerken können und hab schon den ein oder anderen sehr gruseligen algo eingebaut :)

Einen Tipp bez. einer eigenen Script Sprache kann ich dir zwar nicht geben, abed Wenn du Python magst, benutz es. Ist immerhin eine sehr ausgereifte Sprache und sehr bekannt und ich meine auch mal ein großes Spiel mit Python Scripts gesehen zu haben.

Gruß
Shai

_________________
Der Mensch hat neben dem Trieb der Fortpflanzung und dem zu essen und zu trinken zwei Leidenschaften: Krach zu machen und nicht zuzuhören. (Kurt Tucholsky)
Schwabbeldiwapp, hier kommt die Grütze. (Der Quästor)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Aug 05, 2011 17:59 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 03, 2002 15:08
Beiträge: 662
Wohnort: Hamburg
Programmiersprache: Java, C# (,PhP)
Kann jetzt nur von UnrealScript sprechen. Das wird wie so ziemlich jede Script Sprache in irgendeiner weise serialisiert und dann direkt interpretiert. Ähnlich Java Bytecode.

Jedenfalls ist bei Spielen mit der Unreal Engine sämtliche Logik die nicht zeitkritisch ist in UnrealScript geschrieben. Unter zeitkritische Dinge fallen Physics, Netzwerk und überhaupt die native Kommunikation mit der Engine. Und seitdem es Kismet (innerhalb der Map via Schaltbilder ähnlicher Gebilde Logiken erzeugen) gibt wird sogar noch weniger gescriptet.

Und performant ist es solange man nicht etwas tut das man nicht tun sollte. Zb. jeden Tick jeden Actor iterieren ^^"

_________________
(\__/)
(='.'=)
(")_(")


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Aug 07, 2011 16:12 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
schau dir mal die Engine von Doom 3 an da hast du ein schönes Beispiel was man alles in Scripten auslagern kann.

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]