Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Apr 18, 2024 04:22

Foren-Übersicht » Sonstiges » Projekte
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Hera 7
BeitragVerfasst: Di Dez 06, 2005 00:17 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Sep 23, 2005 20:31
Beiträge: 212
Wohnort: Sachsen/ Vogtland
Hallo zusammen.

Nach langer Funkstille nun wieder ein Lebenszeichen von mir. Wie bereits angedroht, bastle ich an einer Weltraumsimulation mit Wirtschaftsteil. Aktueller Projektname: "Hera 7". Ich werkle schon eine ganze Weile an dem Teil, doch zum einen war OpenGL komplett neu für mich, zum zweiten habe ich vorher noch nie mit handgestricktem UDP Spiele übers Netz synchronisiert. Obendrein baue ich zur Zeit noch am Haus und meine Familie will ich natürlich auf keinen Fall vernachlässigen. So, be patient(ly)...
Also, ein wenig Geduld bitte :)

Während der ganzen Entwicklung habe ich ein "Logbuch" geschrieben. Daraus kann man am Ende eventuell eine schöne Zusammenfassung machen, welche vielleicht anderen Mitgliedern helfen kann. Doch nun ...


Bild

Inhalt des Spieles:
Die Vorlage des Spieles lieferte das Weltraumspiel aller Weltraumspiele: Elite. Doch Elite ist alt nich mehr besonders schön anzuschauen, aber das Gameplay ist ungebrochen faszinierend. Hera7 soll daher einfach nur ein schönes Elite werden. Das ist alles. :) Daraus ergeben sich folgende Ziele für das fertige Spiel:
    - Grafik in OpenGL. Kein Overkill, aber nett und halbwegs realistisch.
    - Über 1000 Planetensysteme, welche jedoch nicht miteinander verbunden sind, sondern über Hyperjumps erreicht werden können.
    - Jedes Planetensystem hat ein Zentralgestirn, variierende Anzahl Planeten samt Monden und Raumstationen. Es gibt Raum- und Bodenstationen. Die einzelnen Planetensysteme sind unendlich groß, damit genug Platz zum Verstecken von „Geheimnissen“ bleibt.
    - Es gibt ein Handelssystem welches auf das Agieren der Spieler reagiert (Angebot/Nachfrage). Damit kann man stellenweise richtig guten Handel machen, oder auch Pech haben, wenn gerade eine Großlieferung von Ware kurz vor dem Spieler eintraf.
    - Für Abwechslung werden diverse NPC-Händler, Kopfgeldjäger, Piraten und andere Deppen sorgen.
    - Das Spiel wird komplett online stattfinden können. Der Server regelt alle Kollisionen im Spiel, den Handel, die Entwicklung der Planeten und die Steuerung der NPC-Schiffe. Der Server ist aber im Spiel integriert und man kann so ein Quasi-Singleplayer spielen. Neue Missionen, Wettbewerbe und solche Sachen gibt es aber nur online.
    - Gravitation wird wirken. (Gravity, you win again.)
    - Es wird Missionen geben. (Planet vor Asteroiden schützen, Schiff zerstören). Diese Missionen können mehrfach vorkommen und können auch in Teamwork erledigt werden.
    - Es wird einen servergesteuerten Piraten-Clan geben, mit eigenen Stationen, Raumschiffen und Missionszielen.


