!!! Time it Takes to Do a MMORPG !!!

Started by
58 comments, last by rjahrman 22 years ago
Hmm, interesting. I guess no threads would make it go faster, and you''d only haveto do loops. But how do you set up the timer? For sure a timer is needed to calculate velocity/etc to make sure the user is not cheating.
------------------------------There are 10 types of people in this world, those who know binary, and those who don't.
Advertisement
quote:Original post by KalvinB
Oh, the main reason the server can run 480,000FPS (yes, really) on a 1000Mhz PC is because it doesn''t handle NPCs.


420,000 FPS on a P3/450 with 128 MB RAM on my server, which is a 16 player top-down action game without any server-side bots connected. Honestly if your not getting an absuridly high amount of iterations of your game loop, you''ll have major sync. issues with the clients.



- Kevin "BaShildy" King
Game Programmer: DigiPen
www.mpogd.com
- Kevin "BaShildy" KingGame Programmer: DigiPenwww.mpogd.com
I don''t really understand why many people want to write MMORPGs. No need to write a massively multiplayer game unless you have a massive amount of people will be playing it simultaneously. Otherwise, just do a regular multiplayer game supporting 32 or 64 people, or whatever. 256 maybe. Then you can expand it and rewrite the network code to handle a large amount of people.

~CGameProgrammer( );

~CGameProgrammer( );Developer Image Exchange -- New Features: Upload screenshots of your games (size is unlimited) and upload the game itself (up to 10MB). Free. No registration needed.
I agree for the most part. Even if you want to make a client server type game with a persistent state, you should design it to run on one server as opposed to a server farm /distributed servers etc. In actual fact though, there's not alot of difference between a client/server architecture for a FPS like quake3 that supports 64 players, and an mmorpg that supports 128+ players. Each game had different network requirements, FPS clients need to be updated alot more often then mmropg clients. Hence there’s less players that can participate in and FPS game. But the networking architecture can be very similar for both types of games.

What i'm trying to say is that as long as the server is designed to run on one machine, there's not alot of difference between a Quake3 server and a GangWars(C) server.

The real difference between today’s MMORPGs and games like Quake3 is that the MMORPGS typically have a logon/connection server and a number of gameservers linked together on a very fast backbone, that are responsible for controlling portions of the gamestate. I don’t think too many people in these forums are actually trying to make an mmorpg architecture like that. For the most part I think we are trying to make scaleable quake3 type servers for persistent multiplayer RPGs.


[edited by - ironside on April 4, 2002 12:34:40 PM]
"For sure a timer is needed to calculate velocity/etc to make sure the user is not cheating."

Nope. I''m sure if I cared I could implement one no problem but there''s really no point. A player who breaks the code which locks the frame rate has no real advantage over someone who doesn''t.

It''s not like Quake where you can do 150FPS and every frame will be different. It''s sprite based so there are only 32 different frames. There''s no point in drawing the same frame over and over.

Ben

IcarusIndie.com

[The Rabbit Hole | The Labyrinth | Programming | Gang Wars | The Wall]
I mean that they could teleport their charater to anywhere they wanted. How would you monitor that w/o a timer?
------------------------------There are 10 types of people in this world, those who know binary, and those who don't.
The client tells the server where they WANT to go. The server tells them where they are and the next step to get closer to their intended destination. Pathfinding will eventually be added to client side but for now the primitive algo on thge server is good enough. It''s part of that "build it to be improved" package. Improving pathfinding on the client side doesn''t require changing the server a single line of code and doesn''t open up any vulnerabilities simply because: There is no message to tell the server where a client is.

The server tells the client where the client is. Even if a hacker went into memory and forced their character to a different location, the next time they moved, they''d be right back where they''re supposed to be and no other client would know what happened or need to. There are distance checks in place so you can''t pick anything up that''s too far away from your character according to the server.

Ben

IcarusIndie.com

[The Rabbit Hole | The Labyrinth | Programming | Gang Wars | The Wall]
Nono, you have it backwards. What I mean is that you cant calculate where the character is supposed to be properly without a timer on the server side. Not the client.
------------------------------There are 10 types of people in this world, those who know binary, and those who don't.
Yes I can. I mentioned it was sprite based with a fixed number of frames and a locked frame rate so why would I need a timer to tell the server where the client should be? The frame rate doubles as a timer. Why would I need a second timer if the frame rate is locked at a fixed interval?

The client is sprite/tile based. Like a King in chess. He can move in all directions but only one space. There are no half steps. If a client sends a completion message (tells the server the client has finished a single move of one tile) and less than a second later sends another, he''s lying. A client must take at least 1 second to complete a move. Unless he''s running, in which case it''s 1/2 second.

To make sure a client isn''t cheating I just throw out any completion messages that come to the server in less than 1/2 second intervals.

You''re over thinking this whole thing way too much.

Ben

IcarusIndie.com

[The Rabbit Hole | The Labyrinth | Programming | Gang Wars | The Wall]
I think I kind of understand what you''re getting at, but how do you stabilize the framerate. Because what I understand from what you''re saying is that 1 frame is equal to 1 loop. So when there are less people on, the frame rate would speed up, and the characters would fly around the map.

Maybe I''m not understanding you right, do you think you could post some sample code? I''m going to haveto start working on this once my basic 3D engine is done, and I want to get a head start on it.

Thanks.
------------------------------There are 10 types of people in this world, those who know binary, and those who don't.

This topic is closed to new replies.

Advertisement