Chaosforge Forum

  • April 16, 2024, 16:45
  • Welcome, Guest
Please login or register.



Login with username, password and session length
Pages: [1] 2  All

Author Topic: Idea: implementation of a KeyMovie variant for faster online Crawling  (Read 16604 times)

TFoN

  • Colonel
  • *
  • Offline Offline
  • Posts: 562
  • Gleefully antisocial!
    • View Profile

Problem is that I haven't found a comfortable link on the Crawl! page, neither to a forum nor to an e-mail address. I'm also suggesting this while not knowing quite how it already works, nor if Crawl [Stone Soup] works in a way similar enough to DoomRL et al.

By using the RNG's state and the player's keyings, the game should effectively be played twice and the same way in both (EDIT(clarity): once on the server and once on the player's) - while using hardly any bandwidth.
Watching a game in progress will work mostly the same way - the viewer will recieve copies of the game's save files at first (likely only the current level's state will be needed, until the player travels somewhere else), together with the RNG's state. After that, barring travel, only the player's keyings will be sent over.

Of course, unless someone can assure this will work, it should be an experimental, non-default mode, possibly only usable by viewers at first, as to not screw-up someone's game.

Also, if this works here, it will pave way for a roguelike MMORPG of huge scope and magnitude!


EDIT: note that this is an official request for help getting this through to someone inside the Crawl! team. If someone could drop a link to here somewhere, or tell me where to drop one, that'd be very welcome.
« Last Edit: January 31, 2007, 04:53 by TFoN »
Logged

BDR

  • Elder
  • Lieutenant Colonel
  • *
  • *
  • Offline Offline
  • Posts: 400
    • View Profile

Stone Soup AFAIK hasn't been updated in... well.. eons (like I said, AFAIK).  The telnet Crawl version has ttyrec videos here (if you don't want to look at my .ttyrec's, erase my name and you'll get the full list of players to choose from), and you can either use this, WinRAR, or 7zip to unpack them, and this to play them.  Of course, if you've got Linux this will be unnecessary... I don't know if there's a way to help Mac users, though. >_>
Logged

Supernaut

  • First Sergeant
  • *
  • Offline Offline
  • Posts: 120
    • View Profile

I had a similar idea for a multiplayer roguelike before but i think it would be DAMN hard to do. You know, the whole coding thing should have to be redone. I think even being able to talk with player while watching him playing would be loads of fun. But multiplayer crawl fx....man this is a dream. Or imagine 2 player cooperative Doom. Maaaaan ;) .
Logged

Kornel Kisielewicz

  • God Hand
  • Apostle
  • *
  • *
  • Offline Offline
  • Posts: 4562
    • View Profile
    • http://chaosforge.org/

Wait, wait, wait, what Ideas? xD
Logged
at your service,
Kornel Kisielewicz

Anticheese

  • Lieutenant Colonel
  • *
  • Offline Offline
  • Posts: 483
    • View Profile

I think he's talking about making a Roguelike into an MMORPG and also having a game recording feature.

Game Recordings will make it into DRL at some point BTW :)

--

TOMENET is an attempt at an MMORLRPG, I only played it for about five minutes but it proves that it can be done.

Personally I think that QuakeRL would be cool.

Or DRL Multiplayer.

Co op, Deathmatch..So good...
Logged

Aerton

  • Elder Chaos Guard
  • First Lieutenant
  • *
  • *
  • Offline Offline
  • Posts: 205
    • View Profile

Quote
By using the RNG's state and the player's keyings, the game should effectively be played twice and the same way in both (EDIT(clarity): once on the server and once on the player's) - while using hardly any bandwidth.

Yeah, it would work. Unless you are using real numbers or something else machine-depended in game logic.


TOMENET is an attempt at an MMORLRPG, I only played it for about five minutes but it proves that it can be done.

It doesn't prove that is can be done playable and fun.

There is nothing particular hard in implementing a network RL compared to a single player one, from the technical point of view. The problem is to make it fun.
Logged

Kornel Kisielewicz

  • God Hand
  • Apostle
  • *
  • *
  • Offline Offline
  • Posts: 4562
    • View Profile
    • http://chaosforge.org/

Yeah, agreed with Aerton. But that brings me to my idea:

I watched the Crawl server lot, and had an idea: Who needs multiplayer anyway??

Let me explain. Roguelikes were made as competetive solo games. As such they were not intended to be "multi-player" but "singleplayer" with he feeling of competition or parallel gameplay. Why do people play on the server instead of their own computer?

1) to have a single score list
2) to watch other people play
3) to have the feeling that they're not alone here

Number 3 is crucial. How does the crawl server achieve that? BONES.

When I thought about that, an idea sprang to my mind... It started with the fun idea -- why not give the ability to use those blank scrolls to write down messages, and the scroll would be saved with the player ghost... then another player could defeat the ghost and pick up the paper and read a message "Dammit, there are tons of killer bees on this level, and they blocked my exit... if you read this, then it means I didn't make it...". Sounds fun?

Well, why not push that idea to the extreme! Why not make a single-player SHARED WORLD roguelike game?? No need to solve time-related problems, as everyone would be livining in the pace they want to. The game would trickyly disallow the characters making changes on the same level, and you would never meet a character in person, but you would constantly witness the effects of other characters doings. Imagine the BONES idea exaggarated to the maximum. Also things like trade between characters via a shop system would be possible. Many, many, many ideas for that I would have, and it wouldn't be too hard to implement... what do you all think? :]
Logged
at your service,
Kornel Kisielewicz

TFoN

  • Colonel
  • *
  • Offline Offline
  • Posts: 562
  • Gleefully antisocial!
    • View Profile

I think you all (with the possible exception of Aerton) misunderstood my main idea: although what you're talking about has to do with the last thing I wrote (well, before the edit), I'm talking about a system to be used for SINGLE PLAYER online play. It has much less to do with multiplayer or game recording, at least for the moment.

If my guess is correct, at the moment there are [relatively] massive amounts of data being transported between server, player and watcher computers, occasionally (or in my case always) causing alot of lag.
If, on the other hand, only the RNG's state and the player's moves are transported between computers, lag will be likely nonexistent.
This should work for the same reason KeyMovies work, where on replay the game is effectively played again, with RNG (which is effectively not so random) giving the same results as it did last time, including level layout, item and monster spawns, damage results and so forth. The game will be played partially on the player's computer (which will require having some game data on it, like the current level), sending moves to the server which duplicates those moves - and therefore the rest of the game. On level travel, new data will be sent to the player (the new level, changes occuring by calculation of turncount etc.), before resuming duplication play. A watcher will be doing mostly the same, though data will only be sent to it - the watcher will recieve level data on connection, and from that point only move data will be recieved (barring level travel), and the game will be duplicated here too. All this may require frequent checksum tests, at least for a while, but also these are minor in size.

Aerton said this requires the game to not have real values in its logic - I haven't looked into the code, but I'm sure this can be managed, even if this will require a [possibly heavy] game mod.
The first things I can think of are magic affinity (at X*1.5*Aff, where X is power up to this calculation and Aff is the number of ranks of this affinity) and ability values (where 17 Int means multiplying power by 1.7). But these can be worked around, assuming they aren't already.

Multiplayer may use this in some way, yes, but for the moment I dare not look that far - I don't even know if this idea, simple in comparison, will work.



While I was writing this Kornel wrote a different idea - sounds bizzare. Ever seen Fight Club? It gives me a "haunted" feeling, like the world around you knows things that you don't. This idea could be incredible, but I suggest making a seperate game which will be designed to contain the unique feel and to augment it.

Kornel Kisielewicz

  • God Hand
  • Apostle
  • *
  • *
  • Offline Offline
  • Posts: 4562
    • View Profile
    • http://chaosforge.org/

Of course it would be a separate game -- the whole game would have to be balanced around that idea. My question is is it worth a try? ;].
Logged
at your service,
Kornel Kisielewicz

TFoN

  • Colonel
  • *
  • Offline Offline
  • Posts: 562
  • Gleefully antisocial!
    • View Profile

As I had said, it could be incredible :)


But sticking to the original topic, as the resident programmer and originator of KeyMovies, do you consider my idea rational and/or usable?

Kornel Kisielewicz

  • God Hand
  • Apostle
  • *
  • *
  • Offline Offline
  • Posts: 4562
    • View Profile
    • http://chaosforge.org/

To be honest I don't get it mostly xD. What is it supposed to achieve? Just a bandwidth reduction? Also note that it would mean that the game would have to be ran on both machines...
Logged
at your service,
Kornel Kisielewicz

Aerton

  • Elder Chaos Guard
  • First Lieutenant
  • *
  • *
  • Offline Offline
  • Posts: 205
    • View Profile

To be honest I don't get it mostly xD. What is it supposed to achieve? Just a bandwidth reduction? Also note that it would mean that the game would have to be ran on both machines...

Yeah, it will reduce bandwidth considerably (But even if you send one byte containing pressed key, a lot more data actually travel across the wire - addresses, packets headers, minimum packet size enforcement, etc)
More important, you can allow observer to use some commands that do not perform any action, such as browsing inventory or character sheet.


Well, why not push that idea to the extreme! Why not make a single-player SHARED WORLD roguelike game? ....

Reminds me of door games on BBSs ten years ago...
I think it can be a fun addition to a single player game, but only if was a good game prior to addition.
Logged

TFoN

  • Colonel
  • *
  • Offline Offline
  • Posts: 562
  • Gleefully antisocial!
    • View Profile

Yeah, it will reduce bandwidth considerably (But even if you send one byte containing pressed key, a lot more data actually travel across the wire - addresses, packets headers, minimum packet size enforcement, etc)
More important, you can allow observer to use some commands that do not perform any action, such as browsing inventory or character sheet.

That's not nearly as much data as is sent right now AFAIK, so it's Ok.

