/RubiesInSpace

Ruby Programming Game In Space

Primary LanguageRuby

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. The iship.rb file contains a class Ship::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, use Ship::Interface#rand, Ship::Interface#rand(n) or Ship::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
  • ☑ 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
  • ...