Auf das Thema antworten  [ 1 Beitrag ] 
Vorstellung der Version 0.1.3 
Autor Nachricht
Administrator
Benutzeravatar

Registriert: Sa 15. Dez 2012, 19:15
Beiträge: 137
Wohnort: Karlsruhe
Mit Zitat antworten
Hallo Leute!

Um mein Projekt Tactical Dungeon Master eines Tages realisieren zu können, habe ich mich vor zwei Wochen dazu entschlossen, zunächst einmal klein anzufangen und mich an XNA heranzutasten. Daraus ist das Projekt EnergyBowl entstanden. So ziemlich alles, was ich für dieses Projekt entwickle, werde ich eines Tages auch für TaDuMa gebrauchen können und es hat mich schon recht erstaunt, wie viel Code sich über die Zeit da zusammen läppert :)

Ziel in diesem Action-Spiel ist es, eine möglichst hohe Highscore zu erreichen. Dazu muss man, neben überleben, mit den richtigen Farben den Bowl beschießen, Combos aufbauen und treffen. In späteren Updates soll es eine Turnier-Funktion für die eigene LAN geben und der Multiplayer-Modus ausgereift sein. Außerdem sind weitere Gegner, Spezialattacken für die bereits implementierten dummy-Schaltflächen und abwechslungsreiche Karten geplant.

Wesentliche Bestandteile des Spieles sind momentan:
  • Eine GameState-Verwaltung
  • Die Klasse MouseEvents und KeyEvents
  • Verwendung eines "virtuellen Servers"
  • Optimale Update-Funktion
  • Eine Online-Highscore mit geschützten Spielernamen
  • Einzelspielermodus
  • Seit dieser Version gibt es höhere Level und Sterne

GameState-Verwaltung
Dies Löse ich mithilfe von einem Interface und statischen Klassen. Dazu mehr in meinem Forum.

Die Klasse MouseEvents und KeyEvents
Mit der MouseEvents-Klasse kann man die Events MouseEnter, MouseOver, MouseLeave, MouseOut und MouseClick überwachen. Außerdem gibt es ein Enum für die Klasse KeyEvents die neben dem State "Taste gedrückt" und "Taste nicht gedrückt" auch die States "Taste gerade gedrückt" und "Taste gerade losgelassen" anbietet. Diese States gibt es auch für alle fünf Tasten der Maus in der Klasse MouseEvents. Mehr zu den Klassen in meinem Forum.

Der virtuelle Server
Als "Server" bezeichne ich eigentlich meinen Webspace. Allerdings wenn ich hier jetzt von "Server" spreche, meine ich die instanziierte Variable der Klasse TcpListener auf dem Host, der auf Kontaktanfragen eines Clients wartet. Virtuell wird der Server in dem Moment, wenn er als erstes sich mit sich selbst verbindet. Somit kann man die Spielsteuerung grundsätzlich aus der Sicht eines Clients schreiben. Jeder Befehl wird an den Server gesendet und jeder Befehl kommt vom Server. Die Klasse ist noch nicht ganz vollständig. Allerdings bietet sie genug Gerüst für eine einfache Netzwerkverbindung. Mehr dazu in meinem Forum.

Optimale Update-Funktion
Nach dem Start des Programmes lädt es einen string herunter mit der aktuellen Version. Diesen vergleicht das Programm mit der eigenen Version und fragt den Benutzer, ob er den Updater starten möchte. Dieser ist ein eigenständiges Programm und lädt nach einer FileList nur die Dateien herunter, die nicht den md5 besitzen, der in der FileList angegeben ist, oder die noch nicht existieren.

Online Highscore mit geschützten Spielernamen
Nach einem Spiel im Online-Modus - es gibt auch einen Offline-Modus und Offline Highscores - wird die erreichte Punktzahl an ein PHP-Script auf meinem Webspace gesendet. Dies speichert die Daten dann in meine Datenbank. Geschützt sind die Spielernamen dadurch, dass die auf dem Client erstellten Spielernamen in meiner Datenbank registriert werden und auf dem Client eine Datei erstellt wird. Nur wer die entsprechende Datei zum jeweiligen Benutzernamen auf seinem PC hat, der kann den Spielernamen dann auch benutzen.

