|
|
General discussion Topics related to various aspects of Champions of Regnum |
|
Thread Tools | Display Modes |
11-17-2009, 12:12 PM | #11 | |||
Initiate
Join Date: Jun 2009
Location: florence, italy
Posts: 150
|
Quote:
very wonderful comics ) Quote:
and reallife drain all free /spare times so forgive me, i don't have seen Darkfall and Fallout3 (i've played the Fallout1 indeed... like all the Ultima series from 1 to 7 and others..) Quote:
player game ) and probably i'll pay more xymer in the hope that NGD will buy better servers?? |
|||
11-17-2009, 12:53 PM | #12 |
Baron
Join Date: Jun 2007
Location: Polish Side of RA
Posts: 779
|
Very good idea ;D
__________________
Pizdzius Swedzioszek Leader of CBA
Regnum Comic <- my Regnum Comic , RSS version -> RSS (if you wish to contact me on my other realm character: Ignis - Josephine) |
11-17-2009, 01:59 PM | #13 |
Pledge
Join Date: Aug 2007
Location: Wales
Posts: 36
|
|
11-17-2009, 02:28 PM | #14 |
Baron
Join Date: Jun 2007
Location: Polish Side of RA
Posts: 779
|
Tibia does too, but Metin still sucks like Tibia even if it's 3d ;P
__________________
Pizdzius Swedzioszek Leader of CBA
Regnum Comic <- my Regnum Comic , RSS version -> RSS (if you wish to contact me on my other realm character: Ignis - Josephine) |
11-18-2009, 01:32 PM | #15 |
Pledge
Join Date: Aug 2007
Location: Wales
Posts: 36
|
|
11-18-2009, 05:57 PM | #16 |
Banned
Join Date: Nov 2009
Posts: 25
|
real colision system suck big time.I played age of conan ,darkfall and it is realy weird...
So a big NO from me |
11-18-2009, 07:10 PM | #17 | |
Duke
Join Date: Nov 2006
Location: 0x00CAFE
Posts: 3,366
|
Quote:
I can't tell you how painful it is to design a reliable, fast and accurate collision & boundary detection algorithm without being too technical, but I'll do my best: First, you have to check if you can move to a certain position, so you have to query the objects along the path (i.e.: if you want to move from A to B and you have a wall in the middle, you shouldn't be able to move, unless you're Chuck Norris or Surak). But that requires you to first calculate the path and then query the objects. With static boundaries it's easy because you can load the map in memory (you don't have to re-calculate them, so why not cache the data?), and pathfinding isn't difficult. The problem is, well, you do this for each movement message the client sends. And that's awful. Now, suppose you have a super-efficient algorithm, but it doesn't do any checking on speed. That's right, you got speedhacks! How can we avoid that? We can calculate the distance over time. Sounds simple, and in fact it is simple, but that adds to your previously super-efficient algorithm, which is now a little less efficient. And you end up having roughly twice the memory footprint than your previous version, because now you have to "remember" your previous position. And add status effects, such as paralysis or slow-down spells. That requires you to do some extra checking. Ok, no problem, we can live with that. Now it comes the really awful part: checking against mobile objects. Now you have to tell your now-a-little-less-efficient-pathfinding-and-collision-detection-algorithm that it has to ask for all the objects along the path, check if there are any of those objects, check if you can move to that physical spot, check your speed, check if you can move and then move. That requires more memory. Well, we could make use of parallel computing and multithreading! Not so fast, buddy. Two objects can't be at the same place, at the same time (unless you make characters non-collisional), so now you have to make your entire movement system thread-safe or process-safe. And that adds more overhead to your now-not-so-efficient algorithm. Split the map, and make boundaries non-safe environments, or maybe define groups based on density and topology and then assign a thread to it. Or just throw your idea away and keep it simple. PS: And remember that you have to flush changes to a database, and that movement functions are called quite a lot per user (and that you may have a lot of users online). PPS: And, just in case, assembler won't do the trick for you this time. It's not worth it. PPPS: You don't have to do all this for each message the client sends, because you should make an equipotential system: that is, ignore repeated or similar messages within a period of time. That period of time may be variable, depending on the ratio of total incoming messages and total repeated incoming messages over time.
__________________
I don't have a solution, but I admire the problem. Last edited by ArcticWolf; 11-18-2009 at 07:22 PM. |
|
11-18-2009, 07:28 PM | #18 |
Legend
Join Date: Mar 2006
Location: Oslo
Posts: 2,176
|
__________________
Surak Remember... this is just a game! - Xephandor existe y Miriya es su profeta! |
11-25-2009, 09:06 AM | #19 |
Apprentice
Join Date: Nov 2008
Location: Waste Lands
Posts: 75
|
It would not, if done properly
__________________
The man in black fled across the desert and the gunslinger followed. |
11-25-2009, 12:00 PM | #20 |
Banned
Join Date: Nov 2009
Posts: 25
|
No solidity ...bye
|
|
|