Skip to content

nearwood/eclipsed

Repository files navigation

Eclipsed

  • CMake
  • C++11-ish

Overall goals

  1. Game simulation 2-6 players
  2. Gather statistics on best races, strategies for each race, etc.
  3. Waste CPU cycles.

Data Model/Flow:

  • JSON Races, Ships, etc.? Will better allow for add-ons
  • JSON Game initial state

Features TODO

  1. Assigning value to actions before a round ends (where actual VP might be earned) to distinguish good actions from bad ones. I'm guessing all actions are equal until the round ends.
  2. Option to limit players to one race from each side of player board
  3. Alpha–beta pruning -- going to need this as there are many really stupid moves in this game
  4. AI Players min/max, humanize to min/max +/- 10%, etc.
  5. Adjustable AI look-ahead
  6. Giant hashmap of gamestates to avoid dupes? (Dynamic programming) This seems unfeasible
  7. Option for thread per player to simulate different each player being first
  8. Variable cout based on CPU speed? (every 100,000 plays vs 250,000 plays vs 1,000,000 plays, etc.)

Notes

  • Mitigating Horizon Effect? What are important moves? System capture, player death, etc.?
  • Game limited to 9 rounds
  • Might want to have option for statistical avgs of combat (pass-fail) instead of chance
  • Same as above for sector generation

Possible games states

  • 37 sectors hexes,
  • 1 predetermined
  • 2-5 starting locations
  • We'll say 36 more-or-less random hexes

Search Cost

All possible player actions:

  • build up to 6 or so things limited by m
  • upgrade 2/6 or 3/6 ships with x number of upgrades available
  • research R techs with s science
  • exp 1/3 rings, with various placement around the map
  • move 2/3 units anywhere possible on map
  • influence x number of colones for I influence
  • colonize 1-3 (decolonize as well)
  • form diplomacy with x players (as boards permit)
  • trade s/m/e to m/e;s/e;s/m

1st approx. at 270,000,000 possible moves per player ~200 bytes per state, 50GB plus some rising costs per player Looks like you aren't going to be able to simulate more than a few moves, space limited.

each player can do actions:

  • build, upgrade, research, explore, move, influence, colonize, diplomacy
  • can build as minerals allow, 5 types of ships, orbital, monolith (if available)
  • upgrade 2-3 ships
  • explore single tile
  • move 2-3 ships at a time
  • explore and place then orient a tile so many ways
  • research 1-2 (3?) things of whatever is available
  • pass, then do limited reactions (upgrade, build, move)

Plan of Attack

  1. Do nothing and pass ✔
  2. Upkeep ✔
  3. Colonize home system, do upkeep (no vp) ✔
  4. Explore action, choose sector (ship/disc adjacent), choose location, ✔ (runs too long; possibly forever)
  5. ^- and orientation (wormholes must align) tiles (no vp)
  6. Colonize non-combat discovered sectors (first vp)
  7. Build ships/orbitals/monoliths
  8. Combat (huge)
  9. Research tech (huge)
  10. Upgrade (huge)
  11. etc.

http://doc.qt.io/qt-5/cmake-manual.html

This guy is pretty cool - http://neverstopbuilding.com/minimax

Releases

No releases published

Packages

No packages published