Almonaster Work-In-Progress
Page last updated: August 12, 2000
The latest development version is build 616.4
New in 616.1
Almonaster:
- Fixed a rare crash bug in the HttpForm object recycling code
- Fixed a crash bug that could appear when reading fleet orders under certain conditions
- Fixed the resign option, and made it appear only when games have already
started
- Fixed a major bug introduced last build that was causing a game read lock to be
orphaned under certain circumstances
- Fixed in-game nuke history to correctly display error message for empires
who are dead but whose key has been reused (thanks, CJ)
- Fixed time zone names
- Added confirmation prompt when killing game in GameAdministrator
- A few minor UI changes
New in 616.2
Almonaster:
- Fixed a stack overflow bug in the Quit handling code
- Fixed Quit option when no confirmations were selected (thanks, Feste)
- Fixed a bug that wasn't deleting the volatile game classes created for
personal games until the next server restart (the symptom of this would be
that you couldn't start a personal game with the same name twice)
- Removed redundant active game limit field from personal game options
- Added ship coloring by diplomacy feature
- Added ship highlighting feature
New in 616.3
Almonaster:
- Fixed visible builds bug in ship coloring by diplomacy
- Fixed bug in alliance leak counts when permanent alliances are selected
(cosmetic, but annoying)
- Fixed bug in Alajar logging code
- Added database purge test option to Server Administrator.
- Empires can only surrender to other empires they were never allied with
(thanks, CultureJamming)
- Reduced ALMONASTER_MIN_NUKED_SIGNIFICANCE_RATIO to 0.2, which reduces the
effect on Almonaster score of an empire with little significance nuking an
empire with large significance.
- A few small UI enhancements and optimizations
- Updated the Blues theme to contain all blue buttons and the Dark Mood
theme to contain all non-admin-visible black buttons
New in 616.4
- Set all system games to allow surrender only when two empires are left
(thanks, DullAxe)
- Fixed a diplomacy count correction bug that could have caused spurious
assertions to fire
- Fixed initial planet sharing in map sharing option, which has been broken
for a few builds (thanks, Galaxia)
- Improved Alajar logging and report infrastructure; it should consume less
CPU and disk resources now than before
- Replaced Alajar statistics mutex with per-thread statistics with coalesce
every so often
Todo
- Finish Alajar.html documentation
- Update FAQ about:
Map generation algorithm
Update algorithm
Exact ship special action descriptions, math
- Codework:
- String casts, table names on stack
- TODOs
- Combine Context and Gui class. Make IHttp* interface ptrs members
- Combine ProfileViewer and EmpireAdministrator search interfaces into one
- Rewrite map generation to make map-generation plugins easier
- Rewrite top list handling to make top-lists plugins easier
-
- Write TOS, find place for it in UI
- Rename "Server Rules" to "Server Status"
-
- Add "AlmonasterScoreSignificance" field to SystemEmpireData, carry
along on inheritance.
-
- Add config file options for 2.8x compatibility
- Implement 3.0 ships (morpher, jumpgate, carrier, builder)
- Implement 3.0-style surrenders
-
- Do Game Histories properly
Add the following events:
Game creation time
Empire entries, exits, resignations, deletions
Pause events
Each update:
Time
First contacts, diplomacy level
changes
Idle empires
Planet colonizations, invasions,
terraforms, nukes, annihilations, links, etc.
Fleet battle outcomes
Surrenders, obliterations, ruins
Save async buffered strings from each update.
Save map from end of game to .html file, without body markups, but with
default UI elements
Make logs + map available in big Game History collection, provide collection
trimming in Server
Administrator
-
- Move ship action settings to database, cache global settings at the beginning of
RunUpdate() for consistency during updates
- Provide way for Alajar filecache to update files at runtime
-
- Feature: build option in map / planets pages (dofiki)
- Feature: game class option for no links between empire-assigned groups of
planets (dofiki)
- Feature: truce / trade / alliance ship combat penalty option (CJ)
-
- 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, full Http 1.1 support
-
- Osal: add more meaningful Osal error codes for the various classes and
namespaces
-
- Create cooler gameclasses for default install, with simpler games for
beginners and descriptions
- Experiment with Chatroom frames
-
Implement mechanism for saving and restoring "game state"
-
Implement ship / fleet auto-control interface
-
-
Add Independent Planet graphic to themes
- Replace temporary buttons with final versions in black button set
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