DeepBoulder
Boulderdash with levels generated using a neural net level solver, trained with reinforcement learning (similar to a DQN).
It uses Tensorflow JS to run the neural net, you will need WebGL for a decent speed. Your browser may freeze for a couple of seconds when starting it up. The neural net is only 141 Kb and can do about 100 actions per second on my PC.
By popular demand, I added a restart button. To regenerate a level, use the back button to go back to the level generation page.
Note the 12x12 size setting is really pushing the solver to its limits, so you may need multiple tries to get a level. The smaller sizes may also sometimes need a retry. I cranked up the level difficulty to get challenging levels, but that means it generates a lot of impossible levels as well.
The game itself was created in about 40 mins with the Cellspace IDE, with the sprite editing taking most of the time.
Levels are encoded in URLs, so you can share your generated level using the URL.
The neural net generates an action (left, right, up, down) given a certain game state. It was bootstrapped with a brute force solver that generates optimal paths for small levels, then was further trained through self-play.
For more info, check out my write-up here:
https://ldjam.com/events/ludum-dare/58/$420081/level-generation-for-boulderdash-like-games
It uses Tensorflow JS to run the neural net, you will need WebGL for a decent speed. Your browser may freeze for a couple of seconds when starting it up. The neural net is only 141 Kb and can do about 100 actions per second on my PC.
By popular demand, I added a restart button. To regenerate a level, use the back button to go back to the level generation page.
Note the 12x12 size setting is really pushing the solver to its limits, so you may need multiple tries to get a level. The smaller sizes may also sometimes need a retry. I cranked up the level difficulty to get challenging levels, but that means it generates a lot of impossible levels as well.
The game itself was created in about 40 mins with the Cellspace IDE, with the sprite editing taking most of the time.
Levels are encoded in URLs, so you can share your generated level using the URL.
The neural net generates an action (left, right, up, down) given a certain game state. It was bootstrapped with a brute force solver that generates optimal paths for small levels, then was further trained through self-play.
For more info, check out my write-up here:
https://ldjam.com/events/ludum-dare/58/$420081/level-generation-for-boulderdash-like-games



