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 5 von 7   « Erste     345 67      
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
 
#41
  Alt 26. Jul 2010, 22:36
Danke für das Lob - freut mich, dass es gefällt.

Besteht die Möglichkeit mal einen Blick in deine Sources zu werfen?
Gael ist Closed-Source, und das wollte ich eigentlich so beibehalten. Aber nur 1 Blick würde bei 238 .pas - Dateien mit insgesamt ca. 154.000 Zeilen Quelltext wahrscheinlich nicht reichen

Gruß
David
  Mit Zitat antworten Zitat
angos

 
Delphi 11 Alexandria
 
#42
  Alt 27. Jul 2010, 09:08
Hi,

das ist echt mal eine Meisterleistung, zumindest was ich so auf den Screens und Videos sehen kann! Werde mir das heute abend mal auf meinem Rechner zuhause installieren und testen.
Meinen Respekt!

Schade dass man keinen Blick in den Source werfen kann aber vestehen kann ich das auch.

Gruß
Ansgar
  Mit Zitat antworten Zitat
blackfin
 
#43
  Alt 27. Jul 2010, 10:47
Die Videos sind wirklich witzig Und die "God-Rays" sehen wirklich 1A aus! Respekt!

Ich kann gut verstehen, dass du den Source nicht rausgibst. So wie das aussieht, ist es sicher so etwas wie dein "Baby", an dem du schon bestimmt lange Zeit (mehrere Jahre?) entwickelst Und man vertraut ja sein Baby nicht irgendeinem "auf der Strasse" an
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#44
  Alt 22. Nov 2010, 16:13
Hi

Wird mal wieder Zeit für ein Status-Update. Es gibt zwar noch keinen neuen Download - aber vielleicht tröstet das Video am Ende etwas

Fortschritt der Karte
In letzter Zeit habe ich mal wieder an der bisher einzigen Karte weitergearbeitet. Es gab noch einigen freien Raum, den ich noch ausfüllen musste. Die Karte ist damit noch nicht fertig, aber ein Großteil ist damit schon mal abgeschlossen.

Beim Testen der Karte fiel mir auch gleich ein kleines Performance-Problem auf. Die Map hat im Moment ca. 250.000 Vertice und ca. 30 dynamische, schattenwerfende, Lichter. Bei den Tests kam ich jedoch meistens kaum über 10 FPS hinaus. Also habe lange nach Bottle-Necks gesucht und geschaut, wo ich gut noch Performance herausholen kann. Das hat einiges gebraucht. Von vorher durchschnittlich 10 FPS habe ich nun 40 FPS - da war ich selbst etwas erstaunt. Im Moment schaufelt mein Laptop daher ca. 50-60 Millionen Vertice pro Sekunde aufm Bildschirm hin und her (wobei viele bei der Shadow-Map-Generierung anfallen). Im Moment bin ich aber wieder Füllraten-Limitiert, denn bei einer geringeren Auflösung habe ich fast durchgehend 60 FPS. Da muss ich mir die Shader nochmal genauer anschauen.

Ich habe noch ein paar Screenshots der aktuellen Karte für euch hochgeladen.
(zum Vergrößern klicken)
screenshot1.png screenshot2.png screenshot3.png screenshot4.png screenshot5.png

Erweiterungen an der Partikel-Engine
Vor etwas längerer Zeit hatte ich bereits eine Idee zur Erweiterung meiner Partikel-Engine, jedoch bin ich aus zeitlichen Gründen bisher nicht dazu gekommen, das umzusetzen. Jedoch habe ich mir jetzt mal die Zeit genommen und die Particle-Engine erweitert. Genauer gesagt geht es um Sub-Emitter. Jedem Emitter kann man nun einen Sub-Emitter hinzufügen. Mit Hilfe des Sub-Emitters werden dann weitere Partikel auf dem Weg des Root-Partikels erzeugt. Sagen wir, wir haben einen Funken. Dieser Funken fliegt durch den Raum. Zusätzlich soll der Funken noch einen Rauch-Schleier hinter sich her ziehen. Um das zu erreichen, erstelle ich einen neuen Emitter, der sich um die Erstellung und Verwaltung des Rauches kümmert. Dem Funken-Emitter weise ich dann den Rauch-Emitter als Sub-Emitter zu. Für jeden Funken, den der Funk-Emitter nun verarbeitet (also Position, etc.) weist er seinen Sub-Rauch-Emitter nun an, an der aktuellen Position des Funken selbst ein paar Partikel erstellen soll. Ich weiß, dass das jetzt nicht so leicht zu verstehen ist - ich bin im Moment etwas im Prüfungsstress und kann mich daher nicht besser ausdrücken aber ich hoffe, dass es einigermaßen zu verstehen ist.

