Main Menu

News:

LINKS: Website | Steam | Wiki

Client server setup

Started by Senjai, February 22, 2017, 01:56:28 AM

Previous topic - Next topic

Senjai

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.

Kyzrati

Yeah I'd like to improves Cogmind's global high score system 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.
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon

Senjai

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?

Kyzrati

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
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon

zxc


C45513

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!

Kyzrati

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/
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon

C45513

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?

Kyzrati

That would actually be an even bigger problem, yes :P
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon