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.

simbad

Profi

  • »simbad« ist der Autor dieses Themas

Beiträge: 1 148

Wohnort: Berlin

Beruf: Software Entwickler

Danksagungen: 267

  • Nachricht senden

101

Sonntag, 18. Oktober 2015, 13:49

Das ist ein Vulkanplanet. :D Was das wohl früher mal war, bevor es als Textur auf einer Kugel gelandet ist?

[img]http://www.prbrowsergame.de/pics/planet4.png[/img]
„Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.“Albert Einstein
Das Entwickler BLOG
Pierre-Romain Main Page

Beiträge: 892

Danksagungen: 323

  • Nachricht senden

102

Sonntag, 18. Oktober 2015, 14:04

Manchmal will man das vielleicht auch gar nicht wissen ;)

Für weitere Experimente könntest Du vielleicht ja auch noch meine Fotos aus diesem Thread nutzen, beispielweise die Steinwand, den Himmel oder das irische Moos...

Kliff

Schüler

Beiträge: 68

Wohnort: Hannover

Danksagungen: 91

  • Nachricht senden

103

Sonntag, 18. Oktober 2015, 14:50

Ein Pfannkuchen?

Slayer

Fortgeschrittener

Beiträge: 472

Danksagungen: 139

  • Nachricht senden

104

Sonntag, 18. Oktober 2015, 18:43

Gemacht ist das alles mit POV-ray. Das ist mir als Programmierer lieber, als Blender.

Oha, auch einer, der Grafiken programmiert :D.
Wir hatten das ganz zu Beginn der Entwicklung von eXperinox auch eingesetzt. Heute bin ich heilfroh, dass ich unseren damaligen Grafiker dazu überreden konnte, auf Blender umzusteigen. Ansonsten wäre es mir jetzt nicht so einfach möglich, Varianten der Grafiken zu erstellen. Denn auch wenn ich Entwickler bin, so ist mir speziell bei 3D Grafiken ein visuelles Tool um Längen lieber, als ein Text-Editor.

Have fun
Slayer
eXperinox - Browserspiel Science Fiction / Weltraum - "noXen macht Spaß!"
---
Austria Insiderinfo - Wandern im Salzburger Land

simbad

Profi

  • »simbad« ist der Autor dieses Themas

Beiträge: 1 148

Wohnort: Berlin

Beruf: Software Entwickler

Danksagungen: 267

  • Nachricht senden

105

Sonntag, 18. Oktober 2015, 19:11

Povray benutze ich in erster Linie als Renderer. Wenn ich Videos erzeugen will, dann benutze ich meine eigenen Libraries, die dabei helfen die Abläufe zu erzeugen und mir den passenden Povray Output generieren.
Für komplexe Geometrien benutze Wings3D und exportiere das als Wavefront file. Danach kann ich das entweder animieren oder sonstwie aufbereiten. Aktuell ist aber Povray das typische Ziel wenn ich sowas mache. Aber ich habe auch eine Renderman Installation. Nur ist da die herangehensweise eine andere und ich hatte noch nicht die Zeit mich damit gezielter auseinander zu setzen. Das ist ja auch alles vielmehr ein Ausflug in das Metier des Grafikers, der ich defnitiv nicht bin.

Es ist etwas das im Zusammenhang mit Pierre-Romain entsteht. Deswegen habe ich es hier gepostet. Aber meine Hauptaufgabe und Fähigkeit ist programmieren und das wird sicherlich auch so bleiben. Aber ab und zu muss ich auch mal was anderes machen.
„Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.“Albert Einstein
Das Entwickler BLOG
Pierre-Romain Main Page

simbad

Profi

  • »simbad« ist der Autor dieses Themas

Beiträge: 1 148

Wohnort: Berlin

Beruf: Software Entwickler

Danksagungen: 267

  • Nachricht senden

106

Dienstag, 27. Oktober 2015, 09:34

