• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

TKoK Development in Unity (MMO, on the smaller scale)

Status
Not open for further replies.
Level 11
Joined
Jun 13, 2007
Messages
570
https://www.facebook.com/Kaliron

This is a stand alone multiplayer version of The Kingdom of Kaliron that I am working on. As I get things going, I plan on keeping an on going progress blog showing off things that are added to the game as development goes along. I started this project a few months ago and going through a huge learning process as I have not done anything like this before.

Video #1 is just a quick intro the basic UI elements and very basic combat systems that I have begun setting up

Video #2 shows off some of the modeling packages and terrain that will be used in the construction of the Kingdom of Kaliron

Video #3 The conversion from unity's GUI into nGUI and some of the aspects and coding methods I am using. It covers a lot all at once.

All Video List:
#1 - http://www.youtube.com/watch?v=OHI5uYuKLnc
#2 - http://www.youtube.com/watch?v=jwllGzvT8og
#3 - http://www.youtube.com/watch?v=mrylWkbm9mY
#4 - http://www.youtube.com/watch?v=GyDTn1_t5yo
 
Last edited:

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,178
I just hope the game will be easier than what I remember of the map. Being brick walled was fun although that was a very old version compared to now.

Will this be a commercial project (sales of licences or in-game content) or you still keeping it free like the WC3 map was?

Also what sort of multiplayer do you plan? Will it be more MMORPG like where players take on areas as a largish group? Or you planning to keep it true to the WC3 map where there is a smallish group of players?

Also where do you plan to go with level design? I understand TKoK had a lot of zoning problems in WC3 because of the very limited map dimensions and all content needing to be loaded at map initialization. Since that is no longer a problem, can we expect bigger areas or more areas?
 
Level 11
Joined
Jun 13, 2007
Messages
570
Looks impressive.

You should probably change the borders of item icons to their matching description border colors.

Was done after the 3rd video was made. Icons now do have a border color matching their type. The tooltip also displays the type (in-case of any of any color blindness)


I just hope the game will be easier than what I remember of the map. Being brick walled was fun although that was a very old version compared to now.

Will this be a commercial project (sales of licences or in-game content) or you still keeping it free like the WC3 map was?

Also what sort of multiplayer do you plan? Will it be more MMORPG like where players take on areas as a largish group? Or you planning to keep it true to the WC3 map where there is a smallish group of players?

Also where do you plan to go with level design? I understand TKoK had a lot of zoning problems in WC3 because of the very limited map dimensions and all content needing to be loaded at map initialization. Since that is no longer a problem, can we expect bigger areas or more areas?

There will be multiple levels of difficulty that the players can choose on the fly each with its own modified rewards based on difficulty.

There will be running / resource / asset costs to me, so this stand alone will not be free, but at the same time my end goal is to NOT have any sort of monthly fee to maintain the on-line servers (While the end game sale price is not set, I do not see it needing to be more than $10-15 USD)

There are 2 methods of multiplayer I am looking at:
1. True MMO world with instancing for the dungeons/raids
2. Diablo 2 style of join/leave + lobby

Both come with their +'s and -'s and will require some serious thought before any true decision is made

World design: much much much larger environments with lots to explore. Each zone will be its own scene design within Unity and changing zones will mean switching scenes. Loading times should be almost non existent in the scene switching. Most likely different zones will be bridged by the Portal Masters for fast / easy travels to different areas you have unlocked.
 
Level 11
Joined
Jun 13, 2007
Messages
570
That is one route I was looking at, I had a lot of ideas about micro transactions for things besides skins that didn't make or break gameplay.
 
Level 15
Joined
Oct 18, 2008
Messages
1,588
If you go with Diablo-style multiplayer, you can possibly lower your costs by using p2p technology mixed with some online functions, like item generation for drops (you will need Unity Pro for .NET sockets anyways). This method has security loopholes though, so you will need some kind of hack shield.

Also, if I can, I'd gladly help - I'm a C# programmer with 2 years of experience with little experience with Unity, so it would be a nice learning program looking through and extending existing code ;)
 
Level 11
Joined
Jun 13, 2007
Messages
570
I am already looking into ExitGame's Photon server and have a 100 user license for when it's ready to test. This will help a lot with security. Currently I am working on this project solo, but I am open to help in the long run, if you want to chat more about things, let me know.
 
