Multiplayer

From OniGalore
Revision as of 00:07, 9 April 2011 by Iritscen (talk | contribs) (some rewriting, and new video links)
Jump to navigation Jump to search

Original multiplayer

Kevin Armstrong, Oni's networking programmer, is seated at the computer in the background (Macworld NY '99)

When Oni was first being shown publicly, multiplayer (MP) was promised, at least in a LAN setting. Some words from the Oni staff on multiplayer (back when it was in development) can be found in the interviews with Kevin Armstrong (networking programmer) and Steve Abeyta (3D animator), as well as with Brent Pease himself (see video link below). Eventually, in May of 2000, it was announced that there would be no multiplayer feature in Oni due to issues with latency.

The lack of multiplayer in the final product may have been the biggest blow to Oni's reception. Combined with complaints about the AI, players wanted to be able to play against other humans. The public viewed this as another sign of the game's incompletion, comparing Oni to FPS titles with multiplayer such as Unreal and Quake, and failing to recognize that melee combat over the Internet was nearly impossible at that time (and still is; Overgrowth a.k.a. Lugaru 2 promises LAN support only; a notable exception from Oni's time period seems to be State of Emergency, a melee-oriented game that apparently had reasonably fluid online multiplayer).

It is not clear why Bungie did not at least include LAN play functionality, since visitors to Bungie's booths were able to play 4-8 player LAN games (pictured at right, video below) at the E3 of May 1999 in Los Angeles, the New York City Macworld Expo of July 1999 and the San Francisco Macworld Expo of January 2000. However, it is possible that multiplayer suffered from more issues than just latency, and that, without more time to develop this mode of gameplay, the developers decided to cut it rather than frustrate players with an incomplete netplay feature.

For a period of time, starting from the announcement that MP had been cut (at the Macworld Expo of May 2000), until some months after Oni's release, it was hoped that Oni would be patched to add in multiplayer. However, as Bungie no longer owned the code, it would have fallen on Take Two to perform this work. Whether due to the difficulty of learning and building on Bungie's code, or some lack of motivation, no patches were made to Oni.

Video evidence:

Fake multiplayer

In Oni Team Arena, you fight on one side of a large AI-driven battle.

Oni Team Arena. Developed by geyser, after an "Unreal Tournament" attempt by Script10k, with help from Your_Mom and EdT. Emulates multiplayer-like gameplay with respawning bots, meant to experiment with advanced modding, multiplayer-oriented or not (e.g., AI or collision upgrades). Project page HERE. Currently more or less maintained by Gumby, but don't hold your breath (ADD, scope creep, whatever). In fall 2008, the Mac engine was brought on par with the PC engine, with BSL functions such as chr_focus and chr_location, which opened the way for a platform-independent and fully featured version of OTA.

Apart from gameplay videos such as THIS one, a remarkable scene (heartwarming and disturbing at the same time... --geyser) is that of Russian kids playing Oni Team Arena and enjoying themselves tremendously.

Fan-made multiplayer

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.

OniPlayer was a project coordinated by typhen and involving Alloc, Kumo, and 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, 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 Flatline experiment (an external patcher) and the Daodan DLL.

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.