Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

single player client/server, watch other player, chat room #354

Open
AquariusPower opened this issue May 16, 2018 · 2 comments
Open

single player client/server, watch other player, chat room #354

AquariusPower opened this issue May 16, 2018 · 2 comments

Comments

@AquariusPower
Copy link
Contributor

AquariusPower commented May 16, 2018

some scratch thoughts:

basic:
lightweight server (no gfx, sounds etc)
client: renders screen and sounds, send commands and receive results.

chat room:
other than chat, we can watch others playing, the server will receive commands only from one client, but send all the results to everyone watching prioritizing the player

multiplayer one day:
being turn based, everyone has to act in their time, and others will have to wait.
game master (machine/user hosting the server) can skip other player turn (in case of connection problems) or act for him if pre-combined.

=====================
for all that, we would have to isolate the drawing from the game engine,
I guess all the commands that do something like ex.: DOUBLE_BUFFER->Fill(...)

The Fill() would happen in all clients listening to the session.
Like a BitmapBroadcast->Fill(...) I guess ?

I guess it would not be that complex, but may just be a bad guess :)

@ryfactor
Copy link
Member

@AquariusPower have you had a look at: https://github.com/jarpiain/ivan-tty
It seems like the server is down since long ago, but I remember seeing this working and I thought it was pretty neat.

There's a hi-score server over on heroku: https://ivan-hall-of-fame.herokuapp.com/
For which you can find the source code here: https://github.com/emlai/ivan-hall-of-fame
It's not fully integrated into IVAN yet, but here is the relevant PR: #264 (we haven't figured out how to keep it secure, but perhaps that begs the question "why keep it secure at all?")
It'd be nice to host it on the forum server, but that is written in PHP

That's all of the more advanced community/multiplayer features I'm aware of to date, I don't know if you knew of these already.

@AquariusPower
Copy link
Contributor Author

very nice! I will take a look for sure, thx!

btw, I was reading about the high score on the other post. I think the only secure way would be (one day) for the game be played by many ppl using a lot of lightweight servers hosted by attnam.com team, so you would be sure the server code logic was not modified, despite the client could still be, so what the server sends to the client would be of ultimate importance.

But... my goal is just for the fun of playing it!
Also, may be one day play with other ppl too.
Balancing would be required to multiple users I guess, despite one extra spawned mob per extra user could suffice hehe.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants