ubuntuusers.de

[Suche] Iso-Engine (C++ / Python)

Status: Ungelöst | Ubuntu-Version: Ubuntu 11.04 (Natty Narwhal)
Antworten |

Glocke

Avatar von Glocke

Anmeldungsdatum:
1. März 2009

Beiträge: 880

Wohnort: Thüringen

Hi,

ich habe mir mit einem Kumpel vorgenommen ein 2D-Rollenspiel (Diablo-like, isometrische Karte, später Multiplayerfunktionalität) zu schreiben. Mein Kumpel wird dabei mit Blender die Grafiken erzeugen, den Programmierpart übernehme ich.

Durch Ausbildung und Studium hab ich bereits (aus meiner Sicht genug) Erfahrungen gesammelt. Mein letztes Projekt war (studiumsbedingt) ein Server-Client-Chatroom in Java(Wir wurden für das "überdurchschnittliche Codedesign" gelobt, ich denke das sind gute Voraussetzungen oder? ☺ ). Objektorientierte Konzepte, Threadprogrammierung und Model-View-Controller sind mir geläufig.

Unsere Anforderungen an der Spiel bezüglich der Lauffähigkeit:

  • Windows und Ubuntu (imho kein großes Problem)

  • Netbook (sagen wir 1.6 GHz, 2 GB Ram, interner No-Name-Grafikchip)

Ich bin absoluter Python-Fan! Allerdings werde ich an C++ sicher nicht vorbeikommen, gerade wegen der Netbook-Geschichte, oder?

  • Welche Möglichkeiten habe ich, die Model Klassen in Python und die View und Controller Klassen in C++ zu schreiben? Also ich meine geht das so einfach? Wie könnte ein minimalistisches Beispiel dazu aussehen?

  • Welche Iso-Engine würdet ihr uns empfehlen? Eine selbst zu schreiben wäre zu aufwendig, da wir uns auf die eigentlichen Spielinhalte konzentrieren wollen.

Danke fürs Lesen

LG Glocke

mrkramps Team-Icon

Avatar von mrkramps

Anmeldungsdatum:
10. Oktober 2006

Beiträge: 5523

Wohnort: south central EL

FIFE oder FLARE könnten interessant für euch sein.

Glocke

(Themenstarter)
Avatar von Glocke

Anmeldungsdatum:
1. März 2009

Beiträge: 880

Wohnort: Thüringen

Ich hatte Unknown Horizons (was ja auf FIFE aufbaut) mal auf meinem Netbook und hatte ziemliche Performanceprobleme. Wenn ich nichts verwechsle baut FIFE auf OpenGL auf ... wir hatten uns eher etwas in der Richtung SDL gedacht ...

Flare muss ich mir mal genauer anschauen - aber es läuft sehr flüssig.

Welche Möglichkeiten gibt es Python-Klassen in C++ Code zu verwenden? Ich stelle mir das so ähnlich vor:

1
2
3
class Foo:
    def doSomething():
        return bar
1
2
3
4
// irgendwelche Importe

myFoo = new Foo()
baz = myFoo->soSomething()

Die Spiellogik wollen wir auf jeden Fall in Python schreiben und wenn es nicht anders geht die IO-Geschichte über C++ machen. Ist Pygame aus Performancesicht eine Möglichkeit?

LG

/EDIT: Ich habe die letzten Stunden damit verbracht eine kleine isometrische Karte mittels Pygame darzustellen und die "Kamera" zu bewegen. Allerdings habe ich bei größeren Karten (ab 30x30 Tiles) probleme mit meiner ineffizienten Programmierung >.< Genauer handelt es sich um die Methode set_camera in lib/core/iso.py (Archiv siehe Anhang). Derzeit fehlt mir die Herangehensweise, wie ich nur über "relevante" Tiles iteriere - die Schleife frisst massiv Zeit ... vielleicht hat jemand eine Idee ^_^

(Ich weiß, dass ich ModelViewController im Quellcode bisher schwer ignoriert hab xD )

backup.zip (15.9 KiB)
Download backup.zip
Bilder

Glocke

(Themenstarter)
Avatar von Glocke

Anmeldungsdatum:
1. März 2009

Beiträge: 880

Wohnort: Thüringen

Ich versuche die Engine komplett in Python zu schreiben.

Entsprechendes Topic im Python-Forum

Projekt aufGitHub

Antworten |