Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Webgamers. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

161

Sonntag, 23. Oktober 2016, 11:56

Irgendwann.....
Leider. Weil ich hier alles alleine mache. Es ist auch ein bisschen "Größenwahnsinnig". Also genau passend zu der wahrscheinlich größten SciFi-Groschenroman Reihe der Welt.

Das größte Problem ist das Frontend, da ich eigentlich nur C/C++ programmiere. Ich komme zwar mittlerweile auch gut mit JScript zurecht, aber das sind doch Welten.
Ich habe auch an vielen Stellen oft keinen Plan wie ich das so umsetze das es in das Basis-Konzept hinein passt. Das führt dann oft zu größeren Umbauten, um bestimmte Strategien in der Realisierung effektiver zu gestalten.

Aktuell läuft auf dem Root-Server nur ein Rumpf aus den Sternen und Planeten. Es wird zwar auch schonmal sowas wie eine Administration erzeugt und ein MInimum an Resourcen produziert, wenn man sich denn erfolgreich registrieren und anmelden konnte. Aber dann fehlts halt an der Anzeige.

Es freut mich aber immer wenn ich mal sowas wie Interesse signalisiert bekomme. Motiviert einen gleich was zu machen.

Wulfman

Fortgeschrittener

Beiträge: 180

Danksagungen: 79

  • Nachricht senden

162

Sonntag, 23. Oktober 2016, 12:01

Ich habe die Meldung bekommen, dass meine Aktivierung fehlgeschlagen ist und kann mich nicht anmelden.

163

Sonntag, 23. Oktober 2016, 12:13

Jo. Das kann leider sein. Im Moment wird da eine Version drauf sein, mit der ich was auch immer testen wollte. Ein Problem mit der Version auf dem Root-Server ist, das ich dort nicht so ohne weiteres kontrollieren kann wie die Daten angelegt worden sind um dann einzugreifen.
Deswegen bin ich ja so mit dem Admin-Interface beschäftigt, damit ich wenigstens ein bisschen was sehen kann. Nur mit nem Debugger bewaffnet ist das so aus der Ferne schwierig.

Ich arbeite ja nun dieses Wochenende an einer Version die wieder etwas stabiler sein wird. Ich werde das dann hier, da ich ja nun weiß das man das testen will, bekannt geben. Kann aber nochmal ein Wochenende dauern. Wegen der Testerei und so.
Ich habe hier zu Hause ein quasi identisches Setup. Wenn es hier gut funktioniert kann ich das mal auf den Root-Server packen. Aber erwarte keine Wunder.

Wulfman

Fortgeschrittener

Beiträge: 180

Danksagungen: 79

  • Nachricht senden

165

Montag, 24. Oktober 2016, 19:16

Also ich habe einen Entschluss gefasst, der meiner Perfektionistenseele eine tiefe nie heilende Wunde zufügen wird.

Ich werde die Darstellung erstmal als Text/Tabelle machen.

Da mein Frontend komplett von der Logik abgekoppelt ist, kann ich so aber die Logik weiter entwickeln und mir dann, wann immer ich da Spass dran habe, Stück für Stück das Frontend bauen.
Ich hatte am Wochenende noch ein wenig dran gebaut und jetzt noch einen kleinen Fehler beseitigt, was bedeutet das aktuell der neueste Stand online ist und werkelt.

Aber Jungs und Mädels. Da ist nix zu sehen. Wirklich nicht. Dennoch könnt ihr ja vielleicht das eine oder andere ausprobieren. Wenn ihr nicht angemeldet seid und auf den Galaxy-Button drückt dann müsste in der Mitte eine grelle gelbe Sonne, stehen. Das System 4654 hat sogar eine ganze Reihe von Planeten. Wenn das nicht geht ist die Simulation geplatzt und es wird auch keine Anmeldung mehr funktionieren.

Ich warte einfach mal ab was nun passiert.
Ich werde, sofern alle anderen Daten keinen Schaden nehmen die Registrierungen nicht löschen. Aber eine Garantie gibt es dafür natürlich nicht.
Ich benutze aktuell keine gesicherten Verbindungen. Also verwendet eher Passwörter die ihr sonst nicht in Gebrauch habt.

Mehr gibts im Moment nicht zu sagen.

Beiträge: 892

Danksagungen: 327

  • Nachricht senden

166

