Game? xD

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
CeeNeo
User
Beiträge: 17
Registriert: Donnerstag 29. August 2013, 03:48

Hey,

ich bin 16 Jahre alt und habe noch keine Ehrfahrung mit dem scripten bzw. programmieren.

Habe zwar mal php und html gelernt. Dies hat mir Spaß gemacht aber ich wollte etwas anderes machen. Also etwas was nicht unbedingt im Web laufen muss. So bin ich auf Python gestoßen. Ich habe mir das Buch Einstieg in Python gekauft. Hab mich bis zur Seite 15 vorgelesen und bekam dann einen Drang ein online Game zu proggen. xD

Ist es nur durch Python möglich ein Online 3-D Game zu proggen?

Also so eins wie Metin2, WoW,....

Oder für was könnte man Python in dem Bereich gebrauchen oder welch Sprache müsste man noch zusätzlich lernen?

Es wäre gut, wenn das Game auf Windows und Linux laufen würde. :D


Thx+MfG CeeNeo :)

PS: Fals ich im falschen Bereich bin, bitte den Thread verschieben. :)
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

CeeNeo hat geschrieben:PS: Fals ich im falschen Bereich bin, bitte den Thread verschieben. :)
Ganz streng genommen gehört der Thread nach Sonstige (Pygame, PyOpenGL, ...), aber hier wird man sicher mal Milde walten lassen können. ;)

Zu deiner Frage: Guck dir mal PyGame an. Das ist eigentlich *das* Modul zur Spieleprogrammierung unter Python. Ich würde es aber wirklich langsam angehen. Du könntest z.B. zunächst mal ein Modul (oder eine Klasse, wobei das für nen Anfänger sicherlich schwieriger ist) zur Highscore-Verwaltung der Spieler schreiben (nur als Idee). Diese Daten sollten auch nach Spielende beim nächsten Spielstart abfragbar sein. Also informier dich mal, wie du solche Dinge dauerhaft speichern kannst und wie du eine sinnvolle Datenstruktur für "Spielername, Punktezahl" entwickeln kannst, die eben nicht aus einer einzelnen Zeichenkette besteht.

Immer zu empfehlen ist übrigens das offizielle Python-Tutorial. Einfach mal die Suchmaschine deiner Wahl anschmeißen (falls noch nicht bekannt). Das Ding gibt es auch in einer deutschen Übersetzung. Wenn du wirklich totaler Programmier-Neuling bist, dann solltest du zumindest die ersten Kapitel von dem besagten Tutorial gelesen und einigermaßen verstanden haben. Damit würdest du uns zumindest ein paar Threads mit sehr elementaren Fragen ersparen. ;)
CeeNeo
User
Beiträge: 17
Registriert: Donnerstag 29. August 2013, 03:48

Ok danke. :)

Ich hab mal wo gelesen, dass mit Pygame nur 2d-Games möglich sind.

Stimmt das oder sind auch 3D-Games möglich?

Also soll ich erstmal Python lernen und dann auf so etwas wie Pygame oder Panda3D zurückgreifen?


Wenn ich jetzt so ein Game entwickeln möchte braucht es ja einen Clienten und auch serverside Scripts.
Kann man das alles allein mit Python (verknüpfnung mit SQL wäre wahrscheinlich sinnvol) möglich? Also da muss ich keine andere Script/-Programmiersprache können? :o
Malachite
User
Beiträge: 34
Registriert: Sonntag 24. Juni 2012, 13:43
Wohnort: Berlin

Im Prinzip kannst du mit Python auch 3D-Spiele (oder -Anwendungen) entwickeln, die gibt es sogar schon. Schau dir zum Beispiel mal den Code von MCEdit an, das ist mit Pygame und PyOpenGL umgesetzt worden.

Bedenke aber auch, dass Python eine Skriptsprache ist und Skript- oder Bytecodesprachen üblicherweise einen höheren Ressourcenverbrauch haben als Compilersprachen. Minecraft zum Beispiel ist in Java, einer Bytecodesprache, programmiert und von den Texturen und dem Shading nicht besonders anspruchsvoll, verbraucht aber trotzdem mehr Ressourcen als C++-Spiele wie Portal 2 oder TF2.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

