Skip to content

Commit

Permalink
README and difficult adjustements
Browse files Browse the repository at this point in the history
  • Loading branch information
mateosss committed Sep 1, 2016
1 parent 19a0afe commit fe175ef
Show file tree
Hide file tree
Showing 7 changed files with 82 additions and 13 deletions.
8 changes: 4 additions & 4 deletions Extras/horarios.txt
Original file line number Diff line number Diff line change
Expand Up @@ -138,11 +138,11 @@ Ma 30
Mi 31
- 2 niveles mas, y sistema para que el nivel pueda predefinir defensas - 3:00 hs
- seleccion de niveles y easyTouchButton - 1:10 hs
- Arreglar compilacion para android botones tactiles, despues de 8 horas - 30 min
- Resolucion adaptable y pantalla completa en android - 1:50
- Arreglar compilacion para android botones tactiles, despues de 8 horas - 0:30 hs
- Resolucion adaptable y pantalla completa en android - 1:50 hs
- En game over la aplicacion se cierra - 0:45 hs
- arreglar zoom con dos dedos - 21:00
- explicacion del juego y posteo en reddit
- arreglar zoom con dos dedos - 0:50 hs
- explicacion del juego y posteo en reddit y dificultad aumentada - 21:50
- Despues de ganar/perder no se pueden poner torres NO SOLUCIONADO- 1:40 hs

# Cosas que estoy posponiendo
Expand Down
69 changes: 69 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# Robolve
**A tower deffense game with robots, that evolve.**

Robolve is not finished yet, it's a prototype for a personal project, so be
aware of crazy robots walking away to who-knows-where, and other strange things.

## What is?