Natürlich habe ich auch gleich mal ein Video einer Test-Explosion erstellt. Die Explosion besteht aus 7 Emittern, die von der Script-Engine heraus automatisch getriggert werden. Zusätzlich ist noch ein PointLight in der Mitte, damit die Explosion auch Licht emittiert. Am deutlichsten erkennt man die Sub-Emitter bei den großen Funken, die eine Rauchfahne hinter sich herziehen. Hier ist das Video.

Ich hoffe, es gefällt
Gruß
David
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze

 
Turbo Delphi für Win32
 
#45
  Alt 22. Nov 2010, 16:30
Sieht nett aus.

Eine allg. Frage: Wäre es nicht sinnvoller, wenn du ein kleines Team aufstellen würdest, um möglichst schnell eine spielbare Version zu schaffen bzw. die Engine weitestgehend fertig zu stellen?
Du weißt sicher, wie kurzlebig die Technik der PC-Spiele ist. Natürlich kann man dein Spiel nicht mit den "großen" vergleichen, aber umso wichtiger finde ich persönlich, dass du möglichst lange Freude an dem Spiel hast. Und die hast du vermutlich erst dann, wenn andere das Spiel spielen. So geht's zumindest mir immer.
Es wäre sehr schade, wenn das Spiel noch 2 Jahre bis zum Release braucht und wir ängst neuere Spiele gewohnt sind und deines dann kaum gespielt wird. Die Grafik ist bei solchen Spielen häufig ausschlaggebend, zumindest für mich.

Half Life 2 fand ich damals richtig klasse. Das war einmal das grafisch beste Spiel. Heute ist es noch ganz ok, aber im Vergleich zu aktuellen Spielen natürlich grafisch nicht mehr zeitgemäß. Counter-Strike lass ich mal außen vor, denn da gibt es eine riesige Fan-Gemeinde und grafisch ist es dennoch relativ gut.
Natürlich könnte sich eine kleine Fan-Gemeinde bei deinem Spiel entwickeln, aber behalte im Hinterkopf, dass die Technik hier rasant Fortschritte macht.

Das nur als kleine Anregung.

Geändert von Matze (22. Nov 2010 um 16:33 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von mleyen
mleyen

 
FreePascal / Lazarus
 
#46
  Alt 22. Nov 2010, 16:53
Auch wenns OT ist:
HL², CSS, usw ist nur aus einem einfachem Grund so beliebt und nicht tot zu bekommen.
Es gibt kaum Einschränkungen.
Jeder kann seinen eigenen Server binnen Minuten erstellen. Jeder kann Maps, Mods, Texturen, Sounds und Addons erstellen/abändern wie es ihm gefällt. Und man kann mit tausenden von Consolenbefehlen rumspielen.
Das macht vielen Spaß und bindet auch irgendwie.
  Mit Zitat antworten Zitat
mkinzler

 
Delphi 11 Alexandria
 
#47
  Alt 22. Nov 2010, 17:06
Dann benötigt man aber die Vollversion von dem Spiel auf dem rechner und ist auf die MOD-API des Hersteller beschränkt
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k
 
#48
  Alt 22. Nov 2010, 21:56
Mein Lob habe ich hier schon mal an anderer Stelle gepostet Wollte nur noch danach fragen, ob es nicht möglich wäre, die aktuelle Version immer auf dem DP-Server zu hosten, also als Anhang im ersten Post einzufügen. Hatte in letzter Zeit mehrere Threads gesehen, bei denen der Anhang extern gehostet wurde und daher keine Möglichkeit des Downloads mehr vorhanden war. Ist der externe Download mal nicht mehr verfügbar, dann wäre das hier trotzdem noch gegeben. Mir ist der kleine Mehraufwand aber durchaus bewusst. Nur mal als Idee
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#49
  Alt 22. Nov 2010, 22:56
Eine allg. Frage: Wäre es nicht sinnvoller, wenn du ein kleines Team aufstellen würdest, um möglichst schnell eine spielbare Version zu schaffen bzw. die Engine weitestgehend fertig zu stellen?
Du weißt sicher, wie kurzlebig die Technik der PC-Spiele ist. Natürlich kann man dein Spiel nicht mit den "großen" vergleichen, aber umso wichtiger finde ich persönlich, dass du möglichst lange Freude an dem Spiel hast. Und die hast du vermutlich erst dann, wenn andere das Spiel spielen. So geht's zumindest mir immer.
Es wäre sehr schade, wenn das Spiel noch 2 Jahre bis zum Release braucht und wir ängst neuere Spiele gewohnt sind und deines dann kaum gespielt wird. Die Grafik ist bei solchen Spielen häufig ausschlaggebend, zumindest für mich.
Das mit dem Team hätte natürlich einige Vorteile - aber auch ein paar Nachteile: ich müsste mich erstmal um ein zentrales Verwaltungssystem kümmern, Leute anwerben, Tools so anpassen, dass sie auch von anderen bedienbar sind (muss ich eh noch, ist im Moment aber keine Zeit dafür da), Tasks schreiben, usw. Da würde einiges an initialen Verwaltungsaufwand auf mich zukommen. Zudem kann es sein, dass ich manchmal mehrere Tage oder Wochen nicht aktiv bin, wenn ich zu viel anderes zu tun habe.

Ich hoffe nicht, dass es noch zwei weitere(!) Jahre braucht, bis ich die erste funktionsfähige Version am Laufen habe. Hinter den Kulissen ist bereits einiges vorhanden und lauffähig. Es fehlt im Moment hauptsächlich die Spiellogik, sowie die Logik für den Server und den Clienten. Die Netzwerk-Schicht an sich ist funktionsfähig und muss wahrscheinlich nun noch um wenige Punkte erweitert werden. Sobald die Logik endlich läuft (ich hoffe, dass Weihnachten etwas Zeit bietet) geht es dann hauptsächlich um Optimierung und Content-Erstellung.

Für Hilfe habe ich immer ein offenes Ohr - also falls wer wirklich Lust hat und gute Delphi-Kenntnisse, oder Design-Technisch oder Modell-Technisch gute Kenntnisse hat, der kann mich wirklich anschreiben (PN oder hier im Thread). Jedoch erwarte ich auch einiges - es steckt ja auch schon sehr viel Arbeit und Herzblut in dem Projekt.

Wollte nur noch danach fragen, ob es nicht möglich wäre, die aktuelle Version immer auf dem DP-Server zu hosten, also als Anhang im ersten Post einzufügen. Hatte in letzter Zeit mehrere Threads gesehen, bei denen der Anhang extern gehostet wurde und daher keine Möglichkeit des Downloads mehr vorhanden war. Ist der externe Download mal nicht mehr verfügbar, dann wäre das hier trotzdem noch gegeben. Mir ist der kleine Mehraufwand aber durchaus bewusst. Nur mal als Idee
Die Downloads sind immer zu groß für den Anhang in der DP - daher scheitert es schonmal daran. Die letzte Tech-Demo hatte schon 11 MB - und das ist noch klein. Aktuell hätte ein Download wahrscheinlich 20 MB, vielleicht sogar 30 MB - und dabei habe ich noch keine Sounds oder Musik. Meine Homepage existiert nun bereits seit ... mom, muss kurz nachrechnen ... seit über 9 Jahren - und die paar €uros pro Quartal sind nicht der Rede wert. Ich habe im Moment auch keinen Grund, das Ganze von heute auf morgen zu beenden.

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k
 
#50
  Alt 22. Nov 2010, 23:07
Die Downloads sind immer zu groß für den Anhang in der DP - daher scheitert es schonmal daran. Die letzte Tech-Demo hatte schon 11 MB - und das ist noch klein. Aktuell hätte ein Download wahrscheinlich 20 MB, vielleicht sogar 30 MB - und dabei habe ich noch keine Sounds oder Musik. Meine Homepage existiert nun bereits seit ... mom, muss kurz nachrechnen ... seit über 9 Jahren - und die paar €uros pro Quartal sind nicht der Rede wert. Ich habe im Moment auch keinen Grund, das Ganze von heute auf morgen zu beenden.
Hatte mir die Antwort auf meinen Post schon fast so gedacht War bei den anderen Downloads halt nur etwas ärgerlich da es auch noch dazu OpenSource-Projekte waren. Dann bin ich jetzt einfach mal ruhig und nehme es als Ausnahme einfach mal so hin
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 7   « Erste     345 67      


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 18:49 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