• ✨ ARCHIVE MODE ✨
    The forum has now been set to read-only mode, no new posts, resources, replies etc will not be possible.
    We recommend you join our Discord server to get real-time response: Discord Invite Link

Make the pokemon and items data into .dats

Status
Not open for further replies.

DracoHouston

Kolben Developer
Contributor
Apologies for making so many demands for mod support, but here is an idea to speed up the progress of this game, and allow more comprehensive mods.

The maps and scripts are already .dat files in the game folder, and people have been able to make patches fixing mapping and scripting bugs, the advantages of having this for a big porting job like this should be obvious :) But what about the pokemon and items?

People could try and fix things like ember not having an animation for hitting the target yet, or how there aren't any passives except overgrowth. The egg Mr Pokemon gives you could be added by someone who wants to fix the quest up, instead of relying on the save registry to store it. We could take on some of the busy work.

there are risks that people will edit the files but a simple consistency check on the .dat files would probably prevent coop games where 1 user has modded data (but if they all had the same mod that could be allowed too, at least until you figure out some way to manage mods while keeping the base game data pure). if the exe knew the md5 hashes of your data files as they where when shipped with that build it could make hashes of the files stored locally and compare them, to see if any are modded, and the game could inform the user they are using an unsupported mod (ie. don't pm nilllzz about problems with it ;)) and disable things like achievement systems etc where you don't want any potential cheating

For mods it could open up a bunch of possibilities, I don't know if I would take on a pokemon 3d total conversion mod project but I'd love to see it be possible, and someone might make something cool (which is more youtubes of your game for people to click and discover the game)
 

Trangar

Bug Catcher
It's a good idea but I speak from experience it's something that's really difficult to implement. Also when implemented you could probably not make something like an ember-hit fix, only add pokemon based on already in-game sprites and linking those pokemon to certain abilities at certain levels.

Not saying it's not a bad suggestion, but it's fairly limited
 

Saruish

Dragon Tamer
Apologies for making so many demands for mod support, but here is an idea to speed up the progress of this game, and allow more comprehensive mods.

The maps and scripts are already .dat files in the game folder, and people have been able to make patches fixing mapping and scripting bugs, the advantages of having this for a big porting job like this should be obvious :) But what about the pokemon and items?

People could try and fix things like ember not having an animation for hitting the target yet, or how there aren't any passives except overgrowth. The egg Mr Pokemon gives you could be added by someone who wants to fix the quest up, instead of relying on the save registry to store it. We could take on some of the busy work.

there are risks that people will edit the files but a simple consistency check on the .dat files would probably prevent coop games where 1 user has modded data (but if they all had the same mod that could be allowed too, at least until you figure out some way to manage mods while keeping the base game data pure). if the exe knew the md5 hashes of your data files as they where when shipped with that build it could make hashes of the files stored locally and compare them, to see if any are modded, and the game could inform the user they are using an unsupported mod (ie. don't pm nilllzz about problems with it ;)) and disable things like achievement systems etc where you don't want any potential cheating

For mods it could open up a bunch of possibilities, I don't know if I would take on a pokemon 3d total conversion mod project but I'd love to see it be possible, and someone might make something cool (which is more youtubes of your game for people to click and discover the game)
I agree. plus this will let alot of us come up with alot of quests and items and such. completely.
 

DracoHouston

Kolben Developer
Contributor
It's a good idea but I speak from experience it's something that's really difficult to implement. Also when implemented you could probably not make something like an ember-hit fix, only add pokemon based on already in-game sprites and linking those pokemon to certain abilities at certain levels.

Not saying it's not a bad suggestion, but it's fairly limited
I'm making an RTS game in UDK and I've exposed pretty much every system to external data. It can be a huge PITA to go through and change a system like whatever handles pokemon in this to take data from somewhere else, but it is possible. At one point in my project I switched from text files to archetypes stored in unreal content packages that people can edit with unrealed. Just about everything had to have tiny little changes everywhere and oh my god it took forever. I've rewritten my HUD 3 times for some big backend change and hated doing it. But sometimes these things are worth doing, and the sooner they are done the less tiny little changes and annoying bugs you have to go through when you do it.

I am under no illusions that nilllzz can just wave a magic programmer wand at his code and have this out by next build, but with so much already driven by data (right down to the texture coords you give the engine to draw the things that make up maps) if everything was exposed like this he could probably get this done faster, and have a very flexible pokemon-like engine. Add your future map editor to that and you have a recipe for interesting mods and maps. Updates that only affect the data can be smaller as well (like, post 1.0 ;))

I hope I don't sound too demanding, because again, it is not a good time to go through and refactor your systems, which other systems use etc. but i am a big fan of engines just being engines and the game itself being external. It is how FPS engines have been since quake. auron, a former game developer that was based in my state, won the funding for their first game because they walked in with 2 prototype games running on the same engine (the publisher liked the sci fi one, it became dark reign). keeping your game out of your engine has a lot of benefits. In the end it is up to nilllzz if those benefits are worth it.

edit: if pokemon were exposed to text files you'd totally need the moves in text files as well, IMO, because otherwise you couldn't make new moves or fix broken ones etc ;)
 

Saruish

Dragon Tamer
It's a good idea but I speak from experience it's something that's really difficult to implement. Also when implemented you could probably not make something like an ember-hit fix, only add pokemon based on already in-game sprites and linking those pokemon to certain abilities at certain levels.

Not saying it's not a bad suggestion, but it's fairly limited
I'm making an RTS game in UDK and I've exposed pretty much every system to external data. It can be a huge PITA to go through and change a system like whatever handles pokemon in this to take data from somewhere else, but it is possible. At one point in my project I switched from text files to archetypes stored in unreal content packages that people can edit with unrealed. Just about everything had to have tiny little changes everywhere and oh my god it took forever. I've rewritten my HUD 3 times for some big backend change and hated doing it. But sometimes these things are worth doing, and the sooner they are done the less tiny little changes and annoying bugs you have to go through when you do it.

I am under no illusions that nilllzz can just wave a magic programmer wand at his code and have this out by next build, but with so much already driven by data (right down to the texture coords you give the engine to draw the things that make up maps) if everything was exposed like this he could probably get this done faster, and have a very flexible pokemon-like engine. Add your future map editor to that and you have a recipe for interesting mods and maps. Updates that only affect the data can be smaller as well (like, post 1.0 ;))

I hope I don't sound too demanding, because again, it is not a good time to go through and refactor your systems, which other systems use etc. but i am a big fan of engines just being engines and the game itself being external. It is how FPS engines have been since quake. auron, a former game developer that was based in my state, won the funding for their first game because they walked in with 2 prototype games running on the same engine (the publisher liked the sci fi one, it became dark reign). keeping your game out of your engine has a lot of benefits. In the end it is up to nilllzz if those benefits are worth it.

edit: if pokemon were exposed to text files you'd totally need the moves in text files as well, IMO, because otherwise you couldn't make new moves or fix broken ones etc ;)
I'm actually messing around with the game studio atm . trying to figure it out and figure out how to open the files to the game using it to help with development.
 

DracoHouston

