Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Custom client setup tutorial #14

Open
Znote opened this issue Nov 12, 2019 · 1 comment
Open

Custom client setup tutorial #14

Znote opened this issue Nov 12, 2019 · 1 comment
Labels
enhancement New feature or request needs-ui-implemtation The issue is well addressed but no UI wrapper to handle it in client.
Projects

Comments

@Znote
Copy link

Znote commented Nov 12, 2019

This isn't a code issue, but more like a doc/wiki feature request.

A big bonus would be to actually be able to do all this without editing sources and compiling the server. (Like a txt/config file).
Another bonus here could be that any player could remove this file and the OTU would return to a regular unmodified general-purpose state OTU client.

A source code modification tutorial that shows anyone how to tweak OTU to their server:


A basic custom client tutorial would consist of:

  • Remove ip/port/client option in client, and hardcode(default values) to an OT server.
  • Change the application title, background image in login screen.

Extras:

  • Change RSA tutorial (might as well contain both server and client setup). This serves as a small security bonus, and blocks other clients to be usable. (unless they know how to change rsa on them).
  • Buttons to click on to enter various website urls, etc click on "create account" to go to defined url where a player can create an account. Click on "website" to get to the front page of the website.

Advanced:

  • Set up auto-updater somehow (or find a way to notify old client users that their client is outdated)
  • Extendedopcodes to allow custom messages to be sent between server and client.

I believe this will encourage OT owners to give OTU a go, and ship OTU clients to the players. OT owners wants to ship a personalised client for their OT, because it looks cool branding wise. Currently their options are hacking the cipclient, or use OTClient.

@slavidodo slavidodo added enhancement New feature or request needs-ui-implemtation The issue is well addressed but no UI wrapper to handle it in client. labels Nov 15, 2019
@slavidodo
Copy link
Owner

  1. Every module that I developed is a general-purpose module; that means I kept almost every client version in mind to make the style looks like the original one! With the current UI system, I'm totally against having a custmoizable theme; You can even notice that in the background module; I use a different background for every version (that matches it).
  2. Changing the application title would break a few things and may crash the application due to the fact that Unity doesn't provide a mechanism to change application title during gameplay and I have to obtain the HWND (IntPtr in C#) - handle - of the window manually using a hard-coded string of the application title.
  3. Changing RSA; Having a key.pem would solve the issue and as you mentioned it'd still use default OT/Cip RSA based on the IP.
  4. Auto updater is some sort of an ambitious idea for now; as the client itself will still need far more important things before we can think of an auto-updater; I also believe that the updater itself should be a separate project.
  5. Extended OP-Codes should be easy as modifying the protocolgame is nothing more than adding a case to the switch or modifying the existing ones using (ClientSpecification).

Take for example the Login Module; it basically simulates the IP to select a specification while it's very hard-coded, such an improvement would require a lot of refactors.

I agree to these changes and even a video tutorial doing so might be good for people with no knowledge in programming. Though, I only disagree with having a client directly without compiling in Unity.

Unity is planning to release UIElements for runtime soon which will allow for a lot of things to be done!

@slavidodo slavidodo added this to To do in 2.0-final via automation Nov 15, 2019
@slavidodo slavidodo added this to To do in 2.1-final via automation Nov 15, 2019
@slavidodo slavidodo removed this from To do in 2.0-final Nov 15, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request needs-ui-implemtation The issue is well addressed but no UI wrapper to handle it in client.
Projects
2.1-final
  
To do
Development

No branches or pull requests

2 participants