More to be added over time... perhaps...
I know that is frustrating, but improving this situation is something between medium and major issue, not likely to happen "any time soon". Well, who knows, but ...
Once the "watch ongoing games as spectator" would work, then it would need "only a little more extra work" to make the server also able to handle "connection lost" case in a better way; e.g. querying from other players "Player XXX lost connection - do you want to wait or kick him out?", and/or kick the "lost" player permanently out after a certain timeout, e.g. 3 minutes if he hasn't connected back in that time.I think this is necessary, otherwise there is a risk that a player gets disconnected, can't reconnect at all (permanent network problems, angry wife destroyed the computer, house burned down, ... etc. ;-), and the game would be stuck forever for the other players.
Update 2012-12-03: This feature is now implemented. If the client notices it, it will attempt a reconnect automatically. There are cases when this does not work, then try first from File menu the "Check Connection" and if that does not work, try "Reconnect". There are cases (5% ?) where synchronization does not work completely, some messages stay stuck in the client's previous' connections' buffer. There is no cure to that. Reconnect works only as long as your game client stays up and has the majority of info still in place, only recent messages get lost. Starting Colossus from scratch, there is no way to re-join and continue your game. (Basically, by then you're considered dead by server and automatically withdrawn; unfortunately then trying to join as spectator might cause trouble as well.)So, in theory, it could be implemented in a way that in any of the other participating players client an AI player is fired off and taking over; but that would need quite some tricks as well. Not to mention that the "connect to an ongoing game (as watcher, or re-connect)" functionality is basically a pre-requisite to make this here happen.
So, I would not recommend you to "wait for this" - unless you have a lot of patience :o)
The principle limitation is, that inside one running Colossus instance (one Java process, or JVM) can be played only one game - certain data structures (especially the variant information, like MasterBoard layout, creatures and their stats and recruiting tree, Battle lands, ...) are global (static, in Java talk), and thus starting a new game in same JVM (started Colossus) will destroy the data of the ongoing game.
As a side note, having an AI for same game is in theory possible, since they "need to see" the same variant data, including the caretakers values, like "how many are left of a certain creature?".That said, you can do the following:
Unfortunately not yet. But that would be the goal one day, yes.
AI's (robot players) ( I guess that's what the asking person meant with "npcs" (non personal computer ... ?) cannot be used yet ("straight forwardly"), but read on.
The reason for that is the current implementation how games are actually started (in the Colossus application itself) - they would run on the server and eat the CPU there - so that would be very bad.
As workaround you can login and enroll with one or more of the ready dummies dummy1, dummy2, dummy3 and dummy4 (password same as username) and when the board(s) come up put them to autoplay (= same as SimpleAI), and minimize their boards (same principle as Can I play two games at the same time?).
Note: You need to use additionally started Colossus instances for them - every started Java instance will start just one player. Logging on as another player name will log off the previous webclient connection, so you can't have both (your real player, and the dummy player) online at same time, which is necessary if they shall play in same game.
I have already a "start the game on some player's PC" mode implemented but it's not fully ready to take it into use. In that mode one will then be able to add as many AIs as one wishes.
The problem with this functionality is the "NAT" problem (behind a firewall/DSL box that hides your real IP address); so this needs configuration on the player's PC/DSL box to firewall and NAT to enable the other players to connect to him.... (that is the age-old problem why playing Colossus online without a public server was and is so difficult).
[ Future plans involve also a relay/proxy mode (runs on players PC, but the public server acts as relay, and/or a "NAT punch" mode (it's possible to make the other players PCs communicate with the host behind a NAT, they just can't initiate the contact by themselves. With the public server as "mediator" it could be done). ]
One day I also plan to have a "add AIs to run on "my" PC" mode even if game itself runs on the server...
Instant games are meant to "can be started as soon as enough players have enrolled to them".
For scheduled games one can logout and come back later, but stays enrolled (thus there can be more enrolled than currently online). For instant games, if one logs out, one is automatically unenrolled (think about it... it makes sense).
One can be enrolled to as many scheduled games as one wants (it does not even check overlapping times yet) In contrast, to instant games, when one logs out, is also unenrolled from the game (from 0.10.1 on the game is even canceled when the creator logs out). So for instant games, online will always be same as enrolled.One can only be enrolled to one instant game at a time.
A game can be started when enough players have enrolled to it (actual ≥ min) and they all are online. If not enough players ( actual < min) enrolled and online, or the time scheduled time has not been reached yet, the game can simply not even be started.Local time of that server is German time :)
Note that the Quit button on the WebClient (server tab, i.e. there where is user name, password, Login/Logout button is) is really quitting the whole application; to just close the WebClient window but leave the ongoing game up, close the WebClient with the "x"-like symbol usually on upper right corner.
Created February 22, 2010 by CleKa
Last updated (only fixed major things) December 3, 2012 by CleKa