Kolben Developer
Contributor
Mr Timoshi, sorry to bring up a post you've deleted but what you're concerned about is already possible, by editing the save files. Well, it will be possible once hyperbeam is added. You can totally have a shiny level 100 rattata with 999 stats already. with the whole effort value thing (i read up on it the other night, i knew rare candy leveling was bad but didnt know why) it is hard to do a check on the stats, because it isn't as simple as is level x, this stat will be y etc. but there are probably ways. I'm not the pokemon expert I once was, someone with more knowledge of the inner workings of pokemon leveling (nilllzz probably knows a lot seeing as he's implemented pokemon leveling) could perhaps come up with a good anti-cheat solution.

The data files themselves can just be checked to see if they are exactly the same as they were when the build shipped, that one is a solved problem. FPS games have been doing consistency checks on files to have 'pure' servers where no one has mods for ages. often they have a fallback somewhere to allow modded users to play on pure servers, with all mods forced off. this sort of this does require the game to be built around it though, its probably going to be a big job.
I'm actually messing around with the game studio atm . trying to figure it out and figure out how to open the files to the game using it to help with development.
there's a free tool on the net somewhere for extracting textures etc IIRC. have you gotten new music to convert and work ingame? I tried the other day and must have used the wrong converter or whatever. Did compiling new textures from PNGs like nilllzz said work fine? When I couldn't get the music to work I gave up and didn't try the textures.
 

Saruish

Dragon Tamer
Mr Timoshi, sorry to bring up a post you've deleted but what you're concerned about is already possible, by editing the save files. Well, it will be possible once hyperbeam is added. You can totally have a shiny level 100 rattata with 999 stats already. with the whole effort value thing (i read up on it the other night, i knew rare candy leveling was bad but didnt know why) it is hard to do a check on the stats, because it isn't as simple as is level x, this stat will be y etc. but there are probably ways. I'm not the pokemon expert I once was, someone with more knowledge of the inner workings of pokemon leveling (nilllzz probably knows a lot seeing as he's implemented pokemon leveling) could perhaps come up with a good anti-cheat solution.

The data files themselves can just be checked to see if they are exactly the same as they were when the build shipped, that one is a solved problem. FPS games have been doing consistency checks on files to have 'pure' servers where no one has mods for ages. often they have a fallback somewhere to allow modded users to play on pure servers, with all mods forced off. this sort of this does require the game to be built around it though, its probably going to be a big job.
I'm actually messing around with the game studio atm . trying to figure it out and figure out how to open the files to the game using it to help with development.
there's a free tool on the net somewhere for extracting textures etc IIRC. have you gotten new music to convert and work ingame? I tried the other day and must have used the wrong converter or whatever. Did compiling new textures from PNGs like nilllzz said work fine? When I couldn't get the music to work I gave up and didn't try the textures.
havent gotten that far yet.... it very confusing. I'm trying to figure out how to open the project files... but... It not letting me .

Edit: do you know the name of the thing that lets you extract the stuff?
 

DracoHouston

Kolben Developer
Contributor
havent gotten that far yet.... it very confusing. I'm trying to figure out how to open the project files... but... It not letting me .

Edit: do you know the name of the thing that lets you extract the stuff?
XNA compiles your content into a binary format, it is done by the IDE (microsoft visual C#) when the game compiles. In theory we can use the template windows game (make a new project) to drag content into the project and have it compile those .xnb files for us, which should work with the game. We don't (and probably should not ) have access to the source code nilllzz has for pokemon.exe, and unless he leaves source files behind like in the songs folder, you don't have the source for content he used either. I will look into extracting textures and recompiling them into something xna can use today and if i get it to work i'll post about it
 

Saruish

Dragon Tamer
havent gotten that far yet.... it very confusing. I'm trying to figure out how to open the project files... but... It not letting me .

Edit: do you know the name of the thing that lets you extract the stuff?
XNA compiles your content into a binary format, it is done by the IDE (microsoft visual C#) when the game compiles. In theory we can use the template windows game (make a new project) to drag content into the project and have it compile those .xnb files for us, which should work with the game. We don't (and probably should not ) have access to the source code nilllzz has for pokemon.exe, and unless he leaves source files behind like in the songs folder, you don't have the source for content he used either. I will look into extracting textures and recompiling them into something xna can use today and if i get it to work i'll post about it
Ah ok. I only need the ones from texture anyway . I believe....and maybe items for the pc/team rocket questes and to add team rocket into it.... maybe adding more characters and such.
 

DracoHouston

Kolben Developer
Contributor
Ah ok. I only need the ones from texture anyway . I believe....and maybe items for the pc/team rocket questes and to add team rocket into it.... maybe adding more characters and such.
From what I can tell, the files for items etc are just the sprites and the actual item is hard coded, so adding sprites wouldnt let you make new items, just use those sprites in the maps. the same goes for pokemon. there are mewtwo sprites in the game files but you can't make a mewtwo yet etc
 

DracoHouston

Kolben Developer
Contributor
An idea I just had about anti-cheat, I had a go at soulsilver and there was a game mode that downscales pokemon over level 50 back to 50. bulbapedia can tell me the memory locations of stuff in pokemon blue so surely someone has figured out the formula they use to bring pokemon down to 50 with the correct stats. If it is possible to know what pokemon should have at level 50 then other levels should be possible. if the stats are too out of a certain range of possible values available for that level (you'd have to record how many stat boosts you used on the pokemon so that could be taken into account) the pokemon is flagged as a cheater and a warning given to the opponent that the other party has invalid pokemon etc
 

Saruish

Dragon Tamer
An idea I just had about anti-cheat, I had a go at soulsilver and there was a game mode that downscales pokemon over level 50 back to 50. bulbapedia can tell me the memory locations of stuff in pokemon blue so surely someone has figured out the formula they use to bring pokemon down to 50 with the correct stats. If it is possible to know what pokemon should have at level 50 then other levels should be possible. if the stats are too out of a certain range of possible values available for that level (you'd have to record how many stat boosts you used on the pokemon so that could be taken into account) the pokemon is flagged as a cheater and a warning given to the opponent that the other party has invalid pokemon etc
That would work. back in the original s/c/g you couldnt get ad-normal pokemon from red or blue due to their stats being so high. if you got them from the coast of cenibar.

From what I can tell, the files for items etc are just the sprites and the actual item is hard coded, so adding sprites wouldnt let you make new items, just use those sprites in the maps. the same goes for pokemon. there are mewtwo sprites in the game files but you can't make a mewtwo yet etc
Ah I see. But there still a script for it. hmmm.... or at least you would think there was for the items useage. other wise the items wouldnt work the way they should. all I was wanting to do with items is add the coupons for the market quest.


Edit: ah well I havent even added the pc options yet so the questes arent ready yet xD
afk going to do that now.
 

DracoHouston

Kolben Developer
Contributor
Ah I see. But there still a script for it. hmmm.... or at least you would think there was for the items useage. other wise the items wouldnt work the way they should. all I was wanting to do with items is add the coupons for the market quest.


Edit: ah well I havent even added the pc options yet so the questes arent ready yet xD
afk going to do that now.
Have you found files with item info in them? AFAIK all you can do is give the player items with a script command, which takes an index number.
 

Saruish

Dragon Tamer
Ah I see. But there still a script for it. hmmm.... or at least you would think there was for the items useage. other wise the items wouldnt work the way they should. all I was wanting to do with items is add the coupons for the market quest.


Edit: ah well I havent even added the pc options yet so the questes arent ready yet xD
afk going to do that now.
Have you found files with item info in them? AFAIK all you can do is give the player items with a script command, which takes an index number.
true. but I can still make the basic script just not the whole thing yet.
 
Status
Not open for further replies.
Top