• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
saejox

Procedurally generated level for 2D platform game

6 posts in this topic

Hi,

I'm developing a 2d platformer with Procedurally generated levels.
What i have been doing is,

- create walkable/jumpable 16*16/8*8 small rooms (lots of em)
- combine many of them in a linear route
- add branches and subbranches

that's not really a real random generated level, after some hours users start to see the patterns and the magic disappears.

I would choose a method like Terraria or Minecraft with perlin noise however, game does not have tile destruction/creation. Player doesn't have grapnel gun (cheat!) neither.
This is not a of technical limitation, but a design decision.

Almost all the random level generation articles/game around the web are isometric top-down.

Do you know any links / games / articles about this type of level generation ?
1

Share this post


Link to post
Share on other sites
i dont think procedurally generated levels are bland. Look at all those Rogue-likes, most of em present infinite enjoyment which you cant get from any handmade game. Some people are playing Nethack for 10 years.

Maybe if i add limited number of "stuck-fix item"s (limited fuel jetpack, flimsy breakable jump stick?).
Since i have story to tell i just cant allow user to destroy the level.

Idea of an infinite platformer really interest me.
Noise generated levels aren't sufficient for this case, but i wont stop trying :)
0

Share this post


Link to post
Share on other sites
I would agree with FLeBlanc's assessment.

I'm currently working on a platformer (dev notes and download available on my website) that uses noise to generate the levels. Although, unlike your situation my character fits well with the idea of picking up and moving a block over. Even with this ability it didn't take much to get stuck or otherwise destroy the level sufficiently to make the randomness completely pointless. I did my best to play around with the character's abilities to come up with what I think works with the level. I'm still not 100% sure it's not possible to get stuck.

Even then, I think what FLeBlanc said is generally correct. (At lest in my case) there isn't really a connection with your location within the level. I don't know if it's because it all looks the same or if there's some sort of psychology vs architecture thing involving points of reference but that disconnect (or whatever it is) is there.

I'm not trying to be discouraging I'm just saying that what FLeBlanc said fits with what I've recently experienced.
1

Share this post


Link to post
Share on other sites
First post. Hello everyone.

Random generation of course comes with some problems, as has already been pointed out [players getting stuck, 'blandness']. Assembling levels out of coarse grain chunks is an attractive middle-ground, but in order to not end up with introducing a number of problems [two blocks with pits on opposite sides being selected to construct a pit that is too wide to jump across, for example], you really need an extra something. A likely easy solution to solving this would be to have a compute controlled player test-navigate each area, and make selections based on areas the bot is capable of navigating. At each 'decision point', which would be a point where the bot is not falling or dead or whatever, you generate a bunch of scout bots that jump off or run off in random directions. You place features in places where you can assure at least some subset of the bots survive to some next 'decision point'.

If you have this bot in place, and thus solve the getting-stuck problem [since your bot wouldn't select options that result in the bot getting stuck, as it would be unable to reach the next 'decision point'], then you could probably even relax the coarse grain room thing, and let your bot navigation test fill in some gaps, thus affording you additional flexability, and the ability to use finer grain [thus reducing the level of redundancy]. A player would likely recognize whole rooms, but if your generator can make placement decisions on the level of ledges and blocks, rather than whole rooms, redundancy won't be perceptable. You could even guide it by demanding that the general flow of the level proceed in a certain direction. Or, as another middle ground, add whole rooms and let a random generator add more stuff to the room [you have a template, but programatically add enemies or a few extra bricks or things] to break up the monotony.
1

Share this post


Link to post
Share on other sites
[quote name='Oolala' timestamp='1335497850' post='4935279']
First post. Hello everyone.

Random generation of course comes with some problems, as has already been pointed out [players getting stuck, 'blandness']. Assembling levels out of coarse grain chunks is an attractive middle-ground, but in order to not end up with introducing a number of problems [two blocks with pits on opposite sides being selected to construct a pit that is too wide to jump across, for example], you really need an extra something. A likely easy solution to solving this would be to have a compute controlled player test-navigate each area, and make selections based on areas the bot is capable of navigating. At each 'decision point', which would be a point where the bot is not falling or dead or whatever, you generate a bunch of scout bots that jump off or run off in random directions. You place features in places where you can assure at least some subset of the bots survive to some next 'decision point'.

If you have this bot in place, and thus solve the getting-stuck problem [since your bot wouldn't select options that result in the bot getting stuck, as it would be unable to reach the next 'decision point'], then you could probably even relax the coarse grain room thing, and let your bot navigation test fill in some gaps, thus affording you additional flexability, and the ability to use finer grain [thus reducing the level of redundancy]. A player would likely recognize whole rooms, but if your generator can make placement decisions on the level of ledges and blocks, rather than whole rooms, redundancy won't be perceptable. You could even guide it by demanding that the general flow of the level proceed in a certain direction. Or, as another middle ground, add whole rooms and let a random generator add more stuff to the room [you have a template, but programatically add enemies or a few extra bricks or things] to break up the monotony.
[/quote]

nice. i like your solution.
i already have a fully functional pathfinder. i would run it start to finish, then finish to end. Also do the same for branching paths.
Modify the level as it runs.

"Loading Time" might be a problem. since i would need to run pathfinder multiple times for huge paths. However with multithreading and caching it may even take just a second.
I cant really be sure about it till i implement it.

Thank you for the idea.
0

Share this post


Link to post
Share on other sites
[quote name='saejox' timestamp='1335517847' post='4935329']
"Loading Time" might be a problem. since i would need to run pathfinder multiple times for huge paths. However with multithreading and caching it may even take just a second.
I cant really be sure about it till i implement it.[/quote]The only guarantee you really need is to assert your pathfinder can stay ahead of the player. You don't even need to generate the entire level is one go. If you know your player takes X seconds to make it to the current end of the world, that means you have X seconds to build more world for it to be as if the world was complete from the beginning, from the players point of view. Realistically, you could even just not build the parts of the map that are off the path the player chose, and leave parts of your game world forever uninstantiated.
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0