AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Gael (Spiel)
Thema durchsuchen
Ansicht
Themen-Optionen

Gael (Spiel)

Ein Thema von littleDave · begonnen am 23. Jun 2010 · letzter Beitrag vom 19. Jun 2011
Antwort Antwort
Seite 6 von 7   « Erste     456 7      
Benutzerbild von littleDave
littleDave
Registriert seit: 27. Apr 2006
Hallo,

ich melde mich mal wieder mit einem neuen Projekt. Diesmal ist es wieder was mit OpenGL.

Was ist Gael
Gael ist der Name der Engine, die ich seit April 2009 entwickle. Das fertige Spiel hat im Moment noch keinen Namen, daher nenne ich es erstmal auch Gael.

Gael soll ein Multi-Player-Shooter werden. Dabei gibt es zwei Teams: das Diebes-Team besteht aus genau einem Spieler. Dieser hat die Aufgabe, bestimmte Gegenstände zu stehlen. Das andere Team, die Wachen, müssen das verhindern. Die Prioriät ist dabei nicht wilde Ballergefächte, sondern die Taktik soll sehr stark im Vordergrund stehen. Das ganze Spiel wird sehr dunkel sein. Der Dieb hat eine Taschenlampe und ein Nachtsichtgerät. Die Diebe wiederum haben nur eine Taschenlampe. Bei den Waffen bin ich mir noch nicht sicher, welche ich einbauen will.

Aktueller Status
Aktuell gibt es eine Demo-Version, in der noch keine Spiellogik enthalten ist. Sie dient eher dem allgemeinen Testen der Netzwerk-Funktionalität. Sobald diese "ausreichend" ist, fange ich an, die eigentliche Spiellogik zu implementieren

Technik
Gael benutzt OpenGL aus Grafik-API. Gael setzt dabei sehr auf große Grafikkarten und benötigt daher relativ neue Hardware. Das Rendering baut auf einem Deferred-Renderer auf. Jedes Licht ist dynamisch und wirft dynamische Schatten. Zusätzlich benutzt der Renderer einen Octree, um den sichtbaren Teil einzuschränken. Für die Kollisionen benutze ich einen Kollisions-Baum, der relativ schnell mögliche Kollisionen findet.

Die komplette Spiellogik wird in meiner Script-Engine geschrieben und ausgeführt. In diesem Release habe ich den Editor sowie die Script-Projekte noch nicht mit drinnen. Jedoch schaue ich, dass dich diese Sachen in einem späteren Release wieder mit in den Download packe.

Systemvoraussetzungen
Die Systemvoraussetzungen sind relativ hoch
  • Windows XP, Vista, 7 (nur unter Win7 getestet)
  • Grafikkarte: mindestens eine GeForce7600 GT oder äquivalente ATI-Karte mit mindestens 256 MB Grafikspeicher
  • 2 GHz DualCore CPU
  • 512 MB RAM

Was ist in der Demo drinnen?
In der Demo ist bereits das relativ weit fortgeschrittene Menü. Ich denke nicht, dass ich das noch komplett neu machen werde und würde im Moment sagen, dass es so auch in der ersten 1.0-Version aussehen wird. Eventuell gibt es ein paar Kleinigkeiten, die ich noch ändern werde bzw. muss. Aber im Großen und Ganzen dürfte das so bleiben wie es ist. Noch ein kleiner Hinweis: Das Hauptmenü lässt sich zum einen komplett per Tastatur und zum anderen per Maus steuern. Mit der Tastatur-Eingabe wechselt ihr den Fokus mit Hilfe der "Pfeil-Hoch" und der "Pfeil-Runter-Taste", mit "Enter" klickt ihr auf den entsprechenden Punkt und mit "Backspace" oder "Escape" kommt ihr zum vorherigen Menü - außer ihr seid bereits zu einem Server verbunden.

Es gibt in der aktuellen Variante keine Waffen oder ähnliches. Man kann also nur durch die Map laufen, wobei der Dieb ein Nachtsichtgerät hat und der Wächter eine Taschenlampe. Der Dieb hat eine besondere "Fähigkeit": einen Double-Jump. Somit kann der Dieb auch Positionen erreichen, die der Wächter nicht erreichen kann. Ob das so bleibt weiß ich noch nicht, aber bisher finde ich das eine ganz gute Idee - auch wenn sie etwas unrealistisch umgesetzt ist.

