• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

[Discussion] Community-made Mystery Dungeon Starter Kit

Status
Not open for further replies.

UnderMybrella

Wandering Programmer
280
Posts
13
Years
Just listing things off, for the wild Pokémon
- Use pathfinding to locate target Pokémon (Main character, partner, teammate, decoy)
- Have a species, stats, and 4 moves, as well as IQ
- Limit as to amount of Pokemon per floor? (Excluding kecleon swarms) Means less potential lagggg (Imagine 1000 Pokemon on a floor....)
Anything I'm missing?
Similar for teammates, apart from limit for Pokemon per floor

Also the mystery dungeon battle scenes aren't exactly the same at all. Most of the battles in PMD happen in maps without transitions.

Sorry if I was unclear, the actual battle scene would come from the minigame, but the logic could mostly come from the battle script. The minigame happens on the map
 
Last edited:

Rayquaza.

Lead Dev in Pokémon Order and Chaos
702
Posts
12
Years
Just listing things off, for the wild Pokémon
- Use pathfinding to locate target Pokémon (Main character, partner, teammate, decoy)
- Have a species, stats, and 4 moves, as well as IQ
- Limit as to amount of Pokemon per floor? (Excluding kecleon swarms) Means less potential lagggg (Imagine 1000 Pokemon on a floor....)
Anything I'm missing?
Similar for teammates, apart from limit for Pokemon per floor



Sorry if I was unclear, the actual battle scene would come from the minigame, but the logic could mostly come from the battle script. The minigame happens on the map

True, as well as level restrictions. I think it'd be helpul if you were to contribute if possible. You don't have to but you know more than I do about scripting.

A quick update to show what I have been abled to do as a tileset test:

Spoiler:
 
Last edited:

UnderMybrella

Wandering Programmer
280
Posts
13
Years
True, as well as level restrictions. I think it'd be helpul if you were to contribute if possible. You don't have to but you know more than I do about scripting.
Sure! At first, for scripting, I won't be much help, unfortunately, however, as I start leaning a bit more (And mucking around with Essential Scripts), I'll see what I can do!

Ok, I looked into the scripts. At the moment, I have no idea how to do this, but, for the most efficient way, for enemies, create the events via a script. Anyone know how to do this?
 
Last edited:

Varion Bluefire

A.K.A The Glitch
655
Posts
11
Years
  • Age 29
  • Seen Jan 3, 2015
Yes, storage, banks, and shops.
I can try. I've already a wise know-how for the Poké Bank.
 

Rayquaza.

Lead Dev in Pokémon Order and Chaos
702
Posts
12
Years
Sure! At first, for scripting, I won't be much help, unfortunately, however, as I start leaning a bit more (And mucking around with Essential Scripts), I'll see what I can do!

Ok, I looked into the scripts. At the moment, I have no idea how to do this, but, for the most efficient way, for enemies, create the events via a script. Anyone know how to do this?

That's great. My best guess is setting the events to parallel process and calling a script from there, maybe even using common events. I'll look into it also.

Yes, storage, banks, and shops.
I can try. I've already a wise know-how for the Poké Bank.

That would be usefull, as the pokébank stores variables for the amount deposited and the savings present. It can also be applied to storage as well if I'm not mistaken.
 

Varion Bluefire

A.K.A The Glitch
655
Posts
11
Years
  • Age 29
  • Seen Jan 3, 2015
That's great. My best guess is setting the events to parallel process and calling a script from there, maybe even using common events. I'll look into it also.



That would be usefull, as the pokébank stores variables for the amount deposited and the savings present. It can also be applied to storage as well if I'm not mistaken.

I'll go get the Poké Bank script, and test it still works.
And I'll try figure out how to item.
 

UnderMybrella

Wandering Programmer
280
Posts
13
Years
That's great. My best guess is setting the events to parallel process and calling a script from there, maybe even using common events. I'll look into it also.



That would be usefull, as the pokébank stores variables for the amount deposited and the savings present. It can also be applied to storage as well if I'm not mistaken.
Two things
1, I meant about actually creating the event tiles. As far as I know, there IS a way, hidden, but existant.
2. I found a slight problem. a) The MD tiles on spriters-resource are 24x24, and resizing to 32x32 looks horrible.....
 

Maruno

