sechsta sinn Tagebuch http://www.sechsta-sinn.de RSS 2.0 Feed fuer das sechsta sinn Tagebuch de-de Copyright (c) by sechsta sinn 2008 Tue, 06 Mar 2007 01:16:51 +0000 Jochen Joosten (Projektleiter), 18.11.2011 22:07 Die Verbotene Welt wieder ein ganzes Stück aktiver geworden, auch diesese Wochenende haben wir wieder ein Treffen in Lövenich und Matthias, Julius, Gereon, Raphael und ich sind aktiv. Einen kleinen Eindruck von aktuellen Themen möchten wir schon zum Start des Treffens geben: Raphael arbeitet nebenbei an Start-Screens, die beim Laden einer Mission oder Karte gezeigt werden können. Für eine Map mit dem Titel "Frostbyte" ist das folgende Bild entstanden:


Frostbyte Startscreen ]]>
Jochen Joosten (Projektleiter) <info@sechsta-sinn.de> http://www.sechsta-sinn.de/?destination=tagebuch/tagebuch.php&anchor=181120112207
Matthias Gall (Leitender Programmierer), 16.02.2011 01:22 Wir leben noch, wir feiern aber nur noch Geburtstage!

Raphael hatte schon am 13. und wir haben's mal wieder vergessen. Zugegeben, Christopher hat mich auf Forenpostings aufmerksam gemacht die gezeigt haben dass wir da schonmal besser waren, aber nun ist's zu spaet... anyway:
Happy Birthday Raphael!

Ausserdem hat Jochen heute Geburtstag. Auch hier wuenschen wir natuerlich
Happy Birthday Jochen! ]]>
Matthias Gall (Leitender Programmierer) <info@sechsta-sinn.de> http://www.sechsta-sinn.de/?destination=tagebuch/tagebuch.php&anchor=160220110122
Raphael Lübke (Grafiker), 19.11.2010 11:47 Hier auch endlich mal wieder ein paar Screenshots.



Der Statistikbildschirm ist fertig!



Hier sieht man einige der neuen Stadtgrafiken, die ich gemacht habe:

]]>
Raphael Lübke (Grafiker) <info@sechsta-sinn.de> http://www.sechsta-sinn.de/?destination=tagebuch/tagebuch.php&anchor=191120101147
Raphael Lübke (Grafiker), 14.11.2010 01:23 Von einem produktiven 6S-Treffen nun mal wieder ein Tagebucheintrag von mir, aufmerksame Verfolger unseres Projekts werden sicher bemerkt haben, dass wir schon den ein oder anderen Tag zusammen arbeiten, klar dass wir uns alle mit der Zeit durch unseren natürlichen Alterungsprozess verändern. Damit ihr alle rein teamoptisch auf dem Laufenden bleibt, habe ich ein paar Photos geschossen:



Das ganze Team, ein Glück hat die Kamera einen Selbstauslöser, sonst hätte man mich nicht sehen können.












Matthias ist schon ein Phänomen - während wir alle über wachsende Geheimratsecken klagen, scheint seine Haarpracht mit zunehmendem Alter immer praller zu werden!





Grüße auch vom ganzen Team,

Raphael

]]>
Raphael Lübke (Grafiker) <info@sechsta-sinn.de> http://www.sechsta-sinn.de/?destination=tagebuch/tagebuch.php&anchor=141120100123
Matthias Gall (Leitender Programmierer), 17.09.2010 00:33 Diplomarbeit erwähnt und das wollen wir euch nicht vorenthalten:

Das bekannteste Hobbyspieleentwicklerprojekt ist jedoch Die Verbotene Welt von Sechsta Sinn. Das Team aus 15 Mitgliedern arbeitet seit neun Jahren, sofern es die freie Zeit neben dem Job zulässt, immer mal wieder an dem futuristischen RTS-Spiel. Was dabei entsteht, kann sich sehen lassen und weckte ebenfalls Interesse für eine kommerzielle Veröffentlichung. Leider ist nicht ganz klar, ob und wann das Spiel fertig werden wird. Dafür haben Sechsta Sinn schon zweimal auf der Dusmania – dem wichtigsten Hobbyentwicklertreffen Deutschlands - den Preis für das beste dort vorgestellte Projekt gewonnen. Außerdem sind sie mit ihrem Spiel über die Grenzen Deutschlands hinaus bekannt.

