adi64 / terminus

Game Programming Seminar 2014/15
3 stars 0 forks source link

58 train setup #204

Closed Fidge123 closed 8 years ago

Fidge123 commented 8 years ago

This is an unfinished pull request. But I would like to have some feedback of the functionality.

To avoid bugs you should add 7 wagons (for a total of 8 wagons per train). The formatting of the setup screen is still not very good.

This PR also breaks multiplayer. It would be interesting for me to know what you think is the best way to manage the players setting up their trains and communicating it with the other player.

adi64 commented 8 years ago

Freight Train Simulator 2016

freight_train_simulator

Obviously the status display breaks in this scenario. Apart from that it seems to work nicely!

I noticed that I can't start the game only with an engine, which makes sense. Having a hard limit definitely would make sense, but we'll have to figure that out (I remember having heated discussions about this :D).

I'd like to have more control over the train layout, so I'd like to be able to shuffle wagons around, delete them, etc... but I think that's obvious. Replacing the text with icons or something like that would make sense, I guess.

On network: Is it important to see the current work-in-progress state of the enemy train? If it isn't we could do something along the lines of (beware, shitty ASCII-diagram incoming)

Host                    Client
Open new game           (wait)
(wait)              <-  Connect to Host
Client, pls wait    ->  (wait)
Setup train             (wait)
Client, pls Setup   ->  (wait)
(wait)                  Setup train
(wait)              <-  Here's my train
Start game          ->  (wait)
Game running            Game running

so basically the client tells the host its train configuration and then the hosts starts the game, sending all the parameters to the client (including the client configuration again - without modifying it, if possible :p).

If we extend this whole thing, we can also have "live" views of the current train states during setup. The only key thing is that client and host have a common understanding of global game state (i.e. train setup in this case).