Downlord's FAF Client

Talk about general things concerning Forged Alliance Forever.

Moderators: FtXCommando, Ze Dogfather

Downlord's FAF Client

Postby Downlord » 02 Jun 2015, 01:59

Some will love it, some may hate it. No matter what people think, I will continue making it.

More information: http://faforever.github.io/downlords-faf-client/

Constructive comments and support is welcome!
Last edited by Downlord on 02 Jun 2015, 16:12, edited 1 time in total.
Working on FAF is my passion. Most of you know me for the feature-rich Downlord's FAF Client, but I also program and maintain the FAF server. Visit my Patreon page to get some insights on my work.
Downlord
Councillor - DevOps
 
Posts: 226
Joined: 14 Jul 2013, 14:55
Has liked: 161 times
Been liked: 213 times
FAF User Name: Downlord

Re: FAF Client 2.0

Postby quark036 » 02 Jun 2015, 02:54

So would the chat and hosting be separate from the current lobby? I appreciate the work you've done but that seems like it would start to split the community apart, depending on which lobby they like.
quark036
Avatar-of-War
 
Posts: 165
Joined: 11 Mar 2015, 03:17
Has liked: 10 times
Been liked: 26 times
FAF User Name: Quark036

Re: FAF Client 2.0

Postby Downlord » 02 Jun 2015, 03:01

It uses the same IRC channel an integrates with the normal FAF server, so no, it won't seperate the community at all :-) (see the screenshots)
Working on FAF is my passion. Most of you know me for the feature-rich Downlord's FAF Client, but I also program and maintain the FAF server. Visit my Patreon page to get some insights on my work.
Downlord
Councillor - DevOps
 
Posts: 226
Joined: 14 Jul 2013, 14:55
Has liked: 161 times
Been liked: 213 times
FAF User Name: Downlord

Re: FAF Client 2.0

Postby Ionic » 02 Jun 2015, 04:05

To confirm, this will be browser based? We don't need another standalone program.
Ionic
Avatar-of-War
 
Posts: 252
Joined: 25 Nov 2012, 20:00
Has liked: 14 times
Been liked: 14 times
FAF User Name: Ionic

Re: FAF Client 2.0

Postby nine2 » 02 Jun 2015, 06:06

Ok I love your enthusiasm and ideas ... but I really think you should work with the actual FAF developers and replace the actual FAF client. They would welcome you! On the other hand you can go rogue and do some random work and ... well I think it would be much better if you worked with the devs. There are other projects and considerations for the client that you may not be aware of (eg: security rework) and it just makes total sense for you to become one of the people working on this.

and please for the love of god allow me to search replays by two usernames, not just one
nine2
Councillor - Promotion
 
Posts: 2416
Joined: 16 Apr 2013, 10:10
Has liked: 285 times
Been liked: 515 times
FAF User Name: Anihilnine

Re: FAF Client 2.0

Postby Sheeo » 02 Jun 2015, 08:40

Hey Downlord,

We've talked about this on IRC before. I apreciate your work, it looks nice!

Some thoughts:

- While I agree the client can use some work, I'm not sure what you mean with "the design is flawed.". If you mean Python and or QT is a bad choice for implementation, then I disagree
- Until we have a stable server interface (It's subject to change a lot over the coming months), I don't think having a client fork is viable at all -- it will need to keep up to date with the interface while it is being developed, alongside the mainline client
- Having a large dependency like the JRE/JVM is a bad idea for a client this small in my opinion, and it would discourage me personally from using such a client


The "unexpected miracle" you're talking about on your sales page is a simple matter of people joining the project and helping out with developing the client, rather than spending time reimplementing it in language X and platform Y, because that's what they're familiar with.

As you know, you're very welcome to help us out with iteratively improving the client. We're not open to an official rewrite, however -- if that was our policy, we wouldn't get anywhere.

EDIT:

I'll add that you don't need to become a skilled Python developer to contribute to the client. While there are some hurdles in some cases with Python/QT interop, overall this project doesn't require that much knowledge of Python.

Should you decide to help us out with the official client instead, I'm glad to provide help with Python/QT (I'm no expert myself though).
Support FAF on patreon: https://www.patreon.com/faf?ty=h

