News:

Simutrans Tools
Know our tools that can help you to create add-ons, install and customize Simutrans.

Network mode tools

Started by jamespetts, July 08, 2009, 09:12:41 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

jamespetts

Now that progress is being made towards the network version (and many thanks to Prissi for all the hard work being put into it), might I take the opportunity to suggest one or two features/tools that might be very useful in network play?

Firstly, it would probably work better if players could log in and log out from the server at will, without their games being disrupted, so that people could dip into and out of multiplayer games at leisure instead of having all to be together at particular times. To facilitate this, it would be helpful if a player could set a password for each slot. The administrator ought be able to reset the password in case a player forgets or a player becomes inactive and the administrator decides that it is best to let somebody else take over.

Secondly, the administrator and public service player ought not necessarily be the same thing (or even necessarily the same person). One might think of the difference as being similar to the difference between an administrator and a moderator at a forum. The administrator would generally have console access to the server. The public service player would log in to the server just like any other player (with a password), and would be able to perform the public service player's tasks during the game, as well as use the game interface to oversee the game and set/enforce/adjudicate upon any agreed rules.

Thirdly, pause and fast-forward will need particular consideration. Fast-forward ought work only when either (1) all players currently logged in; or (2) the public service player select fast forward. The administrator ought be able to disable fast-forward entirely so that the game always progresses at an even rate (for the benefit of players who do not log in frequently). Pause should work in a similar way, with some modifications. Firstly, it should be possible to configure the server so as to make the game automatically pause whenever no players are logged in. Secondly, it should be possible to configure the server to pause and unpause automatically at certain times of day, whether or not any players are logged in. This would again facilitate long-term play by players dipping in to a continuous game for a short while every evening, and perhaps even not logging in at all on some days.

Fourthly, it would be helpful if there were some sort of in-game chat utility. Perhaps the keys could be similar to Civilization IV - tab to open the chat window, enter to send the message. The text could appear at the bottom of the screen, just above the ticker, and be accompanied by a slight noise.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

prissi

The administrator must be public player, this goes very deep in all the code. No way around this.

And unfourtunately to keep games in sync any joining will stop and trigger a local saving/reloading to keep the game current.

Fast forward and any other time modification will never work. Never. The slowest player sets the maximum, thus fast forward will not work.

jamespetts

Ahh - lack of fast forward is not much of a loss, and the administrator having to be the public player is not a serious problem either. As to the joining issue - does this mean anything worse than that, whenever a player logs in or out there will be a pause for a few moments while the save/load cycle is carried out to synchronise the player? If not, then that is not a problem either: automatic pausing when all players are logged out, presumably, would not be affected by that?
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

TPIBAW

I have one: Players should be able to vote the public service out and choose a new one when (s)he is inactive for too long.

dannyman

Network mode!?

I have long dreamed of a God game that was in a "persistent world" and I could log in every evening and see how things are going, respond to new conditions, and let the world keep running.  Will Simutrans be like this, or more like a session kinda thing?  Thanks!

Sincerely,
-danny

jamespetts

Danny,

in that case, you might also want to take a look at CitiesXL, a commercial city builder game that will be exactly that. Of course, you will have to pay for the privilege, and have a powerful computer to run it. Simutrans is free and has far lower hardware requirements ;-)

As to whether it will be a persistent world rather than something to run in short bursts: I very much hope the former, but you'll have to ask Prissi, the lead developer, whether that will be possible.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

jamespetts

Further tool suggestions:

1. The ability for any player to pay to any other player an arbitrary sum of money, either on a single occasion, or a regularly recurring amount. This should facilitate co-operation and trade.

2. The ability for any player to transfer any asset to the ownership of any other player (similar to the "make stop public" function, but applying also to ways and vehicles), which should also facilitate co-operation and trade between players.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

prissi

Non new tools will come until stable. And no extension request yet, please. First lets see if this works out.

wlindley

How about the ability to play as "teams" ... me and my brother in "slot 1" against my mom and sister in "slot 2" ...

A game with two teams, where there may be five or ten on each team, would be much easier to play when the various people are on at different times of day (on different continents, even!)... but it is important that all players on a team agree to share the same pot of money and work as co-managers of the same company.

jamespetts

Prissi,

I quite understand that nobody will be making any new features until the basic Simutrans is stable and working in network mode. However, it does make sense to think and plan ahead as to how the design will work out over the long term, not least because of the need to avoid making architectural decisions that make it difficult to implement those features in the future. It is much easier to anticipate the features now and code accordingly than not to think about them until all the coding is complete.

Another feature/tool that would be very useful is the ability of the server to send information about the currently running game to a web server, which could then be programmed to receive that information and automatically build web pages based on it. The web pages could be a way of allowing players to find a game to join (any free slots should be information that is given - as stated in another thread, it would be useful if players could be allowed to join later in the game), as well as publicising information about the game to get people interested and to encourage discussion. Perhaps there could be a screenshot gallery automatically created from any screenshots taken by players in the game.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

VS

I would think that instead of "pushing" data from server outside, it might be easier to "pull" them from there, so that the interaction is more open towards 3rd persons... but I might be wrong completely!

My projects... Tools for messing with Simutrans graphics. Graphic archive - templates and some other stuff for painters. Development logs for most recent information on what is going on. And of course pak128!

dannyman

Perhaps an easy idea: let the player de-attach from the server with a local copy of the world, then run forward in fast time.  This would allow for "testing" of complex schedules, etc, without having to wait around a very long time.  Once the client re-connects to the server, client re-syncs to current server world.

A transportation simulator simulator. :)

prissi

Locked this topic: Please refrain for discussing stuff which is not even there and might never come!