Ich habe mir ein kleines Programm geschrieben um damit die Resourcenverteilung auf einem Planeten ausrechnen zu lassen. Wir wollen irgendwann mal mehrere Areas auf einem Planeten zulassen und vor allem sollen die Fördermengen Standortabhängig sein und noch ein paar mehr Dinge.
Die Idee ist mir gekommen als meine Frau für die Uni eine Simulation geschrieben hat, bei der Familien umziehen, wenn ihnen das Umfeld nicht passt. Die Idee habe ich in einem kleines C-Programm nachempfunden und das ist das Ergebnis.
[img]http://www.pr-browsergame.de/bildchen/output0019.raw.png[/img]
Jeder Farbe kann man nun eine bestimmte Resource zuweisen. Blau ist nicht zwingend Wasser und Grün nicht Wald. Die Farben sind zur Unterscheidung der Resourcen vergeben. Wie man sieht ist am unteren Rand so ein Schliereneffekt zu erkennen, da weiß ich noch nicht woher der kommt und ob das immer so ist. Ist also noch in Arbeit das ganze.
„Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.“Albert Einstein
Das Entwickler BLOG
Pierre-Romain Main Page

simbad

Profi

  • »simbad« ist der Autor dieses Themas

Beiträge: 1 148

Wohnort: Berlin

Beruf: Software Entwickler

Danksagungen: 267

  • Nachricht senden

107

Samstag, 7. November 2015, 14:51

Erstmal die Auflösung zum vulkanischen Planeten.
Das ist ein Pancake. Ein bisschen zurecht geschnitten. und auf die Oberfläche gababbt.

Also. Die Sterne in meiner Spiele-Datenbank haben nun aus den Spektralklassen abgeleitete Farben und einen Durchmesser. Die Informationen werden für die Darstellung und einige andere Details benötigt.

Und die Planeten haben nun ebenfalls einen Durchmesser erhalten. Dabei findet man eine Häufung der großen Planeten im mittleren Abstand zum Stern. Mal schauen ob ich morgen noch spass dran habe, dann werden die Bahnabstände und eventuelle Bahnneigungen hinzugefügt.
„Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.“Albert Einstein
Das Entwickler BLOG
Pierre-Romain Main Page

simbad

Profi

  • »simbad« ist der Autor dieses Themas

Beiträge: 1 148

Wohnort: Berlin

Beruf: Software Entwickler

Danksagungen: 267

  • Nachricht senden

108

Sonntag, 8. November 2015, 14:29

Ich hatte keine große Lust was zu machen. Aber dafür habe ich wieder an den Feinheiten gearbeitet.

Die Trennung der drei großen Anwendungen, Simulationskern, Spiele-Simulation und Code-Generator ist vollzogen.
Ich musste, nachdem ich einen Fehler beim Erzeugen der Sternenradien gefunden hatte die DB neu initialisieren. Das ist nicht weiter schlimm, braucht nur ca. 1 Stunde.
Der Simulationskern benutzt jetzt ausschliesslich 64-Bit unsigned Werte für alle Arten von IDs. Dazu mussten noch allerlei Sub-Funktionen angepasst werden. Getestet habe ich das mit der neu initialisierten Datenbank.
Der Code-Generator kann jetzt auch Arrays nach JSON formatieren, das wird das erste Mal benutzt wenn die Planeten-Infos in einem Sonnensystem abgerufen werden.
Es gibt eine Nachricht die genau das macht, zu einem Sonnensystem die Basis Infos abfragen.

Aktuell hat das Spiel 4400 LOC, der Simulationskern 5900 LOC und der Code-Generator aus 6900 LOC

In der Datenbank sind 1.7M Objekte, im Moment ausschliesslich Sterne mit ihren Planeten. Es sind ca. 6M Einzelwerte in der DB abgelegt, die beim Start komplett eingelesen werden. Das dauert ca. 7 Sekunden und belegt 1.1GB RAM.

Nu muss ich erstmal wieder ne Woche Arbeiten.
„Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.“Albert Einstein
Das Entwickler BLOG
Pierre-Romain Main Page

