DEFENCE OF THE ANCIENTS - cse.iitd.ac.inmcs142144/documents/DOTA_thesis.pdf · TANMAY GUPTA Entry...

20
DEFENCE OF THE ANCIENTS Assignment submitted in partial fulfillment of the requirements for the degree of MASTER OF TECHNOLOGY in Computer Science & Engineering by SURESH P Entry No. 2014MCS2144 TANMAY GUPTA Entry No. 2014MCS2145 Under the guidance of Dr. HUZUR SARAN Department of Computer Science and Engineering, Indian Institute of Technology Delhi. November 2014.

Transcript of DEFENCE OF THE ANCIENTS - cse.iitd.ac.inmcs142144/documents/DOTA_thesis.pdf · TANMAY GUPTA Entry...

Page 1: DEFENCE OF THE ANCIENTS - cse.iitd.ac.inmcs142144/documents/DOTA_thesis.pdf · TANMAY GUPTA Entry No. 2014MCS2145 Under the guidance of Dr. HUZUR SARAN Department of Computer Science

DEFENCE OF THE ANCIENTS

Assignment submitted in partial fulfillmentof the requirements for the degree of

MASTER OF TECHNOLOGY

in

Computer Science & Engineering

by

SURESH PEntry No. 2014MCS2144

TANMAY GUPTAEntry No. 2014MCS2145

Under the guidance of

Dr. HUZUR SARAN

Department of Computer Science and Engineering,Indian Institute of Technology Delhi.

November 2014.

Page 2: DEFENCE OF THE ANCIENTS - cse.iitd.ac.inmcs142144/documents/DOTA_thesis.pdf · TANMAY GUPTA Entry No. 2014MCS2145 Under the guidance of Dr. HUZUR SARAN Department of Computer Science

Certificate

This is to certify that the assignment 3 DOTA Game being submitted by

Suresh P and Tanmay Gupta as a part of the course CSP701 in Com-

puter Science & Engineering is a record of bona fide work carried out

by them under my guidance and supervision at the Department of Com-

puter Science & Engineering. The work presented in this assignment

has not been submitted elsewhere either in part or full, for the award of any

other degree or diploma.

Dr. Huzur Saran

Department of Computer Science and Engineering

Indian Institute of Technology, Delhi

Page 3: DEFENCE OF THE ANCIENTS - cse.iitd.ac.inmcs142144/documents/DOTA_thesis.pdf · TANMAY GUPTA Entry No. 2014MCS2145 Under the guidance of Dr. HUZUR SARAN Department of Computer Science

Abstract

The DOTA game is a strategy game which can be played as a multiplayer

over the network or as a single player where the number of human players can

be between 1 and 4. Rest of the players will be BOT . The 4 players will be

divided into two teams (with 2 players in each team) namely Galacticos and

Aracadians. Each of these teams defends their own regions as well as their

temple and the team that is first successful to destroy the enemy team’s Tem-

ple wins the game. Whole game depends on the hero and strategy choosen

by the player that either to attack the temple or destroy the temple.

Each hero has some attributes different from the other which make the

game unique and there are items in the map to increase the ability.The game

screen is divided horizontally into two parts. One of the parts contains the

map and the other part displays the details about the player. The second

part also contains details about the opposing player(s) including the image

of the hero, its abilities and health.

Page 4: DEFENCE OF THE ANCIENTS - cse.iitd.ac.inmcs142144/documents/DOTA_thesis.pdf · TANMAY GUPTA Entry No. 2014MCS2145 Under the guidance of Dr. HUZUR SARAN Department of Computer Science

Acknowledgments

First and foremost, we thank to the Power of Almighty for showing us inner

peace and for all blessings. Special gratitude to our Parents, for showing

their support and love always. We like to acknowledge the constant support

provided by the Course Coordinator Dr. Huzar Saran for his consistent

motivation in pursuing our project.

We express our sincere thanks to our seniors for providing us their valuable

guidance, untiring patience and diligent encouragement during the entire

span of this project.

We extend our gratitude to our friends especially Kaleeswaran and we feel

proud in sharing this success with friends, who helped directly or indirectly

in completing this project successfully.

SURESH P (2014MCS2144)

TANMAY GUPTA (2014MCS2145)