Montag, 24. Oktober 2016, 19:25

Ich kann 4654 sehen....
»Miriam Meernixe« hat folgendes Bild angehängt:
  • 4654.JPG

167

Montag, 24. Oktober 2016, 19:35

Jo. Die Simulation läuft also noch.
Das ist halt im Moment eine Hilfe um feststellen zu können ob die Simulation, also das eigentliche Spiel noch läuft. Nur weil man vom apache noch Daten bekommt heisst das ja leider nicht das der Rest auch noch geht.

Aber so kann man das leicht testen.

Fhizban

unregistriert

168

Montag, 24. Oktober 2016, 19:46

Von mir auch nochmal grosses Lob an der Stelle!

Du hängst ja bereits ewig an dem Projekt, zumindest seitdem ich bei webgamers bin.

Das mit dem "größenwahnsinnig" kenn ich irgendwoher. Aber ich nenne es lieber "überambitioniert", weil es sich etwas diplomatischer anhört.

Und meine Perry Rhodan Heftsammlung (leider nicht alle erste Auflage) sagt ganz klar JA zu dem projekt!

169

Montag, 24. Oktober 2016, 20:01

Danke, danke.
Es fühlt sich gut an ein paar nette Worte zu hören.
Das wird noch alles eine ganze Weile dauern bis man da was spielen kann. Aber die Tools für die Entwicklung sind in der letzten Zeit immer besser geworden und so geht das dann auch schneller voran.
Dazu kommt immer mehr Übung mit HTML und JScript, da ja vieles in JScript realisiert wurde und auch weiter wird.

Wenn man sich aktuell registriert und den account aktiviert, dann wird ja wirklich schon ein Planet rausgesucht und schon ein paar Sachen eingerichtet. Man sieht's halt nur im Moment nicht. Na mal schauen wie ich das weiter mache.

Fhizban

unregistriert

170

Montag, 24. Oktober 2016, 20:09

Das wird schon. Du bleibst immerhin deiner Sache treu.

Schau mich an: Bereits der achte Versuch oder so.

Lernkurve ist ENORM wenn man aus einem anderen bereich kommt!

171

Sonntag, 30. Oktober 2016, 15:00

Oh man,

was für ein Tag.
Ich habe die erste spielinterne Seite zusammen gewurschtelt.

Es ist eine Übersicht über die Systeme in denen man direkt aktiv ist. Also am Anfang nur ein einzelnes System. Damit man irgendwie was mit dem System assoziieren kann habe ich die Systemansicht, die ja auch ohne Anmeldung funktioniert, als Miniaturansicht erzeugt und das ganze als quasi Button gebaut. Man bekommt also dort im laufenden Spiel, sofern da mal was läuft seine Systeme aufgelistet und kann dann durch drauf clicken in die Systemansicht verzweigen.



Es ist nicht besonders schön, aber es funktioniert. Die Ansicht des Systems wird wahrscheinlich ähnlich sein wie die bereits vorhandene System-Ansicht. Nur das dann noch mehr Daten verfügbar sind und man von dort dann auf die einzelnen Planeten verzweigen kann.
Es gibt auch einen Imperium-Button mit dem man immer wieder in diese Ansicht zurück kommt. Ob es nochmal getrennt davon eine Planeten Ansicht gibt, weiß ich noch nicht. Ist aber wahrscheinlich. Das ganze ist auf dem Root-Server installiert und scheint erstmal zu funktionieren, bis einer von euch das ganze kaputt macht.

172

Dienstag, 1. November 2016, 11:12

Nur mal als Hinweis an alle die auf die Idee kommen sich mal am Spiel zu registrieren.

Die Aktivierung muß innerhalb von 24 Stunden abgeschlossen sein, ansonsten werde die Daten wieder gelöscht.
Aber auch nach erfolgter Aktivierung muss man innerhalb von 3 Tagen eines der 8 Völker ausgewählt haben. Da ist es egal welches ihr nehmt, die haben im Moment noch alle die gleichen Daten.
Ist ja noch nix da, wie soll da also ein Unterschied existieren.

Diese Auswahl haben wir von der Registrierung abgetrennt, damit man die Möglichkeit hat sich ganz in Ruhe darüber im klaren zu werden wie man sich entscheiden will. Und da später auch die Auswahl der Planeten vom Volk abhängig ist, es gibt da ja auch Methan-Atmer, kann auch erst mit der Auswahl des Volkes ein Planet zugeordnet werden.