The game running on both machines shouldn't be a problem at all. It seems the games are currently run on the host computer, so there shouldn't be any additional strain on it. The resource consumption on the guest computers, at most the equivalent of running an offline game, should be much more than manageable. The resulting fast play should be well worth those resources.

But consider that if game recording leads to faster online play, then the next step in development should be very interesting indeed. Fact is that Aerton already came up with allowing some watcher intervention, and that's just in the scope of a few of hours.

I'm guessing that if this whole thing is implemented, then yes, a fast, functional, and most of all free (as a drastic reduction in bandwidth requirements would mean much less for the maintainers to pay for), MMORLRPG would be near. And could be followed, or preceeded, by who knows what.

But for all this to happen, it needs to be determined whether or not this idea can realistically work, either now or with some changes.
Here's the run down, so far:
  • Game and save files are present and saved on host.
  • Game data as required will be present on guest(player/watcher). If this is mostly the entire game, then it can certainly be a downloaded copy for offline play - in any event, only keystrokes will be sent to the host, with the exception of checksum tests.
  • On game start/continue (effectively level travel), RNG state and level layout are sent to guest(player) computer, and loaded into the game.
  • Player action is sent to host and duplicated there.
  • If the action is level travel, the new level is created/loaded at host and sent to guest, together with RNG state. Else, host waits for another action.
  • Watchers recieve actions and level travel results from host, as host recieves them from guest(player). Watchers do not send any data back to host.
  • Watcher can intervene, for purposes of inventory, skill and spell list inquiry. Then, either current game data is sent to guest(watcher) by exiting the list, or the game goes on in the background while the list is open (this will require open/close list commands to not influence the RNG, at least for the watcher).

IMO it will make cheating possible on the guest computer, but since the changes won't be recorded into the host's game, that doesn't really matter. It will just make games amusing to watch externally, as the player collides with a wall for no reason :)


EDIT: some minor changes to text.
« Last Edit: February 01, 2007, 07:37 by TFoN »
Logged

Kornel Kisielewicz

  • God Hand
  • Apostle
  • *
  • *
  • Offline Offline
  • Posts: 4562
    • View Profile
    • http://chaosforge.org/

The way you described it it is very prone to cheating (any MMORPG designer will tell you that). Foremost, the player can intercept the sent data and see the level he currently visits xD.
Logged
at your service,
Kornel Kisielewicz

Adral

  • Second Lieutenant
  • *
  • Offline Offline
  • Posts: 180
    • View Profile

Hey lots of ideas here!

I watched the Crawl server lot, and had an idea: Who needs multiplayer anyway??

Let me explain. Roguelikes were made as competetive solo games. As such they were not intended to be "multi-player" but "singleplayer" with he feeling of competition or parallel gameplay. Why do people play on the server instead of their own computer?

1) to have a single score list
2) to watch other people play
3) to have the feeling that they're not alone here

Number 3 is crucial. How does the crawl server achieve that? BONES.

You are forgetting one thing - learning from other players via example and chatting a bit about your game or other people's games, in a place where you know everyone interested is free to take a look at real time at the things you are talking about. It helps to number 3 :)

I find it fun to be able to ask questions, chat a bit, etc, about the games in progress, but I understand many people will find it unnecesay or even boring. That's why there is also an offline version.


When I thought about that, an idea sprang to my mind... It started with the fun idea -- why not give the ability to use those blank scrolls to write down messages, and the scroll would be saved with the player ghost... then another player could defeat the ghost and pick up the paper and read a message "Dammit, there are tons of killer bees on this level, and they blocked my exit... if you read this, then it means I didn't make it...". Sounds fun?

Sounds real fun. Unfortunately seems your idea really didn't "get accepted" at rgrm. But I'd write silly notes for my characters, of course :P

Well, why not push that idea to the extreme! Why not make a single-player SHARED WORLD roguelike game?? No need to solve time-related problems, as everyone would be livining in the pace they want to. The game would trickyly disallow the characters making changes on the same level, and you would never meet a character in person, but you would constantly witness the effects of other characters doings. Imagine the BONES idea exaggarated to the maximum. Also things like trade between characters via a shop system would be possible. Many, many, many ideas for that I would have, and it wouldn't be too hard to implement... what do you all think? :]

Sounds really nice, but can you please elaborate it a bit? What is the plan? What would be changed, and what not? How would we (as players) see that?

-

And TFoN, I'm really sorry but I really don't follow you. Is the idea to play everyone at once on the same levels? Or is it similar to Kornel's (certain actions creat consequences for everyone)? As someone pointed out, there's TomeNET out there already, does it resemble in some aspect what you are proposing?

A MMORLRPG sounds fun, but the execution may well be not fun at all. That's why I'm asking so much, because a fun MMORL would certainly be something to witness and play with abandon. :P

I find the idea really interesting.
Logged
Paranoia is a very comforting state of mind. If you think they're out to get you, it means you think you matter
Pages: [1] 2  All