Einfaches Spiel zum Nachprogrammieren gesucht

  • Moinsen Leute,


    in Anlehnung an den Thread von Creed, in dem er nach Projektideen zum Nachprogrammieren fragt(klick), mache ich mal das selbe, mit dem unterschied, dass ich ein einfaches Spiel in C++ nachprogrammieren will, um mal ein wenig Übung hineinzubekommen. Eine Engine auf der ich das Spiel basiere, habe ich schon, nur fehlen mir gerade die Ideen, was ich denn so hübsches umsetzen könnte. Allzu komplex und zeitaufwendig sollte es nicht sein, denn wie gesagt soll es vor allem Übungszwecken dienen.


    Schon mal vielen Dank im Voraus, All


    PS: Wenn ihr es für sinnvoll haltet, könnt ihr diesen Thread auch gerne mit dem oben verlinkten verschmelzen, wenn es ein paar mehr Programmierer hier gäbe, könnte man ja mal über einen allgemeinen Ideenthread nachdenken.

  • Nunja was is das denn für ne Engine? Engines gibts ja für alles mögliche in der regel hat man eine für Grafik, für Sound, und für die eigendliche Gamelogik, also was passiert überhaupt im Spiel.


    Darum wären erstmal infos darüber wichtig was für ne Engine du schon hast, und ob du sie selber geschrieben hast oder ob du auf die dir gegebenen Mittel der Engine beschränkt bist?


    Dann wäre noch sehr interessant und wichtig zu wissen welche IDE du verwendest, wenn du dahingehend nicht festgelegt bist und dich auch noch nicht auf eine Festgelegt hast, dann würde ich dir auf jeden Fall Visual Studio nahelegen, auch wenn du jetzt noch Hobbymäßig programmierst, wenn du irgendwann das mal zum Beruf machen willst wird Visual Studio wohl das sein mit dem du arbeiten wirst, muss aber nicht sein aber für Windoofprogrammierung sehr warscheinlich.


    Außerdem ist es sehr sehr mächtig. Es gibt auch eine Freeware davon die ist etwas im Funktionsumfang beschnitten aber ist denke ich ausrechend.


    Jetzt aber mal zurück zum eigendlich Thema.
    Ich weiß ja nicht wieviel du schon Programmiert hast und wie tief du dabei in die Materie eingestiegen bist, aber wenn das dein Erstes Spieleprojekt ist, dann wäre sowas wie Snake ider Tetris für den Anfang schon anspruchsvoll genug.
    Man kann ja auch die Spiele nach beleiben erweiten, Snake mit Computergegnern, Mienen... habe ich zum Beispiel mal wärend der Ausbildung mit noch nem Auszubildenden prorgammiert. Dann kannst du noch Multiplayer einbauen, reicht ja über eine Tastatur, oder später über LAN und Internet aber das ist nicht ohne. Ich hatte mal ein Spiel das konnte man über RS232 mit nem anderen Rechner verbinden, da RS232 verhältnismäßig einfach zu programmieren ist. Aber leider hat die Schnittstelle heute kaum noch ein PC.

  • Zuallererst: Ich programmiere nicht unter Windoof sondern unter Linux, um genau zu sein unter Fedora. Eine IDE will ich vorläufig nicht verwenden, ich kompiliere die Dateien bisher von Hand oder über CMake(das aber auch nur aus Übungszwecken).
    Die Engine ist eine Grafik-Engine, die bisher recht simpel aufgebaut ist, was ich auch gut finde, weil man sonst zu fern vom eigentlichen Programmiervorgang wäre. Um genau zu sein entwickelt ein Freund die Engine für ein eigenes Spiel und bietet sie auch zur freien Verfügung für andere an. Sie ist unter http://ki-omniarts.de/hg/Fabula zu finden, nennt sich (bisher) Fabula, aber da es durch unglückliche Zufälle so kam, dass schon eine Python-Engine diesen Namen trug, wird sie demnächst in cFabula umbenannt.
    Wie gesagt, allzu viel Arbeit nimmt sie mir nicht ab, das ist aber auch nicht Ziel der Übung.


    Kann man mit den Informationen schon mehr anfangen? ^^ Tetris und Snake klingen ja schon mal nach Möglichkeiten, ist die Frage wie komplex das ganze wird...

  • Nun ich denke, dass Snake und Tetris schon möglich wären, mit deinem Wissensstand, kommt aber auch sehr auf die Herangehensweise an das Problem an. Was noch einfacher wäre, wäre irgendwas, was nicht in echtzeit läuft, sprich was rundenbasierendes da du dann keine zeitkritischen sachen Programmieren musst.
    Denn du willst ja das dein Spiel auf jedem Rechner etwa gleich schnell läuft udn nciht auf einem Schnelleren rechner schneller.


    Daher ein Paar Tips:


    - Mach dich ein wenig über die Funktionsweise einer "State Machine" dt. " Endlicher Automat" schlau. Ist in vielen teilen der Programmierung nützlich, und wie ich finde für Spiele sehr sehr gut geeignet. Aber nicht zwingend notwendig.


    - Mach dir Gedanken oder erkundige dich wie du am besten deine Game Ticks handhabst. Game Ticks sind im prinzip schritte die das Spiel macht womit du auch die Ablaufgeschwindigkeit des Spieles Steuern und Regeln kannst. Wichtig ist hierbei das du dir klar machst was soll alles in einem Gametick passieren. In der regel endet ein Gametick mit dem Update der Bildschirmausgabe.


    Inweifern hast du dich denn schon mit dem Programmieren in C++ außeinander gesetzt? Snake und Tetris wirst du womöglich noch ohne Klassen hinbekommen, abgesehen von der Engine die warscheinlich aus Klassen bestehen wird. Mit Funktionen solltest du dich auch etwas auskennen sonst wird dein Spiel ein purer Chaoscode^^.

  • Meine Kenntnis in C++ ist Momentan noch hauptsächlich theoretisch angesiedelt, von Klassen und Funktionen habe ich aber freilich schon Ahnung. Der Ersteller der Engine hat mich auch schon ein wenig in die Objektorientierte Programmierung mit C++11 eingeführt, weil auch die Engine diese nutzt, beispielsweise über shared pointer auf Heapobjekte usw, so werden beispielsweise die Grafiken die man rendern will über Pointer angesprochen. Folglich weiß ich auch ein wenig über das Stack- und Heapmodell bescheid, mit endlichen Automaten hatte ich aber bisher noch nichts zu tun. Ein anderer Freund von mir, der Informatik studiert, hatte glaube ich neulich eine Vorlesung dazu, ich werde ihn mal fragen ob er mir ein wenig von seinem Material zukommen lassen kann...
    Programmiert habe ich bisher recht wenig in C++, habe mithilfe der Engine einfach mal ein paar Bilder gerendert und dabei die verschiedenen Parameter und Möglichkeiten der Engine ausprobiert... Letztendlich will ich ja ein Point&Click entwickeln, doch vorher möchte ich etwas machen um meine Kenntnisse ein wenig zu festigen, denn es kam beispielsweise vor, dass ich vergaß, wie man denn Variablen in Klassen initialisiert und das wie mit Funktionen machen wollte... Und naja, da dachte ich mir so ein "einfaches" Spiel wäre eine ganz gute Idee um sich mal einzufinden und gleich auch etwas geschafft zu haben, sei es auch nicht sehr groß. Und da ich recht einfallslos bin, wollte ich mal hier nachfragen, was es so für Vorschläge gibt ^^
    Space Invaders dürfte recht gut gehen, oder?

  • Ja Space Invaders dürfte schon gehen, aber ich schätz es etwas schwerer als ein Normales Sanke oder Tetris ein, da sehr viel mehr gleichzeitig passiert.
    Aber ich sehe schon du hast dich wenigstens mit dem Thema Beschäftigt. Es gibt "Programmierer" die nichtmal wissen was der Unterschied zwischen Heap und Stack is. xD


    Aber alle Echtzeitspiele sind vom Timing her ähnlich zu programmieren ich denke das wird eh das, woran du dir am meisten die Zähne ausbeißen wirst. Aber die Erfahrung muss man auch machen.


    Wenn du dann irgendwann mal soweit bist, das du irgendwelche Spielstände Speichern willst, dann kannst du mir gern bescheid sagen, ich hab erst vor kurzem für nen Freund ne Verschlüsselungsklasse gebaut, die kannst du dann gern mal testen. ;D
    Sollte auch auf Linux laufen da ich nur Standard Header verwendet habe.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!