simbad

Profi

  • »simbad« ist der Autor dieses Themas

Beiträge: 1 148

Wohnort: Berlin

Beruf: Software Entwickler

Danksagungen: 267

  • Nachricht senden

109

Donnerstag, 19. November 2015, 17:37

Es geht voran:

Als Basisdaten verwenden wir ja den Sky2000 Sternenkatalog. Dort gab es ein Update von Version 4 auf 5. War kein nennenswertes Problem, das Datenformat hat sich nicht geändert.

Für das Spiel habe ich jetzt Planeten in unterschiedlicher Größe von 1200km Radius bis ca.80.000km Radius erzeugt, die sich durch unterschiedliche Dichte und damit Gravitation auszeichnen. Die Abstände zwischen den Umlaufbahnen sind variabel zwischen ca. 30 Millionen km und 7Mrd Kilometer. Es ergeben sich auch entsprechende Bahngeschwindigkeiten.
Das ist aber noch nicht ganz fertig.

Der Codegenerator als mein besonderes Instrument um das ganze in UML2 zu modellieren und dann nur generieren zu müssen funktioniert immer besser. Es werden alle Spielobjekte, ein paar Zugriffsfunktionen, Initialisierung, leer und aus Templates, Message-Dispatcher für Messages, werden synchron abgearbeitet, und Signale, asynchrone Verarbeitung erzeugt. Dazu leere Funktionen um das ganze verarbeiten zu können und noch vieles mehr.
Es können Zustandsmaschinen auf die Objekte definiert werden. Davon werden dann wieder, halbleere, Funktionen generiert in denen bereits der Transition-Guard, Transition-Action und Activity, falls vorhanden hinein generiert sind. Das ganze kann dann mit händischem Code ergänzt werden um so dann alle Funktionen umsetzen zu können. Transitions können auch per Event oder Message ausgelöst werden, was auch zu entsprechendem Code in den dazu gehörenden Funktionen führt.
Für Zustandsmaschinen werden auch Combined-States und Histories unterstützt.

Die Kommunikation mit der Aussenwelt wird im JSON-Format durchgeführt. Dazu werden die Messages in einem Interface, das auch aus dem Code-Generator kommt, entsprechend konvertiert. Das funktioniert in beide Richtungen. Für die Sende-Richtung werden jetzt auch Arrays und Strukturen und die Kombination Arrays von Strukturen unterstützt.

Es werden bei all dem immer korrekt alle benötigten include Statements generiert ohne das dazu noch irgendeine Arbeit nötig wäre.

Aktueller Code-Stand:

* Das Spiel 6400 LOC
* Der Simulationskern 5900 LOC
* Der Code-Generator 7500 LOC

Das System braucht ca.20sekunden um alles zu laden und belegt dann ca. 1.13GB RAM

Ich mach jetzt mal ne Pause.
„Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.“Albert Einstein
Das Entwickler BLOG
Pierre-Romain Main Page

simbad

Profi

  • »simbad« ist der Autor dieses Themas

Beiträge: 1 148

Wohnort: Berlin

Beruf: Software Entwickler

Danksagungen: 267

  • Nachricht senden

110

Sonntag, 22. November 2015, 16:20

Na sowas. Es geht!

SystemInfo

oder Browsergame und dann auf den Galaxy-Button drücken.

Das ist eine absolut langweilige Seite. Aber sie zeigt einfach mal was geht. Man kann dort in dem Edit-Feld eine Zahl zwischen 1-299.000 eingeben und bekommt dann die Planeten auf ihren Bahnpositionen zu dem entsprechenden System angezeigt.

Wenn man die entsprechende Geduld aufbringt, zum Beispiel an einem Tag einen Screenshot von einem System macht und dann an einem anderen Tag, sollten sich wenigstens die inneren Planeten bewegt haben.
Wenn ich irgendwann Zeit finde kann ich an die Planeten auch noch ein Tooltip mit Zusatzinfos ranbappen. Die Daten werden mitgeliefert, aber ich bin im Moment nur froh das es soweit schon funktioniert.

