|
|
(17 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| Roboflight is a programming game planned as a spiritual successor to robocode. The name might change once it gets further along. | | Roboflight is a programming game planned as a spiritual successor to robocode. The name might change once it gets further along. |
| | | |
| + | '''From Demo 20130214''' |
| | | |
| + | http://i.minus.com/iyS8vO2B5D1BR.gif |
| | | |
− | This is the first draft for the setup of roboflight core mechanics. Everything is up in the air at this point.
| + | They still look a good bit like that. |
| | | |
− | ==API==
| + | This is the second draft of roboflight. I have a solid idea where I want this to go. |
− | The API will be similar to a Junior Robot class. There are no plans for custom events.
| |
| | | |
− | Events
| + | In case you want to take a peek at what I have been up, you can get the [https://github.com/Chase-san/Roboflight/releases/ latest release here]. |
− | **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
| + | If you find a problem, be sure to submit an [https://github.com/Chase-san/Roboflight/issues Issue] on GitHub. |
− | *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==
| + | You can find the [https://github.com/Chase-san/Roboflight Source Here]. |
− | *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.
| |
| | | |
− | ==Navigation==
| + | A lot of missing features have been added since then, and in a relatively short period of time. Well relatively, anyway, I stopped working on it for a good while. I jumped back into this about a week ago, and I tackled the harder problems first, like sandboxing and threading, and jar loading. I have been doing C for so long, it's nice to get back to Java. |
− | :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.
| |
− | *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.
| |
Roboflight is a programming game planned as a spiritual successor to robocode. The name might change once it gets further along.
From Demo 20130214
http://i.minus.com/iyS8vO2B5D1BR.gif
They still look a good bit like that.
This is the second draft of roboflight. I have a solid idea where I want this to go.
In case you want to take a peek at what I have been up, you can get the latest release here.
If you find a problem, be sure to submit an Issue on GitHub.
You can find the Source Here.
A lot of missing features have been added since then, and in a relatively short period of time. Well relatively, anyway, I stopped working on it for a good while. I jumped back into this about a week ago, and I tackled the harder problems first, like sandboxing and threading, and jar loading. I have been doing C for so long, it's nice to get back to Java.