Looking for New Client Maintainer

Unfortunately over the last year I have seen my available time to work on the client has dwindled and has not picked up like I thought it would. This isn't entirely fair to the community as there are some bugs that have stuck around that I haven't been able to put in the effort to fix.

Due to this I am putting out a call for anyone who is interested in picking up maintenance of the client. I am willing to walk anyone through the architecture and general structure of FAF. There are a few low hanging fruit that can be resolved as good introductions to working with the code base. The client is written in Java and utilizes Spring Boot. The UI is done in JavaFx with a rough Model-View-Controller architecture with FXML.

If you are interested feel free to respond to this post, on the client github, or find me on discord. A general description of the responsibilities can be found below.

As a maintainer your contributions are more subtle than just fixing bugs and implementing new features. You guide the project as a whole and help streamline contributions. This can be as simple as performing a code review to as complicated as ironing out entire new features that you then slice into small, digestible pieces for contributors to pick up.

This can consist of guiding the UI design of the client, gathering feedback from the playerbase, integrating with and extending the lobby server protocol and api, performance improvements, performing dependency updates, and creating alpha and production releases for the community.

Below is the client tech stack:

  • Java 21
  • JavaFX
  • Spring Boot
  • Project Reactor
  • JsonAPI

Additionally, I am also the maintainer for the map generator so if anyone has interest in that feel free to reach out as well.

Thank you for your service 🫡

I have next to no experience in Java, nor do I even really like the language, but I do have experience in .Net WPF.

I think I could put my dislike of Java aside for FAF at least and try helping out.

Yeah no worries snoog of you want to take a cursory glance at the repo and then we could find some time to meet up in discord or something to talk over a good first issue.

I have for a long time thought about actually contributing to different FAF code bases, but haven't taken up anyone's time with trying start since I'm not sure if I'll actually end up being consistent and didn't want to waste time. @Sheikah if you and @snoog do meet on discord, would you mind messaging me when that happens so I could at least be a fly on the wall assuming I can make my schedule work? Maybe I'll stop being lazy and actually try to make some contributions. My Java is unfortunately a decade out of date/practice though

Maybe we should just set something up with the 3 of us

If you’re doing a run through of the client I’d be interested in joining. I wouldn’t have much time available and have almost 0 experience of the coding language, so it would make sense for one of the other volunteers to take on the main role, but if I had a better understanding of the client I might be better able to contribute in the future

Another thought (sorry for the double post) - could you record your ‘client briefing’, a bit like what Jip did a while ago with some of his tutorials for doing work on the mainFAF code base? That way anyone interested in contributing who misses what you talk through would still have a basic starting point to refer to

For future reference:

As i have contributed to the client in the past, i might also help others with getting to know the code, if you didn't get the chance to look at it with Sheikah. However it has been quite some time so my knowledge might not be fully up-to-date.

This post is deleted!

I would like to be there as well. I thought about contributing to the client for some time now and recently I wrote a bit in Java so it seems like a perfect time. Obviously I am too inexperienced to be a maintainer but I would like to start contributing a little bit.

Not exactly a 'good-first-issue' feature but of those that would like to contribute - this would be a nice milestone to strive for:

A work of art is never finished, merely abandoned

I hereby nominate ChatGpt

@nuggets said in Looking for New Client Maintainer:

I hereby nominate ChatGpt

A simple ChatBot also does the trick. It just needs to comment each feature request with a "no" and each bug with "works as intended".

"Nerds have a really complicated relationship with change: Change is awesome when WE'RE the ones doing it. As soon as change is coming from outside of us it becomes untrustworthy and it threatens what we think of is the familiar."
– Benno Rice

For those interested I will be discussing the client architecture and structure in the FAF discord this Saturday June 29th at 18:00 UTC

Please do record it as I can't join but I'd love to view it.

A work of art is never finished, merely abandoned

For those who weren't able to join the recording can be found here https://youtu.be/j2LNWBdEiHU?feature=shared

Regarding the question at the end about development on a mac:

There is still the old mac-support branch that contained some changes to enable running the client on Mac:
https://github.com/FAForever/downlords-faf-client/compare/develop...feature/mac-support

However the client commit it is based on is massively out of date so you would have to check if these changes still apply/ are still needed and re-apply them to the current state of the client.

Has anybody claimed this yet? Java is my language of choice and have used JavaFX quite a bit. I'd love to get in on this.

If you are interested then you should feel free to reach out to me or start by tackling some of the issues to get an introduction to the code base.