Page last updated: September 18, 2007
The latest stable version is build 621.4
New in 621 RC
User interface:
- Added two-way associations with other empires, configurable through the
Profile Editor and accessible through the empire's own profile
- Score change notification messages after a nuke now contain Bridier
score changes as well as Almonaster score changes (thanks, Soma)
- The system will no longer send simple nuke messages if a score change
message is preferred
- Empires viewing their own profiles will no longer see an option to view
their personal gameclasses
- Empires viewing their own profiles will no longer see an option to view
their personal tournaments
- The personal tournaments page now displays tournament information in
public form
- The root empire's statistics can now be blanked
- Fleet battle text in update messages now lists the number of ships
belonging to each empire taking part in the battle
- Added option to block animated uploaded icons and replace them with the
default system icon (thanks, BigB)
- Empires are now notified on login if the Server News page was updated
since their last login
- The "welcome back" message is now displayed when empires auto-logon
Gameplay:
- When tournament games start, access checks for score level, idleness,
duplicate fields, etc. are no longer performed on empires entered by the
tournament owner
- The estimated next tech increase now takes upcoming trades and alliances
into account (thanks, wiwwt)
Fixes:
- Fixed incorrect redirects to system tournaments view after requesting to
join personal tournament
- Fixed refcount bug in pagesource initialization failure path
- Added text for certain error codes in tournament game creation failure
code path (thanks, wiwwt)
- All <textarea> elements now use "wrap=virtual"
- Nuke histories are now sorted in descending chronological order
Admin:
- Game creation, enter and update events are now logged to the report file
- Administrators now have the option to reset update times, for specific games and for all games
- Administrators now have the option to set another empire's Almonaster significance as
well as its score
Security:
- The number of specific empires that can be blocked in
game creation advanced options is now limited to 25
Documentation:
- Added a section on next ratios
- Added a note stating that fuel ratio is only used during combat (thanks,
Denton Troy)
New in 621
User interface:
- Fleet battle text in update messages now lists the number of ships of
each type belonging to each empire taking part in the battle (thanks, wiwwt)
- Moved "Block uploaded icons" option to System User Interface section
Fixes
- Rewrote Server Administrator page text file handling to use file hashes
instead of always updating the file. This fixes the problem of inaccurate
"Server News updated" messages
- Fixed grammar of battle text in update messages: "one ship of X
were destroyed"
- Fleet battle text in update messages to no longer list neutral
passers-by as participating in a battle
- Fleet battle text now distinguishes Independent ships from those
belonging to an empire of the same name
- Fixed risk of stack overflow processing large numbers of planet battles
with large numbers of games
- Fixed display of build ship type in up-close map view when only one
technology is available (thanks, Denton Troy)
Documentation:
- Several miscellaneous updates involving features added and changes made
in builds 620.2+ and 621
New in 621.1
Fixes:
- Fixed wrong empire name being displayed in login and new empire page
titles
- Fixed update times changing when certain kinds of games were paused and
unpaused (thanks, Utopia Planitia)
- The last update field in the Info page is now always accurate (thanks,
Denton Troy)
- Fixed several issues when pausing a game during an update
- Paused games no longer update too many times when faulting in a
number of updates
- Spurious assertion no longer fires when game has fallen behind on
updates in real time
- Spurious assertion no longer fires when game is paused after a full
update
- The right update time remaining (a full update) is now used to pause
the game during an update
- Fixed mismatched parenthesis in Empire Information screen when an empire
was idle
- Fixed rare spurious assertion caused by pause/unpause timing during
backups
- Resigned empires now never ruin (thanks dim2a, Romulan)
- Resigned empires block games from ruining, until all empires in game are
resigned or idle.
- Idle empires ruin, resigned empires end with no scoring changes
- If all empires in game have resigned, game ends with no scoring changes
- The Open Game List now warns empires who are idle in certain games when
this prevents them from seeing open games they could otherwise join
- Fixed alliance miscount when diplomatic status is downgraded in
permanent-alliance game while one empire is offering alliance
- Fixed bug causing games with long first update delays to never update
when backups are enabled (thanks, Melkan)
- Fixed spurious assertion in TournamentAdministrator page
- Fixed bug causing wrong alliance counts in games with permanent
alliances when two empires at trade offer (respectively) alliance and truce
Alajar:
- Implemented digest authentication, which, while not perfect, is much
more secure than basic authentication
- Implemented support for SSL, using the open-source OpenSSL package
- Admin pagesource now uses digest authentication by default
- Cookies now set the HttpOnly IE extension to block access from scripts
Admin:
- The admin pagesource now uses digest authentication by default
- Fixed duplicate display of game entry messages in report files
- Game start events are now written to report files
Osal:
- Added SMTP client library
- Added SSL socket library
- Replaced RC4 hash with SHA1 hash
New in 621.2
General
- Ported to Visual Studio 2005, including small code fixes for new
warnings
User interface:
- Added Games column to Top Lists, indicating the number of active games
the empire is currently in
Fixes:
- Fixed spurious assertion when deleting resigned empires from game under
certain rare circumstances
- Fixed an inconsequential stack corruption bug triggered by minefields
detonating in a game with independence enabled
New in 621.3
Fixes:
- Fixed display of icons on New Empire page (thanks, Clodhoppers)
- Fixed display of HTTP ports in Server Information page
- Fixed access violation under certain conditions when browser does not
provide user agent string
- Fixed empire blocking by name (thanks, wiwwt)
- Fixed assertion creating tournament game with prearranged alliances and
shared maps (thanks, wiwwt)
Features:
- Chatroom messages can now be durably stored in the database
Alajar:
- Added support for SSL using native Win32 SSPI
- Updated IHttpServer interface to provide correct port usage information
- Fixed shutdown path to correctly close SSL socket
- Renamed several SSL-related config file fields
- Fixed MemoryCache config file option
- Fixed several small bugs involving pagesources without libraries
- Fixed several bugs in the server restart option
- Fixed a memory leak in the admin page source
- Fixed bug in digest authentication that could lead to infinite
re-authentication loops due to nonces being erroneously recognized as stale
- Duplicate HTTP headers will now cause requests to be rejected as
malformed
- Updated version to 1.81
Osal
- Fixed GMT string representation to make wget happy
- Fixed Socket::Close path to avoid SSL pathway
- Removed unused Socket::Peek method
New in 621.4
Fixes:
- The login page now 'encrypts' the administrator's name to prevent email
harvesting by spambots.
- Updated contributions text and Paypal links
- Fixed map exposed option resetting to 'map exposed' when an error occurs
during game creation (thanks, RTS Phill)
- Fixed bug causing diplomatic status to be elevated when one empire
offers a higher status and the other empire offers to surrender or accept
surrender.
Todo
- Improve Alajar.html documentation
- Almonaster documentation:
- Document default map generation algorithm
- Explain exact steps taken by update algorithm
- Write better ship combat description
- Provide exact ship special action descriptions and math
- Write a better Bridier Score description
- ===
- 622
- ===
- Maps: mirrored maps for games with 2 or 4 empires
- Maps: twisted maps for games with even number of empires
- Alajar: make sure HTTP header parsing rejects duplicate headers as malformed requests
- BUG: If tech is 3.9995508, it rounds up to 4.000 in display (Greg Nord)
- BUG: games should be empire-pausable only when they close?
- ===
- 623
- ===
- Backstabber: never delete game update messages
- Backstabber: sending lots of messages can purge someone's saved messages
- <Dim>In that skudder's game, and ralof's game I was ahead anyway, before
they dropped to idle. (BTW, strange thing happens if all are idle -- some #
of updates happen, but then they stop)
<Dim>2 players 3 empires each
<Dim>all 6 at once (tournament was paused. For first few weeks I played
higher than daily rate, so finished most of my games. But then I
disappeared, and when it was unpaused, both me and skudder were idle)
<Dim>to root: I'm not sure how many updates occurred, I think 3 or so.
- Gameclass: option for random preset
alliances (Soma)
- Gameplay: allow tech selections to be undone until the end of the update (Agt, Backstabber)
- Gameplay: fleets for aggregating immobile ships
- Email: use private email fields to send lost passwords
- Email: use private email fields to send update notifications
- Email: use private email fields to send purge warnings (Feste)
- Email: use private email fields to send game start notifications (Agt)
- Email: option to limit game access to empires with private email
fields, using random number challenge (Agt)
- Email: server mode that forces email registration to create an empire
- Admin: server option to disallow games to be started by empires who are idle in other games
(Ah)
- Admin: restrict number of concurrent games per tournament
- Tournaments: keep per-tournament list of finished games (Denton Troy)
- UI: remove per-game options
- UI: use checkboxes for binary options
- UI: show next econ, next pop on Info screen
- Setup: create Unfair Fridays superclass
- Cleanup: use INDEX_UNIQUE_DATA with alien key table
- Cleanup: merge empire Nuker and Nuked tables?
- Cleanup: use variable length columns for empire ship names, with 'use default' option
to save space
- ===
- 623+
- ===
- Admin: make pause/unpause messages more explicit about which
administrator paused the game
- UI: option to display players in game as pop-up screen from Info-button, with stats (Ah)
- UI: option to sort Open Game List by SuperClass or by Update Period
- UI: flashing icon in game lists alerting empires to active blitzes
(Soma)
- UI: Ebay-like empire feedback system (Del Hart)
- Tournaments: admin pause all games / unpause all games buttons should not affect games
paused by tournament administrators
- Gameclass: option for static, non-random planet resource
allocation (Tao)
- Gameclass: gameclass option to display other empires' maps (simple shared
maps)
- Gameclass: use existing gameclass as template for new one (Num1ace)
- Gameplay: allow build and end turn before game starts (Black Squirrels)
- Gameplay: next logical command for each ship or fleet (Del)
- Maps: fair map generator for games with 2 empires (Ah, Alexia)
- Maps: fair map generator for games with 3+ empires (Agt)
- Maps: option to always display coordinates at map edges (Alexia)
- Maps: relative coordinates (Alexia, Ah)
- Maps: per-planet setting for turning off builder status
- Maps: expose map options in advanced game settings as presets
- Messages: list message recipients in To: header (Alexia)
- Messages: save sent messages as well as received messages
- Messages: move "View saved messages" to Diplomacy screen (Soma)
- Messages: option to keep specific messages permanently
- Messages: move ignore option to Options screen from dip, include all 'seen' empires (CJ)
- Messages: provide list of active empires on server, with profile links (Alexia, Ah)
- Messages: provide means of inviting empires into specific games (Alexia,
Ah)
- Scoring: change Bridier score calculations to use empire's current score,
but opponent's begin score?
- Scoring: monthly Almonaster score and Top List (Soma)
- Scoring: top lists for non-idle empires
- Feature: individual checkboxes for all existing confirmations
Quitting a tournament
Deleting a tournament
Selecting techs (Backstabber, CJ)
All Game and Server Admin options
-
- Security: means to allow other empires control over empire in specific
games
- Security: provide option for IP address hashing with autologon?
- Security: add ruin percentage to game entrance blocking parameters (Ah)
- Security: place limit on the number of active games an empire can join
- Security: use password hashes longer than 64 bits?
- Security: calculate password
hash in client side script for login screen (Vapula)
- Security: encrypt user passwords in database?
-
- Cleanup: remove all get/set functions for simple empire properties, use
Get/SetEmpireProperty
- Cleanup: optimize System Game List rendering to thrash the heap less
- Cleanup: lifetime manager with rw-locks for empires, gameclasses and other
objects with queued deletions to avoid deadlocks
- Cleanup: remove LockEmpire usage where possible
-
- BUG: documentation page has several <form> markups which break the
real form
- Database: store a "first invalid row hint" in the table header
- Database: backup files with CopyFile if possible
- Database: ref-counted single-instance storage (scenario: broadcasts)
-
- Game Histories, movies
Game creation time
Empire entries, exits, resignations, deletions, quits
Pause events
Each update:
Time
First contacts, diplomacy level
changes
Idle empires
Planet colonizations, invasions,
terraforms, nukes, annihilations, engineering, etc.
Fleet battle outcomes
Surrenders, obliterations, ruins
Save history update message from each update.
Save map from each update of game
Save econ and mil for each empire
Make logs + map available in big Game History collection, provide collection
trimming in Server
Administrator
Advanced game option to not log a game
Latest games table
Game history table for each empire
-
- Scoring groups (teams / clans)
- In-game advice button for new players
- Robot player
- Ship / fleet auto-control interface
- Teacher empire flag (Lucky)
- Mechanism for saving and restoring individual game state
- Garbled transmissions between non-allied empires (BigB)?
- Tournaments:
1v1 elimination tournament type
-
- Zero knowledge games (Backstabber)
No info on # of empires in game much less max #
permitted (remove from info screen also). Nothing on size of map, average planet
resources, etc.
Wide range of possibilities for each, randomly determined.
Game updates only show what you see, so when empires are eliminated you don't
know unless you've met them.
New map algorithm so that you may not necessarily be able to explore the
entire map without opening some links to do it, unlike current maps. Or maybe
you can, no way to be sure.
Dip screen only shows subjective info
All you know at the start is:
update time
Ship costs
Tech advance
And tech advance is a randomly determined number also, so you get values like
1.831.
More diverse statistics (Ralof, Wretch)
Hot and cold players of week/month/year
Longest winning, losing streak
Top blood, team, grudge players
-
- Use CSS:
background-attachment: fixed;
<table style="filter:glow(color=red)">
-
- Replace all .gif files with .png
-
- Add Independent Planet graphic to themes
- Purge interface should use search interface
- Add TOS acceptance filter to search and purge interface
-
- Consider adding 'join period' after min number of empires join' instead of
using updates for close and first update
delays. No updates during join period. End turn button equivalent
might allow game to start early (Lucky)
- Alajar: allow disabling of admin pagesource
- Alajar: implement gzip support (http://www.msxnet.org/fast-website)
- Alajar: replace filecache with wrapper around TransmitFile
- Alajar: allow multiple TCP ports to service one threadpool of tasks
- Alajar: user stats gathering for % OS usage, browser usage, etc
- Alajar: Consider using
Http API on Win32
- Alajar: memory gates for requests
- Alajar bug: HttpServer::Shutdown closes socket from underneath main thread
- Alajar: investigate P3P support
-
- Osal: Use
IoCompletionPorts on Win32 for threadpool
- Osal: Socket::AsyncSend?
- Osal bug: MemoryMappedFile class unmaps on failed resize
Future enhancements:
Alajar
- Multi-hosting
- Full HTTP 1.1 support
- Ports to more platforms
- Create a page source for CGI-like functionality
- Implement standard SSI support
- Implement byte range requests
Database:
Osal:
- Add more meaningful error codes for the various classes and
namespaces