Lead Dev of Pokémon Essentials
5,285
Posts
16
Years
1, I meant about actually creating the event tiles. As far as I know, there IS a way, hidden, but existant.
Dependent events do this, although how they work is really quite fiddly. What I'm going to say is based on what I've just learnt after reading through the scripts, and is incomplete but possibly helpful information.

$PokemonTemp.dependentEvents is an instance of the class DependentEvents. This class contains an array realEvents, each entity of which is a Game_Event. These Game_Event are created in def createEvent, and includes things like setting its position, graphic and event pages (which in this case is a copy of the specified Common Event). Note that Game_Event is the object side of an event, and RPG::Event is the mechanics side.

$PokemonGlobal.dependentEvents is an array of various information about each dependent event, and there's a complex relationship between it and $PokemonTemp.dependentEvents (which is an array of Game_Events). That's where fiddly happens, but you probably won't need to worry too much about it and can just copy-paste everything.

Now, dependent events only update their positions when the player moves (so that they follow the player, obviously), and every reference to the dependent events in the other script sections are either doing this updating or are preventing the player from doing things they shouldn't be doing if they have a dependent event (e.g. ride a bicycle, use Fly). The behaviour you'll want for the roaming Pokémon is substantially different, as they should wander around freely in some random part of the map, so you'll need to edit different scripts instead (every script which updates events, I suppose) in order to make them also update the generated events too. Getting that sorted is half of the main problems (as far as I know of Mystery Dungeon, having barely played it). The other half is the battling, plus figuring out what to do with the events once they've "died" (e.g. make them wait a bit and then turn them into a random new Pokémon, or just dispose them and create new ones if desired?).



Obviously the scripts would all require massively overhauling, but I think it's worth it. For one, you can generate new Pokémon events on the fly without the map-maker having to worry about them. Another is that they're kept separate from the main type of events, which you may want to do different things with. Plus, the foundation already exists; you'll just need to change some behaviours (i.e. how/when they move around, what Pokémon they should be, etc.) which are comparatively minor things. Once it works, it'll be convenient.
 

UnderMybrella

Wandering Programmer
280
Posts
13
Years
Dependent events do this, although how they work is really quite fiddly. What I'm going to say is based on what I've just learnt after reading through the scripts, and is incomplete but possibly helpful information.

$PokemonTemp.dependentEvents is an instance of the class DependentEvents. This class contains an array realEvents, each entity of which is a Game_Event. These Game_Event are created in def createEvent, and includes things like setting its position, graphic and event pages (which in this case is a copy of the specified Common Event). Note that Game_Event is the object side of an event, and RPG::Event is the mechanics side.

$PokemonGlobal.dependentEvents is an array of various information about each dependent event, and there's a complex relationship between it and $PokemonTemp.dependentEvents (which is an array of Game_Events). That's where fiddly happens, but you probably won't need to worry too much about it and can just copy-paste everything.

Now, dependent events only update their positions when the player moves (so that they follow the player, obviously), and every reference to the dependent events in the other script sections are either doing this updating or are preventing the player from doing things they shouldn't be doing if they have a dependent event (e.g. ride a bicycle, use Fly). The behaviour you'll want for the roaming Pokémon is substantially different, as they should wander around freely in some random part of the map, so you'll need to edit different scripts instead (every script which updates events, I suppose) in order to make them also update the generated events too. Getting that sorted is half of the main problems (as far as I know of Mystery Dungeon, having barely played it). The other half is the battling, plus figuring out what to do with the events once they've "died" (e.g. make them wait a bit and then turn them into a random new Pokémon, or just dispose them and create new ones if desired?).



Obviously the scripts would all require massively overhauling, but I think it's worth it. For one, you can generate new Pokémon events on the fly without the map-maker having to worry about them. Another is that they're kept separate from the main type of events, which you may want to do different things with. Plus, the foundation already exists; you'll just need to change some behaviours (i.e. how/when they move around, what Pokémon they should be, etc.) which are comparatively minor things. Once it works, it'll be convenient.
Thankyou! I knew there was something already there, but I wasn't sure where! Thanks!
 

Elaitenstile

I am legend
1,908
Posts
11
Years
  • Age 24
  • Seen Feb 27, 2015
I would hope for it to be either on VX or VX Ace. Seeming as it would get the community off of XP. As well as the newer version of RGSS and high aesthetic level.

