Technical Document - AleixBV/StarCraft GitHub Wiki

#Technical Document#

###Index

[Introduction] (https://github.com/AleixBV/StarCraft/wiki/Technical-Document#introduction)

[Code Style] (https://github.com/AleixBV/StarCraft/wiki/Technical-Document#code-style)

[Versioning] (https://github.com/AleixBV/StarCraft/wiki/Technical-Document#versioning)

[Target Hardware] (https://github.com/AleixBV/StarCraft/wiki/Technical-Document#target-hardware)

[Branching Policy] (https://github.com/AleixBV/StarCraft/wiki/Technical-Document#branching-policy)

[Performance Utility] (https://github.com/AleixBV/StarCraft/wiki/Technical-Document#performance-utility)

[HOME] (https://github.com/AleixBV/StarCraft/wiki)

###Introduction###

Welcome to the technical document for our latest game Starcraft Last Hope.

In this document you are going to find the following: the Code style, the versioning, the target hardware, the branching policy, the performance profiler tool and the UML.

Technical document for Starcraft Last Hope. Read carefully and come back any time you need to keep sure you are following the guidelines.

Return to [Index] (https://github.com/AleixBV/StarCraft/wiki/Technical-Document#index)


###Code Style

Files: UpperCamelCase

FooFile.txt

Classes: UpperCamelCase

type FooClass()
{


};

Methods: lowerCamelCase

type fooMethod()
{


};

const corrected depending if it applies. (not changing the internal state of the class)

Variables: lowercase_separated_by_underscores (using vertical alignment

type     this_is_a_variable_gnom_gnom;
type     this_is_a_second_variable_gnom_gnom;

Constants: ALL_UPPER_CASE

#THIS_IS_A_CONSTANT_YEH_YEH

Indendation: Allman style

for(init; condition; increment)
{
	
}

Return to [Index] (https://github.com/AleixBV/StarCraft/wiki/Technical-Document#index)


###Versioning###

[major].[minor].[revision].[build_number]

○ major: Full development cycle resulting in a Major upgrade.

○ minor: One relevant feature implemented.

○ revision: Bugfix

○ build number: Any commit

######0.1

○ map painting with layers
○ camera

######0.2

○ Entity manager
○ basic UI
○ initial units

######0.3

○ group pathfinding 
○ initial base

######0.4

○ basic enemy with basic logic and attack
○ create units with cost

######0.5

○ wave system
○ puntuation
○ winning losing cicle

######0.6

○ better UI
○ mini map
○ queue orders

######0.7

○ fog of war
○ construct buildings

######0.8

○ particles
○ all units with respective atacks and IA

######0.9

○ nuclear bomb system

######1.0

○ save & load
○ shortcuts configuration
○ conclude all things

Return to [Index] (https://github.com/AleixBV/StarCraft/wiki/Technical-Document#index)


###Target Hardware###

PC 32bits with at least Windows 7

Return to [Index] (https://github.com/AleixBV/StarCraft/wiki/Technical-Document#index)


###Development Software Platform###

Visual Studio 2013 and Visual Studio 2015


###Branching Policy###

We will only make a branch for testing code or parallel work while fixing bugs.

Return to [Index] (https://github.com/AleixBV/StarCraft/wiki/Technical-Document#index)


###Performance Utility###

Brofiler

We are going to use brofiler as a tool to measure the performance of our methods, game loops, pathfinding and pretty much everything.

The policy will be that the code guys along with the QA are going to use such tool to speed the performance of our game. from each time a critical part of the code is implemented.

Brofiler Tutorial

Return to [Index] (https://github.com/AleixBV/StarCraft/wiki/Technical-Document#index)