CeeNeo hat geschrieben:Stimmt das oder sind auch 3D-Games möglich?
Es ist das möglich, was du daraus machst. Es gibt für 3D-Anwendungen allerdings sicher gegenüber der Allzweckwaffe Pygame optimierte Lösungen.
CeeNeo hat geschrieben:Also soll ich erstmal Python lernen und dann auf so etwas wie Pygame oder Panda3D zurückgreifen?
Oh ja. Zumindest das Tutorial solltest du durchgearbeitet und verstanden haben. Egal welche Bibliothek du hinterher verwendest, du arbeitest auf jeden Fall mit Python und brauchst die Grundlagen. Über die Beschreibung der Standard Library solltest du dann auch noch mal drüberschauen um zu sehen, was alles bereits bei Python dabei ist.
CeeNeo
User
Beiträge: 17
Registriert: Donnerstag 29. August 2013, 03:48

Danke :)

Weiß jemand mit welcher Game Engine und Sprache LoL geschrieben wurde? :D

Und welche 3-D Engine für Python hat viele deutsche Tuts oder soagr ein deutsches Lern-Buch? xD
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Malachite hat geschrieben: Bedenke aber auch, dass Python eine Skriptsprache ist und Skript- oder Bytecodesprachen üblicherweise einen höheren Ressourcenverbrauch haben als Compilersprachen.
Definiere "Script"-Sprache! ;-) Und was ist eine Bytecodesprache? Brainfuck? :twisted:

Du meinst Sprachen, die üblicher Weise in einen Plattform unabhängigen Bytecode kompiliert werden. Dies ist aber nicht alleine an der Sprache fest zu machen - auch C++ kann und wird durchaus in Byte-Code kompiliert.

Zudem ist es doch gut, dass der OP eben nicht mit einem Molloch von Sprache anfängt, wie C++ einer ist! Premature Optimization is the root of all evil heißt es so schön... und Performance-Probleme herbei zu reden, ohne dass der OP auch nur nahe an einem solchen Problem steht, ist wenig zielführend ;-)

Zudem sollte man eh auf eine fertige Engine zurückgreifen; und die kann ja in sonst was programmiert sein. Da muss man sich nicht selber um Performance kümmern, das tun schon die 3D-profis für einen.

Für einen Anfänger ist es sicherlich härter, einen effizienten Algorithmus bzw. eine optimale Datenstruktur für seine Probleme zu entwerfen. Und Zeitkomplexität ist da zu Beginn nun einmal das A und O - Optimierungen sollten immer erst danach folgen.
Malachite hat geschrieben: Minecraft zum Beispiel ist in Java, einer Bytecodesprache, programmiert und von den Texturen und dem Shading nicht besonders anspruchsvoll, verbraucht aber trotzdem mehr Ressourcen als C++-Spiele wie Portal 2 oder TF2.
Java ist an sich - wie oben erwähnt - erst einmal eine Programmiersprache. Man kann Java sogar in nativen Code kompilieren - auch wenn natürlich eine JVM das Standardziel sein dürfte.

Du vergleichst hier verschiedene Spielansätze; Minecraft *will* kein Grafikvorreiter sein. Natürlich hat es kaum Effekte - das ist durchaus Design-Absicht. Und Portal oder TF2 spielen auf viel begrenzterem Raum; Welten wie in Minecraft, wären mit der Source-Engine auf gleicher Hardware gar nicht möglich. Preformance und Ressourcenverbrauch hängen natürlich auch mit der Sprache zusammen - viel mehr jedoch mit den *Daten*, die ein Problem mit sich bringt.

Dass - vermutlich - die meisten AAA-Games immer noch mit C++ entwickelt werden hängt zum einen damit zusammen, dass die gängigen Grafik-Engines meist Anfang des Jahrtausends begonnen worden, als Java mangels existierenden / guten JIT und .NET mangels Reifegrad noch kein großes Thema in der Branche waren, zum anderen spielen dabei auch Zugriffstechnologien auf die Hardware eine Rolle. Ich gehe stark davon aus, dass sich in diesem Bereich einiges tun wird.

Davon abgesehen sind viele Game-Logiken sicherlich *nicht* mehr in C++ gecodet, sondern in anderen Sprachen. JS, Lua, Python usw.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
CeeNeo
User
Beiträge: 17
Registriert: Donnerstag 29. August 2013, 03:48