Page 5: DEFENCE OF THE ANCIENTS - cse.iitd.ac.inmcs142144/documents/DOTA_thesis.pdf · TANMAY GUPTA Entry No. 2014MCS2145 Under the guidance of Dr. HUZUR SARAN Department of Computer Science

Contents

1 Introduction 1

2 User Interface 2

3 Map 4

4 Hero 6

5 Item 7

5.1 Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

5.2 Magical Powers . . . . . . . . . . . . . . . . . . . . . . . . . . 9

6 Game 10

6.1 Game play . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

6.2 BOTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

7 Conclusion 13

Page 6: DEFENCE OF THE ANCIENTS - cse.iitd.ac.inmcs142144/documents/DOTA_thesis.pdf · TANMAY GUPTA Entry No. 2014MCS2145 Under the guidance of Dr. HUZUR SARAN Department of Computer Science

List of Figures

2.1 Hero selection . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

6.1 Game screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

c© 2014, Indian Institute of Technology Delhi

Page 7: DEFENCE OF THE ANCIENTS - cse.iitd.ac.inmcs142144/documents/DOTA_thesis.pdf · TANMAY GUPTA Entry No. 2014MCS2145 Under the guidance of Dr. HUZUR SARAN Department of Computer Science

List of Tables

5.1 Magical Power . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Page 8: DEFENCE OF THE ANCIENTS - cse.iitd.ac.inmcs142144/documents/DOTA_thesis.pdf · TANMAY GUPTA Entry No. 2014MCS2145 Under the guidance of Dr. HUZUR SARAN Department of Computer Science

Chapter 1

Introduction

The DOTA game is a strategy game which can be played as a multiplayer

over the network or as a single player where the number of human players

can be between 1 and 4. Rest of the players are BOT . The 4 players are

divided into two teams (with 2 players in each team) namely Galacticos

and Aracadians. Each of these teams defends their own regions as well as

their temple and the team that is first successful to destroy the enemy team’s

Temple wins the game. Whole game depends on the hero and strategy chosen

by the player that either to attack the temple or destroy the temple.The game

is designed in C++ and OpenGL, features of OpenGL is used to provide game

graphics and also handling the mouse and keyboard.

Each hero has some attributes different from the other which make the

game unique and there are items in the map to increase the ability.The game

screen is divided horizontally into two parts. One of the parts contains the

map and the other part displays the details about the player. The second

part also contains details about the opposing player(s) including the image

of the hero, its abilities and health.

User Interface is provided to allow user to pick his team and also the hero

from the selected list of player. The user makes choices in the menus to pick

his team and hero.

c© 2014, Indian Institute of Technology Delhi

Page 9: DEFENCE OF THE ANCIENTS - cse.iitd.ac.inmcs142144/documents/DOTA_thesis.pdf · TANMAY GUPTA Entry No. 2014MCS2145 Under the guidance of Dr. HUZUR SARAN Department of Computer Science

Chapter 2

User Interface

DOTA game is played either as a single player game or multiplayer game.

In both the format it requires lot of interactivity with the user. Interactivity

is provided through keyboard and mouse. Right from the beginning of the

game, a game selection prompt is there which allows user to play game either

as a single player or multi player. User can go through the menu either

through the mouse or by use of keyboard

If user selects the multiplayer game he has the option to create server or to

join the existing server. If user joins the game a menu is displayed in which

he can enter the IP address of the server to whom he wants to connect to

in order to join the game this input is taken through the keyboard. He can

enter the game then by pressing enter.

At any stage if user wants to go to the main menu, he can do so by clicking

on the main menu button provided in every screen. Through main menu user

can quit the game by clicking exit button or by pressing ESC key.

Once user has entered into the game he can select team of his choice by

clicking on the team icon. After that user is redirected to the Hero selection

screen through which he can select the hero of his choice by simply clicking on

the desired hero. Hero selection screen is divided horizontally to allow user

to see the detail of each hero and accordingly a user can select his favourite

Hero by comparing them through there ability and type.

In the game user interacts with the game through both mouse and key-

board. User can move within the map through Right mouse click and can

attack enemy team or temple and pick item through left mouse click. A user

c© 2014, Indian Institute of Technology Delhi

