Almonaster Work-In-Progress
Page last updated: July 2, 2000
The latest development version is build 615
New in 615
Almonaster:
- Fixed problem with auto-backup thread spinning up even when option was
turned off in config file
- Fixed crash in login screen when expected form was not submitted
- Fixed problem with games not showing up on active game lists when creator
empire no longer exists
- Fixed icon uploads (thanks, culturejamming)
- Fixed Empire Administrator search result icons
- Fixed a few error paths in the update algorithm
- Fixed max num empires in game count, which could have been skewed by
empires joining and then quitting
- Fixed a spurious assertion in Alajar pagesource enumeration code
- Fixed a spurious assertion in the update algorithm, caused by cloaked
ships set to nuke via fleet orders
- Fixed a spurious assertion in the update algorithm, caused by unseen
engineer actions
- Fixed a spurious assertion caused by games with zero max tech increase
- Fixed a spurious assertion in the empire information section of the Game
Administrator
- Fixed a bug in subjective views processing that would have aborted econ
and mil counting prematurely
- All "do something and dismantle" actions will now result in a ship
dismantle even if the action fails
- All "do something and dismantle" actions will now count as
dismantles when predicting next ratios (thanks, Eikoor)
- Broadcast is no longer selected by default in the diplomacy page when
known empires exist (thanks, Feste)
- Made number of updates before idle a gameclass option
- Made ruin settings a gameclass option, with three settings: no ruins,
simple ruins, complex ruins
- Made limit on number of active games a gameclass option (like SC 3.x)
- Made surrender a gameclass option, just like draw (thanks, Kuzya)
- Made first update delay a gameclass option (like SC 3.x)
- Added superclass renaming to GameAdministrator
-
Added add max number of hits input field to EmpireAdministrator search
interface
-
Add efficient search for next X empires option for EmpireAdministrator searches
that return greater than max hits.
- Games without exposed entry lists no longer broadcast names to all when
empires enter the game.
- Removed event logs from the game. As they were, they were pretty
useless, and they leaked information about who was in the game. One of these
days I'll implement a well-done event logging system with logs that persist
after a game end, maybe even with saved maps.
- Deprecated VerifyDatabase config file option: this functionality is now
automatic
- Added final
Resign.gif, RestoreEmpire.gif, ViewEmpireInformation.gif files to Mensan's
First Theme, and deprecated ViewEventLog.gif
- Updated the FAQ
Todo
- Finish Alajar.html documentation
- Update FAQ about:
Map generation algorithm
Update algorithm
Exact ship special action descriptions, math
- Codework:
- String casts
- ConvertTime
- TODOs
- Combine Context and Gui classes. Make IHttp* interface ptrs members
- Combine ProfileViewer and EmpireAdministrator search interfaces into one
- Move config file parameters to database, especially ship action settings
- Cache all global and gameclass-specific information at the beginning of
RunUpdate() for consistency during updates
-
- Gameclass option: Unbreakable alliances
- Gameclass option: Surrender only when two players remain
- Gameclass option: Diplomacy counts not decremented when empires die (needs
some thought)
-
- Allow gameclass property editing
-
- Do Event Logs properly
Separate event logs from game histories: public info vs. all info
Add first contacts, diplomacy level changes, planet nukes and maybe fleet
battles
Save map from end of game to .html file on disk (maybe save every update?)
Buffer history strings during update, then append to txt file on disk (maybe
do asynch if not last update?)
Make logs + maps available in big Game History collection, provide collection
trimming in Server
Administrator
-
- 3.0 database:
One file for all tables
Create ITransaction interface that inherits from IDatabase and dispenses out ITransactionTable
interfaces. Implement with private MemoryManager for all affected tables
Create ISearchTable, which uses copy on write to give you your own private table to play with
without a read lock
Remove need for QI for IID_IReadTable when you have a write table
Make all IxTable objects contained instances of Table objects, so no need
for allocate/delete on each use
Delegate all read / write requests to Read / Write tables - don't have two
implementations
Return out of memory on all allocation failures
Add support for sparse files on Windows 2000
- Alajar: multi-hosting
- Alajar: implement full Http 1.1 support
-
Alajar: option to use one global log file for all pagesources
-
Alajar scalability: buffer log and report files with 64 KB buffer or so to
avoid constant open / close
-
Alajar scalability: keep per thread stats, coalesce with global stats every now and
then
-
- Osal: add more meaningful Osal error codes for the various classes
-
- Create cooler gameclasses for default install, with simpler games for
beginners and descriptions
- Give http://validator.w3.org/
a spin
- Experiment with Chatroom frames, IRC protocol
-
Implement mechanism for saving and restoring "game state"
-
Implement ship / fleet auto-control interface
-
-
Add IndependentPlanet field to themes
- Replace temporary buttons with final versions in blue and green themes
Future enhancements:
Alajar
- Organize ports to other platforms, especially to Linux
- Create a page source that provides CGI-like functionality
- Implement standard SSI support
- Implement an FTP server
- Implement byte range requests
Almonaster:
- Make all groups of connected database updates fully transactional
Database:
- Implement SmartTransactions
- Implement ODBC interface
- Change indices to use trees, allow duplicate data, range searches