Danke Hyporien aber kannst du pls auch auf meine Frage eingehen? :)

"
Danke :)

Weiß jemand mit welcher Game Engine und Sprache LoL geschrieben wurde? :D

Und welche 3-D Engine für Python hat viele deutsche Tuts oder soagr ein deutsches Lern-Buch? xD
"
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

CeeNeo hat geschrieben:Danke Hyporien aber kannst du pls auch auf meine Frage eingehen? :)
Kann ich: Ich habe keine Ahnung, in welcher Sprache / Sprachen LoL geschrieben ist. Wenn man heraus fände, welche Engine (Lizenz / Eigenentwicklung) League of Legends nutzt, könnte man bei ersterem schon mehr darüber sagen. Ich vermute mal, dass Dich da googlen eher ans Ziel bringt - wir sind hier ein Python-Forum; kein Game-Insider und Experten-Treff :-D Sicherlich kennen hier auch viele Spiele, aber bei so spezielle Fragen würde ich woanders mehr Chancen auf Antwort sehen.

@Thema deutsch: Vergiss es! Ohne Englisch wirst Du in kaum einem Bereich weit kommen - in dem schon gar nicht.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
CeeNeo
User
Beiträge: 17
Registriert: Donnerstag 29. August 2013, 03:48

Ok. Und welche 3D-Engine könnt ihr mir ans Herz legen wenn ich ein etwas größeres Game machne möchte? Ihr kennt vlt. Metin2 oder WoW,... So eins in der Richtung möchte ich scripten, bzw. probieren zu scripten. xD
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

CeeNeo hat geschrieben:Ok. Und welche 3D-Engine könnt ihr mir ans Herz legen wenn ich ein etwas größeres Game machne möchte? Ihr kennt vlt. Metin2 oder WoW,... So eins in der Richtung möchte ich scripten, bzw. probieren zu scripten. xD
Ganz im Ernst: Versuche Dich erst gar nicht daran mit Deinem heutigen Kenntnisstand!

Versuche lieber erst einmal hearus zu finden, *was* Du willst! Willst Du eine 3D-Engine coden und dabei viel darüber lernen (also Technik und Technologie fokussiert) oder willst Du ein Spiel *designen* und Dir liegt viel am Inhalt und dem Spaß beim Spielen?

Für ersteres erlerne die Grundlagen von Python, lerne ausreichend Englisch, um technische Dokumente zu verstehen und forsche selber in dem Zusammenhang; probiere Engines einfach aus, schaue Dir bei OS-Games ab, wie die z.B. mit PyOgre klar kommen usw. Man lernt so etwas nicht aus einem Buch oder einem Forum-Thread.

Fpr zweiteres: Suche Dir eine gute Game-Engine und versuche Dich an einem Mod. Quake3 in Form der IOQuake3-Engine wäre da vielleicht etwas, wenn auch schon ziemlich "Hardcore". Ansonsten kann ich nur immer wieder Warcraft3 oder Neverwinter Nights I empfehlen. Beide Spiele bringen alles mit, was man braucht, um mit deren Engine und deren Werkezugen erzählerische Spiele zu designen. Auch Multiplayer ist damit möglich. Natürlich wird es nicht aus einem Guss wie WoW sein - wie willst Du das als einsamer Mensch alleine auch hinbekommen?

Ich habe erst einmal in meinem Leben erlebt, dass sich jemand nach Jahren wieder in einem Forum zurück gemeldet hat und einen hübschen Screenshot inkl. eines Links zu einer Projektseite mit einer von ihm entwickelten Art Pirates-Clone gepostet hat. Dieser Mensch trat zunächst ähnlich unwissend / naiv auf, wie Du und hat es dank Interesse und Willen tatsächlich zu etwas gebracht. Wie gesagt: Ein *einziges* Mal habe ich das bisher erlebt - und das Ergebnis war ziemlich weit von dem entfernt, was er wollte iirc. Das ging nämlich auch in die Richtung WoW...

Ich will Dich hier nicht entmutigen, aber werde Dir wirklich erst einmal klar darüber, *was* Du eigentlich willst. Der Weg zu einem selbst gefertigten Spiel mit toller Grafik und wirklich spielbarem Inhalt ist weit...
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