Gedanken zum Spiel:
    Antrieb: Schiffe gleiten. Antriebe ändern nur die Richtung.
    Radar: Es wird aktiven und passiven Radar geben. Ähnlich Sonar. Schält ein Schiff alle Energiequellen ab, ist es radartechnisch passiv und kann nur durch aktives Radar geortet werden. Es ist somit radarmäßig getarnt, kann aber optisch erkannt werden.
    Aktives Radar heißt, dass auch man von passivem Radar und somit von "getarnten Schiffen" geortet werden kann.
    Laser : Werden die primären Waffen sein. Sie variieren in Reichweite, Energieverbrauch und Schaden.
    Raketen: Neckisches Spielzeug. Haben so einen Touch von Torpedos. Sie fliegen grob in Richtung Ziel. Schalten sich dann ab. Treiben weiter und aktivieren sich nach voreingestellter Zeit um das Ziel wieder aufzuschalten. Man hat somit einen Überraschungseffekt (wenn der Vorhalt stimmt), ansonst machts halt nur „blubb“. Natürlich kann man sie auch so konfigurieren, dass sie die ganze Zeit aktiv sind, aber sie können dadurch sofort bekämpft werden, was sie auf große Distanz wirkungslos machen kann.
    Traktorstrahlen: Zum Aufsammeln von Erzen aus Asteroiden, Bergen von Trümmern und Abschleppen von Schiffen. Ich will den Traktorstrahl einfach mal ins Spiel einbauen und dann kriegt man schon mit was man damit alles veranstalten kann. :)
    Für die Bodenbasen wäre eine Planetenoberfläche notwendig. Ebenso eine Atmosphäre, welche auf das Schiff wirkt. In einer fortgeschritteneren Stufe könnte das eingebaut werden.

Was geht schon. Stand 5.12.2005.
    - Engine läuft. Man befindet sich nach dem Start in einer Simulationsumgebung, in der ein Koordinatensystem zur Orientierung helfen soll.
    - Steuerung des Schiffes läuft. Hoch, runter, links, rechts mit den Cursortasten. Mit "Entf" und "Bild runter" kann um die Bewegungsachse gekippt werden. Schub gibt man mit 'A', Umkehrschub mit "Y". Als Hilfstaste gibt es z.Z. noch "S", welche das Schiff sofort stoppt. Das gibt dann später nicht mehr. Mit Escape verläßt man das Spiel und das Hauptmenu.
    - Netzwerk funktioniert. Als Protokoll habe ich UDP gewählt. Das Programm kann im Startmenu als Server oder Client gestartet werden. Die Clients schicken Ihre Positionen alle 200ms. Das reicht aus, da im Paket die Bewegungsrichtung und die Drehimpulse mitübermittelt werden. Damit können alle Netzwerkteilnehmer die 200ms überbrücken und es sieht noch recht flockig aus. (Es kann sein dass ein Wechsel im laufenden Programm zwischen Server und Client noch AV's verursacht. Dann halt das Programm neustarten :) )
    - Eine Skybox ist drin. Die sieht für eine selbstgemachte Textur ganz ok aus. Ich habe für alle 6 Flächen die selbe Textur verwendet. Man sieht auch die Ecken, ist aber erstmal egal. Gameplay first.
    - Kollisionsabfragen ist drin, aber deaktiviert, da ich die gerade in den Server verlagere. Sollte demnächst wieder verfügbar sein, da dieser Punkt Priorität hat.
    - Man kann Laser verschiessen. Dazu "Space" drücken. Da das Schiff noch keinen Energiehaushalt hat, kann man zur Zeit ohne Ende ballern. Das wird auch einer der nächsten Punkte sein, die ich abarbeite.
    - Das Handelssystem ist bereits in Quellcode gegossen, aber noch nicht im Projekt untergebracht. Wäre auch Käse, da es noch keine Planeten oder Handelsstationen gibt.

Netzwerkmodus:
    - Im Servermodus leitet Eure Maschine ein Netzwerkspiel. (Ach). Das heißt, die Hauptobjektliste wird von dem Rechner gepflegt und Änderungen von ihm verteilt. Insgesamt können 10 Clients connecten. Diese Grenze ist im Moment willkührlich gesetzt. Ich weiß noch nicht was der Server verkraftet. :)
    - Im Clientmodus wird der Server verbunden, welcher in der „network.ini“ hinterlegt ist. Standardmäßig ist das mein Server, der übers Internet erreichbar ist. Hier kann aber auch jeder andere Server/IP eingetragen werden.
    - Das ganze wird über Port 4711 abgewickelt (ja ehrlich). Da UDP zum Einsatz kommt, muss dieser Port beim Internetspiel auf Euren Rechner weitergeleitet werden, wenn Ihr einen Router einsetzt. Wenn Ihr direkt am Modem hängt, wird der Port in der Firewall geöffnet werden müssen.