Kurze Hilfe zur Demo
  • Einen Server Starten
    Um einen Server zu starten muss man Menü nur den Punkt "Host Server" auswählen. Dabei wird ein Server erstellt und man verbindet sich automatisch mit dem Server. Zudem wird der Server automatisch beim Master-Server registriert. Der letzte Punkt ist zwar deaktivierbar, jedoch mit etwas größerem Aufwand, da die GUI diese Option noch nicht zulässt. Also bitte nicht wundern wenn beim erstellen des Servers eine HTTP-Verbindung hergestellt wird.

    Damit sich andere zu eurem Server verbinden können, müsst ihr in eurem Router das Port-Forwarding korrekt konfigurieren. Dem NAT muss dabei gesagt werden, dass eingehende TCP-Verbindungen am Port 9594 zu eurer lokalen LAN-IP-Adresse weitergeleitet werden sollen. Wie ihr das bei eurem Router genau einstellt, kann ich hier leider nicht sagen. Aber wenn ihr bei Google nach den Begriffen "NAT Routing" oder "NAT Port Forwarding" sucht, solltet ihr fündig werden.
  • Zu einem Server verbinden
    Um euch zu einem Server zu Verbinden müsst ihr im Start-Menü die Option "Connect to server" auswählen. Danach habt ihr zwei Möglichkeiten: einmal könnt ihr die Server-Liste vom Master-Server abrufen oder ihr gebt die IP-Adresse manuell ein. Die Server-Liste wird dabei nicht automatisch aktualisiert, ihr müsst also immer manuell auf "Refresh" drücken. Nachdem ihr einen Server dann in der Liste markiert habt, klickt ihr unten auf "Connect".
  • Spielablauf
    Nachdem ihr bei einem Server gelandet seit, landet ihr in einer Art "Vorlobby". Dort könnt ihr bereits euer Team auswählen und Nachrichten schreiben. Sobald ihr das dann gemacht habt, klickt ihr unten rechts den Punkt "Ready". Sobald alle Spieler auch "Ready" sind, wird die Karte geladen. Danach landet ihr nochmal in einer Lobby. Dort könnt ihr dann nochmals euer Team auswählen. Nachdem alle aktiven Spieler sich wieder als "Ready" markiert haben, startet die Spielrunde. Wenn aktuell eine Spielrunde läuft, könnt ihr dieser nicht teilnehmen. Leider funktioniert der Spectator-Modus noch nicht wirklich, daher muss man leider warten.
  • Verfügbare Commands
    Wenn ihr den Fokus im Chat-Fenster habt, könnt ihr ein paar Commands ausführen. Dafür müsst ihr zuerst per "TAB" zwischen dem Command-Modus und dem Chat-Modus wechseln. Wenn ihr im Command-Modus seid, steht vor dem Eingabefeld der Text "cmd", ansonsten "say". Dann könnt ihr folgende Sachen eingeben:
    • name [neuer Name]: Ändert euren Namen auf [neuer Name]
    • changeteam [Team]: Wechsel in das Team [Team], wobei Team entweder "0" "1" oder "2" sein kann (ohne Anführungsstriche). "0" = Dieb, "1" = Wächter, "2" = Spectator.
    • say [text]: Schreibt eine Chat-Nachricht mit [Text]
    • net set time [TimeOut]: Ändert die Rundenzeit (nur Admin), Time muss dabei im Format "mm:ss" angegeben werden. Eine max. Rundendauer von 0 Sekunden wird dabei als "Unendlich" angesehen.
    • net set thieflives [value]: (nur Admin) Setzt die Anzahl der Leben für die Diebe, [value] ist dabei eine Zahl (ist noch unerheblich)
    • net set guardlives [value]: (nur Admin) Setzt die Anzahl der Leben für die Wächter, [value] ist dabei eine Zahl (ist noch unerheblich)
    • net set adminpassword [new value]: (nur Admin) Ändert das "Admin"-Password auf [new value]
    • net set servername [new value]: (nur Admin) Ändert den Server-Namen auf [new value]
    • net admin [Passwort]: Meldet euch als "Admin" an ([Password] ist dabei das Admin-Password)
    • net logoffadmin: (nur Admin) Meldet euch als "Admin" ab
    • net kick [Spielername]: (nur Admin) Trennt die Verbindung zum Spieler [Spielername]
  • Steuerung
    • WSAD: Steuerung
    • Leertaste: Springen
    • Shift: Rennen (gedrückt halten)
    • C: Hinkniehen / wieder aufstehen
    • TAB: Nachtsichtgerät (nur Dieb)
    • F: Taschenlampe (nur Wächter)
    • Strg: Eingabefelder aktivieren (gedrückt halten), mit S zum gewünschten Menüpunkt durchklicken und dann wieder zum Auswählen Strg loslassen
    • T: Chat-Eingabe-Fenster anzeigen

