Time for another update; possibly the last one before I have a playable demo out. The movement patterns for each of the six units has been completed, along with a very rough UI system. At this point, the game is more or less playable. I’m excited to see this project move along, and can’t wait to see what people think about it.
First up, the light infantry. The light infantry’s pattern is referred to as Patrol. It has a list of coordinates that travels to, one after another. Once it has traveled to the final point in the list, it starts back over with the first. These lists are designed in the editor on an individual basis. While creating these can be time consuming depending on the number of units and path complexity, it allows for a great degree of freedom when determining the light infantry’s movements.
The light infantry will halt progression towards the next point if an obstacle is in the way. Once it has successfully avoided collision, it will continue towards the next point.
The light infantry unit can be seen finishing a trip around the cube. There is no limit in terms of list length, path taken, or distance between points. These means that large, complex patterns are just as possible with this unit as simple shapes.
The light infantry will stop if an allied unit moves into its attack range. It will then stand in place, firing until there are no allied units in range (either by defeating them all or the units moving outside of attack range).
Next, the heavy infantry unit. The heavy infantry’s movement strategy is labeled Wander. It will periodically pick a random direction, and begin moving forward in that direction. Unlike the light infantry, there is no final destination for the heavy infantry. It travels in the direction it is facing until a new direction is chosen. These erratic movements can make keeping losing track of them very easy, and can cause large setbacks for strategic assaults.
The heavy infantry’s core movement strategy may differ from the light’s, but they do share some similarities. For one, the heavy infantry will also freeze in place when player units come in range. Second, it’s wandering will be ignored when obstacles are in its way.
The turret is the only immobile unit in the game. This means that it doesn’t really have a “movement” pattern.
To give the turret a bit of visual flair, it will constantly rotate to face whatever unit it is currently targeting. Other units do not have this trait because they need to be able to fire and move at the same time. This is a purely cosmetic attribute, with no affect on gameplay.
The powerful tank seems to act the same as turrets at first. The large unit will sit idle until it is approached. However, once an allied unit moves into attack range, it will begin to chase down the unit in question. The tank will continue its chase until it either loses the player unit, destroys it, or is forced to navigate out of the way of an incoming obstacle.
Because of the relentless nature of the tank, fighting it can be very difficult one-on-one, especially for less powerful units. The tank only follows one unit at a time, and ignore all others others until its current target is gone. The tank always follows the unit it is targeting, so this is the same unit which will be fired at.
The long-range artillery unit follows a movement strategy opposite that of the tank. It too will remain idle until player units move in close. However, once this distance threshold has been crossed, the artillery move away from the approaching unit.
Unlike the tank, the artillery unit will constantly update who it is retreating from based on which unit is closest. Since it is designed for long range support rather than direct conflict, the idea behind this pattern is to avoid close range battles as much as possible. It will continue firing on whichever unit it is targeting as it retreats.
Finally, we have the helicopter. The helicopter follows a rather unique pattern compared to other units. It will fly in a circle around the area it spawns in. It will continue on this circular pattern unless it flies near a player unit or obstacle. In these cases, the helicopter will adjust its course to avoid collision.
The helicopter, unlike other units, never stops moving. Even if it comes under attack, it will stay on its planned course. When units are in attack range, the helicopter will fire at whichever unit it is targeting as it travels.
So, that’s it for all of the enemy movement patterns. In addition to that, I worked out a very rough UI system to display info about any unit that the player moves the mouse over. This information includes the unit’s type, whether it is allied or enemy, current health remaining, and maximum health. I need to go back and do some adjustments to ensure this information renders with the correct location and rotation later.
I also worked out a barebones HUD. This will tell the player how units of each side remain on the field. There is space designated for things like objective lists, alloted time for levels with time constraints, and a mini-map. However, none of these will be appearing in this first demo. The only remaining aspects to work on for the demo are playable levels, and menu interface systems.
PlayerUnit and EnemyUnit functionality, built out of TestUnit Combat between units Unit types Artillery Helicopter Lt. Infantry (Rifle) Hvy. Infantry (Flamethrower) Tank Turret
Enemy unit AI Artillery Helicopter Lt. Infantry (Rifle) Hvy. Infantry (Flamethrower) Tank Turret
UI Player Info Enemy Info HUD
- Level Design (Currently five planned)
- Level 1
- Level 2
- Level 3
- Level 4
- Level 5
- Main Menu
- Level Select
- Visual Effect to show active player units
- Visual Effect to show unit attack range
- Demo Feedback Survey
- Playable Demo Released