Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I'm working on a MMO game project. I have a question about MMOFPS game architecture. (I have basic network knowladge)

  • (MMOFPS) I want to send player position to other players(clients) and other players will render the player. Namely this is the base of the game world. I have read some article about positioning and somebody says "use inputs for movement update" and others says "use position posting". That's the first problem. What is better? input or position based movement posting? What is more suitable for a MMOFPS game? (And how to do it?)

SUMMARY: I need to learn "how real multiplayer games work?" (but basically). In my first project I have used TCP protocol for posting position (not inputs) and I have sent position data 4 times per second. Server delivered them to other clients and other clients handled this data and maked a smooth movement. This is a very basic method to do it but I know that isn't MMO! Can anybody help me about understanding MMO game architecture?

share|improve this question

closed as not a real question by Josh Petrie, msell, Anko, bummzack, Byte56 May 14 '13 at 14:05

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

    
maybe somebody can answer one of them. (one-by-one) –  Mehmet Fatih Marabaoğlu May 11 '13 at 12:58
    
maybe if I need ;) –  Mehmet Fatih Marabaoğlu May 11 '13 at 13:12
1  
You do. These are two unrelated questions. –  Eren Güven May 11 '13 at 13:15
    
ok, I'm going to post a new question. –  Mehmet Fatih Marabaoğlu May 11 '13 at 13:26
    
This question is really too broad; consider editing it to reduce it to something with a more defined scope. –  Josh Petrie May 11 '13 at 14:59

2 Answers 2

I have read some article about positioning and somebody says "use inputs for movement update" and others says "use position posting".

Did they also provide reasons?

Using "input posting" increases program complexity because now with every input you need to post position and also update position on the client whereas with "position posting" you only need to update position on the client. Adjusting post interval with position posting is reasonably simpler as well.

But the better choice also depends on your requirements. If you do a lot of validity/collision checking on client-side (on top of server-side which is a must), "input posting" will reach other players faster.

share|improve this answer
    
input and position sending have some different techniques. If client sends input that means server says what's clients new position and sends it to other clients, if client sends position that means client says what is my new position and server will send this position to other clients (if client hacked, client can be teleport himself). That's the main difference. –  Mehmet Fatih Marabaoğlu May 11 '13 at 14:04
    
Unless you are making a P2P game (not a server-client model), there is no situation where client will tell other clients its position. You can never thrust the data received from client, you always have to check its validity server-side. –  Eren Güven May 11 '13 at 14:12

That isn't about position sending performance. That's about server-client style. If you use input based movement (network), that means server decide your new position (authoritative server) and server tells your new position to you and other clients. If you use like position based movement, that means client decide his new position and tells that to server and server tells the player's new position to others. The difference is platforms. I think if your MMOFPS like game have a anti-hack (or anti-injection), you should use position based network movement because position isn't very important and you can prevent speed hacks. But that isn't suitable method for big (high-level) MMO games because there are always hackers and server must decide client's events-operations-commands etc. (also position based movement is more easy -lightweight- and server not loaded very much with calculating world)

If you want to detect speed-hacks you can create a position-time based check function in server. That function checks time-position and calculates the client's speed. You can decide is it cheating via movement speed. (this is a simple detection).

EDIT: In big (high-quality) MMO's, never trust the client!

share|improve this answer
    
This doesn't appear to answer the question and should probably be a comment. See the faq. –  Josh Petrie May 11 '13 at 14:58

Not the answer you're looking for? Browse other questions tagged or ask your own question.