Besonders wichtig ist dem Team, den Kontakt nicht nur online über einen eigenen Chatchannel aufrecht zu halten und so gibt es trotz der langen Entwicklungszeit und der Größe des Teams regelmäßige Treffen. Eine genaue Projektplanung existiert aber nicht:

„Die Erfahrung hat gezeigt dass z.B. Termine für ein Hobbyteam einfach nicht funktionieren.“, so Matthias Gall, leitender Programmierer von 6S.

Zwar hat das Team die nötige Professionalität, Ideen für Missionen, eine ausgebaute Hintergrundgeschichte und die eigene Engine mit Missionseditor, allerdings fehlt die Zeit, das Projekt fertig zu stellen. Schließlich arbeiten alle Teammitglieder lediglich in ihrer Freizeit daran, was voraussetzt, dass Die verbotene Welt noch Spaß macht und das ist unter Zeitdruck selten der Fall.

Wir gratulieren Jana zu ihrer gelungenen Diplomarbeit und bedanken uns herzlich für die Erwähnung! ]]>
Matthias Gall (Leitender Programmierer) <info@sechsta-sinn.de> http://www.sechsta-sinn.de/?destination=tagebuch/tagebuch.php&anchor=170920100033
Matthias Gall (Leitender Programmierer), 23.05.2010 01:24 Gereon horcht inzwischen an der Matratze, hat aber heute z.B. daran gearbeitet, dass die Einheiten sich ordentlich an einer Frontlinie verteilen, ist dabei aber an Lua verzweifelt und wuenscht sich nichts sehnlicher als echte Pointer.

Meine lieben Kollegen aus der Programmierer-Fraktion, Christopher und Julius, vermissen wir schmerzlich. Chris hat diesmal leider keine Zeit und Julius ist krank ausgefallen - wir hoffen, ihn morgen noch hier zu sehen und wuenschen von hier aus gute Besserung!

]]>
Matthias Gall (Leitender Programmierer) <info@sechsta-sinn.de> http://www.sechsta-sinn.de/?destination=tagebuch/tagebuch.php&anchor=230520100124
Matthias Gall (Leitender Programmierer), 24.11.2009 22:56
Unser Geri hat heute Geburtstag!
Das Team gratuliert ganz herzlich und wünscht alles Gute!

]]>
Matthias Gall (Leitender Programmierer) <info@sechsta-sinn.de> http://www.sechsta-sinn.de/?destination=tagebuch/tagebuch.php&anchor=241120092256
Christopher Schleiden (Programmierer), 22.11.2009 14:48


Matthias hat wieder einmal grosse Fortschritte beim Pathfinding gemacht, unser Jeep parkt jetzt z.B. sinnvoll rueckwaerts aus. Ich selber habe mich weiter um das Laden/Speichern gekuemmert, wobei ich insbesondere ein paar fiese Bugs im Zusammenhang mit unseren LUA 4 KI Skripten in Zusammenarbeit mit Gereon behoben habe. Somit steht endgueltig das Grundgeruest fuer dieses wichtige Feature und es fehlen nur noch Detailkorrekturen (spezielle Statusvariablen von einzelnen Einheiten) damit auch alle Animationen beispielsweise nach dem Laden ohne Probleme weiter abgespielt werden.



Als kleine Entschaedigung an alle treuen Leser, dass hier in letzter Zeit so wenig los ist, haben wir mal einen groesseren Screenshot zusammengebastelt. Er zeigt einen ueberlegenen KPB Spieler und einen Bunkermenschen Gegner in den letzten Zuegen (Klick fuer volle Groesse):



]]>
Christopher Schleiden (Programmierer) <info@sechsta-sinn.de> http://www.sechsta-sinn.de/?destination=tagebuch/tagebuch.php&anchor=221120091448
Matthias Gall (Leitender Programmierer), 21.11.2009 22:35 DVW.

