Network Sites: FPSguru.com RTSguru.com UnboundGamer.com
Login:  Password:   Remember?  
Show Quick Gamelist Jump to Random Game
Games:611  Guilds:3,080
Members:1,593,748  Online:0
Guests:0  Posts:4,846,918
Recent forum postsRSS
Active threads
Cloud view
List all forums
General Forums
Developers Corner General Discussion
Popular Game Forums
Click a status to find game forum
Game Forums
Click a letter to find game forum
D-F
D&D Online DC Universe DOTA DOTA 2 DUST 514 Dance Groove Online Dark Age of Camelot Dark Ages Dark Legends Dark Orbit Dark Solstice Dark and Light DarkEden Online DarkSpace Darkblood Online Darkfall Darkwind: War on Wheels Dawn of Fantasy Dawntide Dead Earth Dead Frontier Deco Online Defiance Deicide Online Dekaron Desert Operations Diablo 3 Diamonin Digimon Battle Dino Storm Disciple Divergence Divina Divine Souls Dofus Dominus Online Dragon Ball Online Dragon Born Online Dragon Crusade Dragon Empires Dragon Eternity Dragon Nest Dragon Oath Dragon Raja Dragon's Call Dragon's Prophet DragonSky DragonSoul Dragona Dragonica Dream of Mirror Online Dreamland Online Dreamlords: The Reawakening Drift City Duels Dungeon Blitz Dungeon Fighter Online Dungeon Overlord Dungeon Party Dungeon Runners Dynastica Dynasty Warriors Online EIN (Epicus Incognitus) EVE Online Earth Eternal Earth and Beyond Earthrise Eden Eternal Einherjar - The Viking's Blood Elf Online Embers of Caerus Emil Chronicle Online Empire & State Empire Craft EmpireQuest Empires of Galldon End of Nations Endless Ages Endless Online Entropia Universe EpicDuel Erebus: Travia Reborn Eredan Eternal Blade Eternal Lands Ether Fields Ether Saga Online Eudemons Online EuroGangster EverQuest Online Adventures Evernight Everquest Everquest II Evony Exarch Exorace Face of Mankind Fairyland Online Fall of Rome Fallen Earth Fallen Sword Fallout Online Family Guy Online Fantage Fantasy Earth Zero Fantasy Realm Online Fantasy Tales Online Fantasy Worlds: Rhynn Faunasphere Faxion Online Ferentus Ferion Fiesta Online Final Fantasy XI Final Fantasy XIV Firefall Fists of Fu Florensia Flyff Football Manager Live Football Superstars Force of Arms Forsaken World Freaky Creatures Free Realms Freesky Online Freeworld Fung Wan Online Furcadia Fury Fusion Fall
G-L
GalaXseeds Galactic Command Online Game of Thrones Gate To Heavens Gates of Andaron Gatheryn Gekkeiju Online Ghost Online Ghost Recon Online Gladiatus Glitch Global Agenda Global Soccer GoGoRacer Goal Line Blitz Gods and Heroes GodsWar Online Golemizer Golf Star GoonZu Online Graal Kingdoms Grand Chase Europe Grand Fantasia Grepolis Grimlands Guild Wars Guild Wars 2 Guild Wars Factions Guild Wars Nightfall Habbo Hotel Haven & Hearth Hedone Helbreath Hellgate Hellgate: London Hello Kitty Online Hero 108: Online Hero Online Hero's Journey HeroSmash Heroes in the Sky Heroes of Bestia Heroes of Gaia Heroes of Might and Magic Online Heroes of Thessalonica Heroes of Three Kingdoms Holic Online Hostile Space Huxley Illutia Illyriad Immortals USA Imperator Imperian Infinity Infinity Iris Online Irth Worlds Island Forge Islands of War Istaria: Chronicles of the Gifted Jade Dynasty Jagged Alliance Online Juggernaut Jumpgate Jumpgate Evolution KAL Online Kakele Online Kaos War Karos Online Kicks Online King of Kings 3 Kingdom Heroes Kingdom of Drakkar Kingory Kitsu Saga Kiwarriors Knight Online Knights of Dream City Kothuria Kung Foo! Kunlun Online L.A.W. LEGO Universe La Tale Land of Chaos Online Lands of Hope: Phoenix Edition LastChaos League of Legends - Clash of Fates Legend of Golden Plume Legend of Katha Legend of Mir 3 Legendary Champions Light of Nova Lime Odyssey Line of Defense Lineage Lineage Eternal: Twilight Resistance Lineage II Linkrealms Loong Online Lord of the Rings Online Lords Online Lost Saga Lucent Heart Lunia Lusternia: Age of Ascension Luvinia Online
T-Z
TERA TS Online Tabula Rasa Tactica Online Tales Runner Tales of Fantasy Tales of Pirates Tales of Pirates II Talisman Online Tamer Saga Tank Ace Tantra Online Tatsumaki: Land at War Terra Militaris Terra World Thang Online The 4th Coming The Agency The Chronicle The Chronicles of Spellborn The Elder Scrolls Online The Legend of Ares The Matrix Online The Missing Ink The Mummy Online The Myth of Soma The Pride of Taern The Realm Online The Repopulation The Secret World The Sims Online The Strategems There Thrones of Chaos Tibia Tibia Micro Edition Toontown Online Top Speed Torchlight Transformers Universe Traveller AR Travia Online Travian Trials of Ascension Tribal Hero Tribal Wars Tribes Universe Trickster Online Troy Online True Fantasy Live Online Turf Battles Twelve Sky Twelve Sky 2 Twilight War U.B. Funkeys UFO Online Ultima Online Ultima X: Odyssey Ultimate Soccer Boss Uncharted Waters Online Undercover 2: Merc Wars Underlight Unification Wars Universe Online Valkyrie Sky Vanguard: Saga of Heroes Vanquish Space Vector City Racers Vendetta Online Victory - Age of Racing Vindictus Virtonomics Vis Gladius Visions of Zosimos Voyage Century W.E.L.L. Online WAR (Warhammer Online) WYD Global Wakfu War Rock War of 2012 War of Angels War of Legends War of Thrones War of the Immortals WarFlow Waren Story Wargame1942 Warhammer 40K: Dark Millennium Online Warhammer Online: Wrath of Heroes Warrior Epic WebLords Wild West Online WildStar WindSlayer 2 Wish Wizard 101 Wizards and Champions Wonder King Wonderland Online World Golf Tour World War II Online World of Battles World of Darkness World of Heroes World of Kung Fu World of Pirates World of Tanks World of Warcraft World of Warcraft: Mists of Pandaria World of the Living Dead WorldAlpha Wurm Online Xiah Xsyon YS Online ZU Online Zentia Zero Online Zero Online: The Andromeda Crisis Zodiac Online eRepublik

MMORPG.com Discussion Forums

Darkfall

Darkfall 

General Discussion  » Any coding experts care to comment on DF movement code?

2 Pages 1 2 » Search
24 posts found
  Galadourn

Hard Core Member

Joined: 2/06/08
Posts: 669

 
3/30/09 4:20:42 PM#1

According to this thread...it's terribly wrong.

 

Any experts here to make more clear?

  DarthRaiden

Apprentice Member

Joined: 11/20/05
Posts: 4040

i make art,
till someone dies.

Forum Terrorist

3/30/09 4:48:24 PM#2

LOL.."i write MMO's for living"

..and i don't approve da code  ..

 

Here you find proper reply

-----MY-TERMS-OF-USE--------------------------------------------------
$OE - eternal enemy of online gaming
-We finally WON !!!! 2011 $OE accepted that they have been fired 2005 by the playerbase and closed down ridiculous NGE !!

"There was suppression of speech and all kinds of things between disturbing and fascistic." Raph Koster (parted $OE)

  thinktank001

Advanced Member

Joined: 12/13/08
Posts: 1191

3/30/09 5:07:24 PM#3
Originally posted by DarthRaiden

LOL.."i write MMO's for living"

..and i don't approve da code  ..

 

Here you find proper reply


 

Coder Lingo 101:

Design Decision-  A term used when a person(team) cannot solve a problem.

  DarthRaiden

Apprentice Member

Joined: 11/20/05
Posts: 4040

i make art,
till someone dies.

Forum Terrorist

3/30/09 5:09:57 PM#4

The problem cannot be solved it will exist in every client - server application. The handling will be different .. 

-----MY-TERMS-OF-USE--------------------------------------------------
$OE - eternal enemy of online gaming
-We finally WON !!!! 2011 $OE accepted that they have been fired 2005 by the playerbase and closed down ridiculous NGE !!

"There was suppression of speech and all kinds of things between disturbing and fascistic." Raph Koster (parted $OE)

  User Deleted
3/30/09 5:11:41 PM#5

I like how people who have never once even seen a snippet of Darkfall's coding try to comment on it, saying it's "wrong".....

  javac

Apprentice Member

Joined: 8/13/08
Posts: 1266

3/30/09 6:26:29 PM#6
Originally posted by DarthRaiden

Here you find proper reply

 

the linked poster above is correct.

 

in a nutshell:

when client<->server communication is interrupted, on the server side, you have 2 basic implementation choices: (1) allow the client (player) to continue along their last known course, or (2) treat the client as stopped or barely moving. DF does the latter, as do most FPSes. most MMOs do the former.

 

the problem with (2) is that to other people, the lagged out player just stops moving, which obviously sucks for them in combat. with (1), the player would just appear to continue moving in the same direction. examples of this in MMOs are, eg: someone disconnecting in a raid and ghosting into the boss/spawn up ahead, or DAOC "lag-casting".

 

the HUGE problem with (1) is that it's easy to exploit, by artificially making your client lag, which causes the server and other clients to see your character warping and rubberbanding all over the place. using (2), if you artificially try to lag your client, it's highly detrimental to you (because you just stand still -- easy target).

 

darkfall does it the best way, for its kind of gameplay (FPS). the OP in that post doesn't know what he's talking about. he's conflating lag with ping, when the 2 are handled very differently.

 

 

  User Deleted
3/31/09 8:36:22 AM#7

 

Movement prediction would not be a good thing for a game like this (Due to its combat nature), its best to leave it all on the server.

 

However, we do know that the server is the clients bitch in regards to movement and updates....or speedhacks wouldn't work.

The real problem is they implemented the server as the end all be all of movement (good) , however it doesn't seem to have any sanity checks (bad). Meaning the server accepts any data received as real.

Essentially, it's halfassed.

 

  robertb

Novice Member

Joined: 2/26/09
Posts: 676

3/31/09 8:41:55 AM#8
Originally posted by Mrbloodworth

 

Movement prediction would not be a good thing for a game like this (Due to its combat nature), its best to leave it all on the server.

 

However, we do know that the server is the clients bitch in regards to movement and updates....or speedhacks wouldn't work.

The real problem is they implemented the server as the end all be all of movement (good) , however it doesn't seem to have any sanity checks (bad). Meaning the server accepts any data received as real.

Essentially, it's halfassed.

 

 

I have seen speed hacks in most of the online games I have played, at one time or another. As this is the case, do all MMO's rely on similar architecture?

  User Deleted
3/31/09 8:47:44 AM#9
Originally posted by robertb
Originally posted by Mrbloodworth

 

Movement prediction would not be a good thing for a game like this (Due to its combat nature), its best to leave it all on the server.

 

However, we do know that the server is the clients bitch in regards to movement and updates....or speedhacks wouldn't work.

The real problem is they implemented the server as the end all be all of movement (good) , however it doesn't seem to have any sanity checks (bad). Meaning the server accepts any data received as real.

Essentially, it's halfassed.

 

 

I have seen speed hacks in most of the online games I have played, at one time or another. As this is the case, do all MMO's rely on similar architecture?

No, they don't, and speed hacks come in different flavors. Its more of a case of "How easy did you just make it for people to spoof the server or create speed/movement hacks".

Its all data, and all data can be manipulated, its a question of ease.

