Working on a new client

Forum for alternative clients, mods & discussions on the same.

Re: Working on a new client

Postby shubla » Mon Jan 10, 2022 5:57 pm

nikitron wrote:
Migration from JOGL to LWJGL currently is impossible - because you need to somehow get rid of AWT. There are a lot of hooks and mixing of jogl and AWT, it's hell.

Isn't AWT mostly used for some windowing stuff and input? Probably isn't too difficult to transition to lwjgl.
Image
I'm not sure that I have a strong argument against sketch colors - Jorb, November 2019
http://i.imgur.com/CRrirds.png?1
Join the moderated unofficial discord for the game! https://discord.gg/2TAbGj2
Purus Pasta, The Best Client
User avatar
shubla
 
Posts: 13043
Joined: Sun Nov 03, 2013 11:26 am
Location: Finland

Re: Working on a new client

Postby nikitron » Tue Jan 11, 2022 11:25 am

shubla wrote:
nikitron wrote:Migration from JOGL to LWJGL currently is impossible - because you need to somehow get rid of AWT. There are a lot of hooks and mixing of jogl and AWT, it's hell.

Isn't AWT mostly used for some windowing stuff and input? Probably isn't too difficult to transition to lwjgl.

I try to do a small experiment and for me - it's complicated. I try to use https://github.com/LWJGLX/lwjgl3-awt , but it still requires a lot of modification and refactorings. By desine LWJGL manage user input and context by self. In current code, I see a lot of reimplementing the default AWT behaviors, so it requires complete understanding......
nikitron
 
Posts: 7
Joined: Sun Dec 05, 2010 10:15 am

Re: Working on a new client

Postby APXEOLOG » Wed Feb 02, 2022 4:47 pm

TL;DR: JOGL or LWJGL? I'd have to figure out a solution either way


The main problem of the client rewrite is rendering. There are 2 ways:
1. Dead end way - pick any OpenGL binding and reimplement the current rendering. The problem here is that to obtain the best performance you need to have a deep knowledge of the rendering pipeline and techniques. People spend decades of 40-hour/week paid job to master that skill and move game engines forward. You definitely don't want to do that
2. Impossible way - pick any mature game engine (Unity, Unreal) and use it to render the game. The problem here is that all game assets are packed in a very specific handcrafted format. To re-use models, animations, textures, and everything else you will need to invest time creating a resource converter. There were converters to/from a very simple obj model format (and I did one myself), but the obj format lacks complexity and "better" formats are hard to grasp. There is also a possibility that we simply do not have some crucial info required to convert res into a mature 3d format