Bekannte Fehler:
    - Ich hatte bisher einmal den Fall, dass die Steuerung immer nach links zog. Ich konnte den Fehler nicht reproduzieren. Ich bin da für jeden Hinweis dankbar.
    - Der Wechsel vom Server zum Client zur Laufzeit ist bisher nicht vorgesehen und kann AV's verursachen. Also entweder nicht machen, oder im Fehlerfall das Programm neu starten. :)
    - Das Spiel ruckelt manchmal, wenn Opera 9 Beta nebenbei geöffnet ist. Ich hab keine Erklärung dafür, aber es ist so. Es kann auch sein, dass es nur passiert wenn bestimmte Elemente in den angezeigten Webseiten vorkommen, soweit habe ich das noch nicht durchgetestet.


Sonstige Informationen:
Um Bandbreite zu sparen und da nicht jeder DSL verfügt, habe ich die Exe mit UPX eingepackt. Bei einigen Virenscannern (vor allem solchen, welche in gelben Schachteln verkauft werden und im „Alarmfall“ bunt blinken wie ein Wanderpuff) sind UPX-gepackte Programme scheinbar generell gefährlich. Wer nach dem Download sichergehen will, dass die Exe sauber ist, kann sich bei http://upx.sourceforge.net/ den UPX-Packer unterladen und die Exe mit „upx -d engine.exe“ wieder auspacken. Danach sollte auch wieder die Aufregung des Virenscanners abklingen.

Das Archiv mit dem aktuellen Stand gibt es unter folgender URL zum Download http://www.2ndmoon.de/files/engine.zip

Ich werde das ausführliche Entwicklungs-Logbuch demnächst auf www.2ndmoon.de zur Verfügung stellen und hier bei DelphiGL zusammenfassend die wichtigen Neuerungen posten. Ich habe das bisher „offline“ gemacht, da der Projektstand noch nicht vorzeigbar war und weil einfach zu wenig „ging“.

Natürlich bin ich für Feedback immer dankbar. Wenn Ihr Ideen habt, Fehler gefunden habt (ja, das werdet ihr) gebt bitte ein Statement zum Projekt ab.

Danke für's Lesen,
Cmdr. DNA

_________________
Heute code ich, morgen debug ich, und übermorgen caste ich die Königin auf int.
http://www.2ndmoon.de


Zuletzt geändert von DNA am Do Dez 08, 2005 15:57, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Dez 08, 2005 13:25 
Offline
DGL Member

Registriert: Sa Nov 12, 2005 04:05
Beiträge: 7
Wohnort: eu
Sehr erfolgreich, ich hoffe das we mit eine Grippe Ente schaffen das.

MfG
screen from UFO LCD "8888888888^-88"

_________________
move it


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Dez 08, 2005 13:47 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Sep 23, 2005 20:31
Beiträge: 212
Wohnort: Sachsen/ Vogtland
Gesundheit, nich wahr.

_________________
Heute code ich, morgen debug ich, und übermorgen caste ich die Königin auf int.
http://www.2ndmoon.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Hera 7
BeitragVerfasst: Do Dez 08, 2005 15:11 
Offline
DGL Member

Registriert: Sa Nov 12, 2005 04:05
Beiträge: 7
Wohnort: eu
DNA hat geschrieben:
Hallo zusammen.
.........
So, be patient... :)

...........

Danke für's Lesen,
Cmdr. DNA

Deins oder die Ente?

Gesudheit!
:) :?

_________________
move it


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Dez 08, 2005 16:06 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Sep 23, 2005 20:31
Beiträge: 212
Wohnort: Sachsen/ Vogtland
Ich führe den Thread mal in "Meinungen zu den Projekten" fort, da hier eigentlich der Projektfortschritt rein soll.

Grüße, DNA

_________________
Heute code ich, morgen debug ich, und übermorgen caste ich die Königin auf int.
http://www.2ndmoon.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Dez 08, 2005 23:10 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Sep 23, 2005 20:31
Beiträge: 212
Wohnort: Sachsen/ Vogtland
Neue Version:

[-] Speicherleck im Servermodus entfernt

[+] Loggingfunktion über empfangene Netzwerkpakete verbessert und weniger speicherintensiv ausgelegt
[+] dedicated Server vorbereitet
[+] erstes eigenes 3D-Modell mit Wings3D erstellt und mittels gl3ds eingebunden

[~] Steuerung des Schiffes umgestellt auf Standardsteuerung für TorusDrive-fähige Schiffe ohne Schubvektorsteuerung. Das heißt:
Links/Rechts=Kippen um Z-Achse. Hoch/Runter=Hoch/Runter. A/Y = Schub/ Umkehrschub.

[als nächstes]
[o]3D-Modell wird unschattiert gezeichnet und beim Rendern des Modells wird die Skybox schwarz. Nachdem ich scharze Löcher und Subraumfluktuationen ausschliessen konnte, versuche ich es mit den Texturmapping-Tutorials.
[o] dedicated Server fertigstellen. Dann kann der immer unter meinem DynDns ressourcenschonend laufen, um einen zentrales Testgelände zu schaffen.
[o] Kollisionsabfrage wieder aktivieren
[o] Kurskorrekturfunktion überprüfen, damit die NPC's wieder ins Spiel kommen können. (die konnten bereits Wegpunkte abfliegen, bis ich die Steuerung umgebaut habe. Nun finden sie nicht mehr die richtige Kurskorrektur um auf den Weg zum nächsten Wegpunkt zu gelangen)

[Ideen]
Durch die neue Steuerung ist es IMO schwieriger feststellbar, in welche Richtung das Schiff treibt. Ich werde wohl die Schubumkehr nicht mehr nur entgegen der Z-Achse des Schiffes wirken lassen, sondern entgegen der momentanen Bewegungsrichtung. Oder Zumindest eine echte Bremsfunktion einbauen, da der echte Umkehrschub auch als Hilfsmittel bei der Manövrierung des Schiffes dienen kann.


Dateianhänge:
Dateikommentar: Mein erstes Schiffsmodell für das Projekt.
schiff1.jpg
schiff1.jpg [ 21.83 KiB | 8461-mal betrachtet ]

_________________
Heute code ich, morgen debug ich, und übermorgen caste ich die Königin auf int.
http://www.2ndmoon.de
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 11, 2005 17:03 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Sep 23, 2005 20:31
Beiträge: 212
Wohnort: Sachsen/ Vogtland
Hinzugefügt, behoben oder geändert
[+] dedicated Server ist fertig. Läuft aber nich auf meinem Server. Wahrscheinlich kann die Grafikkarte keine Displaylisten. Ich muss den Quelltext umbauen, so dass die Dinger erst dann geladen werden, wenn sie benötigt werden (und damit beim dedicated Server nie. Dann kann jeder Dödelrechner ein Server sein)
[+] Maussteuerung unterstützt
[+] Fadenkreuz eingebaut, sonst wird die Maussteuerung echt knifflig.
[+] Umstellung der Steuerung ist nun möglich über hera7.ini. Der Eintrag "[allgemein] steuerung" kann 0 und 1 annehmen. 0 bedeutet Steuerung wie Ur-Elite (Links-Rechts wird zur Drehung um Z-Achse). 1 bedeutet Links-Rechts bleibt Linksrechts (wie X, Freelancer). Kann jeder mal testen und sagen was ihm besser gefällt und auch gleich so lassen. :)
[+] Triebwerksspur eingebaut. Ist noch der erste Wurf. Im Moment ist es der umgekehrte Bewegungsvektor. In Vorbereitung ist aber eine Liste von durchflogenen Positionen, damit das auch schön lecker aussieht. Ins Netzwerkprotokoll und die Objektklasse wurde bereits der Eintrag aufgenommen, ob der Spieler grade Schub gibt. Er wird nur noch nicht gesetzt, oder ausgewertet.

[~] Das Schiff hat neue Eigenschaften. Der Schub wurde erhöht, somit reagiert das Schiff ziemlich zügig auf Richtungsänderung, wenn man dauernd Schub gibt. Letztendlich funktioniert die Steuerung nun fast wie in X-BTF, nur mit der Erweiterung, dass "kein Schub" nicht "STOP" heißt, sondern weitergleiten in die letzte Richtung.
[~] Der Sendeintervall der Netzwerkpakete ist jetzt 100ms statt 200 ms.


Bekannte Fehler:
Die Maussteuerung erkennt nicht, wenn das Spielfenster inaktiv wird (Browser im Vordergrund, etc.). Dadurch ändert das Schiff dann imemr die Richtung. Ich schau mal wie ich das beheben kann.


!!!Achtung!!!
Der Name der Exe hat sich geändert.
Der Name der Ini wurde geändert.
Der Inhalt der Ini wurde erweitert und gegliedert.
Der Downloadpfad auf der Homepage wurde geändert. Liegt nun unter http://www.2ndmoon.de/files/hera7.zip

Grüße,
DNA

_________________
Heute code ich, morgen debug ich, und übermorgen caste ich die Königin auf int.
http://www.2ndmoon.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 19, 2005 09:24 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Sep 23, 2005 20:31
Beiträge: 212
Wohnort: Sachsen/ Vogtland
Hiho,

abgehalten durch 2 Weihnachtsfeiern (lall) gibt's erst jetzt wieder was neues vom Projekt. Hier in Kürze die Änderungen und Erweiterungen.

Hinzugefügt, behoben oder geändert
[+] Versionsprüfung eingebaut. War notwenig, wenn jetzt Online-Tests beginnen.
[+] Kollisionsabfragen gehen fast wieder. Es fehlt noch die Feinabstimmung. (Art des Schadens, Berechnung der Einschlagskraft und Reaktion des Schiffes). Ebenso fehlt noch ein sauberer "Ausstieg" aus dem Spiel, wenn das Schiff zerstört wurde.
[+] „Sequenz“in Netzwerk-Paket untergebracht. Damit kann man UDP-Pakete einfach „droppen“ falls sie veraltet sind.

[~] pösen, pösen Netzwerkbug behoben. Netzwerk läuft jetzt stabil. Der logische Fehler trat erst bei einer Spieleranzahl > 2 auf. Daher mußte ich noch eine Wintendo-Kiste organisieren. Dazu kommt noch, dass man Netzwerkfehler anhand von Logfiles total schwül debuggen kann.

So. Da das Netzwerk nun stabil zu laufen scheint, können die Online-Tests beginnen. Dazu habe ich auf meinem Server eine Instanz vom Hera7-dedicatedServer laufen. Wer also testen will, wie sich das ganze übers Internet spielt, ist dazu herzlich eingeladen. Alles was man dazu braucht, ist
    - die neue Version von Hera7 http://www.2ndmoon.de/files/hera7.zip
    - Einen passenden Eintrag in der hera7.ini für "server" namens "dvoelkel.dyndns.org" (in der downloadbaren Version ist das schon eingetragen)
    - einen auf die eigene Maschine geforwardeten Port 4711/UDP wenn ein Router verwendet wird, oder die Freigabe des Ports im lokalen Paketfilter.
    - Im Spielmenu dann den Eintrag "Client" wählen, woraufhin sich das Spiel mit dem eingetragenen Server verbindet.

Sollte das Netzwerkzeug nicht funktionieren (ich kann von "innen" schlecht testen, ob ich von "aussen" erreichbar bin) wäre ein Hinweis wirklich doll. Ihr könnte mich dazu auch im ICQ (14803035) anhauen, dann können wir das zusammen probieren.

Bekannte Fehler (aka Was mache ich als nächstes)
    - Das Schiff ist im Moment unzerstörbar.
    - Kleine Ruckler im Spiel. Liegen scheinbar am Versenden der Pakete im Hauptthread. Daher wird das ganze Netzwerkgeraffel in einen separaten Thread gesteckt.

_________________
Heute code ich, morgen debug ich, und übermorgen caste ich die Königin auf int.
http://www.2ndmoon.de


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Foren-Übersicht » Sonstiges » Projekte


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 22 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine 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
Deutsche Übersetzung durch phpBB.de
[ Time : 0.104s | 19 Queries | GZIP : On ]