Würden wir das vorher machen, könnte es schnell zu einem Engpass bei den verfügbaren Planeten kommen.

173

Sonntag, 6. November 2016, 14:41

Wir haben einen neuen Helfer.
Er ist zwar kein Programmierer aber jemand der uns beim Testen hilft und durch seine Ideen weiter vorwärts bringt.
Natürlich kommt nun erstmal die Einarbeitung in das doch recht umfangreiche Material das sich in den letzten Jahren angesammelt hat. Aber ich habe das Gefühl das es uns wieder ein wenig Schwung gibt.

Beim Spiel habe ich eine Fehlermeldung fürs login eingebaut, damit der geneigte Spieler auch merkt wenn was schiefgeht.
Und es gibt einen Link für das Passwort-Recovery, aber noch keinen Inhalt für die Seite. Das muss dann in der nächsten Woche irgendwann passieren.

Dann haben wir große Fortschritte beim Tech-Tree gemacht. Ohne den gibt es kein Gameplay. Der TechTree wird ebenfalls in UML dargestellt und dann von einem Programm so konvertiert das wir ihn in die Datenbank übertragen können.



Das ist mal ein Ausschnitt in dem noch die benötigten Resourcen fehlen.
Das wirklich spannende ist halt das die Bearbeitung UML-Typisch grafisch erfolgt und dann aus dem Modell die Datenstrukturen erzeugt werden.
Nach aktueller Planung kann man damit im laufenden Betrieb den Tech-Tree aktualisieren und braucht dann nur noch die Spielobjekte aktualisieren.

Mal schauen wann ich das schaffe.

Was mir persönlich fehlt ist halt jemand der beim Frontend helfen kann. Durch unseren neuen Helfer sind die "geforderten" Fortschritte noch größer geworden. Und wenn ich dann sehe dass ich für so ein Fehler-Text einbauen 2 Stunden gebraucht habe, obwohl da nur das Feld einzubauen war, dann weiß ich auch wie schnell wir mit mehr Unterstützung am Frontend wären.

Also vielleicht hat ja jemand noch irgendwo ein paar Minuten Freizeit zu verschenken.

174

Samstag, 12. November 2016, 15:53

Gestern Abend vorm Fernseher habe ich mir ein paar grundlegende Gedanken zum Thema Passwort Recovery gemacht.

Wie es für den Spieler ablaufen sollte war vorher im Team besprochen worden. Aber dennoch muss ich ja vorher ein paar Dinge in meinem UML-Modell einbauen, damit das auch alles funktionieren kann.
Als erstes gibt es dabei einen neuen Use-Case, den ich erstmal mit in das Login/Logout Diagramm gepackt habe, weil das Password-Recovery auf der gleichen ebene läuft.



Danach habe ich mir überlegt wie dabei Nachrichten veschickt werden und wer diese dann verarbeiten soll.
Dabei gibt es eben zwei getrennte Abläufe, die das Password-Recovery ausmachen.





Die Diagramme hier sind bereits ein fortgeschrittener Zustand, denn natürlich ändert man das auch manchmal ab.

Die Nachrichten die dort ausgetauscht werden sollen müssen auch definiert werden. Damit klar ist, welche Attribute sich darin befinden.



Und am Ende fand ich es eine Gute Idee die Link-Ids in einem global zugänglichen Speicher abzulegen. Auf dem Speicher sind dann entsprechende Funktionen definiert die während der Verarbeitung der Nachrichten aufgerufen werden. Es wird also nix direkt manipuliert.