Page 10: DEFENCE OF THE ANCIENTS - cse.iitd.ac.inmcs142144/documents/DOTA_thesis.pdf · TANMAY GUPTA Entry No. 2014MCS2145 Under the guidance of Dr. HUZUR SARAN Department of Computer Science

3

Figure 2.1: Hero selection

can activate and deactivate his hero magical power through SPACEBAR key.

User can also pause the game or quit the game by pressing quit button on

the right side the screen. On clicking the button a screen appears asking the

user whether to resume game or quit game.

Over all the game has great aesthetic sense which user will like and every-

where through the game user will find great interactivity while playing the

game as well as moving in the game menu.

c© 2014, Indian Institute of Technology Delhi

Page 11: DEFENCE OF THE ANCIENTS - cse.iitd.ac.inmcs142144/documents/DOTA_thesis.pdf · TANMAY GUPTA Entry No. 2014MCS2145 Under the guidance of Dr. HUZUR SARAN Department of Computer Science

Chapter 3

Map

Game screen is divided into two parts horizontally, with one part containing

the information about the attributes of hero, and the enemy team hero. The

other part contains the map. The whole map is split into equal size rectan-

gular imaginary tiles implemented as a set such that the tiles are arranged

to form a grid. The map is divided into two regions along the diagonal. The

region belonging to a team is only visible to itself, whereas the region of the

other team is hidden with cloud. However, the war region (including the

temples) is visible to both the teams. Each team has a spawn area from

where the two players of the team starts and if killed while in the game,

again starts the game from the spawn area.

Map is divided in a set of rectangular tiles and only the portion of map

where the tile is available the hero can move. Map contains obstacles like

water, wooden logs, rocks, fires and trees. These obstacles are distributed in

one-third of the player’s region excluding the war zone and the spawn area.

Both the regions are similar in terms of obstacles, spawn area, war zone and

temple. The place where the obstacles are placed, Hero can not move there

and if user clicks on the obstacle he will move to the nearby place where the

obstacle is not present.

At a time five items will be in a team’s area so that the heroes can pick

them up, until their bags become full. Each item is placed on a tile. There

are random location on the temple where the item can appear, hero has to

click on the item to reach at that place and then again left click to pick the

item. In the game two temples occupy a set of tiles clicking on that region

will decrease the health of the temple.

c© 2014, Indian Institute of Technology Delhi

Page 12: DEFENCE OF THE ANCIENTS - cse.iitd.ac.inmcs142144/documents/DOTA_thesis.pdf · TANMAY GUPTA Entry No. 2014MCS2145 Under the guidance of Dr. HUZUR SARAN Department of Computer Science

5

Within the map player moves in the shortest path possible. Shortest path

algorithm is implemented using the Breadth first search.

Shortest path is computed in the following manner given the starting and

final position of the player.

• An Empty Queue is created.

• All the nodes in the map are mark as unvisited.

• If Queue becomes empty or if we cross the screen coordinates it returns

null indicating that there is no shortest path.

• Otherwise we mark the node as visited and enqueue its adjacent nodes

excluding the diagonal nodes into the Queue.

• This process is repeated until we find the shortest available node or the

path is unreachable.

• Here we consider the distance of the feasible path from the start to

destination.

• Finally We generate the stack from the node information stored during

the shortest path computation.

Finally when the shortest path is computed The hero within the map move

towards the destination in the shortest path, in between if player clicks again

at different location, again the shortest path is computed and hero moves

towards the new destination.

c© 2014, Indian Institute of Technology Delhi

Page 13: DEFENCE OF THE ANCIENTS - cse.iitd.ac.inmcs142144/documents/DOTA_thesis.pdf · TANMAY GUPTA Entry No. 2014MCS2145 Under the guidance of Dr. HUZUR SARAN Department of Computer Science

Chapter 4

Hero

There are 6 heroes in the game all with different abilities and uniqueness

which gives user the options to compare and choose the Hero according to

his/her liking. Out of the 6 heroes 3 have more defending abilities and they

are tagged as defenders. Other 3 have more attacking abilities and they are

tagged as attackers. User have the option to choose either both attackers or

both defenders in his team or any other combination of player he/she wants.

The Heroes with more attacking abilities are Maverick, Conjurer and Tal-

