Entwicklungs-Log 2007

(17.9.2007) Abschluss Milestone 1

So heute habe ich noch die fehlenden Funktionen des Milestone 1 eingebaut. Somit ist dieser Entwicklungsschritt abgeschlossen und es kann weitergehen zu MS 2 ;)

Der Code ist inzwischen auch nochmals etwas aufgeräumt worden. Hier mal ein Überblick über den Code:
 ClientServerCommon
Zeilen total: 5888 3518 385
Codezeilen: 3943 2236 236
Anz. Dateien: 59 38 4
Ist schon einiges zusammengekommen, in der nächsten Phase wird aber wohl vorallem der Server wieder viel Code zulegen, denke ich mal.

(16.9.2007) [Client & Server] Zwei Spieler

Heute habe ich den ersten Test mit mehr als einem Spieler gleichzeitig gemacht. Und auch da musste fand ich natürlich zuerst wieder einen schönen Bug.

Man sieht hier im zweiten Fenster (das im Hintergrund) irgendwie zwei rote Würfel sind. Und beide den gleichen Namen tragen. Naja das sollte nicht so sein. Bei meiner Suche habe ich dann zuerst mal geschaut ob der Code im Client stimmt. Und dort leider nichts gefunden. Danach den Servercode nochmals genauer angesehen aber auch dort war alles richtig. Die Lösung war ein fehlendes Update des Szenengraphen. Und jetzt stimmt auch wieder alles:

(14.9.2007) [Client & Server] Bugsuche 3

Und schon wieder musste ich einen Bug suchen. Beim drehen der Spielfigur gab es das Problem, das sich die Darstellung im Client von den Daten im Server gelösst hat. Und ich wusste nicht wieso. Dieses Problem trat allerdings nur bei einer Rechts-Rotation auf und auch nur wenn wir von der Roationsposition 0 auf die Rotationsposition 7 gewechselt haben (die Ausrichtung wird mit den Werten 0 bis 7 bezeichnet).

Nach längerer Suche habe ich dann herausgefunden dass das Problem im Server liegt und zwar bei der folgenden Code:

int d = char.getRotation() - 1) % 8;

Man sollte dabei einfach wissen, das die Java Modulofunktion anders arbeitet als man das aus dem Matheunterricht gewöhnt ist. Der Code gibt bei einem input von 0 eben dann -1 und nicht 7. *drop*

Naja der Bug ist behoben und der nächste kommt bestimmt

(13.9.2007) [Client & Server] Bugsuche 2

Auch heute habe ich ein grossteil meiner Zeit damit verbracht komische Bugs im Code zu suchen. Aber es gibt nebenbei auch noch wieder ein paar neue Erfolge. Die Anderen Objekte in der Map werden jetzt auch im Client dargestellt:

Man kann es nicht so gut sehen, aber zwei der drei blauen Würfel werden vom Server gesteuert.

(12.9.2007) [Server] Bugsuche

Nachdem es jetzt wieder möglich ist mit dem Client in die Welt zu kommen, habe ich einen kleinen Pseudobug im Server entdeckt. Naja es war nicht wirklich ein Bug.

Das Problem war, das sobald man in die Welt kommt, auch automatisch alle sichtbaren Objekte angezeigt werden sollten. Nur passierte das leider nicht. Also habe ich mich gewundert an was es lag, da der Code der das machen sollte ja eigentlich vorhanden war. Naja nur leider hat sich dort ein Überlegungsfehler reingeschlichen. Jetzt ist der Fehler jedenfalls behoben und es werden die Objekte korrekt angezeigt.

(7.9.2007) [Client] Bugsuche

Heute war es so weit, ich habe mich daran gemacht den Bug zu suchen, der mir beim Betreten oder neu laden der Map alle Farben des GUIs zerstört.


Hier sieht man wie die Farbe bei den Steuerelementen fehlt.


Und hier ist es gut, dafür fehlt die Gitteranzeige auf dem Grass.

Der Fehler hängt also irgendwie damit zusammen. So ganz genau weiss ich es aber auch noch nicht. Aber immerhin habe ich den Fehler mal gefunden.

(6.9.2007) [Client] Enter the world

So jetzt kann man wieder in die Welt rein. Aber viel mehr geht noch nicht.

Leider hat es noch einen Grafikfehler, den versuche ich noch irgendwie zu entfernen.

(30.8.2007) [Client] Deployment

In dieser Woche habe ich mal ein kleines Ant-Skript geschrieben, damit ich den Client auch ausserhalb meiner Entwicklungsumgebung einsetzten kann.
Das ganze war gar nicht so einfach, da der Client von ca 4 andern Projekten abhängt, die auf dem Classpath sein müssen und ich noch nie ein Ant-Skript selber geschrieben habe. Wobei mit dem Ant hatte ich eigentlich keine Probleme, mehr mit Java selber. Vorallem da Java beim laden eines Jars (java -jar XXX.jar) das -cp Flag nicht mehr berücksichtigt und ich mich die ganze Zeit gewundert habe wieso es nicht geht, die Abhängigkeiten waren ja angegeben.
Naja nachdem ich das dann alles im Manifest angegeben habe ging es alles ganz ohne Probleme.

