Pages: [1]
|
|
|
Author
|
Topic: Network Gaming (Read 3358 times)
|
Flexman
Zebranky food
Offline
Gender:
Posts: 15
|
Would be fine if you could do network gaming with Ur-Quan masters. Like in Timewarp, but with central server so that it is easy for everyone to find opponents.
|
|
|
Logged
|
|
|
|
CptWinky
Guest
|
I'd love that too, but I think the UQM team isn't planning on doing it themselves.
I have been playing MAME-emulated arcade games online with Kaillera, and the lag is barely a factor. I'd think that something like Kaillera could be used for SC2 super melee online, but then again I know nothing about UQM's code at all.
|
|
|
Logged
|
|
|
|
Mr.__Fwiffo
Zebranky food
Offline
Posts: 38
I love YaBB 1G - SP1!
|
I like the idea. I'd like to practice against against people and not a computer every time. But like Cpt Winky, I don't know thing when it comes to codes.
|
|
|
Logged
|
|
|
|
|
Fossaman
Frungy champion
Offline
Gender:
Posts: 60
Deep fried Lemur, anyone?
|
I really don't think there is a multiplayer aspect TO follow, other than the initial client/server release.
|
|
|
Logged
|
|
|
|
Mr.__Fwiffo
Zebranky food
Offline
Posts: 38
I love YaBB 1G - SP1!
|
It's still a neat idea. I think it should be done. Maybe some of programmers or some other new coding team can start making a networked multiplayer melee (you know, kinda like Halo 2).
|
|
|
Logged
|
|
|
|
ggb667
Zebranky food
Offline
Posts: 2
|
I'd settle for networked me vs some other person melee. I don't see why that can't be done. In understand the threading of the code has alot to be desired.
-G
|
|
|
Logged
|
|
|
|
youBastrd
Frungy champion
Offline
Gender:
Posts: 67
It's real velour, just let yourself go.
|
Short response: it is possible to write a good network implementation for Timewarp, and quite possibly for UQM using a Kaillera model, but it'll take a truckload of work.
Long response: The "Kaillera model" actually works reasonably well for some types of games, including joystick-based games (let's lump Star Control-like games in this catagory).
So this model means just sending the keypress events+timing and treat the game engine as a black-box. For emulated games, for sure this is the only way to do it, as you don't have access to meaningful game data, like the position of objects, game states, etc. Kaillera has no idea that you're Ryu doing a fireball motion, all it knows is that you're player 1 sending: down @ t=1000, down-forward @ t=1100, forward @ t=1200, button 3 @ t=1300. Each of those events is sent to the local "black box" emulator instance according to some timing rules. If all those UDP packet blindly make it to the other end, the other end also sending those events to its "black box" instance according to timing rules. If everything goes well, Ryu throws a fireball on both machines. If not, you're in an invalid state where one computer shows Ryu throwing a fireball, and another shows any number of things based on the packets dropped or the timing they show up.
Recall that UDP does not guarentee packet order, does not guarentee arrival, does not let the sender know the message has arrived, but has little overhead.
I haven't looked at Kaillera in a long while, but generally it was passable to play games for a few minutes, but not much longer than that. You could not expect to play for, say, contiguous days using that implementation.
There are ways to improve on this implementation. You could send more data to reconstruct past data, in case any parts were missed, similar to using partity files, or at the very least, repeat some previous messages to improve reliability. It's possible to apply some good-ol' fashion nerdy math and intelligence to improve on this model. You could also make the game itself more reliable in the face of stale or invalid data, dead reckoning, that kind of thing.
But this isn't the "correct" way. The correct way is to use a proper networking lib that is capable of working with your data objects and methods directly, and providing a level of abstraction above UDP. Let it handle interpolation etc. I had made an attempt to do this with TW-Light 18 months ago (related Subversion branches) using Raknet, but unfortunately the task exceeded my skill level and time constraints. Mostly skill level.
Also in terms of a central game server, Raknet provides such a framework for finding games. One of their example programs specifically addresses this. You could also "cheap out" and simply use an external provider like Gamespy, and start the game by specifying the server to connect to from the command line. But this means publishing the server's availability, presumably by using their API somehow.
|
|
|
Logged
|
|
|
|
gasa70
Zebranky food
Offline
Posts: 5
|
I am clueless when It comes to proggramming, but different gameplay modes WOULD be awesome...If it is possible, of course.
|
|
|
Logged
|
|
|
|
|
Pages: [1]
|
|
|
|
|