[7.0] Fully unobfuscated client source & more!

Posts 16–30 of 32 · Page 2 of 3
Quote Originally Posted by SSkilly View Post
Projectile collision is fine as is, I'm highly doubtful that porting it to work on the GPU would improve anything, would probably make things slower, simple distance checks are very fast calculations.
gpus are extremely fast on simple calculations, which is what collision is. a simple compute shader would greatly increase speed, granted that you batch upload easily usable data (hitboxes, positions, entity types) and do sanity checks on the end result, instead of each entity that's being looped.

it's not the distance checks that are the issue, it's the fact that projectiles are collisions are checked every update which then loops through the visible entity lists, performing checks on them. multiplying that by 250 (50*5, 50 projectiles, 5 tps (prod and many pservers), typical for a mbc fight with ally projs off) means that you have to have a 0.0668ms gethit (not counting the rest of the thread, the actual number is likely much lower due to c3d/r3d taking up a big chunk of cpu) if you want to keep 60 fps. that being said, this is mostly an issue for old pcs to compute or if you wish to push fps into the high 200s on newer pcs.

multithreading with workers might be an alternative solution, haven't tried as it looks pretty scuffed. (having to compile separate .swfs and run them in bg)

mentioned optimization ideas both as you said you were working on it past release and also for other people, as people who would go out of the convenience of just using an 'easier' source for fps might also welcome them. also mentioned that going too hard on optimization in flash might not be a bright idea, as at that point you could just port over to unity with nearly the same effort for more fps, tools, support.
Quote Originally Posted by FlutterM4rk View Post
gpus are extremely fast on simple calculations, which is what collision is. a simple compute shader would greatly increase speed, granted that you batch upload easily usable data (hitboxes, positions, entity types) and do sanity checks on the end result, instead of each entity that's being looped.

it's not the distance checks that are the issue, it's the fact that projectiles are collisions are checked every update which then loops through the visible entity lists, performing checks on them. multiplying that by 250 (50*5, 50 projectiles, 5 tps (prod and many pservers), typical for a mbc fight with ally projs off) means that you have to have a 0.0668ms gethit (not counting the rest of the thread, the actual number is likely much lower due to c3d/r3d taking up a big chunk of cpu) if you want to keep 60 fps. that being said, this is mostly an issue for old pcs to compute or if you wish to push fps into the high 200s on newer pcs.

multithreading with workers might be an alternative solution, haven't tried as it looks pretty scuffed. (having to compile separate .swfs and run them in bg)

mentioned optimization ideas both as you said you were working on it past release and also for other people, as people who would go out of the convenience of just using an 'easier' source for fps might also welcome them. also mentioned that going too hard on optimization in flash might not be a bright idea, as at that point you could just port over to unity with nearly the same effort for more fps, tools, support.
I still can't see it being faster with either GPU calculations or multithreading. I haven't tried either though
Quote Originally Posted by SSkilly View Post
I've done a lot more clean up and some optimizing past this release, so this version might be a tad bit slower).
Is this only client optimization or are you optimizing the server source as well? If so, will you be posting it here or is there a GitHub repo?
Quote Originally Posted by ERHRETSHJsrthrth View Post
Is this only client optimization or are you optimizing the server source as well? If so, will you be posting it here or is there a GitHub repo?
I am not optimizing the server source any further as it's no real use to me, it was made only to test out the client, though I'll say that's it is defenitely faster and more stable than the default NR Core, just because it has a lot of things removed. As to me uploading the more optimized client, I could do that, though past what I released here, the changes aren't really that special, it's mostly deleting useless files, code and assets (I got the compiled .SWF to be under 1MB, which is cool), so I don't really think it's worth another release.
Quote Originally Posted by SSkilly View Post
I am not optimizing the server source any further as it's no real use to me, it was made only to test out the client, though I'll say that's it is defenitely faster and more stable than the default NR Core, just because it has a lot of things removed. As to me uploading the more optimized client, I could do that, though past what I released here, the changes aren't really that special, it's mostly deleting useless files, code and assets (I got the compiled .SWF to be under 1MB, which is cool), so I don't really think it's worth another release.
If I were to re-add some features form NRCore (such as their rank system), would that basically revert your optimizations?
Quote Originally Posted by ERHRETSHJsrthrth View Post
If I were to re-add some features form NRCore (such as their rank system), would that basically revert your optimizations?
Nope, I'm heading more towards features like the market system which are quite heavy. I'd actually advise that you do add the rank system back, especially if you're looking to host a server, it won't slow anything down
i can't open the client... i used the 4.6 sdk, but it still not opening... idk why
client gets stuck on "Loading..." before even trying to connect
it's been compiled using flex 4.6, adobe AIR 3.1, swf version 14 in intelliJ idea 2019 1.2 as a flex desktop application with pure autoscript turned off, so don't really know what the issue could be because i have the server set up fine
Quote Originally Posted by lelerion View Post
client gets stuck on "Loading..." before even trying to connect
it's been compiled using flex 4.6, adobe AIR 3.1, swf version 14 in intelliJ idea 2019 1.2 as a flex desktop application with pure autoscript turned off, so don't really know what the issue could be because i have the server set up fine
You can set up a debug profile in IntelliJ and throw in a few breakpoints or traces along the startup sequence. Once you stop hitting breakpoints or see unexpected info in traces you should have found your problem.
Quote Originally Posted by AllYourX View Post
You can set up a debug profile in IntelliJ and throw in a few breakpoints or traces along the startup sequence. Once you stop hitting breakpoints or see unexpected info in traces you should have found your problem.
found the issue. in the task GetCharListTask, it tries to grab something from the URL "/char/list" which seemingly doesn't exist, causing it to hang before most things get loaded because it starts infinitely resending the same request. no idea how to fix this though.

edit: i downloaded redis explorer and it shows that my database is empty. guess it was an issue with the server and not the client. back to the drawing board i guess
Holy... !

I love it, i have been messing around with the server source and making it "complete" for me and my friends to play on locally. Havent had this much fun in ages, its so pretty and stable

Is there any way to add back pets in the client/source combo? I don't need it done ready (would be THE BEST tho), even pointing me out in the right direction will do. I have NO IDEA where to start with.

Top job man! Also i love the resurrection of ammies and THE nexus!
Quote Originally Posted by lelerion View Post
...
make sure to have the server running when the client is running and switch the order of the loadaccounttask and getcharlisttask in uiconfig.as
also use pure as and target to web if you want to make a flash client instead of an adobe air one (adobe air might require some additional changes to connect, at least it did on nr-core)
Quote Originally Posted by Sayonara12 View Post
...
copy paste from nr-core (just search it on github)
Quote Originally Posted by FlutterM4rk View Post
copy paste from nr-core (just search it on github)
I dont think it is as easy as only copy pasting content back in. Client is missing a lot of items regarding pets.

I have a lot of sources to eyeball the code but i have never added this much back into a client/server.

Although the server still has items like -

\wServer\realm\entities\Pet.cs

- im not sure whetever to start with the client or the server. But, i will try regardless. Hoping a _little_ bit more insight or "proof" it works just by copy pasting.
Now that's the good old RotMG I remember. Is there a Vanilla 7.0 PServer up?
Quote Originally Posted by Alde. View Post
Now that's the good old RotMG I remember. Is there a Vanilla 7.0 PServer up?
I am looking for it but cannot find neither a link nor a download package. Seems like truly private server.
Posts 16–30 of 32 · Page 2 of 3

Post a Reply

Similar Threads

Tags for this Thread

None

Need help?