Random Dungeon Generator (RDG) : 7/23/16

Discussion pertaining to resources, stories/characters and gameplay ideas in this forum dedicated to games that are just a faint glow.
Forum rules
Do not create a topic offering to produce resources. Click here for the reason.

Please use above resources section of site so everyone can have access to the resources you create.
User avatar
RamchuK_Ntertainment
Ultimate 001 Member
 
Joined: Tue Sep 29, 2009 10:50 pm
Location: Seattle, Washington

Random Dungeon Generator (RDG) : 7/23/16

Postby RamchuK_Ntertainment » Thu Jun 23, 2016 8:25 pm

After working with various procedural design theories and their implementations in 001 Game Creator (0GC) over the last several years, I decided to endeavor my very own Random Dungeon Generator (RDG) this very summer. Currently very early in development, I hope to bring to life one of the coolest (personally) 0GC scripts that can be used to create spectacular structural designs on the fly or within 0GC’s Map Editor. To avoid the usual massacre with abundant information right away, I'd like to firstly ask the community to personally try a demo of the generator in action that is currently available in the Games Section: http://www.engine001.com/games/Random%20Dungeon%20Generator%20%28RDG%29_3532.htm

Please share your first-hand impressions along with any questions or suggestions that you may have as of the given moment. Some questions that I would appreciate community members to answer are as follows:

    1. Would you ever use an RDG for personal projects or to aid in development? (Exp.)
    2. What qualifies as an exceptional dungeon generator? (Exp.)
    3. What are 3 'must-have' features that an RDG should have? (List.)
    4. Do you see REGT's RDG as unique or following a common trend? (Exp.)
    5. How much would you be willing to pay for an RDG of current/future quality? (#)

Random Dungeon Generator (RDG)
The classic era of gaming may be over, but not forgotten. Recall the epic adventures in your favorite dungeon-crawler or RPG; the moments you wished would last longer, but desperate need called for continued travels. Reminisce the FPS complex in which you dominated your opponents from behind disclosed corner cover. It were these very times that drew us in closer to video games and gave us a reason to love a genre to this very day. Chances are, you have lived beyond the point of ‘player’ status and now are in search of creating your very own adventures. 001 Game Creator (0GC), coming to your aid, has probably given you that very opportunity and that’s why you are here. Predictably, you’ve also landed on this page because you find interest in the common language of dungeons or facilities, whether it be for haunted stories or action-packed shooters. If so, you’ve come to the right place to learn about an exciting new opportunity to make your next or first project, simply the best.

Brought to you by a 0GC veteran and the founder of the Ramchuk Entertainment Games Team (REGT), the Random Dungeon Generator (RDG) that is about to be presented, is an exclusive offer for the 001 Community from the heart of a developer, made for developers alike. Everything that you will find here is designed with meticulous care and precision to fit the needs of various genres and distinct user skills. Regardless of your next big idea, you can unleash the power of your imagination by utilizing this one-of-a-kind tool that will leave your fans breathless and their minds blown away; all through a user-friendly, accessible, and adaptable atmosphere provided within the context of this RDG.

THE INFORMATIVE
REGT’s RDG is a unique implementation of procedural design theory that applies to structural concepts such as dungeons or facilities. The primary focus is on generating spectacular models that are by default accepted as sufficient and effective for internal game use, but that can also be used externally, such as in cases of the Map Editor. In general, the RDG is a large single-body Custom Event (CE) script that takes input through user parameters and various supplementary CEs for full functionality. In design, it is lightweight and multi-purpose, as well as extremely flexible for advanced users looking to build heavier systems for particular case scenarios. This, however, does not limit the default functionality of the generator, since it comes with a diverse variety of options that will meet and exceed major expectations. Beginner users are guaranteed to find the available settings as sufficient for basic needs, while intermediate to advanced users will be able to further craft their projects in every way imaginable. The generator is FULL 3D & ONLINE MULTIPLAYER READY and MINIMALISTIC-SAVE COMPATIBILE.

PACKAGE CONTENTS & FEATURES
Latest Version RDG (CE)3D, Online Multiplayer, and Minimalistic Save Support; Seeding System
Seeded Random Branch (CE)
Seeded Probability Branch (CE)
nGen (CE)Pseudorandom Number Generator
Documentation PDFFull Scripting Review & Additional Information
Default Demonstration ProjectPlug & Play for Testing

[] Completed
[] WIP
[] Upcoming


RDG_1.png
RDG_2.png
fps_trial_1.png
fps_trial_2.png
1_2_1.png
1_2_2.png
1_2_3.png

Building your next procedural dungeon/facility is easier than ever. All it takes is the Latest Version RDG (CE) and the appropriate parameters for the desired results. You will have access to over a dozen CE parameters that will help you make the envisioned possible, regardless of what you may have in mind. The first step to crafting your world is understanding the available settings. Here we will take a closer look at each one to make sure that you have the basics covered.

*Map (ID)
The map ID parameter takes input for the chosen map that is to be used for drawing the random structural system. It can be used with a use-value or through manual selection of the desired map. (You can generate maps which do not carry the main player or party, but the Player Positioning System (PPS) will be uninvolved).

*World Type
In accommodation for the seeding system, users can select between a true random world or as specified by the user through the selected parameters. This is particularly useful for online multiplayer projects.

*Draw Ceiling
If room and corridor ceilings are desired for 3D purposes, this switch will do the trick.

*Minimum & Maximum Map Depth
For 3D purposes, you can choose the range of map depth as required for your particular project. The minimum always allowing for low, one-tile walls. NOTE: The minimum map depth is 2, otherwise the generator will not run by default.

*Minimum & Maximum Rooms
By default, you can generate as many rooms as the given maximum room size will permit, but the minimum and maximum parameters allow for a random choosing through the built-in seeding system.

*Minimum & Maximum Room Size
The desired room size range is set with integer selections ranging anywhere from 1 to n. By default, the system translates size selections so that an input of 1 = 3, 2 = 5, 3 = 7, etc.

*Maximum Room Distance
You can regulate room placement on generated maps by selecting the desired borderline to rooms that are generated within a proximity to others. This allows for compact or truly displaced maps based on distance. NOTE: The distance is measured in pixels.

*Room Attempt Limit
You can limit the generator’s insistency on room placement by specifying the desired attempts before the generator quits and moves on with the assigned tasks. Manipulating this parameter will result in spontaneous choices.

*Maximum Intersections (Leaders)
Intersections or informally known as leaders, are world placement points that control the flow of pathway connections; they are subject to regulation by the ‘Intersection_Distance’ parameter.

*Intersection Distance
To avoid cramped intersections and uninteresting tangles in pathways, the intersection distance can be controlled to user preference. NOTE: The distance is measured in pixels.

*Connections
Simply put, they are doors generated for each room. As an integer with a minimum value of 1, connections are subject to regulation by the maximum room size desired by default.

*Connection Probability
Instead of controlling the ambiguous nature of connections per room directly, the probability of an ‘additional’ connection controls the chance of numerous rooms to be selected for any one room. This allows users to surprise everyone including themselves.

*Entry Height
Derived from connections, the set entry height controls the height of doorways/passageways between rooms and corridors. NOTE: Unit of measurement is in tiles.

*Variable Post Processing (VPP) Frequency
You can distort specified world areas to accommodate for the need of imperfect environments by choosing a VPP frequency, which is a percentile value. NOTE: Specific VPP criteria is regulated through scripting.

*Variable Post Processing (VPP) Radius
You can further control the extent of area distortion by selecting the affecting size to be either random (safe) or based on the room’s diagonal distance.

*Player Positioning System (PPS) Random
If the build-in PPS is desired and full random placement is of choice, players and their associated parties will be placed in random rooms around the world.

*Player Positioning System (PPS) Other
If the build-in PPS is desired, but full random placement is not needed, users can choose to spawn players near the center of the world or at a random edge.

*Generator Seed
By default, users can choose to generate a world using a specific seed entered into the seed field. Alternatively, leaving the field at 0, will generate the world at random. NOTE: See ‘Seeding System’ section to learn more about how seeding works and the associated precautions.

To showcase quality and performance in successful employment of the available settings, REGT has prepared a demonstration project that is included as a source with the RDG Package and as a testing platform available at http://www.engine001.com/games/Random%20Dungeon%20Generator%20%28RDG%29_3532.htm.

As seen, most default generator settings are designed to serve as a foundation for non-gameplay specific reasons. Needless to say, any and all settings can be overridden and adjusted for further user needs through scripting. The available documentation will cover everything from the basics of startup, to how you can prepare the RDG for your next big project with some nifty scripting tutorials. Covered material will revolve around various popular genre concepts that you will likely consider and borrow from to use in your games.

SEEDING SYSTEM
If you plan on enabling network features in your next project, REGT’s RDG has you covered even in that respect, especially if you are to utilize real-time world generation. Online multiplayer would require that two identical worlds are loaded on player systems so that the gameplay is synchronized, but as you may imagine, this isn’t possible if your worlds are random each time. Fortunately, this isn’t something you would have to worry about, because the built-in seeding system comes to the rescue. You can build your worlds using unique numerical seeds that have a period of (2 ^ 31) – 1, which is well over 2 billion possibilities. These seeds make it possible to generate identical worlds that correspond to the selected value so long as the selected generator parameters are the same each time. What this means is that the seeding system can be used diversely by every user and your project is not limited to the available settings. In fact, each time a formula or a dimension is changed within your project, you have just created a new set of billions of possibilities! It may take a few moments to wrap your mind around that, but the most important thing to remember is that seeding requires identical parameters to be used in order to achieve identical results.

For online multiplayer projects, where your maps are non-persistent, you can approach seeding from one of two perspectives. You can finalize your generator parameters based on project needs; this will make sure that the same settings are used for any player. Or, you can adjust parameters based on need at any time and send parameter data over to your server along with the seed to be received by other players. This is primarily the case if you are to ever allow players to choose their own world features or the like. You must follow through with one of these concepts to make sure that identical worlds are built each time a selected seed is used.

Subjective Theory
While procedural world design is not new to me, a dungeon is an entirely new concept that to this very moment I tend to look at from a slightly different perspective than most. After researching various algorithms, I noticed several interesting details that left me questioning if there was a potential for improvement. I've found my answer after several rather quick hours of careful algorithm studying. Most dungeon generators in the discourse use a straight-line approach to both random placement and then additional content. This means generating random patterns of features and then connecting them to complete the image. Some actually take an alternative approach to combining things like mazes and random rooms. Others are on the edge with a combination of everything from linear path-finding rooms to cellular automaton caves. I've found all this rather intriguing and decided to take a step back.

The goal of a dungeon generator is to connect random rooms and make sure that all are connected. This alone makes a strong statement that sets high standards for any algorithm. The question to follow is of both performance and quality. Since 0GC relies on tiles, the amount of rendering area to be generated is heavily greater than that of an array space that uses variable pixel data. With this in mind, I needed to find a way to conserve performance and offer exceptional quality in the overall product. I decided to write an algorithm that uses some natural phenomenon as an aid.
Branching.png

Some algorithms spend a great deal of time in finding the right place for a random room and then even more time for connecting the two, while still monitoring what is connected. In a sense, these algorithms are primarily aimed at dungeon-crawler quality structural systems that are near-perfect within one's imagination. There are several problems that I discovered with this approach. For one, there is a lot of thinking, which creates a beautiful dungeon, but in the end, the gameplay is only suitable for very specific genres; such as dungeon-crawlers. The secret is rather simple; these algorithms connect rooms at proximity and make sure that they are connected randomly. The result is something of a tree branch and I found it quite interesting as well. Unfortunately, I could not adopt the thinking, as it would not be my own. In fact, the trees generated by those algorithms are only suitable for smaller maps. My algorithm in turn, yields a much different branch look, but as evident above, the branching is 'meaningful'.

My approach is what I think of as semi-realistic and this goes to support my view of dungeons as not simply dungeons that one would see in a dungeon crawler. Instead, I view them as structural systems that can be grown into complex facilities. The dungeon vibe simply has to stay there, for the simple reasons of calling it a dungeon, but the approach and the final product is something far more interesting. This partially answers the question of application, but leaves performance in question. I, of course, can happily announce that I have not failed to overlook this either. Due to the conservative approach to analytical tasks, the generator is capable of generating a 100x100 tiled map in less than 8 seconds on average (performance varies by system). This takes into account 100 rooms of varied sizes in 3D. That is nearly 85% of the world, usually, or 8,500 tiles, which is 8,704,000 pixels. Surely, this is only the beginning, but already rather impressive at the current (not very) optimized stage.

In the end, my semi-realistic approach results in naturally branched systems that ensure full connectivity, truly random features, and tunnels/corridors that promise at least some open travel. As a consequence, the overall product can be explored in a truly dynamic manner with limited restriction to areas that can or cannot be accessed, as controlled by potentially locked doors and so forth, and as a bonus, players in a potentially 3D setting can indeed get lost.


Stay Tuned for Updates!
July 23, 2016 : RDG v1.2 FPS Demo
July 13, 2016 : RDG v1.1 FPS Demo
June 23, 2016 : RDG v1.0 Demo
Last edited by RamchuK_Ntertainment on Sat Jul 23, 2016 5:29 pm, edited 10 times in total.
Travesty: 3D Survival - WIP >>> Forum Topic
University of Washington (BABA)
-REGT- Ramchuk Entertainment Games Team
Strategy/Action/Adventure
Copyrighted©2008-2017

User avatar
Mr.Numbers
001 Support
 
Joined: Wed Feb 28, 2007 1:50 am
Location: Alberta, Canada

Re: Random Dungeon Generator (RDG)

Postby Mr.Numbers » Fri Jun 24, 2016 12:25 am

Honestly man, this is unbelievably amazing. I really hope you go forth and make something out of this :) The generation is superb, doesn't take very long at all (Average 4-6 seconds for me). I've attempted random dungeon generation before (Albeit being quite a while ago) and it didn't come close to this :P