Peek at our continued development on github: https://github.com/FAForever
Sheeo
Councillor - Administrative
 
Posts: 1038
Joined: 17 Dec 2013, 18:57
Has liked: 109 times
Been liked: 233 times
FAF User Name: Sheeo

Re: FAF Client 2.0

Postby Downlord » 02 Jun 2015, 13:21

In favor of keeping discussions efficient, I try to keep my answers short. Not meant to be rude!

Ionic wrote:To confirm, this will be browser based? We don't need another standalone program.

No it's standalone. It's not "another" but a replacement. dstojkov is already working on something web-based, even I'm not exactly sure what his goal is.

Anihilnine wrote:I really think you should work with the actual FAF developers and replace the actual FAF client. They would welcome you!

They are not open to a replacement (see post from Sheeo above).

Anihilnine wrote:[...] It just makes total sense for you to become one of the people working on this.

Well, as explained, I'm not supporting Python.

Anihilnine wrote:and please for the love of god allow me to search replays by two usernames, not just one

I surely will.

Sheeo wrote:I apreciate your work, it looks nice!

Thank you!

Sheeo wrote:I'm not sure what you mean with "the design is flawed"

Well, I admit that it's not too shabby. But here are some examples:
  • The repetitive and scattered write-to-server code that should be encapsulated, making it possible to mock it in order to test without an actual server
  • The half-native-half-webview that distributes the UI code to client- and server-side and different programming languages
  • The html-within-python-code (even the server sends HTML, like in error messages) which violates MVC
  • The hard-coded message strings which prevents localization
  • The hard-coded technical values like host/port which, again, prevents clean testing
  • The 2000 lines _clientwindow.py which clearly lacks separation of concern
Not to mention some of the client/server communication aspects, which can't be solved in the client alone however.

Sheeo wrote:Until we have a stable server interface (It's subject to change a lot over the coming months), I don't think having a client fork is viable at all -- it will need to keep up to date with the interface while it is being developed, alongside the mainline client

Go ahead! My implementation is ready for such changes :-) (the current client is not)

Sheeo wrote:Having a large dependency like the JRE/JVM is a bad idea for a client this small in my opinion, and it would discourage me personally from using such a client

The current client weights 42.5MiB packed and 111MiB unpacked.
My client (currently!) weights 15MiB (packed) or 20MiB (unpacked), 5-8MiB just because of that FAF uid.dll. If the user has no JRE installed, which they usually have, I'll have to embed one which adds 50MiB (packed) or 137MiB (unpacked) - no user action required. But that uid.dll again is a pain because it requires a 32-Bit JRE. I don't see why this should discourage anyone nowadays.

Sheeo wrote:The "unexpected miracle" you're talking about on your sales page is a simple matter of people joining the project and helping out with developing the client, rather than spending time reimplementing it in language X and platform Y, because that's what they're familiar with.

I get your point and I absolutely agree. But that "simple matter" just isn't reality; we don't get people with enough skill, time and will to do it. Now we can either keep sitting on our shards and wait forever for someone to come and fix it, or we replace it along with the promise of a single person (very convincing, isn't it :P) that the new thing won't turn into shards anytime soon.

Sheeo wrote:We're not open to an official rewrite, however -- if that was our policy, we wouldn't get anywhere.

From a political perspective I absolutely agree with that policy and I'm fine with it. Ironically however, this is pretty much how FAF got born back in GPG days (except it wasn't open source) - and we all know the results ;-)
Working on FAF is my passion. Most of you know me for the feature-rich Downlord's FAF Client, but I also program and maintain the FAF server. Visit my Patreon page to get some insights on my work.
Downlord
Councillor - DevOps
 
Posts: 226
Joined: 14 Jul 2013, 14:55
Has liked: 161 times
Been liked: 213 times
FAF User Name: Downlord

Re: FAF Client 2.0

Postby Sheeo » 02 Jun 2015, 13:51

Downlord wrote:
Sheeo wrote:I'm not sure what you mean with "the design is flawed"

Well, I admit that it's not too shabby. But here are some examples:
  • The repetitive and scattered write-to-server code that should be encapsulated, making it possible to mock it in order to test without an actual server
  • The half-native-half-webview that distributes the UI code to client- and server-side and different programming languages
  • The html-within-python-code (even the server sends HTML, like in error messages) which violates MVC
  • The hard-coded message strings which prevents localization
  • The hard-coded technical values like host/port which, again, prevents clean testing
  • The 2000 lines _clientwindow.py which clearly lacks separation of concern