Installation
Einfach das Archiv herunterladen und ein einen Ordner mit Schreibrechten kopieren. Bevor jetzt wieder alle Anfangen zu meckern: ja, für die TechDemo schreibe ich einfach in den Anwendungsordner, für einen späteren Release wird das natürlich geändert. Bitte jetzt auch keine Diskussion über den Speicherort irgendwelcher Dateien - da das im Moment nur(!) eine Tech-Demo ist und kein fertiges Programm. Da kann man das Archiv auch mal eben in einen Ordner mit Schreibrechten extrahieren. Es werden zwei Dateien geschreiben: einmal die Datei default\default.config und die Logdatei unter logs\Gael.log.

Download
Hier (ca. 22 MB)

Achtung! Das ganze ist noch lange nicht fehlerfrei. Ich hoffe, dass alles funktioniert, jedoch weiß ich es leider nicht. Der Download und die Benutzung geschieht auf eigene Gefahr.

Gruß
Miniaturansicht angehängter Grafiken
screen01.png   screen02.png   screen03.png  
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0

Geändert von littleDave (18. Jun 2011 um 15:48 Uhr)
 
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#51
  Alt 10. Jun 2011, 20:42
Howdy an alle,

Mal wieder was zum ausprobieren!!
Es gibt mal wieder ein Lebenszeichen bei meinem Projekt. Konkreter gesagt handelt es sich diesmal um keine reine TechDemo mehr sondern um einen ersten "Demo"-Release. Demo deswegen, weil bei weitem noch nicht alles implementiert ist. Eher ist es ein Test um den bisherigen Quellcode und den Netzwerk-Code zu testen. Jedoch will ich es nicht als "TechDemo" deklarieren, da der aktuelle Script-Quellcode, der für die Spiellogik zuständig ist, hoffentlich nicht mehr groß geändert sondern nur noch erweitert werden muss.

Der Übersicht halber habe ich alle wichtigen Informationen im ersten Post zusammenfasst - inkl. Download-Link.

Ich schaue, dass ich heute den ganzen Abend einen Server laufen lasse - damit nicht jeder einen eigenen erstellen muss. Am Wochenende werde ich leider kaum Zeit haben und somit nicht online sein. Jedoch habe ich nächste Woche frei und schaue, dass ich dann immer einen Server am Laufen habe.

Grüße
David
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

 
Delphi 7 Enterprise
 
#52
  Alt 10. Jun 2011, 21:15
Wollte das ganze gerade mal Starten und ausprobieren, aber er verbindet zu keinem Server, bzw kann auch keinen aufmachen...
Gefunden hatte ich "Yet another Server". Firewall und so hab ich frei gegeben..
Martin
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#53
  Alt 10. Jun 2011, 21:26
Hm, also wenn du den Server siehst, klappt schon mal der Verbindungsaufbau ins Internet. Das du dich zu mir nicht verbinden kannst, liegt wahrscheinlich im Moment bei mir - meine Firewall spinnt gerade rum.

Wenn du die Windows-interne Firewall benutzt, kann es sein, dass die Anwendung keinen Server-Port erstellen darf. Wenn man einen Server erstellt, verbindet man sich über "localhost" zu diesem. Das sollte eigentlich schon funktionieren ...

Edit: meine Firewall sollte jetzt eingehende Verbindungen zulassen - kannst du es nochmal probieren?