1. Would you ever use an RDG for personal projects or to aid in development? (Exp.)
I'm a lazy person, so I enjoy making custom events to randomly place things on maps, or do other miscellaneous things for me. A dungeon generator like this would be right up my ally if I were to ever develop a game that required dungeons.

2. What qualifies as an exceptional dungeon generator? (Exp.)
For me, just having it generate the base rooms and paths qualifies for that. Anything beyond that feels it would be fairly project specific.

3. What are 3 'must-have' features that an RDG should have? (List.)
1) Any map size
2) Better room options (Min/Max number of rooms & Min/Max size of rooms (Possibly with different shapes maybe?))
3) Style of room connections (Up/Down/Left/Right only "Perfect Connections", Direct paths/any angle "Straight Connections", Maybe paths that curve a little, or a mixture of the previous two "Natural Connections" (Natural not being "ABSOLUTELY NEEDED" but would just be nice :P))

4. Do you see REGT's RDG as unique or following a common trend? (Yes or No)
Yes or no? :P Anyways It FEELS unique to me at least, the generation style isn't something I've exactly seen before, thats for sure!

5. How much would you be willing to pay for an RDG of current/future quality? (#)
Really hard to say. Are you even allowed to sell a custom event/however you manage to package it with the current EULA? Anyways, I can't really specify regardless.
Image
I AM THE ALL MIGHTY SCRIPTING MASTER
Please do not PM me with Engine 001 related questions, rather post on the forums. ;)