Comments10
bur this kinda interesting mech
Nice boulder dash game, it's definitely a collector game.
@cassowary Cellspace is my own creation, yes. You can find more info here:
http://tmtg.nl/cellspace.js/
I did not know about Stagecast Creator, thanks for the link!
http://tmtg.nl/ludumdare/ld58/cellspace-ld58.html?gamesrc=AtElE_rn4nwV-7FxO8E3jsgs4VNeVMtpn4k4gpEmwFOdUlgGhh4zg4H24O2EjgpF2gyOGwGG-arP95ugt4moNaF9xzyjic_CdjiqhyUwUHFomgqmwhX1pH-F-gUe_gPmwu4M16voUkaHnqGd9pF0qP95H2ypO0QGpAMgAsqE4FH2o4qO8QlojH1pGV2pP5EMlaO25df37P1F_gO1EfU0EtiGc0EkFnE-G_iH84hhweE-Pgo7MquIAOmGH_4N8Y1UoEdlyV3rMvgUXtx47W-riuwOH0HkG16iFvxXsojH_EsI-yMk7O_pl47VNkwod25H35GsoO0wVN84W0pU1xPXX8ikoF3xHEtgWvh1w5XszP0ijV1oW2hEpjmoA-H8xXPGP2xFvoGpF3HMloH8Ge3iFctoW26U0E9wEsgpqN14yw5W94Ee1wzUOFmhWV8iWtgUc95F9pMM8wzoG-4E26VsiPEvgEkpEc9gOurNemxnI2qnoFd9oE9joVngjHeVkwPlY8pjHtJ8hFkjWkyM26GmiU8oXugPUMuqNspVgUsqyW24Pv5rq-gMkiNsS3oP3ojH1xu4FWmjcX1hM9qGG1iGuMt4wrX94FFgFlrxHtxXFEeEtwrMkiEl4Nc0p5Mvi7zF-hVupwUupc0i4gPnwFMm6XuyVu5XtoP8qjV84UGHv6N2oF3pgoPkCGtxOtiWuyG34OwOm6E-hUvwW6PvpVswhr5F9qUyF_4ozHjpzNl5hV_pG1yOvoP15N2pVVngUuwqV3wFtqFOM26oHt6NrEuqG25jqe8wyrE0qiFfl5U9Rk7NXzGMmqXkogE2gEmw4EHF1yzG2qwyxOmw774OkyE2hH3pXjNmoUsiE_hW-wGu4U4Os4PtwEhXGkQGl6Ud86pMgF-pU-hElgEuqGqW9qG8p5NuhO1iKuxHc2qU3hV1xHf1hHl7GuxElRElhUl4Et5O0qV9xV9qMnoPs5V1pPjE0yWEkqVvyUt5EEHvgPsiO8hHnI2xSnxVvqoH9qHtyN8yqWM1oMU8gHtyHoO95O0pWcPkbtqGl6xU86M8hPlRsyPXPviO-qHE2iF1wwV2iGNMM0qNO-5W-pGUu5EV1iNd1qzO-pW16Nv6M-poFnpUM9iFtp5xzV_xUkhX1xyMLjXPHflqjVe0oNuwUUGniFX94pjyhiEHWt5oOtwyE05V-hN2yV8xO25N0xVn6U1qM1hHnhUnxN0gNVUOxN_h7FkKsyW9wUtgFnJ3yPkqiP8yGO2gMf3gV05PswqH1gM3qEe3pOX34V3qEthyPsxHkyPkg5GFmozEsqzV9pFF94Vv6yWmyjEmiPqPV94B9hH9pM8xEhhHup7wFeMxPngX86ozHt5zVkiqMl6Vu4FvoU0wV2RtwF6Vnq4UpzW2qOmxOlgzUmyUkoWuI8h7GliXE16wF9wOs5EmxFnoV0iGWXsqElpU84J0wO0oH3qPshE15V26rMl6rPthU1pqH1oqO_xG-oMW-xGu5El5404Pe1qM3gXn6N9wVdP2EspE9xqVvhHnoO97HuiMd3oEUGk79o5ocGfmIE_yVsoctoUM8HKW06Hev4g3YmQ_I85dswG-onep7kejmAOk7i0AF9q2BGuxgyH06c8CsAegW2wM8jFu9rpVQ4BmgPth5G3giX9AlyE9_TUt-DN19z4P4OEvlEc_G4F7nfclC3iX8H4J807gdlMhJm27oVnPxI03DwukoiuJFxnfgcDv1r4uI6lQk1b1wmCS8_bnpiGFqyt4lgl4FQ1_EoGyU4NwA1AFwEI-orruo2oHNfVpoud4VdshdP_O8OG-ockG_iWmN5qoraOq_d4B_Ql4wclqJ0gR__DsIllFhEGhgwRGef6ntAiZEqdRP2gwudxBNqpNlgL7usYi-n44YWzPS-tFI10Fwe9B1-DwmtwzNqBnuFm4hyAulFqWo_A3hiP8zPglsI2D2kF3Fok04xFos0gh7cmBsmG2GN_yFzGJ3sHG6SvA8sHB1kFQ4msAnDwu9Aw3soBmlFw0Yo1tgAttFAskGM24NtB2sHWlEyGwt9QsElE_jEwmvgC10HkgEsIAwOX8PHpveIgkJumME5POtoj5qPFNwgFrEO6QvnMZEEEiIJEYWEy9kJh_kBMgklJ-KzI0nMogAmtMreF7OPfs44ftoPPX8h5PuoH25lbnxOnjUuZ
It seemed impossible at first, and very easy to get stuck in with a wrong move. It is possible to beat though, which makes it rewarding to keep trying. The movement can be tighter as it is easy to move too fast, and the boulder movement is sometimes unpredictable. The biggest level that would get made was a 9x9. Overall though this is a neat game!