Command and Conquer: WarZone
by StormHowlers
Game info
The game we’re developing is a mix between the classic RTS games and the tower defense genre. It has one very clear objective for both players: “Crush your opposition without showing any mercy!”
Command and Conquer: WarZone, features a streamlined resource system that allows the player to focus on more important tasks such as fighting and defending your precious base. We have also implemented an automatic troop AI, as well as an auto-deploy from the barracks they have been created. This means that once bought, they will automatically be deployed and they will go to their main objective. It can be everything, enemy troops, defensive structures or the Town Hall itself.
The game also features a polished UI so any new players can quickly grasp how to navigate through the UI and allows seasoned players to execute more efficiently. The game also communicates with the players to notify them about the game state via voicelines.
The game is intended to be player with controllers for 2 people at a time.
The Team
We are an indie game development team formed by 7 students taking the bachelor’s degree in Videogame design and development in the UPC. The game will be developed for the subject Project II. We will be making a tribute to the well-known RTS game: Command&Conquer: Red Alert 2.
How to play
As stated in the game info, each player will have one controller where they can control the UI from his faction. The controls of the controllers as well as debugging functions with keyboard/mouse can be found in the next section below.
-
Allies (Player1): Blue. Base located in the left side of the screen. UI located on the bottom-right corner
-
Soviets (Player2): Red. Base located in the left side of the screen. UI located on the top-left corner
The main objective of the game is to destroy the opponents’ TownHall.
In order to achieve this, the player must manage resources via gold mines, create troops via barracks and use the defensive buildings(AoE and single-target) to defend all the other buildings. And more importantly, the main base which can’t be built once destroyed nor repaired under any circumstance.
Every button or window in the main UI has a decription about what it does and the stats for the troop/building to be build or deployed.
Buildings and troops
Buildings
- Non-buildable: TownHall, CommandCenter, Tesla
- Buildable: AoE Tower, Single-target tower, mines, barracks.
Troops
Soldier, WarHound, Engineer, Spy, Tankman
For further information go to the games wiki
Game controls
Controller
Main menu/ingame menu
- Dpad: Cycle through options.
- A: Use current button.
- B: Go back to previous window.
- Dpad right(on a slider): Increase value.
- Dpad left(on a slider): Decrease value.
In-game
- RB/Right/Joystick->: Go to button in the right side.
- LB/Left/<-Joystick: Go to button in the left side.
- A: Use current button.
- A(with building selected): Place it in the current location.
- B: Go back to previous window/options.
- Dpad(with building selected): Slow movement through the map.
- Left Joystick(with building selected): Quick movement through the map.
- Right Joystick: Change building type.
- X (in troop menu): Change all troops states.
- Y (in troop menu): Change the state for the selected troop.
- A (in troop menu): Spawn selected troop.
- RT: Shortcut to change all troop states. (Anywhere)
- Start: Trigger pause menu
For Debug functionalities check the game’s README here
Contact us!
- StormHowlers Twitter
- StormHowlersDevelopers@gmail.com
For more information about the game, head to the link below:
https://github.com/stormhowlers/Command_and_Conquer_WarZone/wiki
Github
As stated on the license, anyone can look at or modify the code of this project. It can be found here: https://github.com/stormhowlers/Command_and_Conquer_WarZone
License
Licensed under the MIT License
https://github.com/stormhowlers/Command_and_Conquer_WarZone/blob/master/LICENSE.md
Code Features
Some special features included in the code are:
-
Entity AI: each entity manages his own depending his state and needs.
-
Animations Loaded from Tiled: loaded animations from xml document save from Tiled.
-
Construction system: collisions and previews to build inside your zone.
-
Entity Update Area: enemies update depending on the Zone they are, and the mode the player selects.
-
Tiled: Animations, collisions, entities, and areas loaded from tiled.
-
UI with gamepads: UI designed for gamepads.
-
Entity management: avoid destroying and creating entities by active or inactive system.
-
Video management: start the game with the teams intro.
-
Voicelines: so that the game can communicate with the players.
Installation
Decompress the .zip file in any directory. Open the file directory and double click on the executable (.exe). Download the Gold version (1.0) Here
or dowload the desired release here and follow the same steps: https://github.com/stormhowlers/Command_and_Conquer_WarZone/releases
Game Video
Commercial trailer
Game trailer
Gameplay
Teams Roles
Andrés Saladrigas
Lead: Andrés Saladrigas
- Andrés’ GitHub Link
Mission: Guide the teams members throught the development process.
Objective: Ensure that goals are achieved in time.
Role: Manage objectives, ideas and features in relation with time. Make hard decisions. Guide the team to deliver the final product.
Main idea of the game, later developed and improved with all members. Create a PvP experience making a tribute to C&C games.
Task & Time management
Using web tools as HackNPlan and Teamup
Map Idea and Design
Building and players placement in an Isometric view
Buildings and Troops AI
Independent logic for each building and state machine update for the different troops
Balancing
Buildings and troops stats balancing
Teams Presentations
Deliver and make teams Presentation for investors
Documentation Process
Guidance, struture and writting the proyects wiki
Code zoom and time implementation
Global time for the game and zoom in the games textures
Game Zones
Set actions depending on map zones for building actions and Soldiers actions
Video Manager
Introdicing a the game with a .ogv video
Josep Lleal
UI: Josep Lleal
- Josep’s GitHub Link
Mission: Design and code the UI of the game.
Objective: Make the UI as intuitive as possible.
Role: Make a responsive and useful UI that works.
Design and code of the in-game UI:
Designed with some sprites from the original game and others created with photoshop.
Recreate the pause menu from the original game:
The pause menu has been done with the original sprites although some features have been changed.
Implement the controllers inputs:
Used SDL_GameController to handle game controllers and for mapping joysticks to game controller semantics.
Barracks selection to spawn troops:
When spawning troops you can choose in which barrack you want to spawn them.
Gold Production:
Increasing gold each second by a variable amount depending on the number of mines that are built.
Joan Barduena
Art/Audio: Joan Barduena
- Joan’s GitHub Link
Mission: Artistic coorelation of sprites, edition of those and fluid animations.
Objective: Make the sprites as intuitive as possible.
Role: Responsible of no animation bugs and sprite coorelation.
Sprites and animations from XCC Mixer
Extraction of all the necessary sprites with the free program XCC Mixer.
Sprite organitzation to export to Tiled
Used AdobePhotoshop in order to organize the sprites, so later we could load the animations with Tiled.
Sprite change of colour
Nearly all the sprites were from the Soviets. With a Allied palette (blue colours), we changed the sprite colours to differentiate one team from the other.
Music FadeOut
Code implementation of a music fadeout that would not lagg the whole gamem, as it did with the previous code.
Decorations
Code that reads the decoration coordenates from Tiled and passes them to the map.
Adding sprites
Adding invulnerable aura of all troops and building selection.
Victor Chen
QA: Víctor Chen
- Victor’s GitHub Link
Mission: Keep track of bugs in the game and solve them as fast as possible
Objective: Categorize every bug in the game and assign someone to solve it.
Role: Bug solving and code when there are no present bugs
Main menu navigation and buttons
Coded the main menu and all its buttons. Used original sprites and modified others to make the button states.
Bug tracking with GitHub Issues
Used GitHub Issues to keep track of bugs and categorized them depending on which type of bug they were, assigned them a priority level, wrote down the reproduction steps, assigned it a reproducibility level and then I indicated the branch where the bug is present and the current build of the game.
Win/Lose code
Coded the Win/Lose conditions for both players and added the windows and explosion animations (done by the artist Joan Barduena)
SFX/Voicelines
Selected the necessary SFX and put them in code in every instance they are used. I also created brand new voicelines so that the game itself can communicate with the players of the game’s state.
Note: the files that ends with _fx.wav
are original SFX from Command&Conquer: Red Alert 2. The other ones are voicelines made by me.
Scene transitions
Added scene transition modules and implemented them into our code.
David Tello
Code: David Tello
- David’s GitHub Link
Mission: Make a good and well structured code for the game.
Objective: Ensure that the game doesn’t crash, there aren’t memory leaks and the repository is clean.
Role: Code the main core of the game and first versions of new features as well as to help other teammates with code related issues.
Main Core
Creating the base and preparing it to be used to start coding the game.
Basic UI
Implement the first version of the UI and code the actions and logic.
Buildings and EntityManager
Create the entity manager module and the first versions of the buildings modules.
Build
Place and build the buildings.
Sprite Ordering
Implement sprite ordering.
LifeBars for entities
Add lifebars to every entity that shows its current life.
Tower Range and AoE tower
Show the range of a deffensive tower when building and implement a priority queue for the tower’s targets.
Arnau Gallofre
Design: Arnau Gallofré
- Arnau’s GitHub Link
Sound Related Things
- Choosing the tracks
- Load to the game
- Fit into the gameplay
Building Animations
- Take the sprites
- Load them to Tiled
- Charge them into the code
Balancing
Commercial Trailer
Oscar Pons
Management: Òscar Pons
- Òscar’s GitHub Link
Mission: Manage team work and balance tasks between teamates
Objective: Properly distibute the workload while the game keeps developing towards the expected result
Role: Code implementation, bug fixing and features optimization
Buildings and Entities
- Final version of buidlings and entities with fast loading and spawning
- Optimization of memory and time
- Help with buildings AI
Troops
- Automatically load and spawn troops
- Help with troop AI
- Several different troop movement behaviour (pathfinding, group pathfinding, vector field)(finally discarded)
Map
- Help with building map as well as drawing optimization