User avatar
RamchuK_Ntertainment
Ultimate 001 Member
 
Joined: Tue Sep 29, 2009 10:50 pm
Location: Seattle, Washington

Re: Random Dungeon Generator (RDG)

Postby RamchuK_Ntertainment » Fri Jun 24, 2016 8:24 pm

Thank you for your input Numbers! I’m glad to know that you like it thus far.

I have updated the main page to reflect on current available parameters within the generator and also fixed the question I was asking. I must have been tired to make such a silly mistake.

Currently, my generator is compatible with any sized map that is greater than 13x13 tiles. This only applies if the minimal sized room is 3x3. By design rooms are only allowed to be odd numbers, but to make things easier, the generator is setup to take inputs of any value (1 – n) and translate it accordingly. As it concerns rooms, the parameters to control output allow changes in size and maximal room count. I will be adding a minimal parameter shortly, as I see where it may come in handy.

I cannot comment much on room connections at this moment, but as far as shapes go, I wanted to do something a bit radical and decided to introduce what I call Variable Post-Processing (VPP). Manipulating room designs to create nifty shapes is a dreadful process that hurts both the script writer and the player waiting for the level to load, so I’d like to stay away from resource-intensive methods of any kind. VPP is a system that is designed to distort the world by studying rooms and their potential for creating some open/torn/broken areas. It results in something like this:
VPP.png