Der Code den ich dann in der Simulation selbst geschrieben habe ist für das Starten des Recoveries dieses.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
static tMsg* startpwrecoveryreq(tSimObj* obj,tMsgStartRecoveryReq* msg) {
    tMsg* retval=0;
// User-Defined-Code:startpwrecoveryreq
    tMsgStartRecoveryReply* reply=(tMsgStartRecoveryReply*)create_msg(IDM_STARTPWRECOVERYREPLY);
    //
    //  Search the user by email.
    std::map<std::string, tSimObj*>::iterator pi=Email(obj).find(msg->Email);
    //
    //  Check if email exists.
    if (pi != Email(obj).end()) {
        //
        //  If the email exists we do have the user who requested the recovery.
        //  So we can create a link-id.
        reply->LinkId = CGlobalInfos::global.RecoveryLinkMap.GetLink(pi->second, LastCycle(obj));
        //
        //  Ask for simple player info to get the ingame name
        tMsgGetSimplePlayerInfoReq*   inforeq   = (tMsgGetSimplePlayerInfoReq*)create_msg(IDM_GETSIMPLEPLAYERINFOREQ);
        tMsgGetSimplePlayerInfoReply* inforeply = (tMsgGetSimplePlayerInfoReply*)pi->second->syncprocess(pi->second, (tMsg*)inforeq);

        reply->InGameName = inforeply->Info.InGameName;

        delete inforeq;
        delete inforeply;

        reply->Error  = 0;
    } else {
        reply->Error = -8;
    }
    //
    //  delete the incoming message
    delete msg;
    //
    //  Set the return value.
    retval = (tMsg*)reply;
// End-Of-UDC:startpwrecoveryreq
    return (retval);
}


Im PHP wird folgender Code ausgeführt um die Daten in diesen C/C++ Code zu kriegen.

Quellcode

1
2
3
4
5
6
            $startrecoveryreq = array(
                'MsgId' => 'StartPWRecoveryReq',
                'Email' => $email
                );

            $startrecoveryreply = CMessaging::SendReceive($startrecoveryreq);


In $startrecoveryreply ist dann ein Objekt enthalten das so aussieht wie die im UML Modell definierte Message tMsgStartRecoveryReply

Das ganze Modellieren und Programmieren in der Simulation hat ca. 2 Stunden gebraucht. Die Web-Seiten dann zusammen stoppeln und austesten und, und, und ca. 5 Stunden.
Man wie ich das Frontend nicht leiden mag.

HILFEEEEEEE!!!!!

:D

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »simbad« (12. November 2016, 16:15) aus folgendem Grund: Ergänzung PHP Code


Fhizban

unregistriert

175

Samstag, 12. November 2016, 21:50

immer wieder erstaunlich was du da so auf die beine stellst simbad,

allerdings - verzeih mir den kommentar (ist nicht böse gemeint) - das hätte man auch in pure PHP gut realisieren können

das mit C zu koppeln erscheint mir mehr eine art spielerei, performancetechnisch ist das für kein BG der welt vonnöten

schnell und einfach den code dahinrotzen, aber darum geht es dir nicht - gell?

nix für ungut ;-)

176

Sonntag, 13. November 2016, 14:27

Das Beispiel dient ja auch mehr dazu mal zu zeigen wie ich arbeite.
Durch den "zwang" die Feature erst zu modellieren entsteht bereits vor dem eigentlichen Code eine entsprechende Doku. Erst denken, dann tippen.

Natürlich hätte man dieses spezielle Feature auch mit purem PHP realisieren können, theoretisch. Man darf dabei nicht vergessen das mein Simulationskern die Daten komplett im Speicher stehen hat.
Wenn du daran vorbei etwas auf der DB veränderst kriegt er das nicht mit.

Der Simulationskern wiederum erlaubt mir ein kontinuierliches Aktualisieren der Spielobjekte. So kann man also Flugwege von Raumschiffen zu jedem Zeitpunkt anzeigen oder Raumschiffe die sich einem Planeten nähern in "Echtzeit" darstellen.
Ursprünglich gab es Ideen Raumschlachten in Echtzeit darzustellen oder das besetzen von Planeten über Minuten zu simulieren, anstatt mit ein paar erwürfelten Zahlen ein Script zu starten.
Geplant ist zum Beispiel die Notwendigkeit der Wartung von Einrichtungen. Auch plötzliche Ausfälle oder Stillstand während des Umbaus eines Gebäudes sind vorgesehen. Es gibt also vieles das sich durch ein kontinuierliches Update einfacher lösen lässt als zum Beispiel mit einer Event-Queue.

Aktuell läuft die Simulation nur im 1Sek Takt. Aber das kann man problemlos auch verkürzen.

177

Samstag, 26. November 2016, 17:32

Ich habe mal angefangen die Sternenkarte zu erzeugen.
Das Spielfeld wird wahrscheinlich auf einen Bereich von ca. 10.000 LJ in alle Richtungen beschränkt. Das Zentrum bildet die gute alte Mutter Erde.

