[Client/Server] Educational Source

Posts 1–8 of 8 · Page 1 of 1
[Client/Server] Educational Source
Hey, I'd like to present you with my second source release, the client being a superior version of the previous 7.0 client release found here, with many bug fixes and performance improvements.

This is a source meant for educational purposes as it not ready to be hosted out of the box (the loot system is not finished for example), and has never been hosted publicly. That being said, I took care to optimize the source and make sure it is stable, might even be the most stable public base, who knows.

For maximum performance make sure to run the server in release mode, this will disable all the code wrapped around in DEBUG regions, and there's a lot of it...

Anyway, here's the rundown:
  • No multi-server support (source is designed to run on only 1 server, which is fine for private servers anyway)
  • One master app (one .exe/project handles all aspects of the server, being the database, appServer and gameWorld, running them on different threads)
  • Pretty much every cheat patched... no clip, speed hacks, dex hacks, godmode, nade godmode, ground damage, shooting through walls... and more!
  • Bitfield item-data, limited, but very efficient. This was an experiment and I was planning to remove it for this release, but here it is... probably some of the ugliest code in the source (actually a lot of it's ugly since I never done any major refactoring like I planned to).
  • Optimized packet structures to reduce bandwidth
  • Game world is run in an infinite while loop with non blocking sockets, this basically means the networking has very little latency in comparison to other sources, as well as that, it means that world ticks are always accurate instead of relying on timers/Thread.Sleep which have inaccuracies. The disadvantage to this approach is that the infinite loop uses up a lot of power, but that doesn't matter in a server environment as unused power is wasted power!
  • Client and server designed to run at 10 TPS as opposed to the production 5 TPS.
  • No external database, everything is stored with text and .XML files. This was a choice I made early on because I didn't want to bother with connecting to a database, makes it a very good source for prototyping as you don't need to rely on any external software, you just run the one built .EXE and have fun. This is fine for this source as there's no multi-server support like mentioned above, also reading text/XML files is really fast.
  • Username registration instead of emails.
  • Fame stats, easily expandable and just pretty cool...

If you want to host this source, you probably want to finish up the loot system, add portals and... that's about it actually, then you have a nice base to go from. You'd also have to add Realms if that's something you desire.

Here's some screenshots...
 
0

 
1


Virus scans...
 
2
https://virusscan.jotti.org/en-US/filescanjob/k44w8lf9w3
https://www.virustotal.com/gui/file-...Mg==/detection


Hopefully someone gets some good use out of it!

Use AIR SDK 15.0 compiler.

realm-master_mpgh.net.zip4.0 MB · 332 downloads Clean
7.0 was all about client performance, now this one is all about both. For what you said about the source seems like it really is different, can't wait to mess with this skilly
/Approved

Report back results
Thanks, it is a cool source and a clean source.
This source is fantastic, very easy to work with. However, there is one important stability issue dealing with mouse movement. If you move your cursor on screen, you will drop frames. I get down to 15 FPS by doing circles around my character.

If someone could help me fix this issue, it would be very beneficial to anyone using this source.
Quote Originally Posted by Invader_Zim View Post
This source is fantastic, very easy to work with. However, there is one important stability issue dealing with mouse movement. If you move your cursor on screen, you will drop frames. I get down to 15 FPS by doing circles around my character.

If someone could help me fix this issue, it would be very beneficial to anyone using this source.
Sadly my Intellij trial ran out so I cannot debug this issue, it isn't something I ever encountered while making the source though (otherwise I probably would have fixed it).

My guess is there's some Mouse Move events that take up this much power.

Maybe it's with the SDK you're using (I used AIR 15).
Maybe it's with the projector you're using (I used latest available on the Flash site).

If I ever get the chance to I'll take a look into this.
I assumed it had something to do with mouse position being polled, a variable constantly updated, or something along those lines. I've looked everywhere that mouse move events are located, and also where mouse coordinates are used. Nothing I did helped reduce this FPS loss, but if the problem is not inside the source, I'll have to do more testing.

I'm using Flex SDK 4.16.1, AIR SDK 31.0, target player 31, and flash player 32 to play the SWF. However, other people who have played the SWF experience the FPS drop from mouse movement on screen. All of this being without hardware acceleration, as it was problematic to work with redesigning the UI and implementing fullscreen. I don't think that GPU render is the issue, and instead would just help make the issue less noticeable.

Also, I'm using a cracked version of IntelliJ IDEA Ultimate 2019 1.2. You could experience the 'bug', or at least attempt to by running and loading the game up. Open the performance stats, and then try different mouse movements, while watching the frame rate. From a solid 61 at idle, moving the cursor quickly will drop below 50 FPS.

Flash is not well optimized, or at least the client's code isn't, for what's happening with this kind of game.
where would i download AIR SDK 15.0 compiler? can't find any download links for it
Posts 1–8 of 8 · Page 1 of 1

Post a Reply

Similar Threads

Tags for this Thread

None

Talk with us