That dungeon generator looks pretty cool!Thanks Slash!
results are neither completely organic nor blocky... how are you generating cave rooms? are they templates, CA or L jumps?I used this excellent cellular automata tutorial: http://www.pixelenvy.ca/wa/ca_cave.html I haven't tried L jumps, I'll have to give that a try to see what it looks like.
also, I didnt see the circular rooms in the example image?Ha! "Circular" is a bit of an exaggeration! They are sort of circles made of squares. Like this:
#####
#...#
###...###
#.......#
###.......###
+...........#
#...........#
#...........#
###.......###
#.......#
###...#+#
#...#
#####
My current approach to dungeon generation is completely different, classic room carving, which has many problems including tree-like levels without loops, no branches in corridors for now... a start is a start though.. Up to now I have done mostly cave-like levels and overworlds, which generation follows very different principles than dungeon carving :D
Is this for Paprika?I've been planning a new roguelike to replace Paprika. I learnt a lot from writing Paprika, so I feel with that knowledge I can create a better roguelike. I really want to change a lot of fundamental things, so a new project seems to be the best way to go. I'm not calling it a rewrite, because I want to change a lot of ways that the game would work, rather than the code. In fact, I can use a lot of the code from Paprika in the new project.
English gentlemen seem to be pretty profficient on dungeon generation ;)Aye, it's going to replace received-pronunciation as the number one English stereotype :P
One of my ideas is to build everything completely seperately, because I feel that the connections between all the different systems is where things quickly get complicated. So building things seperately allows me to avoid that and really focus on each one. It doesn't matter too much if I change my mind about something, because it's a lot easier to rewrite one system than one system connected to a lot of other ones. This dungeon generator is one of those systems.
Thanks for the advice corremn. I've written a load of stuff about how I want the game to work, but haven't put too much thought into the code yet. I'm still in the designing stage really and just testing code out for now. I'll do your sketch pad idea when the designing is finished :)One of my ideas is to build everything completely seperatelyEeek, this way madness lies, just joking ;D. This is one of the first things any programmer says to himself, it is much easier said that done. Time to get the sketch pad out and start drawing how your modules will interact, try to think about every way needed. Good luck with this, I hope it goes well.
How are you deciding on the initial locations to place your rooms? Are you dividing the map initially into sections based on some algorithm, or are your rooms placed by other means? If you don't mind my curiosity.I welcome the curiousity, that's why I posted about this ;)
I used this excellent cellular automata tutorial: http://www.pixelenvy.ca/wa/ca_cave.html I haven't tried L jumps, I'll have to give that a try to see what it looks like.Ah! I remember the Wa project... a shame it seems to be dead now... IIRC it was one of the few to be developed by a female roguedev
I'll make them a bit rounder at some point :)They look cool like this :)
I've been planning a new roguelike to replace Paprika. I learnt a lot from writing Paprika, so I feel with that knowledge I can create a better roguelike. I really want to change a lot of fundamental things, so a new project seems to be the best way to go. I'm not calling it a rewrite, because I want to change a lot of ways that the game would work, rather than the code. In fact, I can use a lot of the code from Paprika in the new project.Yeah, I know how that feels... I hope being able to restart Guardian Angel soon with all I have learned with the rest of projects! (But I won't go on too much, because I don't want to sound like another vapourware creator!)
One of my ideas is to build everything completely seperately, because I feel that the connections between all the different systems is where things quickly get complicated. So building things seperately allows me to avoid that and really focus on each one. It doesn't matter too much if I change my mind about something, because it's a lot easier to rewrite one system than one system connected to a lot of other ones. This dungeon generator is one of those systems.Ah, thats true... as long as you keep your heading into your GAME direction, and not a generic engine :)
Aye, that's a shame. A little bit more diversity would have been cool.Quote from: IceyI used this excellent cellular automata tutorial: http://www.pixelenvy.ca/wa/ca_cave.html I haven't tried L jumps, I'll have to give that a try to see what it looks like.Ah! I remember the Wa project... a shame it seems to be dead now... IIRC it was one of the few to be developed by a female roguedev
Cool. Maybe I'll include both... oh the possibilities!Quote from: IceyI'll make them a bit rounder at some point :)They look cool like this :)
I hope being able to restart Guardian Angel soon with all I have learned with the rest of projects! (But I won't go on too much, because I don't want to sound like another vapourware creator!)Heh that sounds like something I'd say! Oh, wait a minute...
Ah, thats true... as long as you keep your heading into your GAME direction, and not a generic engine :)Oh yes. Most definitely. I'm not interesting in making an engine.
I had a go with the L jumps though:Yeah, they look much less organic while still being irregular... perhaps would be nice for some kind of "crystal" caves or erosion-less environment.
http://iceyboard.no-ip.org/stuff/dungeons_l_caves.html (http://iceyboard.no-ip.org/stuff/dungeons_l_caves.html)
The results are interesting and look different to the CA method. I think I'll include both the cellular-automata generator and the l-jump generator, with a 50/50 chance of each being used.
I think that's a great idea though. I'm always seeing people talk about your roguelikes, so adding another one will ensure they never shut up :PHehe
I have an example pic to show (a mask map of level). It has three types of rooms: irregular rooms which some of them overlap with each other creating bigger areas, and "strict" rectangular rooms plus small rooms which attach themselves directly to other rooms and corridors. There are no corridors yet, because the old routine can't handle connections between different types of rooms...That looks really good.
http://koti.mbnet.fi/paulkp/temp/rooms.gif
Icey, image #9 (http://iceyboard.no-ip.org/stuff/dg9.png) looks really good. I hope I'll get to play in something like it at some pointJust wear a bowler hat while programming long enough, you will eventually catch it
That is so untrue, I don't even own a-- *suddenly the wardrobe doors fly open and millions of bowler hats fall out*Icey, image #9 (http://iceyboard.no-ip.org/stuff/dg9.png) looks really good. I hope I'll get to play in something like it at some pointJust wear a bowler hat while programming long enough, you will eventually catch it
Isnt a corridor just a (very) narrow room?
We await for news about it ;)
You could try creating "abstract digger dwarves" with pseudo-personalities, and have them dig a dungeon through a series of iterations...
I came to the conclusion that "overlapping" rooms were the source of all bad things. They generate two major problems: walls inside the rooms dividing a bigger room area and floors that destroy walls from the original room that was overlapped. This in turn makes it impossible to find a wall facing to certain direction when the other room just wiped them out entirely. Making the two rooms connected wont solve that problem, you would have to connect the two rooms physically to one room with the same room mask id. That was too much for me and I disallowed the creation of overlapping rooms. It's probably going to make some level types less interesting, but I don't care.
I think making it work is first priority. When thats done, improvements can always be made later.
Why don't you try a totally different approach? I've some people using "non-standard" stuff, like cellular automata. You could try creating "abstract digger dwarves" with pseudo-personalities, and have them dig a dungeon through a series of iterations... I might try that when I have free time (somewhere in 2145).
Underkeep tilted my firefox. No matter, Java-based games are always crap.
As far as the cave level goes, it's also awesome! It reminds me of the first levels of Rune! I can imagine waterfalls in there, gloomy environments, mist from the dark, stale pools... very nice work! Congratulations! And the approach does indeed seem simple! I look forward to reading the more complete article!
@Joshua: Java was a good choice, have you tried Java Web Start? It may make some things easier...
################################################################
################################################################
####>>##########..............##..............##..........######
####..##########..............##..............##..........######
####..##########..............##..............##..........######
####..##########..............##..............##..........######
####..##########..............##..............##..........######
####..##########..............######++######++##..........######
####..##########..............##..........##..##..........######
####..##############++##########..........##..##########++######
####..........................++..........##..##########..######
####..##############..##########..........##..##########++######
####..........................++..........##..##..........######
####..##############..##########++##++######..##..........######
####..##..........##..##########..##..######..##..........######
####..##..........##++##########..##..######..##..........######
####$$##..........##..........##..##..######..##..........######
########..........##..........##..##..######..##..........######
########..........++..........++..............++..........######
####################..........##..##++######++##################
####################..........##..##..........##################
####################..........##..##..........##################
####..............##..........##..##..........##################
####..............##############..##..........##################
####..............##############..##..........##..........######
####..............##############..##..........##..........######
####..............++..............++..........++..........######
################################..##..........##..........######
############<<....................##..........##..........######
################################################################
################################################################
################################################################
################################################################
################################################################
############......++..............##..........######$$##########
############..######..............##..........######..##########
########$$........++..............++..........++..##..##>>######
############..##..##..............##..........##..##..##..######
############..##..##..............++..........++..........######
############..##..##..............##..........##..##..##..######
####$$............++..............##..........##..##..##..######
############++##..##############################..##..##..######
####..........##..######......................##..##..##..######
####..........##..######......................##..##..##..######
####..........##..######......................##..##$$##..######
####..........##..######......................##..######..######
####..........##..######......................##..######..######
####..........##..######......................##..######..######
####..........##..##<<##......................##..##$$##..######
####..........##..##..##......................##++##++##++######
####..........##..##..##......................##..........######
####..........##..##..##......................##..........######
####..........##..##..++......................++..........######
############++##..##..##########################..........######
############..##..##..........................++..........######
############++##++##++##########################..........######
####......................######################..........######
####......................######################..........######
####......................######################..........######
####......................######################################
####......................######################################
################################################################
################################################################
################################################################
################################################################################################################################
################################################################################################################################
########################..........##############################################################################..........######
########################..........##############################################################################..........######
########################..........##################$$##############################$$....................######..........######
########################..........##################++##################################################++######..........######
########################..........##..................##..................##..........++......++..........++..++..........######
########################++##########..................##..................##..........##########..........######..........######
########..................##########..................##..................##..........##########..........######..........######
########..................##########..................##..................##..........##########..........######++######++######
########..................##########..................##..................++..........++......++..........++......######..######
########..................##########..................######################..........##########..........######..######..######
########..................##########..................######################..........##########..........######..######..######
########..................##########..................######################..........##################++######..######..######
########..................##########..................##############$$######..........##......................##..######..######
########..................##########################++##############++##################......................##..######..######
########..................##$$............................++..............##############......................##..######..######
############++##########++##########################..######..............##############......................##..######..######
############..##########..##################$$##$$........++..............++..........##......................##..######..######
############..##########..##################..##############..............##..........##......................##..######..######
############..##########..##############$$##..##..........##..............##..........##......................##..######..######
############..##########++##############..##..##..........##..............##..........##++##############++######..######..######
############..##..................######..##..##..........##..............##..........##......................##..######..######
############..##..................######..##..##..........##########++######..........##......................##..######..######
############..##..................######......++..........++..............++..........##......................##$$######..######
############..##..................######..##..######################..######..........##......................##########..######
############$$##..................######..##....................$$##..######..........##......................##########$$######
################..................######..##..######################..######..........##++######################################
################..................######..##..##..................##..######..........++............................$$##########
################..................######..##..##..................##..######++##++######..######################################
################..................######..##..##..................++................$$##..######$$##......................######
################..................######..##..##..................##..######++##++######..######..##......................######
################..................######..##$$##..................++..++..........##>>##..######..##......................######
################################++######..######..................##..##..........##..##..######..##......................######
############..............######..######..######..................##$$##..........##..##..######..##......................######
############..............######..######++##############################..........##..##..######..##########++######++##########
############..............######..##$$##..............##..............++..........++..............##..............##..##########
############..............######..##..##..............##..............##..........##..##..######..##..............##..##########
############..............######..##..##..............##..............##..........##..##..##$$##..##..............##..##########
############..............######..##..##..............##..............##..........##..##..##..##..##..............##..##########
############..............++..........++..............++..............##..........##..##<<##..##$$##..............##..##########
############..............######..##..##..............##..............##########++##..######..######..............##..##########
############..............######..##..##..............##..............##$$........................++..............##..##########
############..............######..##..##..............##############################..######..##############++##++##..##########
############..............######..##..##..............++..........................................++..........++..##..##########
####################++##########++##++##..............##############################..######..######..........##..##..##########
############..............##..........##..............##$$..............................$$##..######..........##..##..##########
############..............##..........##############++##############################++######++######..........##..##..##########
############..............##..........##############..##########......................##..........##..........##..##..##########
############..............##..........##############..##########......................##..........##..........##..##..##########
############..............##..........##############..##########......................##..........##..........##..##..##########
############..............##..........##############++##########......................##..........##..........##..##..##########
############..............##..........######..............######......................##..........##..........##..##..##########
############..............##################..............######......................######++##++##########++##++##++##########
############..............##################..............######......................######$$##......................##########
############..............##################..............######......................##########......................##########
############..............##################..............######......................++......++......................##########
############################################..............######################################......................##########
############################################..............##################$$................++......................##########
################################################################################################......................##########
########################################################$$....................................++......................##########
################################################################################################################################
################################################################################################################################
################################################################################################################################