Da ist ein verhältnismässig simples PHP script hinter, da ich nunmal kein Web-Programmierer bin, das alles erledigt. Die Daten werden aus der Simulation abgefragt und dann bei jeder Abfrage in der DB aktualisiert.
Die Positionsangabe in der Mitte sollte der Ort sein, wo man die Sonne finden könnte. Ich habe das noch nicht gegen unsere Daten geprüft. Werde das aber mal irgendwann machen. Eventuell ist auch die Anzeige falsch. Na egal. Es soll in erster Linie helfen zu zeigen was man da sieht. Ist eben noch alles hochgradig experimentell.

Vor allem wollte ich einfach mal zeigen das ich wirklich noch daran arbeite und es tatsächlich auch mal Fortschritte gibt.

P.S.: Nur damit keiner verwirrter ist als ich. Es sind nur ca. 45% der Systeme mit Planeten ausgestattet. Ist also nicht unbedingt ein Fehler wenn mal nix auftaucht.
„Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.“Albert Einstein
Das Entwickler BLOG
Pierre-Romain Main Page

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »simbad« (22. November 2015, 16:26)


simbad

Profi

  • »simbad« ist der Autor dieses Themas

Beiträge: 1 148

Wohnort: Berlin

Beruf: Software Entwickler

Danksagungen: 267

  • Nachricht senden

111

Samstag, 28. November 2015, 16:16

Ich habe heute mal die Main-Page ein wenig angepasst.

Mal davon abgesehen, das da noch einiges an Inhalt auf die Seite muss, sieht es aber schon nicht mehr ganz so schlimm aus.
Für die Leute die da irgendwie interesse haben lohnt sich in jedem Fall ein Blick.

Ob ich morgen auch noch was mache weiß ich nicht wahrscheinlich muss ich erstmal schauen wie ich weiter mache.
„Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.“Albert Einstein
Das Entwickler BLOG
Pierre-Romain Main Page

simbad

Profi

  • »simbad« ist der Autor dieses Themas

Beiträge: 1 148

Wohnort: Berlin

Beruf: Software Entwickler

Danksagungen: 267

  • Nachricht senden

112

Montag, 7. Dezember 2015, 10:14

Die Main-Page hat noch ein kleines Raumschiff spendiert bekommen. Da kommen noch 2 weitere hinzu, die sich in der Form auf alle Fälle unterscheiden werden.
Ich habe dann noch ein paar Änderungen an den Styles für die paar Infos gemacht, da es auf einem 4:3 Bildschirm nicht wirklich schick aussah. Sollte aber jetzt besser gehen.
Fürs nächste Wochenende sind dann die beiden fehlenden Raumschiffe geplant.

Und wenn die dann da sind, dann mache ich wieder am Programm-Code weiter.
„Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.“Albert Einstein
Das Entwickler BLOG
Pierre-Romain Main Page

simbad

Profi

  • »simbad« ist der Autor dieses Themas

Beiträge: 1 148

Wohnort: Berlin

Beruf: Software Entwickler

Danksagungen: 267

  • Nachricht senden

113

Samstag, 12. Dezember 2015, 15:19

Das Hintergrund Bild der Main-Page ist erstmal fertig. Klar kann man da noch einiges verbessern, aber das mache ich ein andermal.
Von den Buttons wird auf Dauer der Galaxy-Button verschwinden, was bedeutet, das dann nur noch der Login Button und der Link auf die Registrierungsseite bleibt.
Impressum kommt bis zur Eröffnung weiterer Tests natürlich auch irgendwo mit einem Link auf der Main-Page, wie sich das gehört.

Alles in Allem soll da aber eher wenig Raum für Buttons und son Gedöns verschwendet werden.
„Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.“Albert Einstein
Das Entwickler BLOG
Pierre-Romain Main Page

simbad

Profi

  • »simbad« ist der Autor dieses Themas

Beiträge: 1 148