Level 15
Joined
Oct 18, 2008
Messages
1,588
I am already looking into ExitGame's Photon server and have a 100 user license for when it's ready to test. This will help a lot with security. Currently I am working on this project solo, but I am open to help in the long run, if you want to chat more about things, let me know.

Yea actually I've been looking into Photon servers as well, since it looks promising :) The question is, whether that 100 user license gives you enough CPU and RAM access for a C# based server for such a game - it may be possible that you will be forced to make a C++ based server.

And yea, I'd love to chat about how it goes, or even join in at a point in my free time :) Though it isn't much, since I'm a uni student and maybe I'll even get a part-time job soon (hurray!)
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,178
The question is, whether that 100 user license gives you enough CPU and RAM access for a C# based server for such a game
All depends on how well programed it is. A must is that each session/instance has to be multi-threaded with at least 1 thread. Additionally, you would want to avoid intensive situations (1000s of monsters in a small area) and should try and split computationally expensive operations (path finding and AI) to happen over many game engine frames instead of all at once.

Choosing an appropriate engine frame limit is also a good idea. Games like SC2 use 16 frames per second and I suspect Diablo III does something similar by the break points people found.
 
Level 15
Joined
Oct 18, 2008
Messages
1,588
All depends on how well programed it is. A must is that each session/instance has to be multi-threaded with at least 1 thread. Additionally, you would want to avoid intensive situations (1000s of monsters in a small area) and should try and split computationally expensive operations (path finding and AI) to happen over many game engine frames instead of all at once.

Choosing an appropriate engine frame limit is also a good idea. Games like SC2 use 16 frames per second and I suspect Diablo III does something similar by the break points people found.

Yea, though Diablo III has a lot of things done on the user's computer, like path-finding and AI - they don't really worry about hackers that much, since warden is an aggressive bitch that insta-bans you on the sigh of a single misplaced bit.

Plus I think D3 uses 3 framerates - 1 for CPU, 1 for GPU (particles and etc) and 1 for rendering.
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,178
Yea, though Diablo III has a lot of things done on the user's computer, like path-finding and AI
Incorrect, outside of local personal path-finding, all path-finding and AI is run on the servers in Diablo III.

Plus I think D3 uses 3 framerates - 1 for CPU, 1 for GPU (particles and etc) and 1 for rendering.
It actually uses 3 although 2 are coupled.
1 is the server frames, these are what truly happens and compute the true results of every operation.
2 is the local frames, these are interpolation of streamed server results (from server frames) to try and make the game appear more smooth on the client end. This is where the results of things such as attack speed are computed for local use only. No results from this are saved except for movement which is streamed back (why warp bots exist but is necessary to allow players smooth latency free movement).
3 is the graphic frame rate. This is further interpolation of results into the human visual space so that motion appears constant and damage over time appears continuous.

The server only has to compute 1. Since 1 is very basic, it can be done extremely fast and so a single processor could probably run multiple servers.

The client has to do both 2 and 3. 3 is especially demanding as it has the highest update frequency (at least 60 Hz for most people) and the most/most expensive things to do. All physics for particles and clutter are computed here. It is so demanding that my computer cannot exceed 30 FPS except for some select areas despite me running SC2 at extreme.

Ultimately the servers in Diablo III are doing everything persistent. This is the only way they can be sure hackers are not tampering with results. If anything, such as AI, was to be done locally then it would be so easy for a hacker to disable all AI so monsters become sitting ducks for targets that never fight back. This is also the reason why AI is often very simplistic and will not perform highly advanced battle strategies.

This is why you can die in HC if you are disconnected from the server as the server keeps advancing frames even though your client is not there to view the results.

A good example of servers can be seen with the open source game Simutrans. This is actually a transport simulator but the multiplayer persistence is maintained by a server that computes the persistent game state and advances it in time with the clients. The clients are streamed this state when they join and then keep in synchronise with it similar to how RTS games like SC2 and WC3 work. The game sessions can feature thousands of moving vehicles that compute paths that vary in complexity yet it is still possible for an old weak computer to run multiple such instances simultaneously without suffering performance difficulties.