The system uses a Frequency parameter to determine the likelihood of distortion to occur when appropriate. As evident, it’s not necessarily pretty, but even the worst of things are sometimes beautiful. The cool thing with this approach is that it’s essentially a probability factor and it uses proximity criteria for determining when distortion may be necessary. In other words, it’s rather dependent on other map factors, such as size and the amount of rooms present; larger maps will not necessarily offer the same amount of distorted areas, but through some fiddling, one can get just about the right balance between traditional rooms and open areas.

What I personally like about this approach, aside from its efficient effectiveness and potential for growth, is that it creates a brand new atmosphere to explore. If done correctly, this can result in a ‘cellular automaton meets the 21st century’ cupcake. Surely, the aftermath of the process is actually quite fitting to more action-driven genres, where more open spaces may be necessary, but I see it as a successful hybrid for many applications. Currently it’s not very dynamic and has a minor/major flaw; it tends to break rooms with exposure. Additionally, some doors are left pointlessly.
Travesty: 3D Survival - WIP >>> Forum Topic
University of Washington (BABA)
-REGT- Ramchuk Entertainment Games Team
Strategy/Action/Adventure
Copyrighted©2008-2017

User avatar
Kilatorian
001 Support
 
Joined: Sat Oct 18, 2014 12:11 am
Location: Planet Earth