Wohnort: Berlin

Beruf: Software Entwickler

Danksagungen: 267

  • Nachricht senden

114

Montag, 28. Dezember 2015, 18:07

Heute mal ein größeres Update zum Stand der Dinge.
Das Erzeugen eines neuen Spielers funktioniert. Was gehört alles dazu?

  • Aussuchen eines Systems das für das vom Spieler ausgesuchte Volk passend ist. Im Moment wird dazu lediglich die Gravitation der Planeten herangezogen. Später soll auch die Athmosphären zusammensetzung genutzt werden.
  • Suchen des Planeten in dem System.
  • Erzeugen einer Stadt auf dem Planeten. Städte haben noch keine Relevanz, sind aber bereits in dem Spiel mit enthalten.
  • Erzeugen der "Imperialen Administration" in der Stadt. Die Administration erzeugt eine minimale Menge der Basisresourcen.
  • Auf dem Planeten werden Resourcenspeicher erzeugt. Die Administration meldet ihre Produktionsmengen an die Resourcenspeicher.

Wenn ein Spieler sich anmeldet, dann wird ein Attach-Player ausgelöst. Damit wird der entsprechende Spieler in eine Liste der angemeldeten Spieler übertragen. Auf diese Weise wird verhindert das Nachrichten Veränderungen an einem Account ausführen der nicht angemeldet ist.
Mit der Attach-Player Nachricht kann auch ein Token an die Simulation übertragen werden. Das wird interessant wenn die Simulation mit einem Web-Socket Interface ausgestattet wird, aber das ist noch eine Weile hin.
Genauso gibt es eine Detach-Player Nachricht mit der der Spieler wieder abgemeldet wird.
Es gibt die Möglichkeit eine Liste der Spieler mit einer Status-Information abzurufen. Im Status wird aktuell Online oder nicht dargestellt. Später kann man noch Urlaub/Gesperrt/Inaktiv hinzukommen.
Es gibt die Möglichkeit globale Informationen über einen Spieler abzurufen. Das sind aktuell die Planeten mit ihren Namen und die aktuellen Füllstände der Resourcenspeicher und Produktionsraten.

Das ganze ist nachrichtenbasiert. Das hat interessante Implikationen. Wenn nun zum Beispiel die Minen, die ich aktuell noch nicht habe, hinzukommen, dann können die ihre Produktionsmengen auf die gleiche Weise an den Resourcenspeicher melden, wie es die imperiale Administration tut. Der Code wird dazu nur um die Minen erweitert.
Man kann auch Verschleiß in den Minen einberechnen, was dann während des Spiels zu einer Reduktion der Produktionsmengen führt. Das würde letztendlich nur zu einer Nachricht führen die eine neue Produktionsmenge meldet.

Die Implementierung der ganzen Neuerungen hat verhältnismässig wenig Zeit in Anspruch genommen, weil ich eben sehr viel Zeit in die Realisierung des Code-Generators gesteckt habe. Das führt dazu das sich schnell neue Strukturen oder Nachrichten und Objekte realisieren lassen.

Eigentlich funktioniert jetzt alles. Es mangelt lediglich an einer Oberfläche. Im Moment habe ich das ganze nur mit einfachen PHP Scripten getestet, die die entsprechenden Nachricht an die Simulation sendet und das Ergebnis ausgibt.
Wirklich Testen kann man das aber noch viel besser mit einer richtigen Oberfläche.
Registrierung und Login sind Dinge die ausschliesslich im Frontend realisiert werden. Die Simulation kümmert sich wirklich nur um die Spielemechanik. Alles andere wird im Frontend geregelt.

So. Das solls erstmal gewesen sein.
Wenn ich jetzt also noch Registrierung und Login als Web-Seiten hinkriege könnte man sich sogar anmelden, auch wenn noch keine besondere Funktion vorhanden ist, ausser das die Lager immer voller mit Resourcen werden.
„Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.“Albert Einstein
Das Entwickler BLOG
Pierre-Romain Main Page