Nach einem halben Tag testen und basteln habe ich es dann geschafft und jetzt habe ich ein schönes TeryaClient.app. Nur ist es noch sehr gross, muss mal schauen ob ich da noch etwas optimieren kann.

(21.8.2007) [Client] Online

Heute war ich das erste mal mit dem neuen Client online ;). Es ist jetzt möglich, sich bis in die Lobby zu begeben und es werden alle Charakter angezeigt die man hat.

Weiter habe ich noch festgestellt, das ich inzwischen schon ein ganzes Jahr an dieser Version am arbeiten bin. Die Schule fordert halt schon ihren Tribut, ich habe nicht so viel Zeit wie ich gerne haben würde um hier herumzubasteln. Auf der anderen Seite denke ich sollte ich dann auch wieder besser vorwärts kommen, sobald mal die Grundsachen aufgebaut sind und es nur darum geht weitere Funktionen einzubauen. Sprich dann wenn Milestone 1 fertig ist ;)

(17.8.2007) [Client] Fortschritt

Hier mal wieder ein paar neue Screenshots, bin der ganze Client nocheinmal am aufbauen. Jetzt wo ich begriffen habe, wie ich Guis in JME machen kann.

Der Client am Starten

Das Login-Fenster

Ingame Szene, im Moment noch eine TestMap, die Statisch im Client eingebaut ist. Das Interface ist schon fast fertig.

(Aug 07) [Client] Neueinstieg

Dank den Ferien hatte ich jetzt wieder Zeit und habe mich mal wieder an den Clienten gemacht, genauer genommen, an den Prototyp des Clienten, da ich ja mit meiner ersten Implementation gewisse Probleme hatte.
Inzwischen schaue ich aber etwas besser bei der 3D-Engine durch und ich komme darum auch mit dem Entwickeln besser voran.

Die Testmap ist wieder etwas kleiner geworden, da ich das ganze jetzt im richtigen Verhältnis zu dem Spieler gemacht habe. Bei den älteren Bildern war die Map jeweils noch um den Faktor 10 in der X-und Y-Richtung gestreckt.

(5. März 2007 - 5.8.2007) Entwicklungspause

Dank der Schule hatte ich keine Zeit für mein Hobby.

(28. Feb - 5. März 2007) [Client] 3d Rally 3

So die Engine für den Client befindet sich auf gutem Wege. Der Code ist inzwischen strukturiert und die meistens Bugs habe ich entfernen können. Ein Bug denn ich noch lösen muss, ist die Anpassung des Spielers an den Untergrund das sieht noch nicht besonders schön aus. Dann fehlt im Moment noch ein wichtiges Freature, dass ich noch implementieren will und zwar die Selektion, das ist in meinen Augen sehr wichtig, da ich das für die Interaktion im Spiel brauchen werde. Man muss ja irgendwie die Gegner anwählen können, damit man sie angreifen kann ;)

Nebenbei bin ich mir am überlegen, wie ich die Engine jetzt am besten in den Client einbauen soll, damit das ganze modular bleibt. Ich denke da finde ich aber auch noch eine brauchbare Lösung.

(26. Feb - 27. Feb 2007) [Client] 3d Rally 2

Habe am Client-Prototypen weitergearbeitet und bin mal ausnahmsweise recht gut vorangekommen. Man kann sich inzwischen bewegen und das ganze ist auch animiert (man sollte es also nicht mehr so gut merken, das man sich auch hier immer noch in einem Gitternetz bewegt.).

Und heute gibt es mal ein Film und keine Screenshots :)

(20. Feb - 25. Feb 2007) [Client] 3d Rally

So, so langsam komme ich im 3d-Universum zurecht. Ich habe die letzte Tage an einen neuen Prototypen für den Client gearbeitet. Da ich mit dem bisherigen Code komische, für mich nicht nachzuvollziehende Fehler hatte.

Und wie immer, bei Clientarbeiten, gibt es ein paar neue Bilder.

Es ist jetzt möglich Objekte genau zu positionieren und diese auch zu verschieben. Was jetzt noch fehlt, sind das laden von Models und das wiedereinbauen des Terrains.

(18. Feb - 19. Feb 2007) [Server] Bugsuche

Dank den Ferien äh Unterrichtfreienzeit die ich jetzt habe, hatte ich wieder Zeit mich um Terya zu kümmern.

Als erstes habe ich mal ein kleines Review des Server-Codes gemacht und dabei noch ein paar Bugs gefunden. Unter anderem konnte man mehrmals mit dem gleichen Account online kommen. Und es wurde kein Passwort überprüft. Jetzt sind die Bugs jedenfalls behoben und ich kann weiter machen.

(1. Jan - 4. Jan 2007) [Client] Bugsuche

Ich bin fleissig am Bug suchen komme aber nicht so vorwärts wie ich mir wünschen würde.

Nebenbei lese ich mich tiefer in die Theorie der 3d Engines ein. Damit ich auch mal verstehe, was ich da eigentlich am machen bin.