Geändert von littleDave (10. Jun 2011 um 22:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von mleyen
mleyen

 
FreePascal / Lazarus
 
#54
  Alt 11. Jun 2011, 22:33
Doublejump ftw!
Also Server erstellen, finden, connecten + spielen klappt.

Kleinigkeit:
Wenn eine Runde zuende ist und man auf 'Close' geht, kann man 'Disconnect' nicht auswählen.
Und die Menüanimationen sind zwar gut, aber nach ner Zeit finde ich das die zu lang dauern, nen fadein wär da imho besser.
  Mit Zitat antworten Zitat
hboy
 
#55
  Alt 12. Jun 2011, 10:33
Wenn man während beim game lobby - Bildschirm "waiting..." steht die Fenstergröße reduziert, hängt sich das Programm auf.

Größenänderung beim Startscreen erzeugt flickering (WM_ERASEBKGND nicht selbst behandelt?)
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#56
  Alt 15. Jun 2011, 14:58
So, jetzt bin ich wieder im Lande und kann endlich antworten

Doublejump ftw!
Also Server erstellen, finden, connecten + spielen klappt.
Super, Ziel erreicht

Wenn eine Runde zuende ist und man auf 'Close' geht, kann man 'Disconnect' nicht auswählen.
Ist so gewollt, da die Logik dahinter noch nicht fertig implementiert ist. Da fehlt noch ein wenig beim korrekten Resourcen-Freigeben usw.

Und die Menüanimationen sind zwar gut, aber nach ner Zeit finde ich das die zu lang dauern, nen fadein wär da imho besser.
Die Animationen an sich wollte ich schon so lassen. Aber ich kann mal schauen, ob ich die Animationsdauer noch etwas herunterdrehe.

Wenn man während beim game lobby - Bildschirm "waiting..." steht die Fenstergröße reduziert, hängt sich das Programm auf.
das ist bei mir noch nicht vorgekommen. Was heißt denn "Aufhängen"? - Kommt ein Fehlerdialog oder passiert nichts mehr?

Größenänderung beim Startscreen erzeugt flickering (WM_ERASEBKGND nicht selbst behandelt?)
Ja, der Startscreen muss an manchen Stelle noch überarbeitet werden. WM_ERASEBKGND wird noch nicht abgefangen, daher wahrscheinlich das Flickering.

@All:
Ich habe am Freitag relativ viel mit "bluesky" von delphigl.com ausprobiert (danke nochmals dafür). Dabei ist mir erst aufgefallen, dass der nicht vorhandene Ingame-Chat doch sehr kontraproduktiv ist. Daher habe ich eben den Ingame-Chat eingebaut. Die Chat-Eingabe aktiviert ihr mit der Taste T.

Damit nicht jeder das komplette Paket herunterladen muss, habe ich auch einen Patch erstellt. Diesen müsst ihr einfach in den Ordner extrahieren, in dem ihr das Download-Paket extrahiert habt (bitte die Ordnerstruktur so belassen, wie sie ist. Es werden 2 Dateien überschrieben). Den Patch könnt ihr euch hier (1 MB) herunterladen. Der Full-Download hat übrigens diesen Patch bereits integriert.

Gruß
David
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch
 
#57
  Alt 15. Jun 2011, 15:40
Ah cool, wusste garnicht dass du das projekt auch hier postest^^.
War nur mal vor entlichen wochen inem anderen Forum auf den entwicklungsthread deiner engine gestossen.

Werde ich heute abend gleichmal testen


MFG
Memnarch
  Mit Zitat antworten Zitat
hboy
 
#58
  Alt 16. Jun 2011, 10:12
Was heißt denn "Aufhängen"? - Kommt ein Fehlerdialog oder passiert nichts mehr?
Es scheint bei mir wohl allgemein das Ändern der Größe sein und das ist nicht nur auf den Dialog bezogen. Die CPU bleibt ausgelastet und auch nach einer Minute geht die "Keine Rückmeldung"-Markierung des Fensters nicht weg. Es kommt kein Fehlerdialog.
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#59
  Alt 16. Jun 2011, 12:39
Hast du auch einen aktuellen Grafikkartentreiber installiert? Beim Ändern der Fenstergröße müssen ein paar OpenGL-spezifische Sachen freigegeben und neu angelegt werden. Ich habe den Verdacht - da das erstmalige Anlegen anscheinend kein Problem ist - dass sich der Treiber beim Freigeben aufhängt.
  Mit Zitat antworten Zitat
hboy
 
#60
  Alt 16. Jun 2011, 12:56
Ich habe hier Win7 64 neu installiert, aktuell wird der Kompatibilitätstreiber von Microsoft verwendet. Ich installiere eben mal den neusten GeForce-Treiber (275.33) ...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 7   « Erste     456 7      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz