Should I do levels as layouts or 1 layout?

From the Asset Store
Unlock Levels, Worlds & skin plus add coins by watching ads
  • C3/Mobile game

    I need some help thinking this through.

    I did the follow along with the swing copters demo, now I want to make it into a game with different levels with new stuff each level.

    The thing is with that game it starts out hard and just stays hard.

    I want to make a game that starts out easy then gets a little harder as the person advances. The harder it gets the more rewards there are to collect that keep you alive and allow you to continue even if you die tragically.

    For a mobile game, would it be better (memory/size wise) to make lots of layouts with lots of event sheets or would it be better to make 1 layout, 1 event sheet and a bunch of variables to track everything?

    For me, lots of layouts w/ lots of event sheets would be best for my memory, but I want to do this right.

    Thoughts?

    Image of sample idea progression below.

  • You didn't really describe the game but going off the image it's one of those infinite runner climbing games? Should be fine in one layout.

  • Thanks for your reply.

    I'm making something like swing copter. The player goes up. Click and the player goes right, click again and it goes left. I followed this demo: construct.net/en/tutorials/swing-copters-from-ground-1325

    I'm thinking the level would be determined by the highest score, maybe?

    And no level map, just keep moving forward.

    Does that sound right?

    I'm not positive how to keep the new challenges for the next level to keep from spawning on the previous levels. I've tried global variables = X when highScore variable = Y before in other games, but it didn't work so well.

    I'll start looking for high score demos.

    Thanks again.

  • It's probably best to keep your work as simple as possible. For a simple game that has the same structure in all of its levels and the levels are somewhat randomly generated I think a single layout is definitely how you should primarily try to do it.

    As for the increasing difficulty in the levels, couldn't you just have a global variable that tracks the number of completed levels and use that number to randomize the difficulty of the next level? The randomization will be weighted towards spawning more difficult obstacles as the variable value increases. You could use the Advanced Random plugin's probability table for this.

    Or if you want the player be able to move between levels and if previous levels should remain easy, have global variable that tracks the current level and difficulty is generated based on that.

    Btw have you been creating the graphics of all you examples by yourself? I think they look nice.

  • Von Perkele,

    Thank you for the reply.

    I'm thinking something like the formula below for levels and scoring, but I don't know if I should put it in Compare two values OR Compare variable either of them will accept the < - I may be over thinking this.

    high score >= 0 & <100,

    spawn X

    high score >= 100 & <200,

    spawn X + increase spead

    high score >= 200 & <300,

    spawn X & Y

    high score >= 300

    spawn X & Y & Z

    I get the graphics online. Some free, some I buy. They're all for commercial use.

    BTW Any idea how I can tag you? When I try I get someone else. It seems the space causes an issue.

  • dazedangels

    I don't know how tagging works :)

    You mean X, Y and Z are different obstacles?

    If you want to use a "high score" variable as a determining factor you could do it kind of like you described.

    For example:

    Set SpawnX probability to: action: highscore < 100? 0.5 : 1. (if high score is under 100, spawn 50 % of the time, otherwise 100 %).

    SpawnY probability = clamp( highscore / 1000, 0, 1). (SpawnY probability gradually increases until its 100 % at score of 1000).

    SpawnZ probability = clamp( (highscore - 300)/50, 0, 1). (SpawnZ only spawns after score of 300, probability gradually increases and has 100 % probability of spawning after score 350).

  • Von Perkele,

    Thank you for the reply. First thing I'm doing today is rereading clamp. Thank you. I'd forgotten about that one.

    I started rethinking this last night.

    Would it be better to do something like when the score reaches 100 > do whatever cool reward thing, then local storage saves the data and sets the level to +1?

    I do that with games where I have many layouts and event sheets, but I think it can be done when using just one layout and one event sheet. Not exactly sure how, that's today's project (after I reread manual on clamp).

    Then use the clamp idea that you gave me to do this:

    level 1: just avoiding small girder. Level 2: just avoiding longer girders. Level 3: the same as level 2, but faster. Level 4: slowed down again, avoiding the longer girders, but with swinging blades.

    ..... and so on with each level adding something new, going faster or slower.

    I tried using: if local storage has saved the level as level = 3, action: run the larger girders at the faster speed, but that doesn't always work. I'm going to go read up on clamp, I think that will work better than just the level = 3 do this thing.

    Please, if you have any addition thoughts, please let me know.

    Thank you so much for all your help.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Maybe set the variables like this:

    difficulty = int(score/100) (increases by 1 every 100 points)

    speed = difficulty*k*difficulty (k being a constant variable you choose for the speed and difficulty being the multiplier).

  • it really depends on what you want to do and how difficult you want to make it. Personally I'm a fan of procedurally generated stuff. Check out my youtube tuts here, a lot of which are procedurally generated.

    youtube.com/channel/UCZ6QjvqEs9dR2miRnfFqIpQ

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)