Dieser Blog ist ab sofort unter http://tector.wordpress.com zu erreichen.
Hier wird der Blog nicht weiter gepflegt und bald abgeschaltet…
Neue Einträge gibt es nur noch unter oben genannter Adresse.
Dieser Blog ist ab sofort unter http://tector.wordpress.com zu erreichen.
Hier wird der Blog nicht weiter gepflegt und bald abgeschaltet…
Neue Einträge gibt es nur noch unter oben genannter Adresse.
Ich kann mich noch unscharf an einen meiner ersten Posts hier im Blog erinnern in dem es um Indie-Games ging.
Diese Thema möchte ich nun nochmal aufgreifen. Ich bin mittlerweile ein ziemlicher Fan des “Humble Indie Bundle”-Projektes geworden. Dieses Projekt bietet von Zeit zu Zeit “Pay What U Want”-Aktionen an in denen tolle Indie-Games verkauft werden und ein Teil des Erlöses für wohltätige Zwecke gespendet wird.
Momentan läuft die “Humble Voxatron Debut“-Aktion (nur noch 5 Tage). Dieses “Bundle” umfasst zwar nur die Alpha von Voxatron – aber wenn man mehr als den aktuellen Durchschnittspreis bezahlt bekommt man die beiden Titel “The Binding of Isaac” und “Blocks That Matter” dazu. Besonders letzteres Spiel hat es mir angetan:
Die Mischung von Tetris, Minecraft und Super Mario Bros. ist einfach genial, der Soundtrack super und es gibt einen eingebauten Level-Editor und jede Menge User-Content.
Daher kann ich nur jedem empfehlen bei dieser großartigen Aktion (und folgenden) mitzumachen!
Hallo verirrter.. äh.. verehrter Blog-Besucher
schon wieder sind über 3 Monate vergangen und hier gibt es keine Neuigkeiten im Blog zu lesen… Man, man, man.. das schleift aber auch. Ich muss mir wohl selbst mal auf die Finger haun..
Dass es hier keine Neuigkeiten zu lesen gab heißt aber nicht, dass es keine Neuigkeiten gibt! Im Januar und Anfang Februar habe ich sogar sehr gute Fortschritte gemacht (Galaxie und Flottenbewegungen). Danach hatte ich und habe immer noch leider wenig Zeit: In meinem alten Job musste ein Projekt abgeschlossen werden und nun habe ich einen neuen Vollzeit-Job und bin im Umzugstress. Außerdem habe ich momentan nur eine ziemlich schlechte Inet-Anbindung per Webstick..
Aber davon abgesehen: Ich habe zusammen mit Todoz wieder oft über das grafische Layout gesprochen.. leider sind wir bislang (trotz vieler Ideen und mehrerer Entwürfe) immer noch nicht auf einen gemeinsamen Nenner gekommen. Todoz hat dann aber auch die Jacqueline mit ins Boot geholt, die wirklich hammergute Avatarzeichnungen anfertigen kann und wird.
Mehr Infos: bald!
Bevor ich es vor Weihnachten doch noch komplett vergesse hier der versprochene Post ^^.
Wie bereits geschrieben habe ich vor kurzem wieder verstärkt an Nouron gearbeitet. Vor allem noch am neuen Galaxiesystem und den Flottenbewegungen.
Ich habe dabei ein paar Entscheidungen getroffen: um in etwas schneller voran zu kommen habe ich ein paar geplante Features in beiden Systemen erstmal auf Eis gelegt. Es handelt sich dabei um die Handelsrouten und Sternstraßen sowie der damit verbundenen komplizierten Wegberechnung bei Flottenbewegungen. Diese Features werden also vorerst nicht implementiert – ich behalte sie jedoch im Hinterkopf und werde sie noch in Angriff nehmen, sobald eine halbwegs ausgereifte, spielbare Spielversion fertiggestellt ist.
Wie laufen nun die Flottenbewegungen?
Der Spielmechanismus ist in etwa wie folgt:
Dann wird im Hintergrund der Pfad berechnet und in die Db gespeichert. Bei der Tickberechnung wird dann der Befehl für den aktuellen Tick ausgeführt.
Wie wird der Pfad berechnet?
Wichtig ist es mir, dass die Flotten immer eine richtige Position in der Galaxie haben. Bei vielen Browsergames ist es so, dass man Flotten zwischen Start und Ziel nicht verfolgen kann. Man kann sie nicht auf der Karte sehen und man sie nicht von der aktuellen Position aus einen neuen Befehl geben oder als gegnerischer Spieler abfangen oder ähnliches..
Wie erreiche ich das nun? Die Pfadberechnung berechnet momentan nur eine Linie von A nach B. Jeder Punkt der Linie entspricht einem Punkt im Koordinatensystem der Galaxie. Es gibt dabei ein Problem: wenn der Flug von A nach B mehrere Ticks dauert, wo steht dann die Flotte nach 1,2 oder 3 Ticks genau? Also auf welcher Koordinate. Und wie genau ist das bei schrägen Linien? Ich habe mich bei der Lösung dieses Problem einem Algorithmus aus der Computergrafik bedient: dem Bresenham-Algorithmus (den ich jetzt hier aber nicht erkläre ^^).
Der Algorithmus berechnet die Punkte um eine Linie als Rastergrafik darstellen zu können. Jetzt habe ich aber das Problem, dass ich gar nicht jeden Punkt brauche und aus Speicher- und Performancegründen auf unnötige Punkte verzichten will. Hierfür habe ich den Algorithmus modifiziert und nur die Pfad-Punkte gespeichert wo die Flotte quasi zwischen zwei Ticks “parkt”. Lol, ich glaube das hat man jetzt nicht so richtig verstanden.
Also Beispiel: Wenn ich von Punkt (0,0) nach Punkt (100,100) fliege und der Flug drei Ticks braucht aber die Linienalgorithmus mir 100 Pfadpunkte berechnet, dann speichere ich nur die Punkte, wo die Flotte bei Tick 0,1,2 und 3 steht:
| Tick | Koordinaten |
| 12345 | (0,0) |
| 12346 | (33,33) |
| 12347 | (66,66) |
| 12348 | (100,100) |
Das funktioniert soweit ganz gut. Ein Problem gibt es noch: Bislang bin ich von einer Standardgeschwindigkeit ausgegangen. Flotten haben aber nicht immer die gleiche Geschwindigkeit.
Die Lösung hierfür ist aber relativ einfach:
Die Flottengeschwindigkeit ist gleich der Geschwindigkeit des langsamsten Schiffstyps in der Flotte.
Und diese errechnete Geschwindigkeit wird dann als Parameter an die getPath()-Funktion mit dem modifizierten Bresenham-Algorithmus übergeben und fertig.
So ich hoffe der Artikel hat mal wieder ein paar interessante Einblicke in die Entwicklung von Nouron gewährt.
Bleibt mir nur jedem der das hier liest ein frohes Weihnachtsfest und einen guten Rutsch ins Jahr 2011 zu wünschen!
Ja, momentan geht es wieder etwas voran. Ich arbeite an der Galaxie und den Flottenbewegungen..
Ich werde dazu demnächst hier ausführlicher berichten.