And no, i have not seen any of darkfalls code, im am purely speculating here. I am giving them the benefit of the doubt that they did not leave the client to report movement..... Even if i see things that give me pause to the contrary. Pun intended.

 

  javac

Apprentice Member

Joined: 8/13/08
Posts: 1266

3/31/09 9:47:22 AM#10
Originally posted by robertb

I have seen speed hacks in most of the online games I have played, at one time or another. As this is the case, do all MMO's rely on similar architecture?

 

all network games (not just MMOs) use the same basic principle of the server streaming information to the client, which the client then renders. in all modern games, the server dictates everything, essentially because the information the client sends cannot be trusted not to be manipulated. there are, however, various thorny issues with how network lag is handled, accordingly most network games use varying degrees of client side prediction (read: guesswork) when the stream of info between client & server are interrupted (due to lag/packetloss/disconnection).

 

deliberate manipulation of this network stream can produce various in-game effects, such as what we might call speedhacking, rubberbanding, etc (alternatively, speedhacks and the like may arise from exploitation of a plain old boring bug in the network stack - won't go into this here).

 

there is basically no real way of preventing this kind of abuse, without impacting performance in a big way. similarly, all client/server programs (not just games) are susceptible to other programs intercepting and manipulating the data stream between client/server, by the very nature of the client/server setup. as you said, the proof is in the pudding: basically every network game out there has speedhacks and/or aimbots.

 

lastly, it may simply not be possible to implement certain kinds of games without offloading *some* of the game logic onto the client, which obviously means introducing the potential for cheats. course, there is the possibility of doing thing like on the fly encryption/decryption of packets between client/server but the potential for figuring out a cheat is always going to be there.

 

 

  Rekindle

Hard Core Member

Joined: 3/03/05
Posts: 1164

3/31/09 11:28:43 AM#11
Originally posted by Mrbloodworth

 

Essentially, it's halfassed.

 


 

Like many, many aspects of this game from the UI to the (lack of) real content.

  pprllo

Novice Member

Joined: 6/10/07
Posts: 106

3/31/09 12:56:58 PM#12

I think it's quite crystal clear that 100% of the movement is handled client-side without sanity checks. That's probably for the sake of performance, because this kind of system is probably the fastest one.

In other words, they're NOT using time based movement at all, they're using another system (simpler & faster & less precise, if you wish).

 

With such an architecture, implementing the system the OP is talking about would be very hard and taxing performance-wise.

 

  tombear81

Novice Member

Joined: 3/17/07
Posts: 814

"Meeza spullon and gramma is ou me ma taut me. Yousa no write be nasta to ma speelin n a grumma !"

3/31/09 3:47:20 PM#13
Originally posted by javac 

the HUGE problem with (1) is that it's easy to exploit, by artificially making your client lag, [..]

 

Oh dear !...  me  and javac agree on something. I have seen this problem in quake wars where attempts are made "average"  out latency. I have seen plenty of players almost unhittable and jerkily moving due there deliberate gimping of their connection. Of course on decent servers they get banned quickly. With regard to DF we don't know what the source code is like as we cannot see it.

 

However just to disagree with Javac (!) the combat is still too rudimentry and basic for my and many more refined FPS players tastes. Certainly not M&B like. At best the code is probably a very generic solution. No technological marvel here I am afriad. Very simple combat  actions/options so you can have much more people on screen. No real boundary has been broken. I can understand the pro and cons of various techinques and limitations but I cannot understand why DF combat is marked as revolutionary when it is simply not. it is simply 100 odd people (if that) running around and hitting left mouse button and right occasionally with little sequencing or fluidity or directional attacks/blocks. 

To put it another way AV won't be selling this piece of DF on as Tasos reuseable technology speech which he gave to attract funders. It is simply so so... 

  User Deleted
3/31/09 4:10:29 PM#14

Okay you will flame me but I will state something here, it harkens back to the days of yor, when rocks were soft and dirt was young and there was this game called EverQuest. The GM's there decided in the vasty world of pvp they would do something new and interesting, they would not make people that lagged out keep moving, or stop, if they were in combat. Nope if you smacked a lagged out person that person became one bad #%# npc that handed you your #$% without mercy and also handed the same #$% to anyone else that hit them. Call it what you will but short sighted codeing be short sighted codeing. If EQ did that some three to four years ago, they should be able to as well.

  jimmyman99

Novice Member

Joined: 6/07/04
Posts: 3222

"Damn you, poetical justice" - Homer Simpson

3/31/09 4:55:43 PM#15
Originally posted by javac
Originally posted by DarthRaiden

Here you find proper reply

 

the linked poster above is correct.

 

in a nutshell:

when client<->server communication is interrupted, on the server side, you have 2 basic implementation choices: (1) allow the client (player) to continue along their last known course, or (2) treat the client as stopped or barely moving. DF does the latter, as do most FPSes. most MMOs do the former.

 

the problem with (2) is that to other people, the lagged out player just stops moving, which obviously sucks for them in combat. with (1), the player would just appear to continue moving in the same direction. examples of this in MMOs are, eg: someone disconnecting in a raid and ghosting into the boss/spawn up ahead, or DAOC "lag-casting".

 

the HUGE problem with (1) is that it's easy to exploit, by artificially making your client lag, which causes the server and other clients to see your character warping and rubberbanding all over the place. using (2), if you artificially try to lag your client, it's highly detrimental to you (because you just stand still -- easy target).

 

darkfall does it the best way, for its kind of gameplay (FPS). the OP in that post doesn't know what he's talking about. he's conflating lag with ping, when the 2 are handled very differently.

 

 

No, if you artificially generate lag in scenario 1, then you will warp on client side, since the server will update your correct position to the client when its connection re-establishes. The only difference is in 1) as you mentioned you will just keep doing the last action server recorded (EQ1 style: moving forward into lava pools, rotating around your axis, etc) and in 2) you will just stop. Why would client data be preferred over server data? It makes no sense.

