No announcement yet.

Random Level Selection?

  • Filter
  • Time
  • Show
Clear All
new posts

    Random Level Selection?

    It's been over 20 years since I did any programming so I'm more than a little rusty and I need a bit of guidance please if any of you have the time.

    I'm working on a VR game that's going to have procedurally generated levels and I'm planning on building them NOT at runtime but pre-made beforehand.

    I'm also looking at creating 5 different maps for each level. So I'm going to have 5 playable levels during each game and choose 1 out of 5 possible maps for each of the 5 levels. I also want to make sure that each time someone plays they get a different level to play in.

    I'm probably not explaining this very well lol

    So basically a new player starts a game:

    Map (random n) out of 5 possible Maps (for example) is loaded for Level 1.

    When that level is finished Map (random n) is loaded for level 2

    All the way until level 5, the final level.

    And once the game is finished by the player any new games will work as above but instead of choosing from 5 maps for each level the game will choose from 4 because one has already been played. And the next time from 3 and so on.

    I'm just wondering what the best way of organising this will be?

    I haven't much of an idea where to start tbh. I'm guessing that the best bet would be 5 arrays Level1(5), Level2(5), Level3(5), Level4(5) and Level5(5).

    Choose a random number for Level1(n) and write that number to a variable, and as soon as that has been done replace that number in Level1(n) with a null value? Have that in a For loop (does the UE have For loops?) until the 5 levels have been selected.

    Then when a new game is selected using the same save slot there'll only be 4 maps to choose from.

    Or am I completely on the wrong track?

    I'm just having problems getting this all sorted out in my head, like I said I'm VERY rusty!!!
    Last edited by thesnowdog; 01-16-2020, 05:14 PM.

    Many ways to do it, consider the following:

    - have an array with all map names and Shuffle it (it now contains elements in random order)
    - save the shuffled array to a save game object
    - Load the map at element 0
    - once a level is finished, remove element 0, save the array
    - rinse & repeat the 2 previous steps

    or, if you do not want to remove array elements:

    - have the Game Instance keep track of an array with all map names and shuffle it, have it keep track of an int Variable as well
    - use that Var to Get and Load map at index Var from the Shuffled Array
    - add 1 to the Var once the level is finished and use the int value to Load map at index Var
    - you only need to save between game sessions
    Last edited by Everynone; 01-17-2020, 03:24 AM. Reason: typos


      Brilliant, thanks for that! I'll check those two methods out. Ta!