simbad

Profi

  • »simbad« ist der Autor dieses Themas

Beiträge: 1 148

Wohnort: Berlin

Beruf: Software Entwickler

Danksagungen: 267

  • Nachricht senden

115

Dienstag, 29. Dezember 2015, 15:57

Heute habe ich die Benutzerverwaltung, in einem äusserst rudimentären Mass, in die PostgresQL DB eingebaut. Diese besteht aus der Tabelle, und einigen Stored-Procedures zum Anlegen/Löschen/Ändern der Daten.

Dann ist es ja so, dass wir 8 unterschiedliche Völker planen, die sich durch eine ganze Reihe von Parametern unterscheiden. Das einfachste ist die Gravitation die sie für einen Planeten bevorzugen, aber auch solche Dinge wie Reproduktionsrate, unterschiedliche Bauzeiten für militärische und zivile Gebäude, Kampfmoral, Effektivität beim Fördern von Rohstoffen und noch einiges mehr soll zwischen den Völkern differieren.

Diese Informationen werden in den Völker-Templates hinterlegt und beim Erzeugen eines Spielers übertragen. Wenn diese Daten während des Betriebs geändert werden, dann bekommen die bereits bestehenden Spieler davon nix mit, was natürlich keinen Sinn macht. Im Moment müsste man die Daten aller Spieler aktualisieren, was nicht weiter schlimm ist, und das System neustarten, was auch nur 30 Sekunden dauert.

Entscheidend dabei ist, das diese Parameter an alle Spielobjekte verteilt werden müssen und jedes Objekt sich die relevanten Informationen abspeichert. Diesen Broadcast Mechanismus habe ich heute auch schonmal für die bereits bestehenden Objekte implementiert.

Aktueller Status der Codebasis.

  • Das Spiel - 9700 LOC
  • Der Simulationskern - 3600 LOC
  • Der Code-Generator - 7700 LOC


Der Start braucht hier zu Hause, wo DB-Server und Simulationsrechner übers Netz gekoppelt sind, ca 22 Sekunden zum Laden der Daten + 5 Sekunden Initialisierung zum Starten. Nach dem Start werden ca. 1.3GB RAM belegt
„Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.“Albert Einstein
Das Entwickler BLOG
Pierre-Romain Main Page

simbad

Profi

  • »simbad« ist der Autor dieses Themas

Beiträge: 1 148

Wohnort: Berlin

Beruf: Software Entwickler

Danksagungen: 267

  • Nachricht senden

116

Donnerstag, 31. Dezember 2015, 16:02

Heute ist der größte Teil des TechTrees entstanden. Alle Technologien werden als Spiel-Objekte betrachtet und enthalten eine unbegrenzte Liste von Resourcen mit Mengen die bereitstehen müssen um die neue Technologie forschen zu können und eine unbegrenzte Anzahl von Vorbedingungen die erfüllt sein müssen, inklusive eines Levels der erreicht sein muss, damit man die Technologie erforschen kann.
Jedes der 8 Völker hat grundsätzlich seinen eigenen TechTree, wobei es aber auch Überschneidungen geben wird.

Der Techtree wird als Excel-Tabelle abgespeichert. Das Format der einzelnen Zeilen ist dabei fix vorgegeben, was im Moment nicht anders geht, aber eventuell später nochmal geändert wird. Ein Export des Excel-Blattes als CSV-File wird von einem kleinen C-Programm in eine Reihe von SQL-Statements zerlegt und dann per Stored Procedure endgültig in die DB transportiert. Beim letzten Schritt werden die ganzen als Texte definierten Werte in ihre Zahlenwerte konvertiert und das ganze dann passend in die Tabellen verteilt.

Der Code-Generator musste nochmal ein wenig angepasst werden, da geht es aber eher um Kleinigkeiten die ich bisher ignoriert habe und nun eben brauche.

  • Das Spiel - 10000 LOC
  • Der Simulationskern - 3600 LOC
  • Der Code-Generator 7925 LOC