I am the type of player where I like to do everything and anything from time to time.

http://en.wikipedia.org/wiki/Holodomor - pre-WW2 genocide.

  javac

Apprentice Member

Joined: 8/13/08
Posts: 1266

3/31/09 8:07:22 PM#16
Originally posted by jimmyman99
Originally posted by javac
Originally posted by DarthRaiden

Here you find proper reply

 

the linked poster above is correct.

 

in a nutshell:

when client<->server communication is interrupted, on the server side, you have 2 basic implementation choices: (1) allow the client (player) to continue along their last known course, or (2) treat the client as stopped or barely moving. DF does the latter, as do most FPSes. most MMOs do the former.

 

the problem with (2) is that to other people, the lagged out player just stops moving, which obviously sucks for them in combat. with (1), the player would just appear to continue moving in the same direction. examples of this in MMOs are, eg: someone disconnecting in a raid and ghosting into the boss/spawn up ahead, or DAOC "lag-casting".

 

the HUGE problem with (1) is that it's easy to exploit, by artificially making your client lag, which causes the server and other clients to see your character warping and rubberbanding all over the place. using (2), if you artificially try to lag your client, it's highly detrimental to you (because you just stand still -- easy target).

 

darkfall does it the best way, for its kind of gameplay (FPS). the OP in that post doesn't know what he's talking about. he's conflating lag with ping, when the 2 are handled very differently.

 

 

No, if you artificially generate lag in scenario 1, then you will warp on client side, since the server will update your correct position to the client when its connection re-establishes. The only difference is in 1) as you mentioned you will just keep doing the last action server recorded (EQ1 style: moving forward into lava pools, rotating around your axis, etc) and in 2) you will just stop. Why would client data be preferred over server data? It makes no sense.

 

there is usually some resyncing of where the client & server think you should be, since while packets were lost, the server was only guessing what you *might* have been doing were packets not lost.

 

in any case it's clear DF doesn't do movement on the client.

  tombear81

Novice Member

Joined: 3/17/07
Posts: 814

"Meeza spullon and gramma is ou me ma taut me. Yousa no write be nasta to ma speelin n a grumma !"

