Riunione 6/7/2017

2017 Luglio, 11 Martedì 22:56

The following summarizes the JAM2018 meeting of today. Please read it carefully! 

Referente Progetto: Bono Massimo

In the last meetings we started designing how the maze should be modelled and how it should be generated. In today's meeting we have started to understand how to layout objects inside a single room.

 Example of room layout. There are 2 lava pits. Doors are not considered room layoutFull size

The main idea is, just to simplify thinngs, to consider a rectangular-shaped room. The room is viewed from the ceiling to the floor. Furthermore, we divide the rectangular-shaped room into a matrix of virtua cells: this matrix will be the foundation that will help the room layout algorithm to work properly. The meeting then focused its attention on the layout of a simple but interesting object: the lava. This entity is, as observed by Lorenzo, a special kind of prop: this prop, in contrast to others (like fountains, enemies or buttons) dramatically alters the topology of the room; some prop can be placed only on laval (like platforms) while others can be placed only on normal terrain (like fountains). An algorithm laying out the room should position the lava first. Actually there might be several of this lava-like props: water, acid, ice; these so called terrain prop heavily depend on the biome of the sector of the maze.

So we needed to layout the lava pits. We broke the problem into 3 separate algoithms:

  1. The one that decide how mich room floor is occupied by the lava;
  2. The one that decide which shape a single lava pit has;
  3. The one that decide how many lava pits are inside the room;
  4. The one that decide the concrete shape of a lava pit;


The third algorithm is just a random between 1 and 4 (inclusive). The  second algorithm divide the lava into different shapes: random, moat-like (fossato), circular: however, we didn't talk about how the program should pick up the shape. The fourth algorithm heavily depends on the output of the second. We create the algorithm for the most difficult lava pit shape, the random one:

Full Size

We start from a cell near a wall in the room. That cell will be marked as "lava filled". Then we expand the lava region to a neighbour of the lava cell. The process keep going until an exit condition is satisfied (eg. size of the lava pit). Optionally the lava border can be randomied to make the border less polygonal.


The first algorithm has not been thought at all.



By the next thursday you should:

  1. think about how to implement the algorithms;

By the next next thursday you should:

  1. Learn about IA basics, search algorithm in particular A*; I suggest the following links:
    1. https://www.youtube.com/watch?v=pKnV6ViDpAI;
    2. Difference between algorithm and heuristic (abstract): https://www.youtube.com/watch?v=o5lzVg5vGaM;
    3. A more game related A* with heuristic: https://www.youtube.com/watch?v=Jinh4957mpM;