Hmm, I'd suggest we do this for XP, although peeople might switch to Ace soon.

I think there's a random dungeon generator stored somewhere, but we'll need to randomize all mystery dungeons. This can be really hard, but I think we can put it like this.

First of all, the wall should be an scripted autotile that covers the whole Mystery Dungeon floor.
Sizes : 64x64 - Small Dungeons (Tiny Woods, Drenched Bluff, Mt. Steel)
128x128 - Mediocre (most) Dungeons
160x160 - Large Dungeons (Sky Tower, Temporal Tower)
We'll define a room. Inside it we can apply full line of sight and area effects. A room can be minimum of size 5x5, and maximum 17x17 tiles. Which means 4x4 to 16x16 of walkable space. We start this at the start of the map, at the top-left corner. The we can define paths. These will only give line of sight for 3x3 tiles. These paths will be defined through openings in a room, which can be limited to five. They shall connect two rooms. This will be the basic structure. Additionally, we can end a path without a connection, thus making them one of PMD's infamous Dead Ends. It should also be possible to connect a path to another, thus making it possible to turn the pathway. We should also ensure that no two paths should touch each other, and a one-tile wall at minimum should separate them.

I think that'll do for starters. Then we can add up how to set Terrian Tags.


I believe the above stack of information should help define a RANDOM MYSTERY DUNGEON, and thus qualify the very essence of the game. Also, I have just put up a stack of information with the hope that one day I'll compile this into a script.

Additionally, I believe the Mini-Map is also a feature I'd like to discuss in great lengths. It's something like a GPS system, and a very complex device that should be applied to a length of discussion.
 

Maruno

Lead Dev of Pokémon Essentials
5,285
Posts
16
Years
There's a bunch of random dungeon generator scripts around the Internet, as well as papers discussing them. Essentials itself has a random dungeon generator. There's no need to try making something from scratch.
 
664
Posts
15
Years
Another idea popped into my head recently: Instead of scripting from scratch; we use CNG's kit as a base as it already has basic PMD style scripts (but no battle system). I permission is required then I'll ask him.

Sure, go ahead.
I didn't have much by way of useable systems then.

Precisely, using that graphic that you attached would be ideal. If I remember rightly CNG also made a dual screen script that put the map on the bottom and parralaxes at the top.[/SPOILER]

I did! Here's the demo: http://www.mediafire.com/?00rr68fn4lc8ffo

Good luck with this, it's a big undertaking creating a StarterKit from scratch.
I was considering continuing with mine (I have a lot of the base systems coded in VX Ace), but i'm not sure how committed i'd be to the project. I've learnt a lot about scripting since I last attempted, so who knows.
 

Rayquaza.

Lead Dev in Pokémon Order and Chaos
702
Posts
12
Years
@★Hoenn★,
Just found something useful here. It's a random dungeon generator for VX (I think) with instructions that are to complicated for me to understand but I think others may be able to.

Spoiler:

Sure, go ahead.
I didn't have much by way of useable systems then.



I did! Here's the demo: http://www.mediafire.com/?00rr68fn4lc8ffo

Good luck with this, it's a big undertaking creating a StarterKit from scratch.
I was considering continuing with mine (I have a lot of the base systems coded in VX Ace), but i'm not sure how committed i'd be to the project. I've learnt a lot about scripting since I last attempted, so who knows.

Thanks. Any help would be appreciated greatly.
 
664
Posts
15
Years
Well depending on which RPG Maker version you're using for this, I may be able to contribute a few scripts.

If it's VX Ace, then it's more than likely I can, if not then I can't make any promises!
 

Rayquaza.

Lead Dev in Pokémon Order and Chaos
702
Posts
12
Years
Well depending on which RPG Maker version you're using for this, I may be able to contribute a few scripts.

If it's VX Ace, then it's more than likely I can, if not then I can't make any promises!

It's more than likely to be in VX or ace because one of my aims for this kit's succession is to get as many users as possible off RMXP.
 

Rayquaza.

Lead Dev in Pokémon Order and Chaos
702
Posts
12
Years
No, XP is fine. I work with it for Skyblaze but it has been around far too long and I think we need to see other RPG makers used for games.
 
Status
Not open for further replies.
Back
Top