4/01/09 12:18:11 PM#17
Originally posted by javac
Originally posted by jimmyman99
Originally posted by javac
Originally posted by DarthRaiden

Here you find proper reply

 

the linked poster above is correct.

 

in a nutshell:

when client<->server communication is interrupted, on the server side, you have 2 basic implementation choices: (1) allow the client (player) to continue along their last known course, or (2) treat the client as stopped or barely moving. DF does the latter, as do most FPSes. most MMOs do the former.

 

the problem with (2) is that to other people, the lagged out player just stops moving, which obviously sucks for them in combat. with (1), the player would just appear to continue moving in the same direction. examples of this in MMOs are, eg: someone disconnecting in a raid and ghosting into the boss/spawn up ahead, or DAOC "lag-casting".

 

the HUGE problem with (1) is that it's easy to exploit, by artificially making your client lag, which causes the server and other clients to see your character warping and rubberbanding all over the place. using (2), if you artificially try to lag your client, it's highly detrimental to you (because you just stand still -- easy target).

 

darkfall does it the best way, for its kind of gameplay (FPS). the OP in that post doesn't know what he's talking about. he's conflating lag with ping, when the 2 are handled very differently.

 

 

No, if you artificially generate lag in scenario 1, then you will warp on client side, since the server will update your correct position to the client when its connection re-establishes. The only difference is in 1) as you mentioned you will just keep doing the last action server recorded (EQ1 style: moving forward into lava pools, rotating around your axis, etc) and in 2) you will just stop. Why would client data be preferred over server data? It makes no sense.

 

there is usually some resyncing of where the client & server think you should be, since while packets were lost, the server was only guessing what you *might* have been doing were packets not lost.

 

in any case it's clear DF doesn't do movement on the client.

 

Thought a quick glance of you tube shows some wonderful speed hacks with no rubber banding or latency effects you would normally see. I think the speed of the movement may actually be .. client side?

Come on Javac post some links to you tube vids of hacks and discuss with comparison to other speed hacks in other games:)

  jimmyman99

Novice Member

Joined: 6/07/04
Posts: 3222

"Damn you, poetical justice" - Homer Simpson

4/01/09 2:29:38 PM#18
Originally posted by tombear81

Thought a quick glance of you tube shows some wonderful speed hacks with no rubber banding or latency effects you would normally see. I think the speed of the movement may actually be .. client side?

Come on Javac post some links to you tube vids of hacks and discuss with comparison to other speed hacks in other games:)

 

I think you are right. If client movements were processed on server, then there would be no speedhacking, since the server adjusts your location. If this work is done on client side, though, then the client can be "hacked" and simply update server with movement distances 10 times more then usual.

If that is the case, wouldn't there be some checks whether client reports abnormal movement (after compensating for sprinting/riding)? I've done some work with client/server communications, but never in a game, so maybe I am missing something?

I am the type of player where I like to do everything and anything from time to time.

http://en.wikipedia.org/wiki/Holodomor - pre-WW2 genocide.

  pprllo

Novice Member

Joined: 6/10/07
Posts: 106

4/01/09 2:48:46 PM#19
Originally posted by javac

there is usually some resyncing of where the client & server think you should be, since while packets were lost, the server was only guessing what you *might* have been doing were packets not lost

in any case it's clear DF doesn't do movement on the client.

Actually the opposite is quite clear. The movement is quite clearly almost completely client side, and I'm willing to bet that the client sends <X, Y> packets to the server, rather than <DeltaX, DeltaY> packets.
 

IMHO they did not even implement sanity checks.

I think the only serverside movement-related feature is collision detection (there are no pass-through-walls hacks as of now AFAIK).

  PapaB34R

Novice Member

Joined: 11/15/04
Posts: 303

Never lose your way, or someone else might find it

4/01/09 3:00:40 PM#20
Originally posted by Galadourn

According to this thread...it's terribly wrong.

 

Any experts here to make more clear?

 

is this an 1april joke or is it really that bad?

2 Pages 1 2 » Search