Jump to content

Multiplayer: Difference between revisions

240 bytes removed ,  9 April 2011
→‎Fan-made multiplayer: updating things a bit
(some rewriting, and new video links)
(→‎Fan-made multiplayer: updating things a bit)
Line 22: Line 22:
==Fan-made multiplayer==
==Fan-made multiplayer==
[[Image:Flatline preview 1 screencap.jpg|thumb|250px|right|A character controlled by the copy of Oni running on the right executes a move which is seen in the copy of Oni on the left.]]
[[Image:Flatline preview 1 screencap.jpg|thumb|250px|right|A character controlled by the copy of Oni running on the right executes a move which is seen in the copy of Oni on the left.]]
Multiplayer was cut at pre-beta and so wasn't available even to the beta testers. No source code has leaked into the community to this day, pre-beta or otherwise. Even so, there have been efforts to reverse-engineer Oni's runtime to a point of synchronizing relevant structures of the game's state between computers.
Multiplayer was cut at pre-beta and so wasn't available even to the beta testers. No source code has leaked into the community to this day, pre-beta or otherwise. Even so, there have been efforts to reverse-engineer Oni's memory to a point of synchronizing relevant structures of the game's state between computers. Current knowledge of Oni's game-state and character-state structures is very nearly sufficient for multiplayer. Implementations can combine memory watching and patching, and can also be driven to some extent by Oni's own events, hooked for the purpose.


OniPlayer was a project coordinated by typhen and involving [[User:Alloc|Alloc]], [[User:Kumo|Kumo]], and [[User:ssg|ssg]]. Up to the departure of typhen, the project remained in the address-finding phase, with applications limited to Alloc's OniTrainer and typhen's OniFly (the Trainer allowed the user to set or freeze most of the known variables on demand, whereas OniFly performed elaborate freezing on character positions based on their aiming vector). Later, [http://neonew.oni2.net neonew] put the knowledge to use with OniHook, actually tracking and patching a character's animations as if synchronizing action over a network.
OniPlayer was a project coordinated by typhen and involving [[User:Alloc|Alloc]], [[User:Kumo|Kumo]], and [[User:ssg|ssg]]. Up to the departure of typhen in 2005, the project remained in the address-finding phase, with applications limited to Alloc's OniTrainer and typhen's OniFly (the Trainer allowed the user to set or freeze most of the known variables on demand, whereas OniFly performed elaborate freezing on character positions based on their aiming vector). Later, [http://neonew.oni2.net neonew] put the knowledge to use with OniHook, actually tracking and patching a character's animations as if synchronizing action over a network.


Current knowledge of Oni's game-state and character-state structures is very nearly sufficient for multiplayer. Implementations can combine memory watching and patching, and can also be driven to some extent by Oni's own events, hooked for the purpose. Current developments include the [[AE:Flatline|Flatline]] experiment (an external patcher) and the [[Daodan DLL]].
The next attempt at incorporating MP into Oni came with the [[Daodan DLL]], which supports the [[AE:Flatline|Flatline]] project started in 2008. So far, gameplay is smooth with two or three players, though gunplay is not yet supported. The latest video footage of Flatline's progress is [http://www.youtube.com/watch?v=GMeWr11QVjU HERE].
 
Some multiplayer-related features are actually present in Oni, such as "combat stats" (frag and damage counters) for every character. These combat stats are not yet accessible from [[BSL]] and so are not put to use in OTA; another problem is that dying AI lose their [[MELE]] profile, so that bots can't keep fighting after they've been fragged. An experimental fix for the latter exists, but it hasn't been implemented in a public release of the Daodan DLL as of yet.


[[Category:Oni history]]
[[Category:Oni history]]