Ich wollte eine Version um den Spielernamen zu schützen und gleichzeitig keine Anmeldung notwendig zu machen. Es soll in einer späteren Version auch möglich sein sich mit dem Benutzernamen aus meinem Forum anzumelden. Deswegen fangen alle Namen, die über den Client registriert worden sind, mit einem Unterstrich an.

Online kann man die Highscores hier betrachten: http://ebowl.magony.org/highscores.php

Einzelspielermodus
Noch ist die Karte einfach schwarz. Allerdings soll sich das in späteren Versionen ändern. Auch sollen weitere und andere Gegner noch hinzukommen und die Platzhalter unten mit Funktionen für Spezialattacken ausgestattet werden. Es ist nur eine Alpha und die ganzen Features die mir im Kopf herumschwierren wollen alle noch umgesetzt werden ;)

Level und Sterne
Wenn ihr den Bowl besiegt habt, kommt das nächste Level. Dann ist der Bowl etwas schneller, etwas stärker und hält etwas mehr aus. Na, ihr werdet es schon merken :)
Um zu überleben sollte man die Sterne, die regelmäßig kommen, einsammeln um die verlorene Energie wieder aufzufrischen. Damit muss man sich jedoch beeilen, weil auch der Bowl diese Sterne einsammeln kann und sie nach eine gewissen Zeit verschwinden. Sie bieten auch Schutz vor Beschuss.

Doch ein paar Tipps
Die Geschosse werden mit zunehmender Entfernung schwächer. Der Bowl bewegt sich nach einem Treffer in eine zufällige Richtung und die Reihenfolge der Farben, die oben angegeben werden, ist für das Erreichen des Schadensfaktors 5 (5-facher Schaden) sehr wichtig. Combos entstehen, wenn man mehrfach hintereinander den selben Schadensfaktor erreicht hat und werden bei einer Änderung, oder wenn Geschosse, die ihr Ziel verfehlt haben, verschwinden, zurückgesetzt. Übrigens: Grün sticht violett, Rot sticht Grün usw. Weiß macht am meisten Schaden (10-fach) und erzeugt oder zerstört keine Combos.

Steuerung:
Gesteuert wird mit den Tasten WASD und mit Rechtsklick. Mit Linksklick wird gefeuert.

Ich wünsche Euch nun viel Spaß mit dem Spiel. Wenn ihr Fragen oder Anregungen habt, dann könnt ihr diese hier oder in meinem Forum an mich richten. Die offizielle Homepage des Projektes ist: http://ebowl.magony.org

Download
Aktuelle Version 0.1.3.0 als Zip-Archiv, als Setup-Datei oder Downloader


Schöne Grüße,
Magony



P.S.: Im Forum werdet ihr auch Lösungen zu meinen anderen Projekten finden. Ein bisschen Schnuppern schadet nicht :D

Bild
Schickt eure Screenshots als PN an mich oder stellt sie ins Forum. Meine enden immer mit einem Überfahren durch den Bowl...

_________________
Bei Fragen, Lob, Kritik, Vorschläge, hilfreiche Hinweise oder Alternativvorschläge: Beitrag, neues Thema oder PN.
Für Dinge die diskutiert werden sollten, bitte neues Thema im jeweiligen Forum.
Wenn du nicht weißt wohin: Forum Unsortiert.


Di 2. Apr 2013, 17:50
Diesen Beitrag melden
Profil Website besuchen
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Auf das Thema antworten   [ 1 Beitrag ] 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst neue Themen in diesem Forum erstellen.
Du darfst 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:  
cron
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software
Deutsche Übersetzung durch phpBB.de

Impressum