Die Einschränkung habe ich eingeführt, weil das File mit den Sternendaten sonst zu groß wird. Aktuell lade ich noch alle Daten. Also vorsicht wenn ihr auf den Link geht.

Auf meiner System-Info Seite, die immernoch so heisst, habe ich mal ausprobiert wie schnell denn JScript wirklich ist.
Also wenn man SVG verwendet um 10.000 Sterne darzustellen, dann ist das ein wenig träge. Deswegen habe ich das ganze mit HTML5 canvas in einem 2d context erzeugt.

http://www.prbrowsergame.de/sysinfo.php

Auf das Scrollrad habe ich die Rotation um die X-Achse gelegt. Man kann also das Grid und die 10.000 Sterne, das wird in dieser Ansicht das Limit sein, selbst auf meinem alten Vaio Notebook mit einem CoreDUO mit 1.6GHz rotieren.

Eventuell mache ich da noch ein paar Optimierungen, aber im Moment isses so.
Wenn jemand wirklich durch diesen Raum navigieren will, dann kann er sich in dieser Ansicht einen Bereich auswählen und bekommt für diesen Bereich eine Detailansicht. So werden wahrscheinlich selten mehr als die 10.000 Sterne angezeigt.

Die ganze Bedienung ist natürlich noch lange nicht fertig. Aber ich musste erstmal testen was man so alles machen kann. Eine WebGL Lösung kann ich mir auch vorstellen. Da das aber nicht immer und überall zuverlässig funktioniert braucht es einen Fallback. Ich denke da ist die aktuelle Lösung ganz gut. Aber ich werde sicher auch nochmal SVG ausprobieren. Hat alles so seine Vor und Nachteile.

178

Samstag, 18. Februar 2017, 20:57

Es gibt mal wieder ein Lebenszeichen.
Es ist nicht so das die Arbeiten am Spiel eingestellt worden sind. Vielmehr habe ich ein paar kleine Versuche für andere Einsatzgebiete der Simulation gemacht, die dann auch ein paar Schwächen des ganzen zu Tage gefördert haben. Schwächen sind typischerweise Dinge, die man mal aktualisiert wenn es sch ergibt.
Leider sind aber auch ein paar Fehler aufgetreten die ein Einschreiten verlangten. Man kann durchaus von programmiertem Zufall reden, das es überhaupt funktioniert.
Und so bin ich also dabei die Kommunikation mit der Aussenwelt zu überarbeiten. Dieser Schritt wird notwendig, weil immer mehr, wie man bei den Webgamers ja sieht, auf verschlüsselte Verbindungen gesetzt wird.
Um die Möglichkeit zu eröffnen einen Client unter Windows, Linux, MacOS, iOS oder Android an die Simulation anzukoppeln, ist dann auch gleich noch eine binär Datenübertragung zu bedenken, da dabei doch ein paar Bytes weniger übertragen werden als mit dem aktuellen JSON-Format.
Mit der Vielzahl von Datenübertragungsformaten und diversen Einstellungen der Simulation, unter anderem auch der Gedanke das man nicht nur PostgreSQL sondern eventuell MariaDB oder Ingres oder MaxDB oder...oder ...oder als Datenspeicher verwenden möchte, muss ich mich auch von einer Konfiguration über die Kommandozeile verabschieden.
Es wird wohl ein XML-Konfigurationsfile werden in dem alle wichtigen Einstellungen vorgenommen werden können. Zusätzlich wird es noch den einen oder anderen Programm-Parameter geben, um zum Beispiel den Debug-Level einzustellen und ähnliches, das man eben nicht fix für eine bestimmte Simulation definiert.

Das ist also erstmal nur ein Lebenszeichen. Aber es ist eins.

Fhizban

unregistriert

179

Samstag, 18. Februar 2017, 21:54

juhu ein lebenszeichen!

ich könnte dir jetzt lauter gut gemeinte aber dumme tipps geben und lasses lieber,bis auf einen: bleib drann!

fkrauthan

Schüler

Beiträge: 97

Wohnort: Vancouver

  • Nachricht senden

180

Dienstag, 21. Februar 2017, 22:47

Schau dir mal protocol buffers (https://developers.google.com/protocol-buffers/docs/overview) an. Das ist wohl eine sehr effizente binaere protokol loesung die aber immer noch strukturiert funktioniert.

Social Bookmarks