So und nun ....

Ein frohes Feiern und schadfreies Rutschen in das nächste Jahr.
Danke das ihr alle soviel Geduld habt.
„Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.“Albert Einstein
Das Entwickler BLOG
Pierre-Romain Main Page

Beiträge: 892

Danksagungen: 323

  • Nachricht senden

117

Samstag, 2. Januar 2016, 16:52

Cool! Schön zu lesen, dass es jetzt so toll vorangeht :)

simbad

Profi

  • »simbad« ist der Autor dieses Themas

Beiträge: 1 148

Wohnort: Berlin

Beruf: Software Entwickler

Danksagungen: 267

  • Nachricht senden

118

Sonntag, 3. Januar 2016, 16:03

Ja. Es geht voran.
Es gibt jetzt Definitionen für eine Reihe von Minen die die Basis-Resourcen erzeugen sollen. Die sind aber noch nicht ganz fertig. Zumal auch der Mechanismus zum Erzeugen der Minen-Gebäude erstmal gebaut werden muss. Da habe ich erstmal die Kommunikation zwischen den einzelnen Beteiligten Objekten definiert.

Der aktuelle Ansatz, und der wird wahrscheinlich auch Grundsätzlich so bleiben, ist folgender.
Die Anforderung geht an das Spieler-Objekt. Dort wird geprüft ob die benötigte Technologie bereits erforscht ist. Wenn das der Fall ist, werden die Resourcen-Anforderungen für den Bau der Mine in die Nachricht transferiert.
Die Nachricht geht nun an den Planeten auf dem Gebaut werden soll wo geprüft wird ob die benötigten Resourcen verfügbar sind.
Sind die Resourcen verfügbar geht das ganze and die Imperiale Administration, die dann das Objekt erzeugt, falls nicht noch irgendwas dazwischen kommt. Es wird eine Antwort-Nachricht generiert und die Id der Mine darin verpackt. Die Antwort wird zum Beispiel auf dem Planeten benutzt um die Mine in die Liste der Gebäude einzutragen im Player Objekt eine Nachricht auszulösen die die Spielerparameter verschickt und noch einiges mehr.
Am Ende existiert eine Mine die sich im Bau befindet. Nachdem der Bau abgeschlossen ist und die Mine Resourcen produziert sendet sie die Resourcen Info an den Planeten damit die Resourcen-Speicher die Produktionsmengen aktualisieren können.

Ich habe bestimmt noch was vergessen. Aber so in etwa wird es laufen. Mal schauen ob ich das bis morgen endgültig fertig bekomme.
„Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.“Albert Einstein
Das Entwickler BLOG
Pierre-Romain Main Page

simbad

Profi

  • »simbad« ist der Autor dieses Themas

Beiträge: 1 148

Wohnort: Berlin

Beruf: Software Entwickler

Danksagungen: 267

  • Nachricht senden

119

Freitag, 8. Januar 2016, 14:40

