Almonaster Work-In-Progress
Page last updated: September 1, 2000
The latest development version is build 617
New in 617 beta 1
Almonaster:
- Modularized map generation code; also improved
performance over older implementation
- Modularized scoring system code
- Both map generation and scoring systems can now accept plugins that
implement the IMapGenerator or IScoringSystem interfaces
- Wrote map verifier for debug builds, to facilitate map generator plugins
- Fixed case where if last message target was selected as the default, then
a message had to be sent before it kicked in
- Fixed map sharing bug that could cause both planet sharing with unrelated
empires and non-sharing with deserving empires (thanks, Galaxia)
- Fixed password protected game creation by under-privileged empires
- Fixed nuke histories from diplomacy screen profiles (thanks, AtomAnt)
- Fixed empire broadcast flag toggling
- Added message size limit to chatroom, created clear messages option for
administrators (thanks, Green Chicken, Galaxia)
- Added "disconnected maps", game class option that causes no links
to be created between empires'
planets (thanks, dofiki)
- Games with exposed maps can no longer have subjective views
- Classic score points for a ruin is now -1.0, just like classic SC
- Ruins are now counted separately from nukes, just like classic SC
- Added Almonaster Score Significance, which used to be Nukes + Nuked.
Significance can now be carried
along with inheritance
- Add the "victory sneer", a message sent to the victim when a
nuke or surrender occurs (thanks, CultureJamming and Lugdunum)
- Reorganized diplomacy screen to include ruins and Almonaster score
- Global configuration settings are now cached at the beginning of updates, for
the sake of consistency
- Renamed "Server Rules" to "Server Status"
- Added the following classic SC compatibility flags to the config file:
DisableColonySettles
DisableFriendlyTerraformers
DisableSuicidalDoomsdays
DisableColonySurvival
DisableTerraformerSurvival
DisableTroopshipSurvival
Alajar:
- Fixed log and report display in admin page sources
- Fixed division by zero in statistics processing
New in 617
Almonaster:
- Corrected a couple of code oversights (thanks, Agt)
Todo
- Finish Alajar.html documentation
- Update FAQ about:
Map generation algorithm
Update algorithm
Exact ship special action descriptions, math
Ruins == -1.0 to classic score
Update profile representation
Document new compat flags:
DisableColonySettles
DisableFriendlyTerraformers
DisableSuicidalDoomsdays
DisableColonySurvival
DisableTerraformerSurvival
DisableTroopshipSurvival
Document new ChatroomMaxMessageLength config file option
- 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
- BUG: Statistics_2000_09_31.stat appeared on 09/01/2000
-
- Write TOS, find place for it in UI
-
- 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
-
- Provide a way for Alajar filecache to update files at runtime
-
- Feature: build option in map / planets pages (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