sc2 programmiersprache

Mitglied seit
05.03.2002
Beiträge
45
Reaktionen
0
gude!
mich würde ma interessieren in welcher sprache die sc2 gecodet haben? über google und die SuFu hier hab ich nix gefunden. nutzen die java oder was eigenes?

lg
turri
 
Mitglied seit
16.03.2003
Beiträge
73
Reaktionen
0
google "programmiersprache starcraft"

StarCraft II benutzt eine vollkommen neue Programmiersprache, die wir Galaxy nennen. Diese Sprache ist C recht ähnlich und wenn man mit der C-Programmierung ...
 

Ped_Bear

Guest
ich schätze mal dass sie wie in sc auch in ensembler programmieren.
alt bewährtes hält gut
 
Mitglied seit
27.02.2003
Beiträge
22
Reaktionen
0
wow, unwissen hoch hundert

gude!
mich würde ma interessieren in welcher sprache die sc2 gecodet haben? über google und die SuFu hier hab ich nix gefunden. nutzen die java oder was eigenes?

java sicherlich nicht :ugly2:

ich schätze mal dass sie wie in sc auch in ensembler programmieren.
alt bewährtes hält gut

assembler, nicht "ensembler" - aber auch das nicht. kein mensch schreibt nen spiel in pure assembler
 
Mitglied seit
26.04.2004
Beiträge
377
Reaktionen
0
Vermutlich C++, wie fast alle Computerspiele..
 
Mitglied seit
21.09.2004
Beiträge
2.070
Reaktionen
0
ui, yo. java ist ja auch sooo abwegig wenn eine C ähnliche sprache für den map editor genommen wurde. java ist plattformunabhängig und sc2 erscheint für pc+mac.

Ja aber das spiel soll mit im handel erhätlichen computern flüssig laufen.

Wer programmiert mir einen timer der immer wenn ich F drücke 28sekuden sichtbar oben rechts(während man in sc2 ist) runterzählt und dann ein hörbares geräusch von sich gibt? :o
 
Mitglied seit
20.04.2007
Beiträge
590
Reaktionen
0
Ort
Berlin
ui, yo. java ist ja auch sooo abwegig wenn eine C ähnliche sprache für den map editor genommen wurde. java ist plattformunabhängig und sc2 erscheint für pc+mac.

Hm, wenns Java wäre, würde man es doch wissen, weil man ja dann das JDK (oder wie das auch immer heißt) installiert haben muss.
Zudem ist Java saulangsam im Vergleich zu C++.

(und kann man SC2 mit Linux spielen, oder Solaris?)

Wird C++ sein, wie bei den meisten Spielen.
 
Mitglied seit
11.07.2002
Beiträge
16
Reaktionen
0
ui, yo. java ist ja auch sooo abwegig wenn eine C ähnliche sprache für den map editor genommen wurde. java ist plattformunabhängig und sc2 erscheint für pc+mac.

Java ist auch mit dem Just-in-time-Compiler wesentlich langsamer als C/C++. Und eines der Hauptziele bei Blizzardprodukten ist gute Leistung auch auf schwächeren Rechnern bei ansprechender Qualität auf guten Kisten. Wenn du mir als Entwickler da Java vorgeschlagen hättest, hätt ich dich sofort gefeuert ;)

Nebenbei ist so ziemlich jede Programmiersprache plattformunabhängig. Musst halt nur neu compilieren, was kein Problem ist. Oder läuft SC2 bei dir in der JVM? ;)

Wer will denn da Haxes proggen? :O :D

Für viele einfache Hacks (inklusive MH) musst du auch in SC2 nicht programmieren können, ein paar MPQs tweaken reicht schon. Aber das Thema gehört hier nicht rein, wir wollen doch alle ohne so einen Mist spielen.
 
Zuletzt bearbeitet:
Mitglied seit
01.01.1970
Beiträge
1.170
Reaktionen
0
also die ganzen menus und HUDs wurden mit scaleform gfx gemacht.
dh. flash und actionscript.

der rest sah nach c++ code aus. evtl. benutzen die ja auch .net xD
 
Mitglied seit
15.01.2003
Beiträge
238
Reaktionen
0
Nebenbei ist so ziemlich jede Programmiersprache plattformunabhängig.

Das stimmt so nicht. Versuche mal einen C++ + MFC Code auf Unix/Linux zu compilieren.

Es gibt den c++ Standard, danach sind fast alle Programme "kompatibel" zwischen Unix /Windows compilern. Aber selbst da gibt es unterschiede, was schon beim Speicher für die Datentypen anfängt. Gerade Programmiersprachen wie C die viel explizit mit Speicher rumhantieren bedarfs es jeweils einen eigenen Compiler. Plattform unabhängig heisst das der selbe Code, ohne Änderungen auf den verschiedenen Plattformen läuft und das ist bei C,C++ zum Beispiel nicht immer der Fall (solange man sich an den c-Standard hält sollte es aber zu 90% gehen). Bei Java hingegen schon (auch wenns langsam ist)
 

Shihatsu

Administrator
Mitglied seit
26.09.2001
Beiträge
46.397
Reaktionen
8.844
Website
broodwar.net
es ist übrigens c und nicht c++. spiele fressen performance, und c++ ist nicht viel performanter als java. alles was den heap zwangsweise benutzt fällt aus.
 
Mitglied seit
04.08.2003
Beiträge
321
Reaktionen
0
Ort
Köln
Website
www.darkwave-webdesign.de
es ist übrigens c und nicht c++. spiele fressen performance, und c++ ist nicht viel performanter als java. alles was den heap zwangsweise benutzt fällt aus.

Das ist bullshit. C++ ist lediglich eine objektorientierte variante von C und in keiner weise mit Java vergleichbar da c++ auch keine VM verwendet. C++ ist wesentlich performanter als Java. Und Galaxy wird auch wie gesagt nur für skripte etc. im Editor verwendet. Ob das Spiel an sich mit den Editor programmiert wurde weiß ich nicht aber ich zweifle sehr stark daran. Schließlich muss ja irgendwo der Interpreter dieser Sprache stecken und dieser wird höchstwarscheinlich im Spiel selbst stecken.

Und c benutzt genauso einen Heap wie C++ und Java und alle anderen Programmiersprachen
 
Mitglied seit
01.08.2008
Beiträge
904
Reaktionen
0
Wer programmiert mir einen timer der immer wenn ich F drücke 28sekuden sichtbar oben rechts(während man in sc2 ist) runterzählt und dann ein hörbares geräusch von sich gibt? :o

Vergiss du etwa immer Larva infekt?^^
ICh machte es mit einer Batchdatei : o

btw: Java :D
 

Shihatsu

Administrator
Mitglied seit
26.09.2001
Beiträge
46.397
Reaktionen
8.844
Website
broodwar.net
Das ist bullshit. C++ ist lediglich eine objektorientierte variante von C und in keiner weise mit Java vergleichbar da c++ auch keine VM verwendet. C++ ist wesentlich performanter als Java. Und Galaxy wird auch wie gesagt nur für skripte etc. im Editor verwendet. Ob das Spiel an sich mit den Editor programmiert wurde weiß ich nicht aber ich zweifle sehr stark daran. Schließlich muss ja irgendwo der Interpreter dieser Sprache stecken und dieser wird höchstwarscheinlich im Spiel selbst stecken.

Und c benutzt genauso einen Heap wie C++ und Java und alle anderen Programmiersprachen
kerlchen, du solltest vorsichtig sein wessen argumentation du hier als nullshit bezeichnest. schau dir meine nochmal genau an:
spiele fressen performance. da ist c++ nicht viel performanter als java, weil man auf den heap nicht verzichten kann. und in c++ muss man den heap verwenden, wenn man objektorientiert programmiert. tut man das nicht ists c. und nun kusch dich, auf solch getrolle in solchen diskussionen stehe ich garnicht. fühle dich des threads verwiesen :)

und falls du mir net glaubst: google mal "spieleperformance mit c und c++"
 
Mitglied seit
26.04.2004
Beiträge
377
Reaktionen
0
spiele fressen performance. da ist c++ nicht viel performanter als java, weil man auf den heap nicht verzichten kann. und in c++ muss man den heap verwenden, wenn man objektorientiert programmiert.
Ach ja?
Code:
#include <iostream>

using namespace std;

class MyClass {
public:
	virtual void test() const = 0;
};

class MySubClass : public MyClass {
	virtual void test() const {
		cout << "Hello World! :-)" << endl;
	}
};

int main() {
        const MyClass& myObject = MySubClass();
	myObject.test();
}
Wo benutze ich denn hier den Heap?

Aber ehrlich gesagt ist die Vorstellung, dass Spiele auf den Heap verzichten um Performance zu gewinnen, so lächerlich, dass man schon merkt, dass du nicht wirklich Ahnung von der Materie hast. Hast du dich denn nicht mal gefragt, warum dein schönes neues Computerspiel gleich 1GB Ram frisst? Wo doch der Stack nur typischerweise 1-2mb groß ist? Richtig: Die Spiele verwenden selbstverständlich den Heap.

C hat sicherlich seine Vorteile gegenüber C++ in gewissen Bereichen und ist bei low-level Sachen immer noch die Sprache der Wahl. Bei komplexeren high-level Sachen, wie Computerspiele, allerdings sind die zusätzlichen Paradigmen (insbesondere Objektorientierung) in C++ einfach extrem hilfreich. Dazu bietet C++ einen sehr guten Kompromiss zwischen guter Performance und Eleganz/Einfachheit der Programmierbarkeit. Deshalb ist C++ meistens die Sprache der Wahl bei Computerspielen.

Auch die Benutzung von Inline-Assembler (natürlich auch in C++ möglich) ist imho fast auszuschließen: Es lohnt sich einfach nicht. Die Compiler sind heutzutage so gut und die CPU Architekturen so unterschiedlich, dass der Einsatz von Assembler zur Performancesteigerung nur in Ausnahmefällen sinnvoll ist.
 
Zuletzt bearbeitet:
Mitglied seit
10.03.2008
Beiträge
38
Reaktionen
0
kerlchen, du solltest vorsichtig sein wessen argumentation du hier als nullshit bezeichnest. schau dir meine nochmal genau an:
spiele fressen performance. da ist c++ nicht viel performanter als java, weil man auf den heap nicht verzichten kann. und in c++ muss man den heap verwenden, wenn man objektorientiert programmiert. tut man das nicht ists c. und nun kusch dich, auf solch getrolle in solchen diskussionen stehe ich garnicht. fühle dich des threads verwiesen :)

und falls du mir net glaubst: google mal "spieleperformance mit c und c++"

:confused:

in allen spielen wird der heap verwendet (wie sollte man sonst den hauptspeicher nutzen?), und ob ich nun in C malloc() oder free() oder in C++ new und delete verwende ist von der performance relativ egal. der unterschied was java langsamer macht ist die jvm.

was du vielleicht meinst: programmiert man in c++ objektorientiert hat man im gegensatz zu c einen leichten overhead bei funktionsaufrufen, es muss zusätzlich eine variable auf den stack gepusht werden.

ich kann dir allerdings versichern dass wirklich 99% aller spiele die heutzutage auf den markt kommen in C++ programmiert werden. john carmack war einer der letzten die wirklich noch in C programmiert haben, doch selbst er hat schon bei doom3 (2004!) C++ verwendet. quelle: http://de.wikipedia.org/wiki/Doom_3#Die_Engine
 

Shihatsu

Administrator
Mitglied seit
26.09.2001
Beiträge
46.397
Reaktionen
8.844
Website
broodwar.net
jo, habter recht, sollte mich selber erstmal schlauer machen. mir ging es vor allem um den tonfall. und damit genug davon, will noch irgendjemand was zur eigentliche frage sagen?
 

Telmata

SC2-Forum
Mitglied seit
15.10.2004
Beiträge
3.027
Reaktionen
0
Website
www.artofplay.de
schätze stark C++, eventuell C (glaub ich weniger)
und an den zweiten post:
Galaxy ist die Sprache die die user im sc2editor benutzen, nicht die sprache in der sc2 geschrieben wurde
 
