GameSalad

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Random map/dungeon generation [alpha video]

Hey guys,

I was't very active lately because I was working on some movies. Anyways, Im building a map generation system. I have a video to show what it does at the moment so please have a look.

right now it features:

  • Random path generation within the given dimensions of the map
  • It automatically generates walls
  • I can change the randomness to have longer paths (so less bigger areas) which is awesome!

To do for now:

  • Make the whole generation process faster. I already have it working, but it's not a 100% reliable at the moment.
  • Spawn point for hero
  • Other random spawns for enemies and treasure chests etc.

Comments

  • SocksSocks London, UK.Posts: 12,822Member

    Looks really good :)

  • AlchimiaStudiosAlchimiaStudios Posts: 997Member, PRO

    Cool!

    Follow us: Twitter - Website

  • MentalDonkeyGamesMentalDonkeyGames Posts: 1,276Member

    Very nice!

    Mental Donkey Games
    Website - Facebook - Twitter

  • SLOCM3ZSLOCM3Z Posts: 796Member

    WOW

  • tatiangtatiang Posts: 11,617Member, Sous Chef, PRO, Senior Sous-Chef

    Love it! Thanks for sharing.

    New to GameSalad? (FAQs)   |   Tutorials   |   Templates   |   Greenleaf Games   |   Educator & Certified GameSalad User

  • pHghostpHghost London, UKPosts: 2,292Member
    edited November 2015

    @Approw Very impressive! I've dabbled in generating terrain maps, but not dungeons (including walls).

    If you're ever looking to bolster efforts on this, I'd be very interested in working with you!

    If you'd like to see what I can offer, have a look at my stab at A* (http://forums.gamesalad.com/discussion/71909/demo-combat-terrain-generation-and-ai-on-a-grid-based-map), I dare say it was the fastest and most efficient method (unfortunately made obsolete by GameSalad's inclusion of a built-in A*). Properly generating maps and dungeons was the next step.

  • UtopianGamesUtopianGames Posts: 5,683Member

    <3

  • neomanneoman Posts: 813Member

    Looks really neat! :wink:

  • frdfrd Posts: 191Member

    This is great, well done!

  • ApprowApprow Posts: 703Member

    @Hopscotch @jdlcrater @tatiang @UtopianGames @neoman @frd @pHghost Thank you guys so much for the great reactions!

    @pHghost I will keep that in mind, it would be great to develop it with someone else! For now the project is too messy with a "only I understand the workflow" workflow haha. Here is a quick video update of the project! (At some point I say render interpolation, but I actually meant Nearest Neighbor Interpolation, so excuse me.)

  • ApprowApprow Posts: 703Member

    I'm also not sure why I said there are 300 actors in the scene, because it's actually a lot more. There are 200 floor tiles, depending on the map but on average there are 300 walls, and around 50 shadows. So that is an average of 550 actors! thats quite a number for just the map.

  • pHghostpHghost London, UKPosts: 2,292Member
    edited November 2015

    @Approw said:
    So that is an average of 550 actors! thats quite a number for just the map.

    Believe it or not, at the height of my dabbling with terrain generation, I was at times crossing 10k actors in one scene!

    But, to be fair, it ran only about 12fps on my Mac and crashed pretty much instantly on a iPhone 6.

    I experimented extensively with optimization of large map datasets, and using tables a lot can be done, even to fit in huge maps (100x100).

    Here is a example of a 50x50 map (which would be 2500 tiles) virtually projected on a total of only 176 tiles (that's just 7% of the actual map surface):

  • ApprowApprow Posts: 703Member

    @pHghost hmm interesting stuff you got there. Optimizing these kinds of thing are a pain in the a**. But I'm doing pretty good to be honest with you. The same kind of map that I showed you in the video is running a solid 60fps on the iPad 2 with shooting and some enemies and stuff (generating the whole map takes around 4 seconds). I didn't add a lot more because I want the map generation to be superb first, but it's getting there:)! I think I will hit you up next week so you can have a look at the system for yourself.

  • pHghostpHghost London, UKPosts: 2,292Member

    @Approw said:
    Optimizing these kinds of thing are a pain in the a**. But I'm doing pretty good to be honest with you. The same kind of map that I showed you in the video is running a solid 60fps on the iPad 2 with shooting and some enemies and stuff (generating the whole map takes around 4 seconds).

    Part of my interest is scaleability and trying to push GameSalad as far as it can go. It's a lot of fun! :wink:

    Anyway, do let me know once you have something to look at!

  • ApprowApprow Posts: 703Member

    @pHghost I didnt had much time to work on the project, but I will very soon, and hopefully involve you to create something awesome. Sometimes 4 eyes are better then 2;)

    What exactly do you mean with scalability? Im also always trying to push gs to the limit, not sure if its always good since it usually brings a lot of side problems, but it sure is fun as hell!

  • pHghostpHghost London, UKPosts: 2,292Member

    What I mean is optimizing performance specifically to allow for smaller to larger scale implementation of game algorithms and features.

    Hopefully GameSalad will work hard on considerably reducing loading times, but in the meantime, I always try to work as much as possible with the constraints of having a single scene, but without having to limit the scale of the game.

    The goal is layering several things on top of each other and not crashing due to memory use, so you have terrain/map generation (in a bigger project both overworld and dungeons) then AI, menus, inventory management, all in one scene.

    Ultimately, I believe a big part of making an impression with a game will factor in loading time, which is why I try to reduce it to the minimum possible.

  • ApprowApprow Posts: 703Member

    @pHghost You're absolutely right, getting a solid game with tight loading times is ideal. I usually try to spawn everything in place instead of placing everything on the scene by hand, this way you get really fast loading times. Resetting this map generator for example takes about half a second because there is barely anything in the scene, the real loading starts when it starts generating the map.

    Sometimes it is hard to build an efficient and tight system because you need unlocked actors to acces some scene attributes or other local attributes from actors. It would be ideal if locked actors can acces scene attributes without unlocking them and share local attributes with other actors in the scene. This would save a lot of headaches with workarounds.
    I'm not sure if this is even possible, but I thought of a solution. Right now gamesalad loads the same actors in every scenes actors panel. First of all it is annoying because you don't need all of them, and it gets messy if you have a large project. A great solution would be if all the actors are stored in a global actors folder/tab (which we already have), and then you can import the actors you need in the scenes actors panel. It's just an idea to improve the workflow:)

  • pHghostpHghost London, UKPosts: 2,292Member
    edited December 2015

    @Approw said:
    It would be ideal if locked actors can acces scene attributes without unlocking them and share local attributes with other actors in the scene. This would save a lot of headaches with workarounds.

    Tell me about it! This would solve so many problems!

  • Braydon_SFXBraydon_SFX Posts: 9,081Member, Sous Chef, PRO, Bowlboy Sidekick GameSalad Employee

    Very cool stuff! Love it!

  • dimsdaledimsdale Posts: 385Member

    I like it!! Thats some very cool tech!

  • DuesDues Posts: 1,159Member

    Awesome stuff! :)

Sign In or Register to comment.