isman and the Heroes with more defending abilities are Dante, Sting and

Proteger. Each player can choose one among these 6 heroes. The two mem-

bers of the team selects the hero and enters the game.

Each hero has One unique magical power. An item bag that can contain

maximum of three item at a time, by default at the start a hero has a default

item in his bag, hero can add use item from his item bag while in the game.

Out of the items available hero can use only one item at one time which he

can select by clicking on the item on the side bar. Other than that each hero

has ability to damage other team hero or the temple, Each hero has attack

speed and movement speed and health point.

c© 2014, Indian Institute of Technology Delhi

Page 14: DEFENCE OF THE ANCIENTS - cse.iitd.ac.inmcs142144/documents/DOTA_thesis.pdf · TANMAY GUPTA Entry No. 2014MCS2145 Under the guidance of Dr. HUZUR SARAN Department of Computer Science

Chapter 5

Item

The game includes items which can be picked by the hero in the map to

increase his ability, different item in the map has different special attribute

which can enhance the hero capability. All hero in the game has a default

item from which they begin the game, while in the game hero has the choice

to pick some item and go their temple and/or other’s.

In a map at a time there will be only 5 items available in the map, a hero

can pick any of the item by simply going to the location where item is present

and the clicking left mouse button over it. Hero has an item bag which can

contain maximum of 3 items at a time and to use a item hero can click the

item over the item in the bag and use it accordingly. If the item is attacking

item then hero after selecting the item in the item bag has to click on other

hero or the temple.

Item that are available in the map are random and also the location of the

item in the map is random so it gives a unique randomness to the game which

make the game fun to play and quite enjoyable, as hero can adopt various

strategy to win the game. Item in the game add and increase attribute to

the hero by either increasing movement speed, attack speed, health, damage

etc. Hero can select the item according to his or her requirement during the

game.

5.1 Items

Potion of Health

The potion when picked will increase the health of the hero (who picked

it) by 25

c© 2014, Indian Institute of Technology Delhi

Page 15: DEFENCE OF THE ANCIENTS - cse.iitd.ac.inmcs142144/documents/DOTA_thesis.pdf · TANMAY GUPTA Entry No. 2014MCS2145 Under the guidance of Dr. HUZUR SARAN Department of Computer Science

5.1 Items 8

Temple Healer

This temple healer is used to fix the damages caused in the temple. Fixing

the damaging will lead to increasing the health of the temple by 10

Speedy Shoes

This item is used to increase the movement speed of the hero. After

picking, the shoes will remain with the hero for 20 units of time.

Feather of Fury

This raises the attack speed of the heroes by 1 hit per unit time. Once

picked, this item will last with the hero only for 5 units of time.

Items that cause damage

Spear of Devil When thrown over the target (temple or hero), it will have

a damage and decrease their health by 10

War Hammer When hit by hammer, the impact will be more than hitting

with bare hands. The damage will add up 20

Blade of Demise It is a sword that can be used to damage the target to a

greater extent, which will increase the basic damage capability of the heroes

by 10

Amazing Arrow When thrown on a target, it will cause a damage on it

and decrease its health by 3

c© 2014, Indian Institute of Technology Delhi

Page 16: DEFENCE OF THE ANCIENTS - cse.iitd.ac.inmcs142144/documents/DOTA_thesis.pdf · TANMAY GUPTA Entry No. 2014MCS2145 Under the guidance of Dr. HUZUR SARAN Department of Computer Science

5.2 Magical Powers 9

Armour of Indemnity This gives a protective layer to the heroes so that

the attack has effect on the shield instead of having effect on the heroes

themselves. Once the shield has lost its health, the shield will be destroyed

and any further impact will be over the hero unless he picks another shield.

The starting health of armour will be 25

5.2 Magical Powers

The following table gives the list of the available magic powers, duration

for which they will be active after applying them and the duration between

the successive usages of the magic power.

Magic PowerActive time(units of time)

Recovery time(units of time)

Burst Damage 2 15Slower 3 15Disabler 5 15Stunner 1 20

Table 5.1: Magical Power

c© 2014, Indian Institute of Technology Delhi

