Grid Sage Forums

Cogmind => Ideas => Topic started by: Senjai on February 22, 2017, 01:56:28 AM

Title: Client server setup
Post by: Senjai on February 22, 2017, 01:56:28 AM
Crawl, nethack and even cdda benefit from the fact you can play online with a community.

It would possibly be infeasible (not terminal native), but really awesome if we had some sort of client server relationship become possible. Even if you need a cogmind client running to watch someone else play, the data can just go through an intermediary. Server high scores and the like could be really awesome here.
Title: Re: Client server setup
Post by: Kyzrati on February 22, 2017, 02:12:25 AM
Yeah I'd like to improves Cogmind's global high score system (http://www.gridsagegames.com/cogmind/scores/) such that it's automated (its feature set continue to grow, but it's not automated), but something on par with DCSS, e.g. spectating or recording plays, is not possible due to Cogmind's architecture.
Title: Re: Client server setup
Post by: Senjai on February 23, 2017, 04:30:45 PM
Ah okay, worth a shot! :D Automated high scores would be pretty awesome. If you had to do it over again, would you change the architecture to be more malleable?
Title: Re: Client server setup
Post by: Kyzrati on February 23, 2017, 06:39:04 PM
Well, I'm not 100% confident I'm even capable of making it work if starting from scratch, but I could certainly try :)

That's the thing with huge projects, though--you can't be sure of everything you might want to do with it in the future, and there will always be some feature that's tough to edge in based on decisions made ages ago and baked into the system :P
Title: Re: Client server setup
Post by: zxc on February 26, 2017, 06:31:17 AM
Save it for Cogmind 2 :)
Title: Re: Client server setup
Post by: C45513 on March 16, 2017, 10:52:41 AM
About replays: would it be possible via rebuilding the world seed and playing back the same sequence of player turns? It would certainly help my own gameplay to be able to watch some of the more accomplished players' runs!
Title: Re: Client server setup
Post by: Kyzrati on March 16, 2017, 07:30:18 PM
That's what I tried before with the engine (a long time ago). While it's easy to seed a game and play the same world again, as we do with our weekly seeds, when it comes to actually carrying out an entire game it requires that every source of randomness also be recreatable, but that means separating out all the logic from display and other features that don't impact outcomes, as far as random number generation is concerned (the implication being it's not so easy to do that with a large preexisting code base xD).

It's something I'd still like to experiment with, but there are many such things and time is limited :/. That and I don't think it would be a very good system, because ideally you would also want to be able to pause (not too hard) and rewind/fast forward (a nightmare and probably impossible with Cogmind the way it's coded).

If you want to watch runs there's also YouTube and Twitch. I'm back to regular streaming, and others do occasional streams as well:
https://www.twitch.tv/kyzrati/
https://www.twitch.tv/gammafunk/
https://www.twitch.tv/shobalk/
Title: Re: Client server setup
Post by: C45513 on March 17, 2017, 02:03:13 AM
Alright, I'm following everyone on twitch now. That's too bad about replays, but I understand. I was wondering about the RNG and whether hacks and hit/miss calcs were done ad hoc or based on the seed. What if the random outcome of each event was logged in addition to the player's moves? Would that present a similarly insurmountable problem?
Title: Re: Client server setup
Post by: Kyzrati on March 17, 2017, 04:42:55 AM
That would actually be an even bigger problem, yes :P