Due to the reasons above, I would not pick Java for the game client. Even for the (1) approach, it is better to use some mature game engine (at least with some built-in UI toolkit). Really, there is no reason to use Java - the game client "logic", apart from the UI (which ideally should be reused from some game engine), took me 3k lines of code to implement with zero code reuse from the original client (I'm talking about networking, resource handling, message processing, remote UI, and maintaining the "game world state" visible to the client)
W10 Meme Plot | W9 Mantis Garden | W8 Core | W7 Ofir | W6 the City of Dis | W5 Vitterstad | W4 A.D. | W3 Mirniy
jorb wrote:All your characters will be deleted, and I will level every village any one of them were ever members of.
User avatar
APXEOLOG
 
Posts: 1267
Joined: Fri Apr 23, 2010 7:58 am
Location: Somewhere on Earth

Re: Working on a new client

Postby shubla » Wed Feb 02, 2022 10:52 pm

I'm not too familiar with resource formats but I doubt that its impossible to convert them into more sensible formats. Difficult but not impossible. After all the client eventually passes them to OpenGL in which its very standardized how data should be loaded in, so you could try to reverse your way from how the data is loaded into OpenGL to figure things out maybe?
Image
I'm not sure that I have a strong argument against sketch colors - Jorb, November 2019
http://i.imgur.com/CRrirds.png?1
Join the moderated unofficial discord for the game! https://discord.gg/2TAbGj2
Purus Pasta, The Best Client
User avatar
shubla
 
Posts: 13043
Joined: Sun Nov 03, 2013 11:26 am
Location: Finland

Re: Working on a new client

Postby telum12 » Wed Feb 02, 2022 11:23 pm

It doesn't matter. This dude was doing this because he though he could make money off of it by running a closed-source client he would sell access to. He also had nowhere near the level of expertise to do a client-rewrite.
MagicManICT wrote:To me, being called a pedo is exactly like being called gay.

Jalpha wrote:She must have been in heat bro. She was literally fanging for it. Literally posting repeatedly in chat, in all caps "DO IT! POST YOUR DICK! THERE'S NO WAY IT'S 7 INCHES!"

How could any hot-blooded male deny such a request under the circumstances.
User avatar
telum12
 
Posts: 426
Joined: Mon Mar 12, 2012 10:36 pm

Re: Working on a new client

Postby AlexNT » Sat Feb 05, 2022 3:04 pm

APXEOLOG wrote: took me 3k lines of code to implement with zero code reuse from the original client (I'm talking about networking, resource handling, message processing, remote UI, and maintaining the "game world state" visible to the client)


Would you mind sharing how you handled the code that is loaded as part of resources ( InfoFactory Resource.getcode() )? Looking at the client code, this is the biggest pain point for me as of now.
AlexNT
 
Posts: 85
Joined: Wed Jun 06, 2018 1:13 am

Re: Working on a new client

Postby shubla » Sat Feb 05, 2022 3:36 pm

AlexNT wrote:
APXEOLOG wrote: took me 3k lines of code to implement with zero code reuse from the original client (I'm talking about networking, resource handling, message processing, remote UI, and maintaining the "game world state" visible to the client)


Would you mind sharing how you handled the code that is loaded as part of resources ( InfoFactory Resource.getcode() )? Looking at the client code, this is the biggest pain point for me as of now.

You manually implement every single class like that, that's the trick. I've tried to persuade loftar to make the code files part of the client but he refuses.
Image
I'm not sure that I have a strong argument against sketch colors - Jorb, November 2019
http://i.imgur.com/CRrirds.png?1
Join the moderated unofficial discord for the game! https://discord.gg/2TAbGj2
Purus Pasta, The Best Client
User avatar
shubla
 
Posts: 13043
Joined: Sun Nov 03, 2013 11:26 am
Location: Finland

Re: Working on a new client

Postby Kwing » Wed Feb 16, 2022 10:49 pm

Hi OP,

Here is my attempt to write new client from scratch.
https://github.com/alloploha/HHSwarm
Take any part of the code you need.

As noted by someone - use Unity. Separate GUI from network and from game model.
As per "executable resources" - the only option is to manually replicate and maintain them. Don't use Java. Java is dead.
I agree that original codebase design is the main issue of 99% of problems with stability and performance.

--
Sincerely,
Me
Kwing
 
Posts: 2
Joined: Sat Feb 02, 2019 5:25 pm

Re: Working on a new client

Postby APXEOLOG » Sat Mar 05, 2022 10:38 am

AlexNT wrote:
APXEOLOG wrote: took me 3k lines of code to implement with zero code reuse from the original client (I'm talking about networking, resource handling, message processing, remote UI, and maintaining the "game world state" visible to the client)


Would you mind sharing how you handled the code that is loaded as part of resources ( InfoFactory Resource.getcode() )? Looking at the client code, this is the biggest pain point for me as of now.


As it's been mentioned already, you do not want to "run" code resources, just handle the logic manually. All custom code is initied with array of argument which can be interpreted by you anyway. For example the `ui/tt/q/quality` resource which handles the item quality accepts one number as argument, so you can just create "quality" field on your item and store that number when encountering such resource type
W10 Meme Plot | W9 Mantis Garden | W8 Core | W7 Ofir | W6 the City of Dis | W5 Vitterstad | W4 A.D. | W3 Mirniy
jorb wrote:All your characters will be deleted, and I will level every village any one of them were ever members of.
User avatar
APXEOLOG
 
Posts: 1267
Joined: Fri Apr 23, 2010 7:58 am
Location: Somewhere on Earth

Re: Working on a new client

Postby OblongNoodle » Wed Jul 20, 2022 10:16 pm

This ever get anywhere
OblongNoodle
 
Posts: 45
Joined: Tue Jun 24, 2014 9:22 pm

PreviousNext

Return to The Wizards' Tower

Who is online

Users browsing this forum: No registered users and 6 guests