Not to mention some of the client/server communication aspects, which can't be solved in the client alone however.


I agree with these concerns as technical problems, but I don't think choosing Java as a platform, or rewriting the entire client, makes up for solving them directly.

Downlord wrote:
Sheeo wrote:Until we have a stable server interface (It's subject to change a lot over the coming months), I don't think having a client fork is viable at all -- it will need to keep up to date with the interface while it is being developed, alongside the mainline client

Go ahead! My implementation is ready for such changes :-) (the current client is not)


This isn't meant offensively, but of course your client is ready for such changes -- it doesn't have a complete implementation for the current interface to change :)


Downlord wrote:
Sheeo wrote:Having a large dependency like the JRE/JVM is a bad idea for a client this small in my opinion, and it would discourage me personally from using such a client

The current client weights 42.5MiB packed and 111MiB unpacked.
My client (currently!) weights 15MiB (packed) or 20MiB (unpacked), 5-8MiB just because of that FAF uid.dll. If the user has no JRE installed, which they usually have, I'll have to embed one which adds 50MiB (packed) or 137MiB (unpacked) - no user action required. But that uid.dll again is a pain because it requires a 32-Bit JRE. I don't see why this should discourage anyone nowadays.


Indeed, this is more of a personal preference on my part.

Downlord wrote:
Sheeo wrote:The "unexpected miracle" you're talking about on your sales page is a simple matter of people joining the project and helping out with developing the client, rather than spending time reimplementing it in language X and platform Y, because that's what they're familiar with.

I get your point and I absolutely agree. But that "simple matter" just isn't reality; we don't get people with enough skill, time and will to do it. Now we can either keep sitting on our shards and wait forever for someone to come and fix it, or we replace it along with the promise of a single person (very convincing, isn't it :P) that the new thing won't turn into shards anytime soon.


I do believe it is. Currently the client isn't a priority, because the server and game code has been in much more need of improvement than the client.

You can say many things about the client and what you listed is valid, but it at least fulfills the most important virtue of code: It works.

Downlord wrote:
Sheeo wrote:We're not open to an official rewrite, however -- if that was our policy, we wouldn't get anywhere.

From a political perspective I absolutely agree with that policy and I'm fine with it. Ironically however, this is pretty much how FAF got born back in GPG days (except it wasn't open source) - and we all know the results ;-)


I don't think that's a comparable situation.

Anyway; I'm not against competition, but for the purposes of clarity I would like to ask you not to call your client "FAF v2" or to use the FAF logo as prominently--it's misleading since this isn't the entire community backing it, and donations towards your client do not go to the official FAF project.
Support FAF on patreon: https://www.patreon.com/faf?ty=h

Peek at our continued development on github: https://github.com/FAForever
Sheeo
Councillor - Administrative
 
Posts: 1038
Joined: 17 Dec 2013, 18:57
Has liked: 109 times
Been liked: 233 times
FAF User Name: Sheeo

Re: FAF Client 2.0

Postby Col_Walter_Kurtz » 02 Jun 2015, 14:00

I do feel that the FAF lobby looks outdated and is bugged. I'm not concerned about my own user experience, I'm not that arrogant, but I do worry about the impression new users get from the current client. If we want to attract new users and keep the playerbase healthy I think it is hugely important to make FAF as smooth and modern as possible.

So best of luck! Is there anything we can use and test before giving donations?
Col_Walter_Kurtz
Priest
 
Posts: 497
Joined: 28 Jul 2014, 10:42
Has liked: 42 times
Been liked: 45 times
FAF User Name: Apocalypse_Now

Re: FAF Client 2.0

Postby nine2 » 02 Jun 2015, 14:01

will the new project be open source? will sheeo have the ability to maintain and publish updates to it?
nine2
Councillor - Promotion
 
Posts: 2416
Joined: 16 Apr 2013, 10:10
Has liked: 285 times
Been liked: 515 times
FAF User Name: Anihilnine

Next

Return to General Discussions

Who is online

Users browsing this forum: No registered users and 1 guest