Even if C# is far from the fastest language, it will probably be enough to run 100 players on a reasonable computer without any problems as long as the game state engine itself is reasonable. Most of the problems servers have (and why you cannot run it from an old PC in your garage) is bandwidth, as household internet connections suck quite frankly.
 
Level 15
Joined
Oct 18, 2008
Messages
1,588
Ultimately the servers in Diablo III are doing everything persistent. This is the only way they can be sure hackers are not tampering with results. If anything, such as AI, was to be done locally then it would be so easy for a hacker to disable all AI so monsters become sitting ducks for targets that never fight back. This is also the reason why AI is often very simplistic and will not perform highly advanced battle strategies.

If it was working like this (I mean fully on the servers) they wouldn't use something as aggressive as warden imho, though it is a good reason why so many people report lags.
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,178
If it was working like this (I mean fully on the servers) they wouldn't use something as aggressive as warden imho, though it is a good reason why so many people report lags.
Warden is not aggressive. People get banned a random amount of time after they commit the crime and the crime is usually detected by monitoring the processes active in your OS at the same time as a game. They mark certain processes as "hacks" and anyone that was found to be using said process or a derivative of said process is banned, usually in a ban wave.

Robot writers do not care as they are paid upfront for their robots. The robot users do not care as they have already made profit with the key by then.

Other game companies (such as Guild Wars makers) are more aggressive but they have a very bad false-positive record where they classify legitimate commercial software (mostly anti-virus software from reputable distributers) as hacks and refuse to unban when proved wrong.

Picking up robots and things is very difficult. In theory it should be impossible if people really had full control over their computers.
 
Level 11
Joined
Jun 13, 2007
Messages
570
I am still lobbying the ideas of a true MMO where all players are in 1 world, or splitting it up into different games where the players can join/leave on the fly to keep the different 'worlds' segmented
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,178
With TKoK in mind I think I'd go for a p2p based approach with server overhead to prevent cheating - just to lower the costs :3
Please explain how that would work... I do not know of any game that does that.

I am still lobbying the ideas of a true MMO where all players are in 1 world, or splitting it up into different games where the players can join/leave on the fly to keep the different 'worlds' segmented
The problem becomes scale then. Imagine if 10,000 people are logged in at once, if you have a tiny town you will end up wall to wall players. Sure you could make a huge town but the development time for that increases linearly with the scale.

Obviously everyone cannot be onscreen at once or fighting at once due to server resources. As such the big question is how many players should be interacting at any time. A big part of TKoK was team work so designing the game around the correct team size is the problem.

Going with something like 20 players in an instance would make for dramatically different gameplay from WC3. You could be fighting a large army for example, or demand that the players split up into different teams to fulfil objectives in parallel.

Going with 100 odd players would become WoW raid style which might destroy the overall team work as you will start to have duplicate roles and players become numbers more than people.
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,178
I guess it could work if you mark people as trusted. You need a backbone of trusted results so you can disprove other results. However you will always get a trusted person using his position to try and hack and things which is the problem with the method as if too many clients are cheating you can find that the cheaters say they are not cheating and fool the persistent state.

This is a fundamental flaw with the currency bitcoin which also uses peer clients to track transactions. If more than half the users of bitcoins were to fake a transaction then that transaction would become real. Not viable if enough honest people use it but botnets could probably fake the results of something running at a lesser scale (such as a game).

I would say stick to conventional server architecture for prototyping and alpha. Easier to code and since you will be doing a lot of changes that is probably a good idea.
 
Level 11
Joined
Jun 13, 2007
Messages
570
Using my server as the logic check is by far the best and probably the only way to go to avoid blatant cheating. Anything that gets checked peer to peer is vulnerable and in my mind, not acceptable in terms of use.

I have been going with the thought of 4 and 8 player dungeons/raids/instances.

Simple dungeons / questing and so on could be designed around 4 players - 1 tank, 1 healer, 2 DPS/Hybrid healers

Where the raid content was designed for 8 players - 2 tanks, 2 healers, 4 dps/hybrids.

Because of my lack of overall resources since I am just 1 person... I always was aiming for the smaller scale. One combined world that branched off into instances would wind up feeling more like the original Guild Wars. Everybody in town, step into the world then only up to 4 people. Which is why I think I was going to aim more for (just an example) Diablo2/3 style. Form your party/join a game.
 
Status
Not open for further replies.
Top