Rubies In Space
Find some Rubies by building your own agent in Ruby
What is Rubies in Space
Rubies in Space is a Programming Game in Ruby that takes place in space. Instead of simulation a grid based world where the main point is creating the best swarm tactic, Rubies in Space evolves around RTS and RPG tactics.
As far as I know (and searched - not that I looked thoroughly) there is no such thing and especially no such thing in Ruby. There is so much software for Ruby, but not a lot of games, simply because it isn't suited very well for games. That said, I don't really care. So let's go! -- this is a DRAFT
How to Win the Game
In Rubies in Space you control ships by providing the crew. You have two goals:
- Stay alive by keeping the ship alive
- Find the Ruby
There latter is hidden in one of the many asteroids and can only be found by drilling with a special Drill that has to be researched and build. More on this later. You stay alive by keeping the energy level of the ship above 0.
Game Rules
There are three rules:
- You have access to the
./interface
folder. Theiship.rb
file contains a classShip::Interface
. When your crew is assigned a ship, it will be passed on an instance of this interface. Use it to control the ship. Don't try to extend, read, send, access the internals. That's just lame. - If you want to use a
Randomizer
, useShip::Interface#rand
,Ship::Interface#rand(n)
orShip::Interface#bytes(n)
. The reason is that we can then simulate the complete game again by passing in the seed. - Try to keep your code fast. In later versions you will be penalized.
Participation
At this moment the best way is to Fork this repo and provide a new Crew in the ./crew
folder. I am working on an online tournament system, other game modes and so forth and on.
Game World
See the wiki
Setup / Simulate
- Install ruby 2.0.0
bundle install
ruby server.rb
- Browse to
localhost:4567
- See the wiki entry
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Progress
Environment
Space
- ☑ is a graph
Nodes are
- ☑ A Star or
- ☑ sustainable deuterium at a rate
- ☑ has a size [ does nothing yet ]
- ☑ has temperature [ does nothing yet ]
- Events
- ☐ solar flares [ damage ]
- ☐ death [ kills nodes -> asteroids ]
- ☑ A planet or
- ☑ non-renewable deuterium
- ☑ has a size [ does nothing yet ]
- A building
- ☐ A lab or
- ☐ A factory or
- ☑ nothing
- ☑ An asteroid
- ☑ non-renewable deuterium
- ☐ the ruby
Pathways are between two nodes
- ☑ have a distance
Player
- ☑ has a ship
- ☐ may build new ships
- ☑ maintain a crew [ the agent program ]
Ship Actions
-
☑ You can only do one thing at a time
-
☑ scan
- ☑ yields a ScanReport
- ☑ the properties of the location
- ☑ enemies at location
- ☑ friendlies at location
- ☐ tech provides more/less information
- ☐ blocking stuff
- ☑ enabling stuff
- ☑ yields a ScanReport
-
☑ travel
- ☑ traverse a path
- ☑ yields a Travel Report
- ☑ destination name
- ☑ consumed energy
-
☐ communicate
- ☐ broadcast data
- ☑ yields a Communicate Report
-
☑ attack
- ☑ attacks a player
- ☑ yields an attack event
- ☑ attacked player can determine action
- ☑ yields a Battle Report
-
☐ build
- ☐ builds new ships, upgrades, tech
- ☑ yields a Build Report
-
☐ research
- ☐ research tech, upgrades
- ☑ yields a Research Report
-
☑ collect
- ☑ collect deuterium
- ☑ yields a Collect Report
- ☑ collected deut
-
☐ transfer
- ☐ send deut to other ship
- ☑ yields a Transfer Report
- ☐ transfered deut
-
Resources
- ☑ deuterium
- ☑ time
Ship Stats and Components
Each component has its own stats
- ☑ engine
- ☑ power
- ☑ warmup
- ☑ cooldown
- ☑ reactor
- ☑ efficiency
- ☑ collector
- ☑ warmup
- ☑ power
- ☑ scanner
- ☑ efficiency
- ☑ weapons rack
- ☑ warmup
- ☑ rate
- ☑ power
- ☑ command center
Build
Research
TechTree
- ☐ Better efficiency
- ☐ Better weapons
- ☐ Better ...
- ☐ Passive Scanner
- ☐ Passive Collector
- ☐ Ruby miner
End Conditions
- ☐ Survival of the rubiest ( find rubies! )
- ☑ Survival of the fittest ( last standing )
Events
There will be Random events
- ☐ Solar flares
- ☐ Super nova
- ...