hello! I have played a lot of Kero Blaster (from the creator of cave story) and you should probably buy it and play it : http://www.playism-g...es/keroblaster/
It's really good
but what's also great is that I've been diving into the scripting and level data.
Pink Hour is a free side-game to Kero Blaster (http://www.playism-g...games/pinkhour/) and it uses the same engine (and as such same level and scripting etc etc) which means I've got more stuff to play with AND you don't gotta buy Kero Blaster to start hacking away. which is super cool
First I'll start with the files: (i'm using Pink Hour to show all this stuff, same stuff is in Kero Blaster mostly)
you've got 8 folders in here, here's a quick rundown on what's inside each one:
assist - Some weird stuff! I'm yet to understand most of it but I am pretty sure that this is all stuff that Pixel's level editor uses. A closer look at the files inside:
attribute.png - looks like debug tiles for all the types of collision. not sure what everything is yet, but you can see slopes and damaging tiles for sure.
default.pxeve - this is a template level script, i'll go into the scripting language more in a bit.
flags.txt - i'm pretty sure that this is just a reference file, for data that is used maybe in the level data files? this will no doubt come in handy when i dive further in.
scroll.txt - haha I dunno, something to do with scrolling of course but mhm probably not important
unittype.png - pretty much definitely the "entity palette" for use in the level editor
unittype.txt - a handy list of what all the entities are. definitely will come in handy.
bgm - surprisingly the music data. all the music is .ptcop format, which is the music format that PXTone exports (http://www.cavestory...one-collage.php), a music tool created by the developer of this game.
field - level data! this is interesting stuff!! but!! its not plain text unfortunately. I'll go into what i've found in level data further on.
img - most of the graphical data! editing this stuff is super easy. (just make sure you keep it indexed! i haven't checked yet but i'm pretty sure it doesn't support full colour pngs, i'll update this when i bother checking haha)
localize - translations are stored here, some graphical pieces are also in here.
profile - save data, yeah?
se - sound effects! in .ptnoise format which iirc can also be created with one of Pixel's tools.
text - scripting data!! even more interesting! all the scripts are in plain text, so you can very easily start editing things I'll go into the scripting stuff now
--+SCRIPTING IN KERO BLASTER AND PINK HOUR+--
Scripting takes a really simple format, and if you've done a little coding it shouldn't be too difficult to pick up.
You've got 3 types of code, Labels and 2 kinds of Functions.
Labels are lines that you can jump to, with some special labels being called by Entities or through some other method. The first of these special labels is:
which you can see at the start of every script file. the functions after this label are called when the player has entered the map!
Functions are all preceded with a "<" and are 4 characters long. Functions that a followed by square brackets (like "<muLd[kb_shop_a]" you can see above) are taking an argument (sometimes more than one)
You can put functions on more than one line, as far as I've seen linebreaks don't do anything. Here's a list of just a few useful functions and my rough knowledge of what they do:
//script delay. i think it's in frames. <dely[time] //another delay script, but locked to 60 <dl60 //jumps to a Label, often used to go to a new level, but i'm not exactly sure how it knows this. <jump[Label] //opposite of <fadI, fades out. <fadO //Loads a music file from the bgm folder. argument is any filename, minus the .ptcop extension. <muLd[.ptcop file] //Plays the loaded music. <muLp //Stops the music, if any playing. <muSt //I believe this fades the music in. (though it may fade the screen. I haven't checked properly!) <fadI //ends a block of code. nothing after this command will be executed (i think!! so much i need to double check!!) <exit //goes to the home/title screen. in Kero Blaster this is the Load Game screen. <home
I'll update this more when i find more stuff (i know more scripts but I need to write them up)
--+LEVEL DATA IN KERO BLASTER AND PINK HOUR+--
I am still [i]super[/b] sketchy on how this works exactly so I'm gonna have to do more work before I can do a proper write-up! sorry! Here are some screens to show that I am working on it though!