@CeeNeo: Vielleicht solltest Du Dir erst einmal ein Spiel suchen was man als Nutzer selber erweitern kann, inklusive Spiellogik. Denn bis Du selber so etwas wie WoW aus dem Boden stampfst dürften ein paar Jahre ins Land gehen. Wenn nicht gar Jahrzehnte. Es ist ja gut sich Ziele zu setzen die auch ein wenig ausserhalb der Reichweite liegen was man innerhalb eines halben oder ganzen Jahres auf die Reihe bekommt, aber so etwas wie WoW als absoluter Anfänger und als Einzelperson ist total unrealistisch. An so etwas arbeiten in der Regel Entwicklerteams mit Berufserfahrung und keine Einzelkämpferamateure.
CeeNeo
User
Beiträge: 17
Registriert: Donnerstag 29. August 2013, 03:48

Danke. :)

Diese Antwort hat mir viel geholfen. Ich lerne jetzt erst mal Python und wage mich dann an Mods ran. :)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

@CeeNeo: Du kannst im übrigen auch als Anfänger und mit Shell-Programmen einiges realisieren! Ein klassiches Text-Adevnture z.B. oder gar einen kleinen Dungeon-Crawler... die Spiellogik ist dabei dann das fordernde; aber mit ein wenig guten inhaltlichen Ideen kannst Du sicher auch nach relativ kurzer Zeit etwas schaffen, mit dem man eine Zeit lang Spielspaß haben kann.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Dami123
User
Beiträge: 225
Registriert: Samstag 23. Februar 2013, 13:01

Warum mit Legobausteinen einen Wolkenkratzer bauen?
Dir ist schon bewusst, aus wie vielen Einzelteilen ein MMORPG aufgebaut ist und du kannst bis dato keines davon realisieren.

Beginne doch ein "simples" Ping-Pong zu basteln, wenn dir das gelingt, bau eine Funktion ein, die es dir ermöglicht mit anderen via TCP zu spielen.
Originally Posted by Lima Beans View Post
we use at least the following languages here
C++ (the core game is written in this)
Lua (core game)
C# (game tools)
ActionScript (game hud and pvp.net)
Java (platform servers)
Erlang (platform servers)
Php/sql (web team / platform)
http://forums.na.leagueoflegends.com/bo ... p?p=175689

Und dazu kommen unzählige Grafikprogramme..
CeeNeo
User
Beiträge: 17
Registriert: Donnerstag 29. August 2013, 03:48

Wenn ich ein Python Projekt straten möchte, welches sich ca. ein halbes-ein Jahr dauern soll. und die Grundlagen von Python kann.

Welches Projekt könnt ihr mir da empfehlen? :D

Und nein ich dachte nicht, dass ich ein Game in einem halben Jahr scripten könnte.
BlackJack

@CeeNeo: Das hängt sehr stark von Deinen Interessen ab. Wenn man sich ein halbes Jahr mit etwas auseinandersetzen will, dann sollte das für einen selber von Interesse sein, vielleicht sogar einen Nutzen haben. Sonst kann es schwer werden die Motivation aufrecht zu erhalten.
CeeNeo
User
Beiträge: 17
Registriert: Donnerstag 29. August 2013, 03:48

Könnt ihr pls ein paar Beispiele nennen, die sich mit Python gut umsetzen lassen? :)
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

CeeNeo hat geschrieben:Könnt ihr pls ein paar Beispiele nennen, die sich mit Python gut umsetzen lassen? :)
BlackJack hat es doch schon geschrieben: Such dir etwas, was dich interessiert. Wenn dir selbst nichts einfällt, dann brauchst du mit Lernen eigentlich gar nicht anfangen. Dann hat sich das Thema aus mangelnder Motivation bald von selbst erledigt.
Das Leben ist wie ein Tennisball.
Dami123
User
Beiträge: 225
Registriert: Samstag 23. Februar 2013, 13:01

Der Bereich Spiele interessiert dich? Dann programmier ein Spiel. Muss ja nicht gleich 3D und Multiplayer sein.
Ein Jump and Run Spiel wär interessant.
Antworten