Dev-Diary: The Illarion-Client - development and problems / Der Illarion-Client - Entwicklung und Probleme

Everything about Illarion that fits nowhere else. / Alles über Illarion was inhaltlich in kein anderes Board passt.

Moderator: Gamemasters

Post Reply
User avatar
Seajiha
Developer
Posts: 95
Joined: Sun Apr 03, 2016 12:02 pm

Dev-Diary: The Illarion-Client - development and problems / Der Illarion-Client - Entwicklung und Probleme

Post by Seajiha »

Hi there :) As you possibly know client development is occuring at a much slower pace than content development or server development, which was improved by an insane amount in the last months thanks to Vilarion. As development of the client is blocking some feature developments and you are using it (hopefully) every day, I wanted to shed a bit of light on why development of the client is especially slow, which features are coming to the client, and, if you are interested, how you can help accelerate things.

So bad things first: the slow development. It's not that hard to explain why it is slow, currently the client is maintained mainly by CJK and myself. That would be possibly fine if we had a lot of spare time, but both us are working (and CJK is also studying). I'm sure you can understand that after 8 hours of developing software in front of a monitor at work, your motivation to also develop software in front of a monitor during your spare time is relatively low. Instead time is spent with friends, family and activities that aren't just another type of work. Another reason is that some code in the client is quite outdated. This leads to a lot of delays, because instead of developing new features, first old code has to be cleaned up to be able to implement something new at all. There are of course also bugs, unsolved for more than 10 years, outdated librarys that have to be replaced... I guess you get the idea. Basically there is lots of work which stands in the way of making something new and also lots of work that isn't really fun to work on, while being very short of time.

Now to the nice things: what is in the pipeline for the next months. There are some things I have been working on and some of them are actually really nice. Let me just present the two I intend to get done next:
(1) Updating all our dependencies and switching to a newer Java version: this change will future-proof the client, giving it access to modern Java features. Also, as a bonus for the user, during my tests I noticed that the memory consumption and usage spikes were very significantly reduced.
(2) Replacing the GUI library with new one: the GUI library we are using is no longer maintained, with the last release in 2016 and the last change to the library in any way in 2019. Together with many other issues we already had with the GUI, this was an additional motivator for us to replace the library with another (the one bundled with our graphic-library, scene2dui). The GUI problems are a major impediment for implementing new features on the client-side (e.g. magic :p) so getting past this may allow us to move on to more fun things.

Other things that are on the 'To Do' list but without any timeline:
character and account creation, weather, ingame clock, new graphics for the GUI, (new graphics for the player character species?), light overhaul (eats a lot of memory), new gfx/sfx, make the movement less clunky, and much more.

Last part: how you can help. If you (or somebody you know) have a bit of time and you are able to develop in Java, we would be very happy for you to join us in client development to increase the pace. As you can see, there are many things to be done, so we will find something for you to do ;) If you have interest, should write me a message (via pm or Discord).

I hope I could give you a small insight into the client development, the obstacles and intentions for the future. Have a nice day, and dont forget, no matter what, the best thing you can do for Illarion is playing the game and roleplay :)

-------------------------------------------------------------------------------------------------------

Hey :) Wie euch sicher bewusst ist, ist die Entwicklung des Clients zurzeit deutlich langsamer als die Entwicklung der Spieleinhalte oder die des Servers, welches zuletzt durch Vilarion in extremen Maße beschleunigt wurde. Da der Client aber einige neue Features blockiert und ihr ihn (hoffentlich :P) jeden Tag verwendet, wollte ich in diesem Post mal ein bisschen Licht darauf werfen, wieso die Entwicklung eigentlich so langsam ist, welche neuen Features in den Client kommen sollen, und - wenn ihr interessiert seid - wie ihr helfen könnt, das ganze etwas zu beschleunigen.