Wie ihr bereits per Twitter gelesen habt haben wir uns zu einem Grossteil den aktuellen Bugs und Problemchen gewidmet. Jochen und Gereon arbeiten an Karten und KI und melden dabei allerlei Wuensche und Fehler an, mit denen wir uns beschaeftigen. Immerhin sind wir auch bei zwei groesseren Themen, naemlich Laden/Speichern und dem Pathfollowing, ein gutes Stueck weitergekommen. Einheiten fahren z.B. nun rueckwaerts aus einem Nadeloehr und auch komplexere Zustaende in der Lua VM lassen sich (de)serialisieren.

Das ist gerade bei Gereon's "ntroKI" wichtig, die ihre Aufgaben in verschiedenen States ueber Frames verteilt, um im verfuegbaren Rahmen von wenigen Millisekunden zu bleiben. Da sich DVW Renderlogik und KI einen Thread teilen koennen wir hier nirgends ueber die Straenge schlagen und muessen gerade komplexere Graphenalgorithmen, wie Gereon sie in Lua implementiert hat, kurz und performant halten.

Natuerlich planen wir auch ohne Grafiker, noch ein paar Kleinigkeiten als Bilder zu veroeffentlichen, also bleibt dran. ]]> Matthias Gall (Leitender Programmierer) <info@sechsta-sinn.de> http://www.sechsta-sinn.de/?destination=tagebuch/tagebuch.php&anchor=211120092235 Matthias Gall (Leitender Programmierer), 16.11.2009 14:51

Unser Martin hat heute Geburtstag!
Das gesamte Team gratuliert dir herzlich und wuenscht alles Gute zum Geburtstag!

]]>
Matthias Gall (Leitender Programmierer) <info@sechsta-sinn.de> http://www.sechsta-sinn.de/?destination=tagebuch/tagebuch.php&anchor=161120091451
Gereon Bartel (Leitender Tester), 20.09.2009 02:59
KI Front
]]>
Gereon Bartel (Leitender Tester) <info@sechsta-sinn.de> http://www.sechsta-sinn.de/?destination=tagebuch/tagebuch.php&anchor=200920090259
Matthias Gall (Leitender Programmierer), 22.07.2009 01:15 sechsta sinn aktuell wenig Zeit bleibt. Ich selbst habe keine andere Entschuldigung als die, dass die Arbeit derzeit sehr schlaucht... Aber wir planen das nächste Treffen und werden wenigstens hier wieder Fortschritte erziehlen. Mal sehen, ob 2012 realistisch bleibt... ;-) ]]> Matthias Gall (Leitender Programmierer) <info@sechsta-sinn.de> http://www.sechsta-sinn.de/?destination=tagebuch/tagebuch.php&anchor=220720090115 Matthias Gall (Leitender Programmierer), 07.06.2009 20:17

]]>
Matthias Gall (Leitender Programmierer) <info@sechsta-sinn.de> http://www.sechsta-sinn.de/?destination=tagebuch/tagebuch.php&anchor=070620092017
Matthias Gall (Leitender Programmierer), 24.05.2009 03:54 Soviel sei bereits jetzt schon gesagt: ein Meilenstein ist erledigt. Ich habe ja einige Pathfinding- bzw. besser Pathfollowing-Themen lange vor mir her geschoben. Heute habe ich endlich dafuer gesorgt, dass Radfahrzeuge realistische Kurven fahren, bei Bedarf zuruecksetzen und den Kurs korrigieren. Fuer einzelne Fahrzeuge klappt das bereits ganz gut und ich moechte euch das gerne in einem kleinen Video zeigen. Beschleunigung ist noch nicht integriert, aber es sieht auch jetzt schon ganz ansehnlich aus. Im uebernaechsten Schritt kommt dann wieder das Gruppenverhalten an die Reihe - hier ist es wichtig, dass sich mehrere Einheiten nicht in die Quere kommen. Der aktuelle Plan ist, dass sich hier Einheiten einfach lokal (d.h. direkte Nachbarn) abstossen und so den Bewegungsvektor korrigieren. Ausserdem moechte ich so Formationen realisieren: Einheiten bemuehen sich einfach, die Abstaende zu ihren Gruppennachbarn aufrecht zu erhalten, sofern moeglich. Nur wenn es z.B. durch ein Nadeloehr geht muessen alle Einheiten naeher zusammenruecken. Das Verfahren habe ich bereits in einem Prototyp implementiert und gute Erfahrungen damit gemacht - der schwierigere Part ist leider ohnehin meist die Integration in DVW, denn der "historisch gewachsene" Code ist nicht immer fuer solche Erweiterungen geeignet.