Re: Random Dungeon Generator (RDG)

Postby Kilatorian » Sat Jun 25, 2016 2:21 pm

Hey, this looks pretty awesome, I've dabbled in random dungeon generators but never in 001. I would definitely consider using this for some sort of rogue-like.

Couple of suggestions:
1. Hallway length min/max. It would also be cool if you could set them so low that the layout becomes more building-like. Then you could do something like have one map be 3 rooms of a house, or more complex mansion.
2. Maybe hallway min/max width?
3. I'm just thinking out loud here now, and I don't know everything you have planned, but what about some sort of 'features' list. That is, a list of features that you can choose from to appear on the map.
a feature could be a trap or healing wells or an extra giant open area, you could set the min/max size, min/max of the times this feature will appear in the map, and maybe even a minimum distance between same features. Then you could have some same set pieces always show up on certain maps, like on level 3 I always want a sword in a stone to appear in a big open area.

I'll be curious to see where you go with this, it already looks promising and you say you're very early in development.

User avatar
SBG
001 Subscriber
 
Joined: Thu Jun 17, 2010 8:37 pm
Location: merca

Re: Random Dungeon Generator (RDG)

Postby SBG » Sat Jun 25, 2016 5:13 pm

This is really awesome! I'll try to test it out and give some feedback.

User avatar
RamchuK_Ntertainment
Ultimate 001 Member
 
Joined: Tue Sep 29, 2009 10:50 pm
Location: Seattle, Washington

Re: Random Dungeon Generator (RDG)

Postby RamchuK_Ntertainment » Sun Jun 26, 2016 2:36 am

I just updated the list of parameters currently available and with that, new additions include a Player Positioning System (PPS). While simple, it allows for quick placement of the player's party in available rooms. The options include a random setting that will choose any room at random or what I refer to as 'other', which can spawn the player's party near the center of the world or randomly at an edge.

@Mr.Numbers
Actually, yes, Custom Events and any other 001 resources made by users can be made available as premium for public or commercial uses.

@Kilatorian
I've considered limiting connections and playing around with them a bit in general, but so far I have not been able to find an effective way to bring the drastic results without a heavy cost. By far, specified maps used during world generation are usually desired to be filled as much as possible with gameplay content, as it would make little sense to have unused space; this brings forward the idea of room placement. Due to the way my algorithm works with rooms, I can't really work with connection proximities specifically. Instead, I see where a room distance limit may be necessary. I will be adding this some time soon as well. What it will allow users to do is specify how far apart rooms can be; as a result, you can have very compact spaces or very spread out maps.

As it concerns connection/corridor width, this is likewise a feature that is outside of my algorithm's borders. I've seen some algorithms that use wide routes, but they usually focus on drawing straight paths and that's how they connect points together. This is very algorithm-specific and I'm not sure if I'll be able to add this. Currently, wide pathways are possible naturally by chance.

The idea of features is definitely on my to-do list. Problematically, many things would usually be very project-specific, but I have certain things in mind that will make the system a lot more flexible for various genres to use. When the time comes, I'll be discussing this a lot more thoroughly and seeking further suggestions as necessary.

@SBG
I'm looking forward to reading what you have to say! :)
Travesty: 3D Survival - WIP >>> Forum Topic
University of Washington (BABA)
-REGT- Ramchuk Entertainment Games Team
Strategy/Action/Adventure
Copyrighted©2008-2017

User avatar
SBG
001 Subscriber
 
Joined: Thu Jun 17, 2010 8:37 pm
Location: merca

Re: Random Dungeon Generator (RDG)

Postby SBG » Sun Jun 26, 2016 2:35 pm

Tried it, and it's a fantastic start! Brilliant work man! At low numbers it worked beautifully. At higher numbers(50+ rooms and such), it was unresponsive for so long that I gave up and deemed it crashed. Let me point out that I've had a lot of my RAM occupied for a long time with other software that I just don't want to cut off, so I really can't place any judgment there at this time.

1. Would you ever use an RDG for personal projects or to aid in development?
Absolutely, as long as it worked fluidly with my project and allowed me to apply manual alterations after generating.

2. What qualifies as an exceptional dungeon generator?
See last answer. I guess working fluidly with my project implies that any feature I currently use to create my maps manually would be available in the generator, and then being able to make alterations. I don't think I see exceptional or not in a dungeon generator. More like usable or not usable for me.

3. What are 3 'must-have' features that an RDG should have?
1. Ease of use/accessibility
2. Adaptability for individual projects
3. Solid, bug free programming. Game devs already have their hands full with bug squashing of their own creation. A product like this is designed to make things easier for the dev, not add another layer of headaches.

4. Do you see REGT's RDG as unique or following a common trend?
I'd call it unique in the fact that it's main purpose is not just a sandbox to play with, but a tool to help devs. Procedural generation isn't really a trend either. It's been commonly used through all of gaming history, just now some games put emphasis on it for selling points. I don't think that applies here.

5. How much would you be willing to pay for an RDG of current/future quality?
Free limited version, $10-15 fully functional personal version, $99-125 commercial license.

User avatar
Dunce
001 Forum Master
 
Joined: Sun Apr 08, 2007 3:33 am
Location: Arkansas, USA

Re: Random Dungeon Generator (RDG)

Postby Dunce » Sun Jun 26, 2016 4:09 pm

Gimme this, NOW!

Me want please.
Image

User avatar
Scaveleon
001 Translator
 
Joined: Thu Aug 09, 2007 4:15 pm
Location: Scandinavia

Re: Random Dungeon Generator (RDG)

Postby Scaveleon » Sun Jun 26, 2016 6:03 pm

RamchuK_Ntertainment wrote:My approach is what I think of as semi-realistic and this goes to support my view of dungeons as not simply dungeons that one would see in a dungeon crawler. Instead, I view them as structural systems that can be grown into complex facilities. The dungeon vibe simply has to stay there, for the simple reasons of calling it a dungeon, but the approach and the final product is something far more interesting. This partially answers the question of application, but leaves performance in question. I, of course, can happily announce that I have not failed to overlook this either. Due to the conservative approach to analytical tasks, the generator is capable of generating a 100x100 tiled map in less than 8 seconds on average (performance varies by system). This takes into account 100 rooms of varied sizes in 3D. That is nearly 85% of the world, usually, or 8,500 tiles, which is 8,704,000 pixels. Surely, this is only the beginning, but already rather impressive at the current (not very) optimized stage.


The problem is that these numbers are not very useful in terms of algorithms. You can optimize your script by studying the asymptotic notation of all your algorithms; since your program as a whole is held down by your worst-running algorithm, if you can pin down your whole program in Big O notation, then you will know where to optimize if you know your algorithms well.

Finally, Big O notation will tell how efficient your program truly is, as the input approaches infinity.
MIV wrote:It's definitely not The Epic Game of Loladin as the screenshot said.
Nor is it The Epic Game of Loladin Happy Face.

SoundCloud
Project blog

User avatar
RamchuK_Ntertainment
Ultimate 001 Member
 
Joined: Tue Sep 29, 2009 10:50 pm
Location: Seattle, Washington

Re: Random Dungeon Generator (RDG)

Postby RamchuK_Ntertainment » Wed Jun 29, 2016 1:20 pm

@SBG
Did you happen to try the current version again after the prolonged standby? I’m curious to know if this is a recurring/common issue. I nevertheless looked into the script once again and realized a flaw with the connections system, so I have made the necessary changes to make it better for the next version.

I apologize to anyone experiencing long waits or simply unresponsive behavior; the generator is still a WIP.

@Dunce
I appreciate your enthusiasm! :)

@Scaveleon
I was simply referencing the amount of tiles that most common generators would have to work with in order to draw the extensive map. In my particular case, these numbers are simply used for determining the amount of potential work to be performed by the Engine/CPU. I do see where you are coming from, however, and thank you for bringing up the Big O Notation! I will have to look into that.


UPDATE
After carefully reviewing the comments made by the community up until this point, I have taken the time to implement some nifty new features that I hope you will all like. To start, I’d like to mention that my RDG is designed to be user-friendly, just as 001 Game Creator has always aimed to be. This means that beginner users will have very little difficulty working with the default setup in order to craft their next awesome project. To partly live up to this standard, I have added ‘Parameter Regulation’ or PR. What PR is designed to do is make sure that set parameters are proper and don’t lead to an infinite loop of any kind. You may very well think of this function as safety-driven. Unfortunately, it’s still possible to break the script through wrongful inputs like letters instead of numbers, but I am assured that this was not even worth mentioning, as its common ground.

Additionally, rooms are now generated on range-based values, allowing spontaneous results every time. The room generation algorithm is subject to parameter regulation and something that beginner users will truly love is the calculated maximum of rooms allowed per map. Given the desired settings, PR will make sure that one does not overdraw the safe limit of rooms. NOTE: Currently, the limit is set to the most maximal value and if this proves to be problematic in the future, I will provide more breathing room. What this really means is that you don’t have to worry much about calculating the possible rooms or the desired value at any stage; just plug in your best guess and let the generator do the rest. Something else to mention though, is that I have also added a distance limiting parameter that allows users to specify the maximum distance desired between rooms. To give everyone a better idea of the effects, here is an example with the default minimum setting:
room_distance.png

Moving along, the connections system is one that I hope to revamp entirely at some point, but at the given moment, I’m following the set trajectory. I realized that it was very buggy and didn’t offer ‘good enough’ results, as some rooms may have too many connections and others too few. For this very reason, I’m introducing two new parameters; Connections & Connection Probability. Instead of looking at connections from a ‘desired’ perspective, I look at connections from a ‘potential’ perspective. Users can specify the amount of connections to limit, but there will never be a guarantee of any more than just one connection. The probability parameter gives users control over how likely there are to be other connections. I found this to be a rather reasonable solution to what I previously employed. The results provided that while rooms are fairly small, the current system gives enough breathing room to generate complex connection areas and some that are basic. In other words, a fair variety for different needs. Like rooms, connections are also subject to regulation and have a set attempt limit now as well, the limit being default to the room's perimeter value.

Finally, in case you were wondering about the green pointers shown in the image above, they represent the player’s spawn location. I introduced a basic Player Positioning System (PPS) that will fit most user needs. Parameter PPS Random allows for easy toggling of random player placement and PPS Other further manipulates the spawn system by taking into account the desired preference of either the world’s center or a random edge. While basic, it gives enough control for quick and easy player placement.
Travesty: 3D Survival - WIP >>> Forum Topic
University of Washington (BABA)
-REGT- Ramchuk Entertainment Games Team
Strategy/Action/Adventure
Copyrighted©2008-2017

Next

Return to Resource, Story and Level Design

Who is online

Users browsing this forum: No registered users

cron