Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Conquer Online 2 > CO2 Private Server
You last visited: Today at 16:54

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Development] 4267 Private server built using the Typesafe stack (Scala, Akka)

Discussion on [Development] 4267 Private server built using the Typesafe stack (Scala, Akka) within the CO2 Private Server forum part of the Conquer Online 2 category.

Closed Thread
 
Old   #1
 
tkblackbelt's Avatar
 
elite*gold: 0
Join Date: Sep 2010
Posts: 291
Received Thanks: 95
[Development] 4267 Private server built using the Typesafe stack (Scala, Akka)

Hi Everyone,

Before I begin I'd just like to give a shout out to Korvacs for his packet wiki (). It's been extremely helpful

Just wanted to give you guys a preview of the server I've been working on for the past month.

The server is built using the Typesafe stack with includes the below core technologies. The server seems to handle lots of clients. I've tested it by spawning 15,000 bot clients over all game maps and had them jump and talk every 1 - 2 seconds. It handled this well but of course this is spread out over the entire world. On a single map the server currently seems to handle around 1000 clients before lag starts hitting. I've also designed the server in a way that would allow each map to be run on a different server or all on a single server. This would allow further scalability.

Technologies:
- Scala (Functional programming language running on the JVM)
- Akka (Actor library)
- Slick (ORM)
- Spray (Library for building high performance network applications)
- MySQL

Testing Server:
- Ubuntu 14.04 server running under Windows 8 Hyper V
- 5 Cores allocated
- 4 Gigs of ram

The server is designed using the Actor model. This model makes building highly concurrent applications much easier. All objects (Actors) communicate with each other by sending messages to one another.

As of today (June 22, 2014) the server has the following features developed:
- Login
- Interacting with other players
- Trading
- Warehouse
- NPC Scripting system
- Buying & Selling to NPCs
- DMap loading
- Mob spawning
- Basic monster AI
- Basic stat calculations
- Attack monsters
- Portals
- Dropping/Picking up items from the world

First preview video:

Gallery 1



I will update this thread as more is developed
tkblackbelt is offline  
Thanks
13 Users
Old 06/23/2014, 17:08   #2
 
elite*gold: 0
Join Date: Sep 2013
Posts: 197
Received Thanks: 141
Finally. Something good on epvp. Good luck!
SteveRambo is offline  
Thanks
1 User
Old 06/23/2014, 18:57   #3
 
Wolfy.'s Avatar
 
elite*gold: 0
Join Date: Mar 2014
Posts: 219
Received Thanks: 27
15000 bots ._. good luck...
Wolfy. is offline  
Old 06/24/2014, 04:55   #4
 
InsomniacPro's Avatar
 
elite*gold: 0
Join Date: Feb 2014
Posts: 397
Received Thanks: 205
Quote:
Originally Posted by Wolfy. View Post
15000 bots ._. good luck...
What's wrong with 15k bots?
InsomniacPro is offline  
Old 06/24/2014, 05:37   #5
 
Spirited's Avatar
 
elite*gold: 12
Join Date: Jul 2011
Posts: 8,282
Received Thanks: 4,191
Well, the server should be able to handle that type of processing (one or two packets every one or two seconds). That isn't impressive to me. What's impressive is sorting through that and displaying them on the client's screen. What I would like to see is a program that creates server connections and sends 10 to 20 packets a second (more realistic). Then have it spam connect/disconnect and ensure that there are no memory leaks and that GC doesn't slow things down too much.
Spirited is offline  
Old 06/24/2014, 13:36   #6
 
Wolfy.'s Avatar
 
elite*gold: 0
Join Date: Mar 2014
Posts: 219
Received Thanks: 27
Quote:
Originally Posted by InsomniacPro View Post
What's wrong with 15k bots?
It's just so much, impressive.
Wolfy. is offline  
Old 06/24/2014, 14:26   #7
 
tkblackbelt's Avatar
 
elite*gold: 0
Join Date: Sep 2010
Posts: 291
Received Thanks: 95
Quote:
Originally Posted by Spirited View Post
Well, the server should be able to handle that type of processing (one or two packets every one or two seconds). That isn't impressive to me. What's impressive is sorting through that and displaying them on the client's screen. What I would like to see is a program that creates server connections and sends 10 to 20 packets a second (more realistic). Then have it spam connect/disconnect and ensure that there are no memory leaks and that GC doesn't slow things down too much.
Yeah, I will be updating the stress tester to try more realistic scenarios. First I want to finish the mob ai to see how it performs with that many clients.
tkblackbelt is offline  
Thanks
1 User
Old 06/24/2014, 16:42   #8


 
Korvacs's Avatar
 