Bald dann mehr in Form eines neuen YouTube-Videos. Gute Nacht und spaetestens bis zum naechsten Treffen! ]]> Matthias Gall (Leitender Programmierer) <info@sechsta-sinn.de> http://www.sechsta-sinn.de/?destination=tagebuch/tagebuch.php&anchor=240520090354 Raphael Lübke (Grafiker), 23.05.2009 12:56


]]>
Raphael Lübke (Grafiker) <info@sechsta-sinn.de> http://www.sechsta-sinn.de/?destination=tagebuch/tagebuch.php&anchor=230520091256
Raphael Lübke (Grafiker), 04.04.2009 03:29
Ah da fällt mir auf das ich in der Zeit wo ich diesen vollkommen Sinn- und Gehaltlosen Tagebucheintrag schreibe auch eine neue Grafik hätte gemacht haben können - oh zu viel Konjunktiv meint ihr nicht?

Auf jeden Fall ist es schön mal wieder auf einem Treffen zu sein. Ich habe beschlossen neben neuen Grafiken auch endlich mal vollwertige Skirmish Karten zu machen, damit aus diesem Projekt vielleicht auch irgendwann tatsächlich mal ein Spiel wird ;)
Bleibt dabei, es lohnt sich! (und ich verspreche es wird mindestens ein neues Bild nach dem Treffen zu sehen geben) ]]>
Raphael Lübke (Grafiker) <info@sechsta-sinn.de> http://www.sechsta-sinn.de/?destination=tagebuch/tagebuch.php&anchor=040420090329
Matthias Gall (Leitender Programmierer), 23.01.2009 21:26 Ich habe Raphaels Kartenmarkierungen eingebaut, unten seht ihr die mittlere und große Version:

Eigentlich wollte ich die Bilder hier jetzt noch schön per Lightbox oder Lytebox darstellen, aber natürlich klappt das dank Frames nicht... ich hab dann also im Endeffekt die Standard-Popups genommen. Ach, egal, die Seite muss eh mal neu gemacht werden. ;-) ]]> Matthias Gall (Leitender Programmierer) <info@sechsta-sinn.de> http://www.sechsta-sinn.de/?destination=tagebuch/tagebuch.php&anchor=230120092126 Christopher Schleiden (Programmierer), 07.01.2009 15:14 Im Grunde war ein Grossteil der Funktionialitaet bereits vorhanden, da unser Missionseditor MissEd natuerlich auch Karten und platzierte Einheiten speichern kann. Da in unserem Editor aber kein vollstaendiges Spiel laeuft (da es einfach nicht gebraucht wird) war es aber noch nicht moeglich z.B. den Status der lua-VMs zu speichern, die wir fuer KI- und Missionsskripte brauchen.

Damit bin ich dann auf dem letzten Treffen endlich fertig geworden und konnte Sonntag morgen somit zum ersten Mal einen Spielstand speichern und danach auch erfolgreich laden, inklusive des KI-Standes, der Missionsziele und irgendwelcher Kartenveraenderungen (Krater verursacht durch Einschussloecher o.ae.).

Ein paar Fehler gibt es zwar noch, aber das sind meistens nur Animationsfehler der Einheiten nach dem Laden, da manchmal nicht alle verwendeten Statusvariablen serialisiert wurden.