Ich muss im Moment auf den TechTree warten und noch ein paar andere Sachen absprechen was mich bei der Entwicklung des Spiels ein wenig ausbremst. :(

Aber dafür hatte ich ein bisschen Zeit mit mit WebSockets auseinander zu setzen. :D
Es ist eine Erweiterung für meine Simulation dabei herausgekommen die es einem Browser erlaubt per Web-Sockets auf die Simulation zuzugreifen. Das ganze ist noch nicht vollständig implementiert und ein kleiner Lasttest fehlt ja später auch noch, aber ich kann immerhin schon einen Text empfangen und senden.
Die Vorteile einer WebSocket Verbindung sind ja weithin bekannt. Für die Simulation sind sie einfach Unschlagbar, weil man fast direkt aus dem Browser heraus Daten aus der Simulation abrufen kann oder eben die Simulation auch einen spezifischen Client erreichen und mit Informationen versorgen kann. Der ganze Konvertierungs Part den ich im Moment mit JSON für die Frontend-Schnittstelle mache entfällt dabei. Es lassen sich Daten auch in binärer Form transferieren, was ja eh das interne Format für die Nachrichten ist.
Es fehlt auch noch die Erweiterung im Code-Generator damit ich den Code für die Serialisierung von Nachrichten gleich passend erzeugen kann. Perfekt wäre dabei auch gleich eine Umsetzung fürs JScript, damit man nicht bei jeder Änderung einer Nachricht den ganzen JScript Code durcharbeiten muss um es wieder zueinander passend zu machen. Aber das wird alles noch.

Mein Problem dabei ist ein ganz anderes.

Ich habe keine Ahnung wie man das in einem Browser vernünftig einsetzt.

Kleine Statistik:
  • Das Spiel - 11200 LOC
  • DerSimulationskern - 4600 LOC
  • Der Code-Generator - 7975 LOC
„Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.“Albert Einstein
Das Entwickler BLOG
Pierre-Romain Main Page

simbad

Profi

  • »simbad« ist der Autor dieses Themas

Beiträge: 1 148

Wohnort: Berlin

Beruf: Software Entwickler

Danksagungen: 267

  • Nachricht senden

120

Mittwoch, 9. März 2016, 07:37

Ha.
Wenn ihr gedacht habt ich gebe auf, dann habt ihr euch getäuscht. Folgendes ist also in den letzten Wochen passiert.

Ich habe schlicht die Aufgabe übernommen einen InGame-Chat zu bauen. Da das sinnvoller Weise in JScript mittels WebSockets realisiert werden soll und in meinem Simulationskern mittlerweile eine WebSocket Schnittstlele existiert, habe ich meinen Simulationskern als Basis genommen. Das ganze wird, wie sollte es anders sein, in UML modelliert und es werden nun zusätzlich JScript Files erzeugt, in denen zum Beispiel die Message-Dispatcher enthalten sind.
Der Datenaustausch erfolgt im JSON Format, es ist das gleiche Nachrichtenformat das auch für die "normale" Kommunikation mit der Simulation verwendet wird.
Am Ende hat mein Spiel auch was davon, da ich das Modell einfach in mein eigenes Spiel integrieren kann.

Da ich auf Tabellen in einer Maria/MySQL zugreifen muss hat die Simulation zusätzlich die Möglichkeit bekommen wahlweise PostgreSQL oder Maria/MySQL zu verwenden, wobei ich aber für meine eigenen Daten noch nicht mit der Implementierung fertig bin. Und ich brauchte eine Schnittstelle mit der ich beliebige Queries absetzen kann, was ebenfalls in den Simulationskern integriert ist.

Im Moment ist es so, dass ich für den Chat völlig auf meine eigenen DB-Tabellen verzichte, es werden keine Daten persistent gespeichert und folglich wird die Initialisierung der "Simulation", denn es ist ja in dem Fall nur noch ein Applikationskern, direkt im Code durchgeführt. Auch dazu sind einige Veränderungen nötig.

Trotz all dieser Aktivitäten hat sich auch bei der Spiele Entwicklung was getan.
Ich habe entschieden das MVC-Konzept auf das gesamte Spiel auszuweiten. Das bedeutet, das PHP/JScript & Co nur noch für das 'V' verwendet werden, was absolut Sinn macht, das der Simulationskern ja sowieso das Modell und die Controller enthält. Ursprünglich hatte ich die Idee wenigstens die einfachen Aspekte des Spiels in PHP umzusetzen, sowas wie Registrierung und Anmeldung, Session-Management etc.
Davon bin ich nun abgerückt und habe damit begonnen die Registrierung zu realisieren. Das braucht aber wegen der aktuellen Arbeitsbelastung, sowohl was den Job angeht als auch den Chat, noch ein wenig.

Die kleine Statistik über das Code-Volumen lasse ich hier mal aus. Kommt aber bestimmt beim nächsten Mal.
„Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.“Albert Einstein
Das Entwickler BLOG
Pierre-Romain Main Page

Social Bookmarks