Difference between revisions of "User:Chase-san/Roboflight"

From Robowiki
Jump to navigation Jump to search
(Initial writeup. (I am exhausted now))
 
(It's an update!)
 
(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.
 

Latest revision as of 13:37, 10 October 2014

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.