Was jetzt noch fehlt ist ein bisschen Code "drumherum", so soll z.B. in Zukunft noch ein Screenshot des aktuellen Spielstandes mit in ein Savegame geschrieben werden.

Sobald dann auch noch Integration ins Hauptmenue abgeschlossen ist, sind wir der Fertigstellung wieder mal ein (kleines) Stueck naeher gekommen. ]]> Christopher Schleiden (Programmierer) <info@sechsta-sinn.de> http://www.sechsta-sinn.de/?destination=tagebuch/tagebuch.php&anchor=070120091514 Gereon Bartel (Leitender Tester), 30.12.2008 18:09
Erstes Problem ist, dass bisher nur die engste Möglichkeit berechnet wurde Freund und Feind zu trennen. Diese Grenze ist natürlich aus beiden Perspektiven genau die gleiche. Wenn jetzt beide Gegner ihre Einheiten dort postieren werden diese aufeinandertreffen und sich sofort bekämpfen. Das hat also nicht viel mit Verteidigung zu tun, sondern eher mit der Verabredung eines Schlachtfeldes.
Es ist also nötig eine Stelle zu finden die zwar ein Engpass ist, aber gleichzeitig möglichst nahe an der eigenen Basis. Diese Änderung habe ich auf dem Treffen implementiert.

Ein weiteres und viel gravierenderes Problem ist jedoch die Laufzeit. Die Berechnung der Engpässe dauerte vor dem Treffen etwa 5 Sekunden (ohne die einmaligen Initialisierungen die nur zu Missionsanfang durchgeführt werden auf einem 2 GHz Rechner). Wenn ich diese also mitten im Spiel aufrufen würde um nach den aktuellen Gegebenheiten die Verteidigung zu platzieren würde das Spiel für 5 Sekunden stillstehen, bis die Berechnung fertig ist. Das ist natürlich für den Spieler inakzeptabel.

Um dieses Problem zu lösen habe ich einerseits versucht an den besonders teuren Stellen den Algorithmus zu optimieren. Das reicht natürlich bei weitem nicht, denn um eine Framerate von 30 Frames pro Sekunde zu ermöglichen darf die Berechnung maximal 30 Millisekunden dauern... und da ist noch nicht beachtet, dass der Rest des Spiels ja auch Rechenzeit benötigt... also 15 Millisekunden statt 5 Sekunden ca. 300 mal so schnell wie bisher.

Der große Trick um das hinzukriegen ist, dass die Engpässe ja nicht innerhalb eines einzigen Frames berechnet werden müssen. Der Algorithmus muss also so fein wie möglich in Einzelschritte aufgeteilt werden, so dass diese Frame für Frame ausgeführt werden können. Sowas ist in der KI auch bereits vorgesehen und wird für andere Teile der KI auch schon genutzt.
Den größten Teil des Treffens habe ich also damit zugebracht einen bereits funktionierenden Algorithmus in möglichst handliche Stücke einzuteilen.

Am Ende des Treffens kann ich sagen, dass ich viel geschafft habe. Der größte übrige Einzelschritt braucht auf meinem Testsystem "nur" noch 15 bis 16 Millisekunden. Das ist knapp an der Grenze und ich werde sicher irgendwann noch nachbessern müssen um auch auf langsameren Rechnern im Rahmen zu bleiben. Aber so läuft das ganze erstmal flüssig ... und die KI platziert ihre Einheiten immer noch nicht auf der ausgerechneten Front. ]]>
Gereon Bartel (Leitender Tester) <info@sechsta-sinn.de> http://www.sechsta-sinn.de/?destination=tagebuch/tagebuch.php&anchor=301220081809
Matthias Gall (Leitender Programmierer), 29.12.2008 04:34 sechsta sinn Treffen. Ich bin diesmal wieder mit von der Partie, nachdem wir ELFrun erfolgreich abgeschlossen haben, und bemuehe mich diesmal zunaechst um den MissEd Port fuer OSX - denn: ich habe der Einfachheit wegen nur das MacBook Pro mit. Ich war noch nie bei einem Treffen so schnell startklar :-)