elite*gold: 20
Join Date: Mar 2006
Posts: 6,126
Received Thanks: 2,518
Will you be releasing the bot for testing purposes? I've never gotten around to doing my own because /lazy
Korvacs is offline  
Old 06/24/2014, 17:29   #9


 
CptSky's Avatar
 
elite*gold: 0
Join Date: Jan 2008
Posts: 1,443
Received Thanks: 1,175
Quote:
Originally Posted by Korvacs View Post
Will you be releasing the bot for testing purposes? I've never gotten around to doing my own because /lazy
Same thing.


I think this load-test bot would worth a collaborative work.
CptSky is offline  
Old 06/24/2014, 17:35   #10
 
Spirited's Avatar
 
elite*gold: 12
Join Date: Jul 2011
Posts: 8,282
Received Thanks: 4,191
Yeah, I meant to do a load test bot as well. I'd be up for working on one.
Spirited is offline  
Old 06/25/2014, 06:43   #11
 
tkblackbelt's Avatar
 
elite*gold: 0
Join Date: Sep 2010
Posts: 291
Received Thanks: 95
I'll most likely release the code for the stress tool.

Today I implemented mob and guard ai and a start to the magic attack system. Does anyone know if 4267 has a packet for a re-spawn animation? Currently the mobs just re-appear without an animation.

I'm going to run the stresser overnight with 15k bots again and see how the mob ai handles to all those clients

Guard using Tornado!!!!
tkblackbelt is offline  
Old 06/25/2014, 13:50   #12


 
CptSky's Avatar
 
elite*gold: 0
Join Date: Jan 2008
Posts: 1,443
Received Thanks: 1,175
Quote:
Originally Posted by tkblackbelt View Post
I'll most likely release the code for the stress tool.[...]
Ok nice. May I ask you the language used by the load-test tool ?
CptSky is offline  
Old 06/25/2014, 14:38   #13
 
12k's Avatar
 
elite*gold: 0
Join Date: Jul 2011
Posts: 218
Received Thanks: 33
Quote:
Originally Posted by tkblackbelt View Post
I'll most likely release the code for the stress tool.

Today I implemented mob and guard ai and a start to the magic attack system. Does anyone know if 4267 has a packet for a re-spawn animation? Currently the mobs just re-appear without an animation.

I'm going to run the stresser overnight with 15k bots again and see how the mob ai handles to all those clients

Guard using Tornado!!!!
I know in 5017 i had used the following:
Quote:
name = "MBStandard";
PWR.Fill((ushort)(13 + name.Length), 0);
PWR.Fill((ushort)1015, 2);
PWR.Fill((uint)UID, 4); //UID of the mob
PWR.Fill((byte)Type, 8); //String Type = 10
PWR.Fill((byte)Number, 9); // Number = 1
PWR.Fill((byte)name.Length, 10);
PWR.Fill(name, 11);
PWR.Fill((ushort)0, name.Length + 11);
How relevant that is to 4267 I have no idea.
12k is offline  
Thanks
1 User
Old 06/25/2014, 14:45   #14
 
tkblackbelt's Avatar
 
elite*gold: 0
Join Date: Sep 2010
Posts: 291
Received Thanks: 95
Quote:
Originally Posted by CptSky View Post
Ok nice. May I ask you the language used by the load-test tool ?
It's written in Scala.

Quote:
Originally Posted by 12k View Post
I know in 5017 i had used the following:


How relevant that is to 4267 I have no idea.
Awesome, thanks! I'll give that a try after work today
tkblackbelt is offline  
Old 06/25/2014, 14:52   #15


 
KraHen's Avatar
 
elite*gold: 0
Join Date: Jul 2006
Posts: 2,216
Received Thanks: 794
Awesome stuff, good job!
KraHen is offline  
Closed Thread


Similar Threads Similar Threads
[Development] 4267 conquer server.
06/16/2010 - CO2 Private Server - 408 Replies
Heya, I've started a new development for a classic co server as I never saw one succesfull build up with a from scratch written and not leeched source. We're currently aiming to add-in bot protection, proxy detection and various protections to prevent hacking. So let's talk more about the source itsself, It's made from scratch and self written socket system, database handling is currently flatfile based. The loginserver is done but we're working on the gameserver now. (Will be...



All times are GMT +1. The time now is 16:54.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.