User:Chase-san/Roboflight
Jump to navigation
Jump to search
Roboflight is a programming game planned as a spiritual successor to robocode. The name might change once it gets further along.
This is the first draft for the setup of roboflight core mechanics. Everything is up in the air at this point.
Contents
API
The API will be similar to a Junior Robot class. There are no plans for custom events.
Events
- execute
- On robot death
- On bullet hit
- On bullet hit bullet
- On bullet hit missile
- On missile hit
- On missile hit bullet
- On round start
- On round end
- On death (cannot call any robot functions)
- On scanned robot
Functions
- scan
- calls on scanned robot, for every robot on the field
- may block until complete
- get position
- get velocity
- get rotation
- get thrust
- set rotation (x,y,z)
- set roll (x)
- set yaw (y)
- set pitch (z)
- set thrust (vector)
Anatomy
- Robots hitbox is 40,10,20, and rotates as the robot does.
- Robots have hull.
- This starts at 100 and decreases as damage is taken, cannot be restored.
- At zero the robot dies.
- Robots have energy.
- This starts at 100 and decreases as it is used.
- When not in use this recharges at a rate of 1 per turn.
- Energy when completely exhausted, will need to fully recharge to 100 before it may be used again.
- As state below, this cannot be done in the buffer zone.
- Unless stated, nothing uses energy.
- Diagram for the rotation axis and thrust vectors.
- http://www.csdgn.org/files/images/three_axes.gif
Movement
- Robots will navigate in 3 dimensions.
- Robots will be able to rotate on any of their 3 axis and may be used in combination.
- Roll about the X axis will be limited to 22.5 degrees per turn.
- Yaw about the Y axis will be limited to 6 degrees per turn.
- Pitch about the Z axis will be limited to 10 degrees per turn.
- Robots will use a thrust vector, normalized to 1.0 if over 1.0.
- +x limit is 1.0
- -x limit is 0.4
- +y and -y limit is 0.2
- +z and -z limit is 0.3
- Robot velocity will be normalized to a maximum of 8 and will drift.
Field of Play
- The Combat Zone will consist of either a sphere or a cube. Equal in all dimensions. (usually between radius of 500 to 1000)
- The Buffer Zone will be a sphere with a radius double that of the combat zone.
- In this zone energy will not recharge.
- The Wall will exist beyond the buffer zone, crashing into the wall instantly kills the robot in question.
- I expect some kind of wall herding with this mechanic.
Radar
- Robots possess an omni radar which can read in every direction at once.
- This radar is precision will be rounded to the 1 place.
- Meaning a robot/missile at a distance of 250.4 will show as 250, and 250.5 will show as 251.
- Beyond a range of 500, to every 100 for distance and location
- Meaning a robot/missile at a distance of 640 will show as 600 and one at 650 will show as 700.
- This radar is precision will be rounded to the 1 place.
- Robots possess an Directional Radar which cover an arc in front of them of 45 degrees (total)
- Everything within this arc is given at its full precision.
- This is range limited to 1000.
Weapons
Bullets
- Robots can fire bullets.
- Bullets cannot be seen on radar.
- Bullets fly in a straight line.
- Bullets move at a speed of 16 per turn.
- Bullets may only be fired from the +x axis of a robot.
- Bullets do 1 damage.
- Bullets use 1 energy.
- Bullets hitting a missile will cause that missile to explode
- This will also destroy the bullet
- Bullets hitting a bullet will kill both bullets.
Missiles
- Robots can fire missiles.
- Missiles can be seen on radar.
- Missiles may maneuver. (API pending)
- Rotation about any axis is half that of a robot.
- Missiles fly forward along their x axis at a rate of 12 per turn.
- Missiles have a forward radar similar to a robot, except it covers 90 degrees.
- This radar can only determine distance and location of robots. (not name, etc)
- This radar is limited to 250 meters, beyond this they cannot sense anything at all.
- Missiles require energy, any amount may be invested (up to robots current amount).
- Missiles do an amount of damage equal to the 2*energy, to a maximum of 20.
- Missiles which impact explode in a radius equal 4*energy, minimum 10.
- Robots within this range take only 0.25*energy damage, minimum 1, maximum 5.
- Other missiles within this range do not explode.
- Missiles have a maximum range equal to 100*energy. After this they die.
- Missiles can choose to explode prematurely.
- Missiles can be fired at any angle from a robot, and are imparted it's velocity in addition to its fire velocity away from it 4.
- Missiles can impact their owner, and so they do not go live until 2 turns after being fired.