Robolve is a tower deffense game, in which the robot waves are generated through
a [*"Genetic Algorithm"*](http://www.ai-junkie.com/ga/intro/gat1.html), so the
waves adapt to your deffenses, and you can adapt to the waves customizing your
deffenses. (e.g. if you have many fire deffenses, the waves will start to turn
to the water element, because water > fire)

## What is a genetic algorithm?

A genetic algorithm, to make it short, is a specific kind of algorithm that
shines in finding solutions to dynamic problems, where the problem is always
changing (In this case the problem is the player), it is not used to get
deterministics results (like solving a lineal ecuation), but to obtain a good
enough aproximation to the solution.

There are called Genetic because they try to imitate the behaviour of evolution
having individuals (possible solutions), that have a certain level of adaptation
(how good they are), and this individuals are combined between them following
the survival of the fittest approach (better solutions pass down their genes
to the next generation).

In robolve, the robots are the individuals, the waves are the generations, and
how good the robots perform is the level of fitness. The genes in the robots are
their parts, their elements, their attack speeds, their damage, all their stats.

To know more about genetic algorithms read this three page article:
[http://www.ai-junkie.com/ga/intro/gat1.html](http://www.ai-junkie.com/ga/intro/gat1.html)

## How to play / Downloads

For now you can play Robolve in this ways:
- **Android:** greater than 4.4, download and install the .apk:
[https://mega.nz/#!x1sCWTqa!8gTskCOKfjAIRRLTMiWEkXDdbpI4PScUJJTgnQY2l2A](https://mega.nz/#!x1sCWTqa!8gTskCOKfjAIRRLTMiWEkXDdbpI4PScUJJTgnQY2l2A)
- **Linux:** 64 bits, download the zip, extract and run the "MyGame" executable: [https://mega.nz/#!BxtCnDCI!PJtK1mmMecXWf2RSVjhHrYcearF9X6uGJ_BvAPURjJc](https://mega.nz/#!BxtCnDCI!PJtK1mmMecXWf2RSVjhHrYcearF9X6uGJ_BvAPURjJc)
- **Browser:** firefox/chrome, you can play robolve directly from this link: [robolve.tk](http://robolve.tk)

Note: robolve.tk refers to a Public dropbox folder, Public dropbox folders
will be removed on October 3th this year (2016), so if I haven't update this
readme by that time, let me know opening an issue.

There are currently 3 levels select one and play.
- Placing a deffense costs $300
- Modifying a deffense attribute costs $100
- Destroying a turret gives you $50
- Killing a robot gives you $30

There are 3 elements that act like rock, paper and scissors

*electric > water > fire > electric > water ...*

- A deffense with an advantaged element compared to the target robot, hits double damage
- A deffense with a disadvantaged element compared to the target robot, hits half damage
- A deffense with the same element as the target robot hits normally

The robots that have wheels are flying robots (Yup, thats right)
The robot with normal legs are walking robots
A turret can only hit one type of robot (flying or walkin), choose wisely

A final recomendation, after winning/loosing a level, it is better if you restart
Robolve (close and open / reload the page) because there are still many bugs in the game

I hope you enjoy Robolve!
4 changes: 2 additions & 2 deletions res/map/map1.tmx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" orientation="isometric" renderorder="right-down" width="20" height="20" tilewidth="128" tileheight="64" nextobjectid="54">
<properties>
<property name="wavesCounts" value="10,10,10,20,20,20,20,20,30,30,20,40,50"/>
<property name="wavesIntervals" value="5,5,5,5,5,5,5,5,5,5,5,5,5"/>
<property name="wavesCounts" value="10,10,20,20,25,25,28,29,30,34,36,38,40,50"/>
<property name="wavesIntervals" value="10,5,5,5,5,5,5,5,5,5,5,5,5,5"/>
</properties>
<tileset firstgid="1" name="landscape" tilewidth="132" tileheight="132" tilecount="70">
<image source="tilesheet.png" width="924" height="1320"/>
Expand Down
4 changes: 2 additions & 2 deletions res/map/map2.tmx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" orientation="isometric" renderorder="right-down" width="20" height="20" tilewidth="128" tileheight="64" nextobjectid="54">
<properties>
<property name="wavesCounts" value="10,10,10,20,20,20,20,20,30,30,20,40,50"/>
<property name="wavesIntervals" value="5,5,5,5,5,5,5,5,5,5,5,5,5"/>
<property name="wavesCounts" value="10,15,20,25,30,35,40,45,50"/>
<property name="wavesIntervals" value="5,5,5,5,5,5,5,5,5"/>
</properties>
<tileset firstgid="1" name="landscape" tilewidth="132" tileheight="132" tilecount="70">
<image source="tilesheet.png" width="924" height="1320"/>
Expand Down
4 changes: 2 additions & 2 deletions res/map/map3.tmx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" orientation="isometric" renderorder="right-down" width="20" height="20" tilewidth="128" tileheight="64" nextobjectid="55">
<properties>
<property name="wavesCounts" value="20,25,30,35,40,45,50,50,50,50,50,50,50"/>
<property name="wavesIntervals" value="5,5,5,5,5,5,5,5,5,5,5,5,5"/>
<property name="wavesCounts" value="20,25,30,50,50"/>
<property name="wavesIntervals" value="5,5,5,5,5"/>
</properties>
<tileset firstgid="1" name="landscape" tilewidth="132" tileheight="132" tilecount="70">
<image source="tilesheet.png" width="924" height="1320"/>
Expand Down
2 changes: 1 addition & 1 deletion src/game.js
Original file line number Diff line number Diff line change
Expand Up @@ -362,7 +362,7 @@ var Level = cc.LayerGradient.extend({ // TODO Ir archivando historial de oleadas
this.robots[i].removeFromParent();
this.robots.splice(i, 1);
deletion = true;
this.base.money += 50;
this.base.money += 30;
this.hud.ig.refresh();
}
// if (deletion) {
Expand Down
4 changes: 2 additions & 2 deletions src/robot.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@ var Robot = cc.Sprite.extend({

//Possible (p) stats //TODO definir valores reales //TODO apply fuzzy logic
pTurnProb: {0: 0.25, 1: 0.5, 2: 0.9},
pLife: {0: 300, 1: 400, 2: 500},
pLife: {0: 500, 1: 600, 2: 700},
pElement: {
"electric": cc.color(255, 231, 0 ,255),
"fire": cc.color(227, 43, 0, 255),
"water": cc.color(1, 179, 255, 255)
},
pRange: {0: 75, 1: 150},
pTerrain: {0: 'walk',1: 'fly'},
pSpeed: {0: 0.25, 1: 0.5, 2: 1.0}, //TODO PORQUE?!?!?! velocidades 0.88 - 0.93 traen el bug (0,10) Y velocidad 0.1, hace que para linux y android tengan tambien el bug, pero el javascript si.
pSpeed: {0: 0.35, 1: 0.75, 2: 1.0}, //TODO PORQUE?!?!?! velocidades 0.88 - 0.93 traen el bug (0,10) Y velocidad 0.1, hace que para linux y android tengan tambien el bug, pero el javascript si.
pDamage: {0: 5, 1: 15, 2:20},
pAttackSpeed: {0: 0.5, 1: 1.0, 2: 2.0},

Expand Down

0 comments on commit fe175ef

Please sign in to comment.