Mitglied seit
18.06.2005
Beiträge
84
Reaktionen
0
Blizzard wäre schön blöd wenn sie nen voll funktionalen Editor schreiben würden und diesen nicht zum Aufbauen des Spiels verwendet hätten.. die haben den Editor bestimmt nicht nur für den Verbraucher geschrieben (zumindest würde ich es so machen).
In was der geschrieben ist weiss ich nicht aber alles was weiter von der maschinensprache weg ist als c++ fällt für 3D Anwendungen momentan einfach mal sowas von weg (und wehe einer erzählt jetzt hier was von JOGL oder sonstigem java-kram ^^)
 
Mitglied seit
19.05.2010
Beiträge
869
Reaktionen
0
es ist übrigens c und nicht c++. spiele fressen performance, und c++ ist nicht viel performanter als java. alles was den heap zwangsweise benutzt fällt aus.
Kurz dazu: Es ist ja auch ein Unterschied, ob C++ oder C++.NET verwendet wird, wobei zweiteres aufgrund ähnlicher Gründe wie Java eher weniger der Fall sein wird, ersteres aber nun hinreichend Performance für alle Spiele aufweist. Ist ja nun wirklich kein Geheimnis, dass schon massig performanceorientierte Games in C++ geschrieben wurden.

Dahingehend schätze ich auch mal auf C++.
 
Mitglied seit
15.07.2003
Beiträge
404
Reaktionen
0
Also fassen wir es mal zusammen:

Der Editor ist in der Sprache Galaxy geschrieben, das ist Fakt.
Beim Spiel selber wissen wir es nicht 100%ig, aber zu 90 + x % ist es bestimmt C++. Alles andere wäre (Java ist zu langsam, C ist nicht für 3D bekannt, bitte jetzt nicht OpenGL anführen...) doch sehr verwunderlich.
Ja, das Interview mit John Carmack hab ich auch gelesen und wenn er sogar C++ nimmt, das heißt dann schon was. :top:

Kommt wer von Euch (MODs etc.) zur Blizzcon?
Dann könntet ihr ja mal dort mal nachfragen? ;)
 
Mitglied seit
01.08.2008
Beiträge
904
Reaktionen
0
Blizzard wäre schön blöd wenn sie nen voll funktionalen Editor schreiben würden und diesen nicht zum Aufbauen des Spiels verwendet hätten.. die haben den Editor bestimmt nicht nur für den Verbraucher geschrieben (zumindest würde ich es so machen).
In was der geschrieben ist weiss ich nicht aber alles was weiter von der maschinensprache weg ist als c++ fällt für 3D Anwendungen momentan einfach mal sowas von weg (und wehe einer erzählt jetzt hier was von JOGL oder sonstigem java-kram ^^)

Der Editor wird nicht zum Aufbauen des Spiel verwendet, nur für die Maps. Außerdem ist es beinahe unmöglich mit den Editor ein vernünftiges Eigenständiges Programm zuschreiben.
 
Mitglied seit
30.03.2005
Beiträge
275
Reaktionen
0
Blizzard beschäftigt ein eigenes Tool-development Team, welches nur dazu da ist für die Entwickler, Grafiker, Soundabteilung, Storydesign (z.b. Quests in WoW) etc programme zu schreiben um ihnen die Arbeit zu erleichtern und eine bequeme und vor allem effektive Eingabe ihrer Daten zu ermöglichen.

Diese machen die eigentliche Programmierarbeit (in irgendeiner Programmiersprache) neben den Programmierern der 3DEngine. Die reinen Programmierer machen inzwischen vielleicht nur noch 20% des Teams aus. Die anderen "programmieren" nicht im eigentlichen Quellcode sondern benutzen besagte Tools.

Der Editor wird sicherlich auch intern für die Mapcreation verwendet. Könnte aber durchaus sein dass eine weiterentwickelte interne Version gibt mit zusätzlichen Funktionen.
 
Mitglied seit
27.03.2006
Beiträge
238
Reaktionen
0
Also fassen wir es mal zusammen:

Der Editor ist in der Sprache Galaxy geschrieben, das ist Fakt.
Beim Spiel selber wissen wir es nicht 100%ig, aber zu 90 + x % ist es bestimmt C++. Alles andere wäre (Java ist zu langsam, C ist nicht für 3D bekannt, bitte jetzt nicht OpenGL anführen...) doch sehr verwunderlich.
Ja, das Interview mit John Carmack hab ich auch gelesen und wenn er sogar C++ nimmt, das heißt dann schon was. :top:

Kommt wer von Euch (MODs etc.) zur Blizzcon?
Dann könntet ihr ja mal dort mal nachfragen? ;)

nur um das nochmal klarzustellen

galaxy ist eine skriptsprache die der editor benutzt um darin maps zu machen. der editor selbst ist sicher nicht in galaxy geschrieben.

java, c# und andere virtual machine sprachen sind nicht generell zu langsam sondern in den meisten bereichen c++ ebenbürtig. im 3d bereich ist performance aber so essentiell und vorallem sind alle bestehenden tools auf c++ weswegen das benutzt wird. trotzdem springen viele kleinere entwicklungsfirmen auf .net (also zB c#) sprachen um, da der entwicklungsaufwand niedriger ist.

c ist selbstvertständlich für 3d bekannt. siehe opengl. warum man das nicht anführen soll kann ich nicht nachvollziehen. es ist ein normales 3d framework das wunderbar läuft. alles was auf mac und linux läuft basiert auf opengl und einiges auf windows auch. keine ahnung was du für vorstellungen hast?
mit c und c++ kann man im grunde das gleiche erreichen, c++ gibt einem nur die nette erweiterung von standardtools und natürlich der objektorientierung, die einiges leichter macht.

grüße
ein informatiker
 
Mitglied seit
25.09.2004
Beiträge
152
Reaktionen
0
n Spiel in dem Format in C Programmieren ihr seit doch irre :)

Des wird mehrere Bestandteile haben, kann sein n kleiner teil Java, das Menü evtl und solche Dinge mit Swing und rest mit C# o ä ...
 
Mitglied seit
09.09.2003
Beiträge
54
Reaktionen
0
Scheint so als ob jeder 5 Zeilen Entwickler hier sein ganzes Wissen verbreitet.
 
Mitglied seit
04.08.2003
Beiträge
321
Reaktionen
0
Ort
Köln
Website
www.darkwave-webdesign.de
Moderne Sprachen sind auf jeden Fall auf dem Vormarsch was 3D Spiele angeht. Im übrigen sind einige Spiele auf der Xbox 360 mit C# und .NET geschrieben worden weil die Direct X anbindung unglaublich einfach von der Hand geht.

http://www.youtube.com/watch?v=TgChURF5fQE

Hier mal ein kleines Beispiel was man mit .NET XNA ( ein .NET Spiele Framework ) erreichen kann. Wie man sieht mangelt es nicht grade an Performance. Der Quellcode zu dem Spiel ist übrigens offen und kann runtergeladen werden.
 
Mitglied seit
08.11.2000
Beiträge
55
Reaktionen
0
Zu 99% ist es C++ für das eigentliche Spiel. Blizzard ist was Technik betrifft noch nie Vorreiter gewesen und macht das plötzlich anders als alle Anderen.
Man muss aber schon sagen, dass in anderne Bereichen C++ bereits kräftig am bröckeln ist und ich daher nicht denke, dass in 5 Jahren noch viel in C++ entwickelt wird.

Java kann bezüglich 3d aber schon was inzwischen, so dass ich zb einige 3d mmorpgs bereits in Java gesehen habe, die flüssig liefen. Naja und ein bisschen Erfahrung habich da auch mit ;). Aber es ist halt trotzdem langsamer.
 
Mitglied seit
10.04.2008
Beiträge
2.423
Reaktionen
0
Wer programmiert mir einen timer der immer wenn ich F drücke 28sekuden sichtbar oben rechts(während man in sc2 ist) runterzählt und dann ein hörbares geräusch von sich gibt? :o

Afaik sind sollche stopuhren verboten.. will nicht über den sinn oder unsinn dessen diskutieren, aber bei Quake wars afaik verboten tools zu verwenden welche dir beim itemtiming geholfen haben.. wenn ich mich nicht irre. (natürlich auf ligen oder so bezogen)
 
Oben