Project Proposal. Week3

Laying out the timetable. 

A Project proposal was handed in on week 3. Bellow is a timetable as an indication how the workload will be divided until the hand in date.

Teaching week
Task
Start Date
End Date
Duration
Week 4-5
Create the procedure that creates the layout of the level.
16 October 2017
29 October 2017
14
Week 6-7
Create the function that placed the rooms upon the layout.
30 October 2017
12 November 2017
14
Week 8
Create the function for room randomization by theme.
13 November 2017
19 November 2017
7
Week 9
Blank week to catch-up
20 November 2017
26 November 2017
7
Week 10-11
Examine and measure success and efficiency of the P.L.G.
27 November 2017
10 December 2017
14
Week 12
Collate and finalize the write up
09 December 2017
14 December 2017
13




  • The first step is  creating the layout for the maze, I like to describe it as the ground on which the rooms are plaved upon adding another level of randomness to the generator.
  • Week 6-7 involve creating the actual maze with the rooms, this is also were most of the coding is needed and I expect to be using week 9 to catch up also.
  • Week 8 involves the room randomization, were funrinture, npc, enemies are placed and loot.
  • Week 9 is left to catch up.
  • Week 10-11 I will try to record how different the levels are between them  by scanning points and hopefully with some path finding.

PLG features

The proposed generator will include at least the following features:
·          Themed areas within the level, for example moving into a section of the dungeon with cobwebs and spiders, while another section will resemble a furnace. As you proceed deeper into the dungeon the theme becomes stronger.
·          Level size customization and room difficulty based on the players selected difficulty.
·         A non-grid layout.
·         Pre-set pieces placed within areas the level designer sets before the level is generated. Ensuring that the mandatory rooms are always included. Such rooms might be a boss room, waypoint rooms, rooms that tutor the player or vital rooms the player need to have access to.
·         Customizable starting room and its location within the level.
·         Control over the density percentage of the rooms within the total layout.
·         Varied height within the level.
·         Room flexibility, with no restrictions (within reason) towards size, shape, height, number of exits.

Once the artefact is completed an examination procedure will be created that will attempt to “photograph” the level Layout and examine its differences comparing it to the precious generated level.
Time permitting, methods might be examined to achieve game efficiency towards performance. 


First Draft of the PLG Algorithm

I also included a draft of the PLG algorithm. At the end of the module I will rewrite the actual algorithm and compare them.


PLG  Algorithm settings
Settings before the algorithm starts.
         Level Creator  sets in the unity the starting room and its location in the Starting Area [Editor]
         Level Creator selects any rooms they wish to preset in the scene and then selects the size and location of  the area they wish the preset room is placed. [editor]
         Level creator sets the size of the level and layout area (as a persentage to the dungeon size area) and the dencity of rooms. [editor]



Creating the Starting area
1.    Create a plane from the dimentions given for the starting area
2.    Place the starting room in it‘s given location.
3.    Add the strarting room's exit point location to the open_exits List.
Create the Grid
4.    Create a plane of  random dimentions between 1/32 to 1/64 (theoretical estimate)  of the max area.
5.    Rotate the plane randomly 0-180 degrees.
6.    Select a random point withing the existing layout ( in first attempt the layout is the starting space).
7.    Examine if  the plane is at least 30% inside the existing layout area and at least 30% outside the existing layout area. If not repeat step 6.
8.    Merge the plane to the existing layout.
9.    Repeat  steps 4-8 until (layout area)/(max level size) is greater than the layout level persentage given in the editor.
Place the rooms
10. Select randomly a open exit in open_exits List. This will be the exit way we attach the next component.
11. Select randomly between room or coridor.
12. Select randomly a open exit from the selected room/corridor.
13. Rotate the the parent room/corridor so it alligns with the selected open exit.
14. Move the Room so both exits are in the same location.
15. Check if the placed room collides with an existing room and if it placed outside the lyout area.
16. If any of the above two statements is true then delete the room/corridor.
17. If not, remove the selected exit from the open_exits list
18. Chech if any of the remaining exits of the room/corridor are outside the level area, if they are add them to the PossibleExitPoint list, if not then add the room/corridors remaining exits to the list open_exits.
19.  Repeat steps 10-18 until the room dencity is reached or step 18 has failed 4 times in a row.
Snap Rooms Together and Closing open doorways
20. Check if at least one of the exits from each preset piece is not listed in the open_exits list. Indicating that are preset room is conneceted.
21. If  a preset room is not connected find the nearest open exit and create a corridor attaching it. Repeat for all unattached presets rooms.
22. While the open exits list is in size larger than Y (another number to be determined) find a open exit and connect it to the closest open exit available.
23.  While the open exits list is in size larger than Z (another number to be determined) add a cap room (cap rooms are rooms with only one exit point) to a random exit in openexits list and remove it from the list.
24. For each of the remaining open exits randomly assign a and place a blocking point prefab. This might be a sealed door a pile of rubble blocking the door.
Adding the two themes to the level
25.  Add 2 gamepoints (I will call them themepoints) randomly within the layout. These gamepoints need to be a set distance away from the starting point and form eachother.
26. Create 3 spheres  for each themepoint one larger than the other and place them with the themepoint in the center.
27. The rooms that collide with each spere are assigned a theme presentage.
Dress the rooms
28.  This part is were we texture the room based on the theme persentage of the room, we also add prefab objects, and enemy spawning points.

Comments

Popular posts from this blog

Player stats and brightness.

Testing the PLG

More work done on the interface, saving data.