Aktuell versuche ich, die wxWidgets Bibliotheken zu bauen und ins Projekt zu integrieren. Ich generiere dazu kein Framework, sondern erstelle Bibliotheken, die ich statisch linke, wie das hier beschrieben ist. Ausserdem benoetigen wir weitere Extensions, z.B. das wxPropertyGrid und STC. Ich baue gerade zum fuenfundzwanzigsten Mal... Falls jemand mehr Erfahrung mit sowas hat, freue ich mich ueber E-Mail! Zumindest die Intel-Version laeuft, am Universal Binary hapert's noch: hier gibt's Unresolved Externals fuer wxGLCanvas, STC und wxPropertyGrid - wxWidgets an sich scheint also erfolgreich zu linken, waehrend ich fuer die uebrigen Libs irgendwas uebersehen haben muss. Hier ist ein Shot, wie's aktuell aussieht.

Wie man sieht, gibt's hier noch einiges zu tun: Umlaute funktionieren nicht ordentlich, die Button- und Fenstergroessen sind anders als unter Windows bzw. GTK,...

Ausserdem mussten wir hier heute wieder einmal schmerzhaft feststellen, wie wir dafuer bestraft werden, dass wir kein Design Document gepflegt haben. Von Anfang an waren zwei Dinge vorgesehen: 1. Der Spieler wird mit einer Grundmenge an Ressourcen ausgestattet, die zum Levelstart zur Verfuegung stehen. 2. Schrott kann nur in begrenzter Menge z.B. in der Schmelze gelagert werden, man benoetigt Lager um mehr Kapazitaet zu gewinnen; der Sammler transportiert eine begrenzte Menge Material und muss sich Nachschub an Schmelze oder Lager abholen. Julius implementiert diese Logik und ist dabei auf interessante Fragestellungen gestossen, die wir nicht von Anfang an bedacht hatten: wohin gelangt das Startmaterial, wenn noch gar nichts existiert, was dieses Material beinhalten koennte? Woher erhaelt ein gebauter Sammler oder eine Schmelze dieses Material? Wird es "magisch" beim Bau zugewiesen? Was ist, wenn es in einer Karte schon von Beginn an mehrere Sammler/Schmelzen/Lager gibt? Wird das "Startkapital" dort gleichmaeszig verteilt? Und, wenn Schrott also in Lagern liegt, dieser aber nur zum Gebaeudebau explizit abgeholt werden muss, woher nimmt eigentlich dann eine Einheitenfabrik ihren Schrott? Und, und, und...

Die Konsequenz ist: Schrott existiert nur "global" und wird auf alle Lager gleich verteilt. Benoetigt ein Sammler mehr Schrott, als in einem Lager verfuegbar ist, wird er "gebeamt", d.h. er kann an einem Lager bzw. an einer Schmelze das komplette, theoretisch verfuegbare Material abholen. Wird ein Lager zerstoert, reduziert sich der Gesamtbetrag um den Anteil eines Lagers. Schrott fuer Einheiten wird ebenfalls "gebeamt" und direkt vom Gesamtbetrag abgezogen. Damit bleibt die strategische Bedeutung der Lager erhalten, aber wir haben intern nicht so eine wilde Rumrechnerei. Insbesondere wird der Spieler damit nicht genoetigt, Schrott zwischen Lagern manuell zu verteilen. Urspruenglich war uebrigens sogar geplant, dass der Schrott in der Schmelze zu Halbzeugen verarbeitet wird und diese dann in die Lager gebracht werden... den Schritt haben wir uebersprungen, um den Bauprozess nicht voellig zu verkomplizieren.

Das war's fuer mich an diesem Abend. Morgen mehr. ]]> Matthias Gall (Leitender Programmierer) <info@sechsta-sinn.de> http://www.sechsta-sinn.de/?destination=tagebuch/tagebuch.php&anchor=291220080434