Zuerst einmal die schlechten Dinge: die langsame Entwicklung. Es ist eigentlich ganz einfach zu erklären: Zurzeit wird der Client vor allem von CJK und mir entwickelt. Das wäre wahrscheinlich auch kein Problem, wenn wir viel Freizeit hätten, aber beide von uns arbeiten (und CJK studiert nebenbei noch). Ich denke mal, ihr versteht, dass man, nachdem man 8 Stunden vor einem Bildschirm gearbeitet hat und Software entwickelt hat, die Motivation relativ gering ist, auch noch in der Freizeit genau das Gleiche zu tun. Stattdessen verbringt man seine Zeit lieber mit Freunden, Familien und Hobbys die sich weniger wie Arbeit anfühlen. Ein anderer Grund ist, dass Teile des Codes im Client stark veraltet sind. Statt als coole neue Funktionen hinzufügen zu können, muss erst einmal jedes Mal alter Code entfernt und modernisiert werden. Und natürlich gibt es dann noch Bugs, die seit vielen Jahren auf eine Lösung warten und Abhängigkeiten die ebenfalls aktualisiert werden müssen, oft mit Breaking Changes... Ich denke ihr versteht worauf ich hinaus will: Es gibt viel notwendige Arbeit die uns daran hindert etwas neues zu implementieren und viel Arbeit die absolut trocken ist - während wir kaum Zeit haben.

Nun aber zu den schönen Dingen: was die nächsten Monate kommen soll. Es gibt einige Dinge an denen ich in der letzten Zeit gearbeitet habe und zwei davon möchte ich euch vorstellen:
(1) Alle Abhängigkeiten des Clients aktualisieren und die Java-Version updaten: hierdurch wird der Client wieder etwas mehr zukunftssicher und erlaubt es ihm moderne Funktionen der sich inzwischen doch teilweise deutlich gewandelten Programmiersprache Java zu verwenden. Als Bonuseffekt für den Nutzer: Während meiner Tests habe ich bemerkt, dass die Arbeitsspeicherauslastung und auch die extremen Nutzungsspitzen deutlich abgenommen haben.
(2) Der Austausch der GUI-Bibliothek mit einer Alternative: Unser UI-Framework ist leider schon lange nicht mehr aktuell: das letzte Release war 2016, die letzte Code-Änderung überhaupt 2019. Zusammen mit vielen anderen Problemen die wir bereits mit dem GUI hatten, hat uns dies davon überzeugt, dass es an der Zeit ist, die GUI-Bibliothek zu ersetzen (und zwar mit der, die mit unserem allgemeinen Spiel-Framework gebundlet ist). Dies ist für euch vor allem interessant, da es das GUI ist was viele größere neue Features im Spiel blockiert (*hust* Magie *hust*).

Andere Dinge, die auch noch auf der ToDo-Liste des Clients stehen aber keine definitive Deadline haben:
Charakter und Account-Erstellung, Wetter, Ingame-Uhr, Neue Graphiken fürs UI, (neue Graphiken für die Spielervölker?), Überarbeitung des Licht-Systems (das frisst zurzeit mit Abstand am meisten Arbeitsspeicher), neue GFX/SFX, flüßigere Bewegungen und vieles mehr.

Der letzte Teil: wie ihr helfen könnt. Wenn ihr (oder jemand den ihr kennt) ein bisschen Zeit habt und in der Lage seid, Java zu entwickeln, wären wir sehr glücklich, wenn ihr uns als neuer Entwickler für den Client unterstützen könntet. Damit könnten wir das Entwicklungstempo wahrscheinlich deutlich beschleunigen. Auf jedenfall gibt es genug zu tun. Bei Interesse wendet euch einfach an mich, am besten über Discord.

Ich hoffe ich konnte euch ein paar Neuigkeiten über die Cliententwicklung mitteilen, sowie über die dort vorhanden Probleme und Zukunftspläne. Habt noch einen schönen Tag und vergesst nicht, das beste was ihr für Illarion tun könnt, ist euch regelmäßig zum Spielen einzuloggen :)
Post Reply