Friday 25 September 2015

Fun is all we need

Fun is my purpose

The main reason I developed this game is purely for the fun of watching epic space battles.  That is the reason why there is a screenshot feature built directly into the game as well as playback controls.  

There are numerous different AI settings which can be selected with the slider method some of which provide for some truly epic space battle sequences.  

Allowing the user to specify their own music tracks also helps - you can simply copy music files into the relevant game folder (music/stardancer/battlemusic/....) and watch battles to your own choice of audio.  

The explosions are delightful to watch too! War was never quite so fun! (Note in real life I can't stand war I just like the pretty colours in my game... )

It is a beauty to watch the ships dance and weave around each other (hence the title Star Dancer) as they circle each other and duck and dodge the bullets as well as try and get a clear shot at their targets.  

So put some heavy metal music on (might I recommend Nightwish) and make some space battles.

A feature I would have liked would have been to allow automatic upload to youtube but this was sadly not going to happen.

Another feature the original design called for was pilot chatter between each pilot in the fleet....much like the old Star Wars movies (original series).  "Cut the chatter Red 2....look at the size of that thing....we're passing through the magnetic field hold tight" etc - but this was beyond my ability in the time frame allowed. Still one can dream.






Saturday 5 September 2015

Behavioural AI Settings

The key component to successfully winning battles in Star Dancer is setting your ships' AI behaviours appropriately.

There are 16 different AI setting sliders.  They default to the central position (equates to neutral) and may be shifted left or right.  

The AI system works as follows:

Every few seconds each ship tries to acquire a new target to attack - or if their current target has been eliminated they will try to acquire a new target.

The various settings carry a weight from -5 to +4.   By sliding the settings to the left or right sets the value for each of these.  A value to the right (positive) indicates that this setting should be pursued.  A value to the left indicates it should be rejected.  

Different settings can have very different outcomes for two fleets and can make all the difference between victory and defeat.

I will explain each of these in turn.




Target Larger Enemy:

A value to the right adds weight to targeting enemy vessels that are larger than ourselves.  A value to the left adds weight to ignore enemy vessels larger than ourselves.

Target Enemy At Close Range:

A value to the right adds weight to targeting enemy vessels that are at a very short distance from us (in any direction).  A value to the left indicates we wish to ignore targeting enemy near us.

Target Enemy At Optimum Range:

Similar to the Close Range setting but this is based on a distance which is approximately equivalent to the maximum effective range of our weaponry.  The interaction between this and the previous setting can make for some interesting dynamics.

Retain Target:

This setting determines how long we continue with the same target.   A low value indicates change target often, a high value indicates change target rarely.

Target Enemy Dead Ahead:

Setting this to the right indicates we wish to target enemy who are directly within our fire arc to the front. Setting it to the left indicates we wish to ignore enemy who are directly to our front.




Target Enemy To Our Front:

Set to the right to target enemy towards our front - anywhere in the front 180 degree arc. Set to the left to ignore enemy forwards of us.

Target Enemy To Our Rear:

Set to the right to target enemy who are behind us. Set to the left to ignore enemy behind us.  This is a useful setting for smaller agile vessels.  A smaller agile fighter for example may decide to change target fairly regularly and choose to target those ships behind us - this will provide a more dynamic 'dance among the stars'.

Target Enemy Targeting Us:

This is a rather interesting setting as well.  By setting this to the left the ships will target enemy who are not currently attacking us.  This is useful if we wish to avoid direct confrontation.

Target Lightly Damaged Enemy:

Enemy who have taken some but not a lot of damage are included in this setting.  

Target Severely Damaged Enemy:

Enemy who have taken a lot of damage and are near death are included in this setting.  This and the lightly damaged setting can combine in interesting ways.



Target Approaching Enemy:

This is the perfect setting for those who either like direct confrontation or a skirmishing role.  By setting to the left you can make sure your ships prefer to attack enemy who are facing away from us (backstabbing!) or by setting to the right you can cause your ships to prefer to attack enemy who are coming right for us.

Target Enemy Targeting Our Capital Ship:

If we have a capital ship present this setting can tell us whether we want to protect it or not with our other craft.

Target Enemy At Extreme Range:

Extreme Range is out of range for all smaller craft and only ships with beam weapons are most likely to be within firing range at this range.

Target Faster Moving Enemy:

A faster moving enemy is calculated at the time the new target is acquired.  It is relative to our own current velocity vector.  Typically if a ship is spending a lot of time changing direction it will have a low velocity vector compared with a ship traveling in a straight line.

Target More Agile Enemy:

Agile in this case refers to acceleration.  Ships with a high acceleration are more likely to be fighters and bombers.  We can choose to focus upon  them or ignore them as we see fit.

Target Enemy Ace:

Aces are enemy ships who have successfully killed or shot a lot of enemy ships in this battle.



Hopefully that gives some insight into how the AI settings work in the game and will help you be victorious against your foes.

Features to implement

Bug fixes and features to still implement.


There are a handful of features that I would like to implement at some point.

First of all - there is a known issue with the login popup appearing when a network error occurs.  This is fairly unavoidable but a little annoying.  If the user's device loses connection then it can sometimes popup a message about the user login which the user can often simply dismiss.

Also, I feel there needs to be some way of indicating to the user, while they are not in the game, that they have received a battle or a player has joined. However I want this to be unobtrusive and I have not worked out the best way of doing so that is obvious to the player, not intrusive, and which is easy to implement for the user.  

Thirdly there does need to be additional help information guiding the player for the first time. To be honest I almost think a simple youtube clip of 'how to play the game' would suffice and post them here because it is, for a mobile game, fairly complex even at a cut down level. However my Dad and my sister are able to play (who are not regular game players) so it can't be that hard.

In the meantime here is a link to a youtube slideshow of some screenshots from the battles.....



And an animated video....