Page 17: DEFENCE OF THE ANCIENTS - cse.iitd.ac.inmcs142144/documents/DOTA_thesis.pdf · TANMAY GUPTA Entry No. 2014MCS2145 Under the guidance of Dr. HUZUR SARAN Department of Computer Science

Chapter 6

Game

Player can play this game either as single player that is with bots or with

other human player that is by selecting the multiplayer mode. After selecting

the team and hero of his liking the game will be played between two teams

both containing two heroes each and both have to defend there temple and

destroy the enemy temple before the other team destroy there temple. Game

will get over one team destroys the temple of other

6.1 Game play

If a user has selected a single player game then all the other heroes will be

BOTS otherwise number of BOTS depend on the number of human player,

if all the four are human player then no BOTS will be selected in any other

case slot will be filled by the BOT. If in between one of the player leaves the

game after some amount of time that place will be taken by the BOT and

game will resume from the previous point.

After the start of the game a hero can either first select the items and fill

his item bag and then go to temple or he can directly go to his temple or the

enemy team temple. Being a strategy game whole strategy depends on the

hero what he wants to select either do a full on slaught attack on the other

team temple or defend his temple.

To attack a temple or a hero of other team, player has to click on the hero

or temple by left mouse click, but for that first he has to reach at the location

near to the temple or hero, which is the war zone, that is the zone where

the other team hero are visible if they are available there, this location also

contains the temple. The area of the other team other than the war zone is

not visible to the player.

c© 2014, Indian Institute of Technology Delhi

Page 18: DEFENCE OF THE ANCIENTS - cse.iitd.ac.inmcs142144/documents/DOTA_thesis.pdf · TANMAY GUPTA Entry No. 2014MCS2145 Under the guidance of Dr. HUZUR SARAN Department of Computer Science

6.1 Game play 11

Figure 6.1: Game screen

To move to a particular location, either to pick an item or attacking a hero

or temple player has to click with right mouse button over the place where

he wants to go. Over the side bar hero can see the details about his item in

the item bag, his health as well as enemy players health to give him the idea

what he can do. Also over the temple a health bar is there which depicts the

current health of the temple.

Each hero in the game has unique magical power associated with him,

each magical power has some time over which it is active on the victim and

once used over the enemy it takes some time to rejuvenate. Hero can use

his magical power by pressing space bar, once hero presses the space bar he

can see that in the Side bar that magical power is activated the next time he

clicks with the left mouse button over the enemy team player, the magical

power will be cast over the other player, but with ”burst damage” magical

power hero can click anywhere and power will be applicable over a radius

and it can affect multiple player.

while in the game player can quit at any time by clicking on the quit button

and he will be replaced by the BOTS.

c© 2014, Indian Institute of Technology Delhi

Page 19: DEFENCE OF THE ANCIENTS - cse.iitd.ac.inmcs142144/documents/DOTA_thesis.pdf · TANMAY GUPTA Entry No. 2014MCS2145 Under the guidance of Dr. HUZUR SARAN Department of Computer Science

6.2 BOTS 12

6.2 BOTS

As game can be played with BOTS they are coded so that the game still

remains interesting and fair and enjoyable to play. BOTS are coded such

that one of the BOT will go to defend his temple and the other BOT will go

to attack the enemy team player. While moving towards the temple BOT can

pick item in the path and BOT will use the item according to requirement.

The BOT which is attacking the temple if an enemy team hero comes switches

his attack to the other hero and if he kills the player, he again start attacking

the temple. In the start of the game BOT are assigned random hero.

c© 2014, Indian Institute of Technology Delhi

Page 20: DEFENCE OF THE ANCIENTS - cse.iitd.ac.inmcs142144/documents/DOTA_thesis.pdf · TANMAY GUPTA Entry No. 2014MCS2145 Under the guidance of Dr. HUZUR SARAN Department of Computer Science

Chapter 7

Conclusion

We have successfully developed a strategy game in C++ language and used

OpenGL for providing graphics and keyboard and mouse handling. We have

tried to include all the features that are required for a game to be interesting,

fair, enjoyable as well as user friendly. The game is highly interactive in

nature and is enjoyable to play. This game includes the networking feature

to play in multiplayer. The game can be played in two mode single player

with bots or in mulitplayer over network.

c© 2014, Indian Institute of Technology Delhi