Table of Contents

POC Development Test

Philosophy, variables must have self explanatory names.

We start off simple with components that can be put together in one environment at a later stage.


Make a sphere Float

Task:

Make a sphere Float suspended in air over terrain - Flat grid surface for now.
 
To place sphere above grid it needs changeable parameters for altitude and x,y

I would like them named like this:

altitude              = AltSphereZ 
location X coordinate = XSphereLoc
location Y            = YSphereLoc

I also want each sphere to have a unique naming variable let's call this 
sphereUniqueID

The sphere should be roughly 1,5 times the size of the platform diameter

Task

Make sphere glow in a pulsating pattern from one intensity to another - cycle "low - high - low" then repeat

Parameters for pulsechange

changeSpeed = milliseconds before changing intensity
setRGB = the color we start with
shineIntensity = the brightness
changeRGB = a different color
fromShine = the brightness we start off with
toShine = the brightness we end with

The sphere should be mostly transparent... think plasma - think soap bubble

Task

Collision detection on sphere

if ship hits sphere - make ship disappear

also shrink sphere size 1%

Detect when pellet (from own ship) hits sphere) shrink siz1 0,1%

Upon collision detection playback sound - REMEMBER create mute button on screen :)

Make Torus float beneath sphere

Task

Below the sphere I want a torus floating - For now just copy the parameters within the variables of the sphere above

childOfSphere         = UniqueID
altitude              = AltTorusZ 
location X coordinate = XTorusLoc
location Y            = YTorusLoc

Todo:
The "spacual" parameters of this is to be set by reading the "spacual" parameters of the sphere with the 
corresponding UniqueID

So getter and setter methods need to be used eventually that can be called from an external controller keeping 
track of every sphere.

Make platform move X,Y,Z

Task

Place platform on terrain

altitude              = AltPlatformZ 
location X coordinate = XPlatformLoc
location Y            = YPlatformLoc

You need to be able to move platform in X,Y direction on terrain however by pressing A you need to push platform 
up into the air on Z Axis - Please look at 

The numbers 

AltPlatformZ, XPlatformLoc, YPlatformLoc - Need to be readable from outside

Make platform shoot a pellet

Task

Fire a pellet from the platform, from a specific location on the platform - pellet just goes straight up

pelletPositionRelX - this is the position of CurrentPlatformLocationX +/-
pelletPositionRelY this is the position of CurrentPlatformLocationY +/-
pelletPositionRelZ this is the position of  CurrentPlatformLocationZ

pelletMoveX - this is the factor we want the pellet to move with in X direction - 0
pelletMoveY - this is the factor we want the pellet to move with in Y direction - 0
pelletMoveZ - this is the factor we want the pellet to move with in Z direction -0+N N=a number

firePositionRelZ - is the parameter for height that needs to change, at a later stage other parameters 
need to be changeable, but for now we keep things simple.

The start positions for each shot you get by reading from AltPlatformZ, XPlatformLoc, YPlatformLoc of uniqueID(x) 
where (x) is the content of variable uniqueID, in this case the value stored in sphereUniqueID - i.e. search all 
spheres for specifix value (x) then copy values to corresponding startpositions.

Advanced Colission Reaction

Detect when pellet (or any other object hits a sphere)
Upon collission detection playback sound & shrink sphere

shrinkFactorX
shrinkFactorY
shrinkFactorZ

Make large spacecraft circle above according to coordinate pattern

Task

LargeShip = UniqueID

Fly straight across top - middle of screen

Circle above spheres - at top of screen

Circle and lower altitude till right above spheres

Spiral top of screen

Spiral and lower altitude till right above spheres

Idea to describe path if this is not included in tool.

pathDescription(x,y,z,w;x,y,z,w;x,y,z,w:)
x=altitude              = AltLargeShip 
location X coordinate = XLargeShipLoc
location Y            = YLargeShipLoc
waittime w time to wait before moving to next position = waitTime

You may already start to see a pattern here and a way to make it easier to keep track of the positions of all objects in 
the game by introducing a datastructure that can hold the position of all objects in the game, that way you'll only have 
one variable to search through for locations of objects, you may want to distinguish between stationary and non stationary 
objects. If using OOB (Object Oriented Programming) all objects could be children of/inherit from a grandparent object 
that contained the variables common to all game objects and accessor methods for manipulating the parameters. 

Same with how animation is done for different objects.

But for now let's keep things as is.

STOP HERE

- Unless completely done with above - some of the things below will likely be outsourced.

Terrain

Task

Create terrain and wrap in texture - desert texture will be provided

Q & A

Example:

Q: What would you like me to do with .....

A: Make it go BOOM