Dynamic level generation?

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Dynamic level generation?
by on (#125316)
I've been wondering about the possibility of creating a Canabalt clone on NES, but i'm curious if NES could handle the dynamic platform generation. Has anyone made any similar demos?
Re: Dynamic level generation?
by on (#125322)
As long as you can keep generating columns of new tiles, you can display any dynamically generated background on the NES.
Re: Dynamic level generation?
by on (#125324)
vicious wrote:
i'm curious if NES could handle the dynamic platform generation.

Of course it can, specially if the player can't walk backwards (like seems to be the case in this game). The computational cost of generating dynamic levels is negligible if you don't have slopes and other complex structures, but even then it wouldn't be impossible. Going backwards would require a significant amount of RAM to store everything that has been generated on the fly.

Quote:
Has anyone made any similar demos?

I can't really think of anything, but it shouldn't be complicated to pull off at all. You have to consider all possibilities and randomize all parameters when generating a new level piece. I took a quick look at the game and there seem to be a few kinds of structures, like regular buildings, collapsing buildings, cranes, building you go through... just randomize a type of structure, how long it is, what you'll draw on top of it (pipes, antennas, roofs, whatever), and you have a level piece. Enemies, items and such can be randomized just as easily. You might have to think of the difficulty of the game, which should get progressively harder. For example, you could avoid generating large gaps between structures in the first levels, or limit the number of enemies, things like that.
Re: Dynamic level generation?
by on (#125326)
Case in point: Play Excitebike, go into edit mode, and enter level pieces at random.
Re: Dynamic level generation?
by on (#125330)
tokumaru wrote:
Going backwards would require a significant amount of RAM to store everything that has been generated on the fly.


You could randomize it on a larger scale so you don't have to use so much RAM (e.g. 8x8 metatiles vs. 4x4 or 2x2). But even then, you'd likely use quite a bit.
Re: Dynamic level generation?
by on (#125331)
Celius wrote:
You could randomize it on a larger scale so you don't have to use so much RAM (e.g. 8x8 metatiles vs. 4x4 or 2x2). But even then, you'd likely use quite a bit.

Absolutely. If the levels are like the ones in Canabalt, you can probably come up with a very compact format, since they are basically composed of gaps and structures. It might even fit in the 2KB of RAM the NES has.
Re: Dynamic level generation?
by on (#125333)
Or you could use a reversible LFSR like that which was used in 2600's Pitfall.
Re: Dynamic level generation?
by on (#125342)
Even C64 can handle it: http://www.youtube.com/watch?v=J1INJ2tAEsc
Re: Dynamic level generation?
by on (#125350)
This game reminds me a "bit" of the indie game Bit Trip Runner. Wonder if it was inspired by this game? I don't believe that one is dynamically generated, though.
Re: Dynamic level generation?
by on (#125356)
Canabalt predates Bit Trip Runner, actually.

When Canabalt came out, I started making a two-button running/jumping game inspired by it for a little while before I abandoned it. Then Bit Trip Runner came out pretty soon after.
Re: Dynamic level generation?
by on (#125360)
GradualGames wrote:
This game reminds me a "bit" of the indie game Bit Trip Runner. Wonder if it was inspired by this game? I don't believe that one is dynamically generated, though.

These type of games are all just weird spin-offs of Chelnov/Atomic Runner, if you ask me -- and often not very good ones. And actually, Bit Trip Runner reminds me more of Moon Patrol.
Re: Dynamic level generation?
by on (#125364)
I determined along with another Slashdot user that there are really only two kinds of games that developers have made to work well on a touch screen and accelerometer: point-and-click games and racing games. I use "racing games" loosely to include continuous running games like Chelnov and Canabalt and Temple Run and Rayman Jungle Run. But unfortunately, the only mobile platforms that ship with anything but a touch screen and accelerometer have fairly high entry barriers for developers.
Re: Dynamic level generation?
by on (#125429)
koitsu wrote:
And actually, Bit Trip Runner reminds me more of Moon Patrol.

Which on that note, was on the Atari 2600, out of all systems http://www.youtube.com/watch?v=M3CrqmhDk2A