Jump to content
  • Pokemon Reborn Development Blog

    Hello! My name is Ame and I sometimes get ahead of myself. ^~^
    The others and I may occasionally post updates about how progress on the game is going here!
    hi kids!
    so after talking about things last night, i realized that there were some changes that i could make to the anim file easily that will make things slightly better for everyone while we work on the Way Better stuff. it cuts half a second off the load time! so that's pretty neat.
    but also
    yo what the FUCK was that post yesterday????
    who reads this shit???
    there's a distinct lack of quality here and someone's got to do something about it.
    so without further ado, welcome to today's episode of 
    how not to write a devblog post
    now, out of respect for their privacy, i will not refer to the offending poster by name. they might not even be real. you never know.
    exhibit A:

    so right off the bat, i don't know who the fuck this person thinks they are, but what kind of asshole just refuses to use capital letters???
    do you have an allergy????
    are so you full of shit that it's interfering with your optical nerves and you are unable to see the shift key?
    while we're here, this paragraph (if you can call it that) is entirely incoherent. "blowing up bullshit"? the fuck does that even mean?
    if you have a backlog of bullshit, find a bathroom.
    exhibit B:

    this is actually entirely accurate. no problems here. post was shit.
    exhibit C:
    let's talk about that first section.
    there's a severely unhealthy mixture of technical explanation mixed in with meaningless bullshit. how is this supposed to mean anything for anyone?
    now, to be fair, the subject matter itself is about borderline meaningful bullshit. perhaps the post composition is actually an artistic reference to this, in which: kudos.
    but i don't think so.
    what the fuck does that even mean???
    exhibit D:

    bro what
    sometimes people are just pointless assholes in the internet! get over yourself! in what world does this wind up in a devblog post?
    exhibit E:

    this paragraph false starts twice and fails to even explain anything when it finally settles on a subject. what's a symbol? what's a hash? how does this even pertain to the screenshot you just posted? these are basic questions!

    you're not going to be making shit easier for anyone if you explain it like this.
    now the next bit of this post is actually fine. it's probably the most coherent part of the whole thing. this bit feels like i'm not actively losing brain cells while reading it.
    but, uh oh!
    exhibit F:

    grammar fail!!!!! can i get an XD in the comments???? SO embarrassing. frankly i should probably dm the author to inform them that they don't know what words are.
    the rest of the post is honestly a lot cleaner. it's practically like it was written by an entirely different person!
    it's just too bad that person didn't write the whole thing to begin with.
    so today we're going to have a REAL devblog post. a good one. strong. professional. informative.
    today i'm going to tell you about ✨data structures✨
    this is a tale of Ruby and Marshal.
    obviously ruby is the programming language. marshal is the method of loading/saving ruby objects. 
    the animations file is 14.1 11.3MB. it consists of 1400 PBAnimation objects (as of right now). there are a lot of attributes that belong to each object, but if we're talking about data size, the attributes account for ~750KB of the file size.
    the true villains of this story are the cell arrays.
    so, it's hard to precisely gauge exactly how "large" a specific value is in ruby. data types have specific sizes: in, say, c++ a number between 0-255 is a byte, 256-65535 is two bytes, and those sizes are specifically defined.
    with ruby it's harder to know exactly what data type a number is, or how large an object is. so you just kind of have to guess.
    which brings me to bullshit.

    let's talk hawt features. hitting f6 lets us run arbitrary code. it's great for running little snippets of code like this. we can print out data to the console, rescue people out of emergencies, run single functions from the scripts...
    and, in this case, dump bullshit.
    this line of code has Ruby tell Marshal to make a file that just has a zero in it.
    so if i want to see how large something is, i can just dump it and take a look!

    that 0 is four bytes.
    if you're a compy nerd, you can literally just use the f6 menu to see how big...anything is.
    how big's a pokemon? just save it and find out. how big's a battle? you can just save that too! the possibilities are endless.
    so i did some experimenting. the bulk of the animation file is nested arrays filled with nils and numbers, with some other objects strewn throughout. 
    one such object is the animation timing:

    so a raw timing is 257 bytes.
    i mentioned earlier that you don't necessarily know how large an object really is on observation in ruby. the 0 that i dumped earlier isn't actually four bytes itself- the file that gets dumped includes some overhead that ruby uses to process the object. since the animation timing is a non-standard object, the information about what that object is has to be marshaled out with the object itself.
    so let's say i marshal out five of them.

    the know-it-alls in the peanut gallery are screaming out to their monitors that this is NOT 5*257. and that's true. ruby lied to us :(
    so in reality a raw timing object is 100 bytes.
    now, 100 bytes is nothing. it takes 100 bytes to display a line of text. it probably takes 100 bytes to eat a pizza. 
    100 bytes matters here because we have 1400 animations with (a rough estimate of), say, 5 timings each.
    that's 750KB.
    (i'm actually researching this stuff as i write this post- i hadn't tried dumping multiple objects to find the size of a single one until just now.
    but it turns out this accounts for almost all of the overhead i mentioned a little bit ago!
    so that's kind of weird.)
    now, the main reason i care about this is because of how it affects performance. (i'm sure the people with shit internet connections wouldn't mind some size reductions either.) i have to open and close this game a lot and it has to reload everything in the cache each time you do that. that 14MB animation file takes 3 seconds to load on my computer.
    that's a really long time. ...granted, i'm horribly impatient- the last thing that i want to do while i'm testing something is sit and wait.
    but i also have a beefy compy.
    my processor, according to an arbitrary benchmark, gets a score of about 3200.
    let's take a shit computer.
    like this guy:

    this is probably the minimum spec computer you'd need in order to run the game. coincidentally, it's also one of the most common desktop computers, so it's more likely that at some point you've seen or used one of these.
    this compy, according to that same arbitrary benchmark, gets a score of about 700.
    i'm ~4.5x faster than it is.
    so if it takes me 3 seconds to load the animation file, it takes this computer almost fourteen to load it.
    it'd be worse if you're still using the rxmp engine! 
    (again, dear god, if you are a fan game and you're using our animations via the old method, my sense of justice compels me to fix that. god, imagine spending one minute each turn of a battle loading the animation file.)
    coincidentally the math on this works out great: it takes that poor crap computer about 1 second to marshal 1MB of data. cutting the size of a timing in half would mean cutting load times by half a second. that's not bad! 
    but the timings aren't the biggest contributor to the filesize.
    that honor goes to the cel arrays.
    every cel, every frame, has an array of data associated with it. that array has 27 elements, each containing a number between 0 and 255. i'm pretty sure that, if you count every cel-frame, you'll have a total number of arrays around 240,000.
    so let's call up marshal.

    marshal is screaming.

    so the current system, by necessity, has this ridiculously large file size associated with it.
    what can we do about that?
    1. get rid of the garbage values
    someone (not me, ofc) mentioned last post that 7 of the values in each of the 240,000 arrays are completely unused. that knocks us down from 6.5 million array entries to 5 million. that shaves almost 25% of the filesize right off the bat. it's also practically free- and by practically free, i mean that this change will be out next patch and it cuts 2.8MB off the file. that's three seconds of life that the person with the shitty shitty computer gets back!
    2. maybe don't use numbers for everything
    every parameter in the array is defined as a number, even if it's just to indicate whether a value is true or false. sure, a number is only a few bytes, but a few bytes millions of times matters!

    so let's try this out.

    that's half the size! crazy.
    ...now obviously i can't just do this. most of the parameters need to be more than just a boolean. 
    but the parameters that this can be done for get half their filesize shaved off! it's like shaving another 1.5 values from that array.
    3. symbols are literally magic...
    now, ordinarily, i would try and explain symbols to you right now.
    but that's actually really difficult. integers are easy to understand. strings are concrete.
    symbols are abstract. they're borderline magic. when you use a symbol, you are willing something into existence. want something to be a :THING? just call it a :THING! that :THING will always be the exact same :THING across anything that you do in ruby. let's say that later you need some :STUFF. just call it some :STUFF! again, anything you describe as :STUFF will always be the same :STUFF no matter where in the scripts you talk about :STUFF.
    so let's slap some in that array.

    for the size cost of a number, you can save a :THING!
    and unlike strings, the length of the :THING doesn't matter.
    *googles for good copypasta

    why not?

    same size.
    so symbols are great for defining :THINGs.
    hashes are where they really shine.
    you can think of a hash like an array that can use anything as an index. like, say, a symbol!
    take, for example, this bit of code:

    celhash is my hash, :FOCUS/:PRIORITY is my index (the technical term is "key"), and then :BACK/:FRONT/:BEHIND/etc.... are my symbols. instead of using a number to define a state, i just.... define the state. (this is done a LOT in the PBS rewrites. it's basically the foundational idea behind them. the rewrite just has a ton of symbols that point at each other.)
    now, turning everything into a hash isn't just what makes things smaller.
    hashing an array will have the opposite effect:

    the advantage of a hash is that i get to leave a ton of things blank.
    3.5 ...and hashes let you do sorcery
    you can search for anything in a hash.
    so what happens if you search for something that isn't there?
    the hash will return a default value.
    default values are just
    *chef's kiss
    most of those array elements in each cel-frame are unused. we're not using every parameter at the same time, so those unused parameters just have useless garbage data sitting in them.
    hashes let me ignore those.
    so let's say that i set a default value of 100 for my zoom. any time that my zoom value on a cel-frame is 100, i don't have to record it.
    and that means that i don't have to record... well, most of the array values.
    and that's the secret of how i pulled off doing this:

    *chef's kiss
    4. what does the future hold?
    i've mentioned that every cel-frame has those same 27 parameters regardless of what the cel is actually doing, but one other major disadvantage of the current system is it has the same parameters regardless of what the cell is doing.
    if a cell is sitting still and doing nothing for 60 frames, that nothing will be copied over to each one of the 60 frames.
    also, the user and target both count as cels.
    i had originally made an edit to the file that would use the previous cel as a reference under certain circumstances, but we ran into some problems with partner animations not working and it had to be scrapped. since we're making larger backend changes to the system, i'm inclined to revisit it- it cut a solid third off the animation file when i had tried it before.
    if we managed to squish this file down to 5MB, i could sleep well at night knowing that shitty compy guy gets a whole 9 seconds of his life back each time he opens the game.
    5. hi cass i'm one of the people who uses your animations. is this going to break everything for me?
    wow look at me breaking structural rules to turn this into a Q&A! so meta.
    so, yes.
    right now we're only planning to release bullet point 1. that'll cause some crashes if you don't do anything else and just drop the animation file in.
    there'll be some code that you can copy in to fix everything, though. replace class AnimFrame with this:
    class AnimFrame     X          = 0     Y          = 1     ZOOMX      = 2     ANGLE      = 3     MIRROR     = 4      BLENDTYPE  = 5     PATTERN    = 6     OPACITY    = 7     ZOOMY      = 8     COLORRED   = 9     COLORGREEN = 10     COLORBLUE  = 11     COLORALPHA = 12     TONERED    = 13     TONEGREEN  = 14     TONEBLUE   = 15     TONEGRAY   = 16     LOCKED     = 17     PRIORITY   = 18     FOCUS      = 19 end  
    and then delete these lines:

    bam! your animation loading will suck slightly less ass.
    once we keep going, though, i have no idea what will happen. i'm hoping it'll still be pretty easy to change things- the animation code is almost entirely unchanged between essentials versions, so you might be able to drag and drop our code into your game and it'll just work.
    hard to know for sure.
    see, now this was a post. that fucker from yesterday is so getting fired.

    hi! i bet some of you were expecting this dev blog to never get used again.
    and that's fair.
    we're, like, half a step away from the "final" release. community beta has gone shockingly well. it has blown everyone's expectations out of the water devside. gamebreaking bugs have been few and far between. the site didn't crash (though it came close!). the discord server somehow managed to stay fairly tame despite the massive amounts of hype. (which, if you want to drop some nice words to the devs, check out this thread!)
    we're all like what????
    so the next step between now and the actual release is to just, like, say that one of the patches is the final release.
    there's not really a big process that determines when we're there- eventually we'll hit a patch that seems stable and be like "yeah, okay, i think we can be done with this."
    and that means i can get back to work
    one of the downsides of needing to release something stable is that i can't just run around and break whatever shit i want. so over the past few months i've built up a backlog of bullshit that i'm just absolutely sick of, and now i get to blow all of it up!
    so who wants a coding post.
    (quick disclaimer: this post is kind of a disjointed mess- i got interrupted by some moderation stuff and it definitely threw me off a bit. sorry!)
    the pbs is garbage and i hate it
    90% of people who know what a pbs is only know because they're asking for debug.
    but did you know that the pbs actually does something?
    the pbs is where all of the game-related data is held. it's basically a bunch of text files that have information that, say, defines what a move is, or what a pokemon is, or what teams different trainers have.
    it is organized like actual ass garbage.
    here's what the moves list looks like:

    the fuck are any of those numbers. you need a manual for this shit.
    tm learnsets are in here too! and they look like this:

    ughhhhhhh it's so gross. good luck finding out if someone's missing from that.
    the pbs is a horrible mess to work with.
    - legally required disclosure notice -
    my lawyers have advised me to throw in this disclaimer because otherwise i risk being cancelled by relic castle again.
    this is not what the updated version of essentials uses. it's laid out a little bit more nicely. it's not what we work with because we can't get the newer version.
    all characters in this post are fictional. any relation to persons, living, dead, or not yet in existence, is entirely coincidental.
    - legally required disclosure notice -
    so i have made some ✨changes✨ and i think they're pretty neat so i'm going to tell you about them.
    here's what the moves pbs looks like now:

    omg check that hawt code out.
    i feel like every once in a while i find out some cool new coding trick and feel the need to use it everywhere. today that cool trick is a symbol! and also hashes.
    obviously the primary advantage of this layout is that it's way easier to understand and edit. the additional bonus is that i can change anything about this move whenever i want, however i want.
    all i have to do is, say, add this:

    bam. all i gotta do is slip a line into the code that checks if the move i'm using instantly wins the game, and it just works.
    i can do that with anything!
    it's easy. simple. clean.
    even better: i don't have to compile this shit! ever! i can just load it in the game straight from the text file and the shit just works. it's beautiful.
    it's also not quite ready for primetime yet. i'm mentioning it now because i'm hyped about it and i think it's going to make things a lot easier for future devs.
    the main reason for this post is:
    the animation editor is garbage and i hate it
    right off the bat, let's state some facts.
    the reborn animations are the best in the business.
    the animation squad has put a stupid amount of effort into making some high-quality animations for every move in the game and mon transformations and field changes and probably even more shit than that??? if you even do a cursory skimming of other fangames, you'll see the phrase "uses the reborn battle animations" all over the place.
    go appreciate your friendly local animator. i'll even call them in here to make it easy: @smeargletail, @Voctrode, @VulpesDraconis, @crimsoncrim (on occasion!)
    and if you're not appreciating them for the visual quality, appreciate them for suffering through the animation editor.
    the animation editor is ass.
    the animation editor is ass
    this gets two headings because i really can't overstate what a horrible experience using the animation editor is. longtime readers of my posts will recall that i originally started as an animator!
    i made one animation.
    before mkxp the animation editor was, in my opinion, borderline unusable. people with more patience than me may disagree. i think they're wrong. basic changes took forever to do because you had to click and hold an arrow to make them happen and the rmxp engine stuttered between every single increment.
    the people who got pinged a little earlier have suffered immensely for their art.
    in particular, this is a callout post for vulpes.
    one day, back in--
    holy shit this only happened in january what the actual fuck
    one day, back in january, i had made some changes to try and reduce the file size of the animations. (more on this in a bit!) vulpes popped in one day and was like "hey! this thing isn't working right. i took a look at the code and think this might be the problem."
    she nailed the problem in one try. perry and i immediately indicted her into the script team. since then she's been doing a shitload of work to make the animation editor less ass.
    there's third reasons for this callout post.
    first, vulpes is doing some great work and we are very proud.
    second, the animation editor is so ass that it literally led two people to become scripters.
    third, this incident happened in the first place because i desperate to do something about the giant-ass animation file.
    the animation data structure is ass
    reborn first started the project to redo all of the animations in e16. the base essentials animations were ass and we* wanted them to be better.
    *we is ame- i didn't exist at this point, and one of the animators on the team, MDE, has since left the community
    the base essentials animation file supplied in v17 was about 1MB.
    our animation file in e16 was almost 6MB.
    as of right now, in e19, it is 14.1MB.
    one of my original optimizations was that i set the game up to only load the animation file once at the start of the game. prior to that, it loaded the animation file every time you needed an animation. the game would hang for a second every time you used a move. it was a bad system back in e18. it would be crippling in e19. i have a top of the line computer, and it still takes 3 seconds to load the animation file.
    i shudder to think about whether or not other fangames still use our animations with the old system.
    i posted a disclaimer earlier absolving essentials of responsibility for the PBS edits. there is no disclaimer here. the base system still works like this. if i don't get cancelled before i finish my modifications, i'm going to push for this to get put into the base engine. we're kind of doing our own thing nowadays, but this is self contained enough that i think it can still be passed off to other people easily.
    make your animations file half the size with one easy trick! (relic castle admins HATE this)
    imagine 1400 boxes. they each have their own labels and information written on them.
    imagine that inside each of those boxes are another 15 boxes. and then, finally, inside each of those boxes are another 20 boxes.
    that's the animation data structure.
    at its core, the animation file is a triple nested array. you have the individual animations. then you have the individual frames of the animations. then you have the individual cells.
    there's something like 140,000 of them.
    each of those arrays has a specific prescribed layout. it looks something like this:
    this is everything you can do a sprite in the animation editor. all the effects, colors, blending, etc. 
    the first thing you will notice, if you are able to count, is that slots 9 and 10 are just straight up missing. that's wasted space. not good.
    a number of these parameters are never used. FLASH in particular uses four slots in this array. all of those slots are wasted. VISIBLE isn't used. that's a wasted slot.
    you have a 27 element array and 7 of those elements are wasted.
    of the remaining 20, not every element is used on every sprite. most sprites just need to exist in a place with no special effects. those sprites will use the same amount of space as a stretched sprite that's tinted blue and zoomed in.
    the fundamental cell data structure is very ineffecient.
    so i ripped it out and replaced it with a hash.

    here's a nice before/after of my lazy implementation of it. i cut out the 7 unused elements. i set some default values for every parameter and excluded things that matched the default. i changed some values to more efficient data types.
    it's almost half the size it used to be.
    okay, so this post was a minor disaster.
    if people are really really curious about how big of a deal each of these changes are, i can make a follow up post!
    but if nothing else, now you know the posts aren't over. ame's moving on to starlight, but a lot of the squad is still involved with rejuv and/or deso.
    and i've still got plenty of shit in the scripts to be mad at.

    this is your captain speaking.
    we are beginning our descent.
    please fasten your seatbelts and all that shit.
    stay tuned for this important safety presentation.
    Q: why is your safety presentation a Q&A?
    A: idk! i expect that there's a certain set of things that need to be explained and/or questions people have, so this is just a quick and to the point way of addressing them.
    just imagine that i'm rapidly switching between flight attendant and captain uniforms throughout this.
    some questions are also reminiscent of comments made on previous devblog posts.
    consider this an encouragement to not be like those people.

    Q: why don't you just release the game already
    A: because we're still adding stuff at the last minute!!!!
    i'm gonna be honest the most frustrating part about this being the final release is that we keep having all of these ideas and can't be like "well, we'll just push this off to the next version."
    there is no next version!!!!!!!!
    there's a strong possibility of a non-content related update coming sometime in the future, but let's be real reggy nintendo just has to look at us funny and that won't happen. so we want to make this as good as we can before release.
    but believe me we want this out just as fast as y'all do.
    Q: when's e19
    A: probably in may? idk! we've got to do the open beta (community release) first, and then we'll move on to the actual real final release of this video game.
    Q: when's e19 community release
    A: next weekend!
    we have a date in mind. i don't want to say which date it is in case something goes wrong on our end and things have to be pushed back. we're not a big game company with a corporate HQ and millions of dollars in funding. we're just two bitches and a cat in an apartment. sometimes we oversleep. you never know.
    just keep an eye on the sidebar.
    Q: how do i get the community release?
    A: be in the community! ie have a forum account.
    Q: i am only here for free shit and i don't want to do work. do i have to report any bugs?
    A: well, technically no! bug reports are definitely appreciated but are not mandatory.
    Q: i found a bug! should i dm every developer about it at the same time?
    A: no. 
    for real, if you do this, we hate you.
    please make a thread on the forum if you catch a bug! if you see a bug, assume that it needs to be reported.
    Q: you made the game too easy and i hate it now.
    A: that's not a question! it's also a pretty bold thing to say about something you haven't even played.
    if the game is now ruined for you then i don't think there was ever anything we could've done about that.
    we're sorry for your loss, though!
    Q: where should i start to make sure i don't run into problems?
    A: a pokemon center! or hardy's gym room. then head to calcenon.
    you won't miss it.

    Q: help i'm conflicted. i really want to see the new content right now, but i also want to see what's changed in early game.
    A: so i don't know if there's a perfect way to handle that. a common strategy of the playtesters has been to complete e19m and then start over. personally, i still think that starting from the beginning is the best idea: a lot of character interactions have been reworked and seeing them before getting to e19 will only make the new content that much stronger. the early game changes have been universally praised.
    Q: i'm the person from the last question. also i never want to see the magic square ever again, i'm tired of the starter quest, and i've caught every stupid pokemon in this stupid game. what do i do?
    A: oh man i have some good news for you! 
    one of those last minute things we're throwing in is some limited new game plus functionality. it'll let you skip some of those more time consuming quests.
    just load up a save that's already completed them and my hawt new code will take care of the rest.
    Q: hey there i have a suggestion for another new game plus thing do you want to he-
    A: no!
    like, listen, i'm sure you have a great idea.
    every idea ever posted in the comments has been a good idea.
    we just don't have time.
    Q: i want to replay the game but then i would have to see ace and they've bloated the cast and ruined the game.
    A: so that's a pretty bold thing to say about someone you've never met. if the game is now... well, you saw the answer earlier. 
    i'm pretty sure that every since person who's tested this game has liked ace. 
    and c'mon. an uncontroversial main antagonist? in this video game?
    that man's comment career is over.
    Q: can i activate passwords on my current save file?
    A: yes! someone in calcenon can help you with that.
    Q: i am SO excited about this like you have no idea. like srsly i am losing my mind. i have to tell everyone about my game.
    A: so this also isn't a question but i don't have a great way to segue into this.
    so discord has this hot new feature called "threads".
    threads have been great for playthrough liveblogging. for real. if everyone was just dumping their comments in one place, all of our channels would look like a hellfuck nightmare. it's also great for devs because we can just see how people's thoughts evolve as they progress through the game.
    this is me telling you to use a thread.
    Q: what if i'm in the middle of the game when i start e19?
    A: uhhhhhh that's a great question. we don't quite know.
    if you're in the middle of a game, you should probably start from the beginning. we don't know what kind of weird interactions will occur as a result of switches being missing, events being skipped, etc.
    just to be safe, you should probably start from the top.
    if you have a save file from an older version of the game, we'd expect that it'll be fine as long as things were fine during e18.
    Q: i downloaded the game and clicked the exe but it's not working! what do i do???
    A: okay, so, this is just a total shot in the dark.
    but you unzipped it, right?
    Q: how do i unzip?
    A: ...i am so concerned for your computer. i'm calling computer protective services.
    you are now banned to the outdoors. say hi to bambi.
    Q: hello. i am a hypothetical person from the future. i have a very loud take on this video game and/or one of its characters and i want to make a very loud post filled with hot takes about this. is this a good idea y/y?
    A: please give your takes a moment to cool down! hot takes are a fire hazard and the building code requires you to only have them in the comfort of your own home with people in the room with you.
    also i hit back.
    A: that's also not a question! what is wrong with you people
    also you definitely don't want to go around spilling story secrets like that. 
    spoiler locking for e19 is going to be a little weird since so much has changed.
    all content before the champion is going to be spoiler locked for a month after the final release.
    all content.
    this is going to really trip up returning players who are already familiar with the major story beats. there's two big reasons for this: the first is that the early game changes mean that people replaying through the game may not know what is/isn't new between episodes, so it's best to spoiler everything to be safe; second, there's a whole swath of people out there who have been waiting for this game to finish before playing it, and they've got a lot of shit to catch up on.
    for everyone's sake, we're treating all content as new content.
    postgame is going to be spoiler locked for three months- potentially less depending on how quickly people get through everything.
    this game is really fuckin long. y'all are gonna have shit to play for literal months. even if you played the game for 4 hours a day, every day, i'd still expect it to take about four weeks to beat.
    now i'm sure that people are going to no-life the shit out of it, but this ain't about them.
    we gotta give people a chance to play the whole thing.
    Q: is the website gonna crash on release day?
    A: well we're sure hoping it won't! got a hot new server upgrade and everything!
    but yeah, probably. we're sorry :(
    Q: wait, you wrote this post yesterday? how'd i miss it???
    A: i started it yesterday and posted it hidden to make sure nothing got lost. don't worry!
    now, i also polled the current testers for things they thought i should add. here's the highlights:
    "save often! like, really really save often."
    "pace yourself! e19m is still pretty long."
    "don't forget that you can turn speedup off."
    "there's a puzzle you might want a pen and paper for."
    "the game is still hard people jfc"*
    "the episode slaps and you're in for a ride."
    *this comment includes some editorializing from myself.
    hype train will arrive soon!

    this is your captain speaking
    look i just wanted to make a post, ok
    so here's some more funny outtakes from testing to help tide you over for the next few days.


    so everyone's been getting a shitload of root fossils...

    ok that's some good OOC for the day.
    but since i'm here and i like u so much, have a sneak peek
    there are lot of really pretty looking new areas in this game, and company secrets prevent me from showing most of them...
    but take a look at this:

    ooooooh pretty
    what could that be????
    ok i'll stop taunting you now. have a nice day.

    this is your captain speaking.
    in this business, i don't especially like saying that i'm going to do things at some point down the line. there's always so much going on that things slip my mind, or life gets in the way, or something.
    but there is one that that i said i would do a bunch of devblog posts ago.
    i said i would tell you when beta has started.
    beta has started.
    this is it. we're in serious business territory now. shit is actually real. this stupid game has been in development for 10 years and release is imminent.
    it has been three and a half years since e18 was first released. that's a long fuckin time! there have been 5 new developers added to the team since then! 
    i'm one of those developers!!
    that's weirding me out!!!
    so this is a post about realistic expectations.
    i've been piloting your hype train/plane/boat/bus for a few months now, and my sole job has been to get you excited. but now we're getting serious. now i'm asking you to put your seatbelt on. now i want you to start mentally preparing yourself for this shit.
    beta testing means that the game is effectively in its final state. there won't be any dramatic changes between now and community release. the next month or two will be dedicated to smoothing out everything we've worked on up to this point. and holy shit have we worked on a lot of stuff.
    so. how much game is e19?
    play time is going to vary heavily between people, but right now we're putting an estimate of 100-130 hours from start to finish.
    that is insane. that is five real-life days of straight gameplay- and you still might not make it through to the end. we're starting beta testing and are expecting maybe a couple of people to actually complete the game before release.
    if you're wondering why testing has taken so long, this is why.
    what's the game going to be like compared to e18?
    last post i did a non-exhaustive round-up of all the new features that we've made to the mechanics of the game between e18 and e19. performance wise, the game runs like a dream. i personally can't go back to the original e18 release. it's a horrible, laggy nightmare. i sincerely hope that our release pushes the wider fangame community one step closer to abandoning the base rmxp engine.
    it's not quite such a leap forward in performance compared to e18.3, but it's still considerably smoother than that release, which itself was already a huge step up from e18.
    runnin smooth like butta
    what's the gameplay going to be like compared to e18?
    this is actually a difficult question.
    see, when we first started making postgame, we were hoping to make a reasonably fulfilling epilogue to the main game with some legendary quests that weren't just shoehorned in.
    that is not what happened. we accidentally made a whole additional game.
    we've taken to referring the split as e19m and e19p- "m" for main, and "p" for post.
    let's talk about e19m first.
    e19m is your standard pokemon league fare. i've made this comparison before, but the difference between e18 and e19m is like the difference between persona 5 and persona 5 royal. the pre-19 content is everything you already love, but better. e19m is the new shit you've been waiting for since dinosaurs roamed the earth. it's just more of the content you already love. i don't need to sell you on it.
    my only caution in advance is that the experience has varied a lot between people. one person's favorite part has been someone else's least favorite part. from my perspective, that's fine! everyone has different tastes and it's only natural that the various story beats will hit people differently from each other. the reason i mention this in advance is because the last thing that i want happening to anyone playing this game is that they are so hyped that a speed bump in the narrative ruins the experience. i am hoping that some advance perspective is enough to prevent this. someone has really liked every part of e19. 
    pre-19 has been universally praised.
    the changes certainly do not amount to an overhaul, but the revamped areas and story adjustments do wonders to the overall quality of the game. my first playthrough of reborn was back when e15 came out, like, six years ago. i remember how drawn into the game i was back then. pre-19 was a lighting reminder of everything i originally loved about the game on my first playthrough. ace has also been incredibly well received. i look forward to seeing them on the top of all your tier lists.
    in the past, i've suggested replaying the game. at this point, i'd strongly recommend doing so. you'll miss out on some great content if you don't.
    now let's talk about e19p.
    e19p is very different from the rest of the game. a number of testers have commented that it feels like an entirely different game.
    and... yeah. i think we accidentally made the sequel to reborn already.
    e19p is structured around quests. they're basically just mini-episodic segments pertaining to a specific legendary. 
    it's also kind of a miracle that they exist! back when we started working on postgame, the idea of making a quest for every legendary made ame seize up with anxiety. we got past that by deciding we wouldn't make any legendary quests that we had zero interest in. there's also a handful of quests made and written by other dev team members. as a result, you get a huge variety of content at the expense of consistency.
    (it might be a surprise to hear that the quests were causing a lot of anxiety considering the sheer length of postgame. that's fair! turns out the bigger problem was just the anxiety anyway.)
    there's also an overarching plot that crosses between the individual quests. it is branch dependent. some of you are probably freaking out at the mention of branches. the breakdown of them is simple. there are two branches. one is not better than the other.
    you're probably not going to believe me when i say that one's not better. i suspect that there will be a lot of opinions about which one is better than the other- there already have been some splits on this over the course of testing (and, for that matter, development). i just really want to stress that, from a development perspective, one branch is not better than the other.
    e19p is also very battle heavy. the episodic segments are capped off by miniboss fights, with some character bosses sprinkled in as well. minor trainers practically don't exist. they have been fired.
    it is, overall, a massive change in pace compared to the main game. treat it like an accidental sequel.
    now i don't want to talk about this, but...
    "hey cass! when's e20 coming ou-"
    no no no no no.
    ame wants out.
    "hey cass! will there be any future updates?"
    maybe! i'll still be working on deso/rejuv, and i've set up the scripts so that the three major games all run on the same scriptbase. this basically means that i can work on other games and occasionally update reborn along with them. there might also be some minor content updates, but this is a big, big maybe. i can't predict what will happen after we finish; i can only tell you what people are thinking about doing. who knows how it'll all actually work out.
    final thoughts.
    the game is going to be done. finished. over. complete.
    it's been 10 years since development first began. a little more than three years since the last major release.
    even beyond the hype of a long-awaited game being released, this is also going to be a big community event.
    there are people who have been in the community the entire time the game's been worked on. there are people who just found this game last week! there's all kinds of people in between. there are people playing this game who were 5 years old when ame started working on it.
    what i'm saying is that this place will be drowning in feels. big waves of "wow holy shit this game is finished." people gushing about how much they like it. (hopefully!) be ready for that too.
    as much as i'd love to release tomorrow, we still have to finish testing :(
    we're all super hype for you to play it and see everything we've done.
    there will still be a few more hype trains before community release, where I'll probably field questions and tell y'all how to prep.
    choo choo

    this is your captain speaking
    i wish to announce the presence of our friendly local concession stand where you can purchase snacks at your convenience
    (by "snacks" i mean "minor feature updates that are so small they don't even deserve their own post")
    (and by "purchase" i mean "you just kinda get this shit")
    so e19's been in testing for a few months now. more on this in a later post.
    obviously the main point of testing is that we fix bugs and make sure your game doesn't break, but a side bonus of testing has been that we can see testers complaining about annoying shit in-game and be like "yeah that's dumb we can fix that".
    and maybe no one asks and we just do shit anyway.
    here's the neat shit we have on offer.
    - repels are better now
    you know how we make you fucking run everywhere in this game like possessed zebra?
    everyone knows that they gotta go and purchase a bunch of these bad bois:

    but oh wait what's this is that number bigger???? ooooooooo
    - fishing is more likely to prompt a catch, and it's easier to do on speedup
    ok we're going into the scripts for this one.
    see this line right here:

    it does exactly what you think it does!
    if you're fishing on speedup you just get a longer chance to hook it.
    god knows everyone uses speedup all the time and absolutely refuses to turn them off even if they're getting [MESSAGE REDACTED BY TRAIN CONDUCTOR]
    but at least fishing will be a bit easier!
    - this screenshot has like five features in it
    long time viewers of this devblog who are neither goldfish nor that one guy from memento will recognize this image from the last post i made:

    - party status is visible on the main menu
    look at that party menu. that's their friends right there! you can even tell that four of them are shiny just by looking at the menu!
    you can also tell if they're dead or not! please do not kill your friends.
    - shiny gardevoir is hype
    one of the perks about reborn being an indie-devved community-based game is that sometimes we just see neat shit and are like "yo can we put that in"
    so, like, two years ago- that sound you just heard was every reborn developer emitting screeches of pain- a mr. Khrona guy posted a gardevoir shiny and it was, like, mega hella.
    so we were like "yo can we put that in"
    and it's in.
    - you can use a controller
    you can use a controller
    - hot new shiny icons
    so i made a devblog post about this a few months ago, but in case you missed it we have some hype new icons for various eggs/shinies/shiny eggs made by smeargle. bonus convenience for if you're shiny egg hatching and don't want to hatch the entire egg before knowing if it's shiny or not!

    - new sprite storage/retrieval (spritesheets)
    ok so this one's going to be controversial so it's best we get it out of the way sooner rather then later.
    so smeargle made a shitload of new sprites. a ton of them. stupid number. i slapped them all on a single image.
    here's what necrozma looks like:

    blah blah "i did this for reasons" whatever. here's the advantages/disadvantages of this:
    1. sprites are all in one place and easy to edit
    the above necrozma image was originally 16 individual images. that's too many images. now if you want to edit the necrozma sprites, you can look at them all at once from one (1) file. you can edit shiny sprites next to the original! edit back sprites next to front sprites! forms are all right there next to each other too. ez.
    2. cleans up the number of files/filesize
    okay, so, most people aren't going to care about this. but "most people" ain't making this post, knowwhatimsayin.
    so here's a comparison of folder information before and after "compilation" of sprites onto a sheet:

    the difference in file number is more dramatic for battlers; the difference in file size is more dramatic for icons:

    so, obviously, most people are gonna be like "ok, well, that's 15MB. who cares." and, well, yeah, you're right. this is the kind of thing that'll matter for people with garbage internet and 15MB translates into a minute of download time (and i'm so sorry that you live like that btw), but we live in a world where 1TB of hard drive space is, like, $30. 
    the bigger advantage is the sheer number of items that this cuts.
    you've probably noticed that copying the game files from one place to another takes way longer than it feels like it should. the size of the data you're moving matters, but so does the number of items that you have to move. and if you're copying the game onto a flash drive? forget it. that shit's gonna take ages. spinning hard drives will appreciate this too since they run more slowly when grabbing many files at once.
    condensing all the icons onto one sheet means that, despite adding a shitload of assets into the game, there are now ~3k fewer files in the game.
    every essentials game should really do this.
    i realize i'm probably the only person in the entire game development industry who cares about optimization and that this is ultimately a tiny change, but i like this shit.
    plus i stress-organize.
    1. beeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeg sheets.
    so i showed necrozma earlier because it's a nice demonstration of the spritesheet layout.
    let's talk about unown.

    hooooooo boy. the forum software actually won't let me make this image bigger.
    surely i don't need to explain the downside of this. that's too many sprites on the sheet.
    i can't show you arceus for obvious reasons, but that thing's even worse.
    ultimately i didn't think this was a substantial enough concern that this change wasn't worth doing, and i still think this will ultimately be a positive change for spriters.
    but, uh... it'll have some quirks.
    yell at me about this in the comments.
    ok! back to your regularly scheduled announcements.
    - headbutt works and always gives you an encounter
    this one's self-explanatory.
    - mid-battle evolutions
    let me take you back to the RSE days. pokemon ruby was my first pokemon game and that game had a pokemon called "mudkip". many of you have likely heard of this "mudkip". now, this mudkip evolved into marshtomp at level 16 and would, upon evolution, learn the move mud shot.
    except that's not quiiiiite how it worked.

    if you evolved at level 17 for some reason, you miss your move. big bummer hours.
    now, this got fixed by the time USUM rolled around, but this is the best example i have for why mid-battle evolution is a neat thing that you should care about.
    (from a mechanical standpoint. it's just kind of cool as a feature.)
    - pickup QoL
    when your mon picks up an item after a battle, it goes straight into your bag. 
    - eviolite acts like an everstone
    put this on the "list of things that should just be canon": if you have a mon hold eviolite the game will stop treating it like something that needs to evolve after every battle. 
    - sky drop has been removed from the game haha lol i wish.
    - a whole bunch of EXP and EV adjustments
    now i know what you're thinking. "cass, didn't you talk about this shit, like, a year ago?" and, first, stop talking about the passage of time around me. second, i did! so you should just go read that post.
    the short version is that EV grinding is way less of a pain and there's a ton more EXP in the game in general now.
    - EV locations exist, too
    we've also designated a few locations for EV grinding specific stats, just to make your life a little bit easier.
    - catch EXP??
    yes that's right, you now get catch EXP when you capture a mon. we figure that anything to make the postgame roundup more useful is a plus for everyone.
    - better TM/tutor availability
    so, in general, you will get better TMs and tutors earlier in the game. some move tutors have been added to onyx to aid in this. i suspect most people won't really care about being able to learn telekinesis a little earlier. if that does sound great to you, though? more power to ya. as for tm's, while i'm sure that everyone can't wait to get quash a little bit earlier, you'll also appreciate that nearly all of the learnable moves in the game have been moved up. people have been waiting for ice beam and earthquake since the middle ages, but in e19 you would have access to those by the time you finish agate.
    - move tutors only charge you once
    move tutors work like purchasable TMs where if you pay for them once then you can teach the move as many times as you want. tutors are slightly more expensive to compensate.
    - multiple key item registration
    so, a downside of the shift to the new engine is that we have fewer controls that you can just rebind at-will, which means that we had to drop some inputs for registered items.
    to fix that, we've added something we call the ready menu.
    if you register multiple items, then hitting shift (or whatever key you crazy kids are using these days) brings up a menu like this:

    then you can pick the actual item that you want to use.
    this also means you can register as many items as you want for quick use!
    - gambling
    they say a picture is worth a thousand words:

    we added roulette!
    coins are also generally a lot easier to get. i've spent so much time just watching people holed up in the game corner grinding coins because dammit they are not moving another inch without getting slugma.
    so you can get coins much more easily now.
    - sand dunes don't slow you down quite so hard
    suuuuuuper minor.
    suuuuuuuuuuuuuper minor.
    but running around the desert while lost and confused will be faster.
    - postgame QoL
    so, again, this is mainly going to be discussed in a later devblog, but postgame is pretty battle heavy. we're expecting the need to frequently swap out your mons and movesets.
    so we've got some things to make that easier.

    so the big ticket item here is in slot #4. you can buy reborn balls.
    glitter balls have a dual use. their primary function is that catching a mon in one will make it shiny. their bonus feature is that if you're using one on a mon that is already shiny, their catch rate goes through the roof.
    EV tuners/boosters make it ultra easy to buff your mon's EVs and even transfer them from one stat to another if that's your jam.
    the PP all is like a PP max on steroids. using it on a mon buffs the PP of all of its moves to the highest value. means there's a little bit less clicking for you.
    we've also got the move restorer.
    check it out: 

    you can just... relearn entire movesets! makes switching them out a piece of cake. 
    yes my prima has fly because i make this game and sometimes i just need to fly places.
    you can also access your pc from anywhere. it burns some consumable items. i don't have a picture for it. sad face :(
    there's also a lot of bonus catching charms. you're going to be throwing a lot of balls at a lot of legendaries and that shit'll get old after the first five times. and there's, like, 70 of those things.
    let it be known that we are capable of mercy.
    - photosensitivity mode
    so every once in a while, someone will pop onto the forums with a niche request for the game. one of these, a while back, was a request to turn off the flashing and screen shaking that occurred. i whipped up a quick mod and sent it their way. well, now that mod is baked right into the video game! you can just flip a switch to make the flashing stop.
    - field boost/drop indicators
    field effects are complicated. to make it easier on people, we've thrown in a nice little indicator showing when moves get boosted/dropped on a field: 

    they'll show up if you have the associated readout.
    - radomus's chess puzzle is less of a pain
    okay, so, super niche, but the direction that you move a bishop is now selectable. chess pieces also disappear when you finish the puzzles so you just sprint through without a care.
    - confirmation before backing out of tile puzzles
    has this ever happened to you? you're doing a tile puzzle and you needed to check the picture of the puzzle in the game files, but when you reselect the game you accidentally back out of the puzzle? such accidents are now a thing of the past! our patented new technology helps keep you from making such silly mistakes.
    - soft resetting is faster
    okay, so, i'm sure that every single person will appreciate this. soft-resetting has been streamlined to get you back in the game as quickly as i can manage. load times in general have been reduced due to a lot of data caching.
    - look at this photograph

    personally, i'm just happy that i'll never need to explain how this works to anyone ever again.
    i... okay, this post is getting long. there's a lot of extra shit that we added that doesn't require a nice bold bullet point, so i'm going to throw those all at you at once. this list isn't even exhaustive- we're definitely still leaving shit out. 
    - game window stays in the same place when you soft reset
    - added a ladder in back of sugiline cave for more convenient gibles
    - added a move tutor to the circus who can change a pokemon's hidden power to any time for a heart scale
    - multiple EXP Candies can now be used at once
    - Eevee can now evolve into Leafeon and Glaceon with Leaf and Ice Stones
    - the rail section to devon now automatically opens at that point in the story if it wasn't already
    - the high striker now puts you back in position if you win a partial prize
    - shortcircuit now cycles through electric damage amps sequentially rather than randomly
    - crystal cavern now cycles through rock type bonuses sequentially rather than randomly
    - added a check for held items when sending pokemon back to the pc after a catch
    - returns items to bag when handing in pokemon to type null quest etc
    - added a lady to the department store who points the player in the direction of each sticker sidequest
    - drifloon and spinel sticker events can now be done in any weather
    - boosted max item stacks to 999
    - integrated the PC Find Mod
    - the player is now automatically given the powder vial at the circus
    - player is also automatically given dive and rock smash 
    - added a party quick swap mode form base essentials by pressing A on the party screen
    - adrienn's pre-gym recruitment quest is now optional
    - players can now get ditto in blacksteam without having to go talk to the happiny guy, as long as they freed the daycare couple
    - added a berry seller for top-end natural gift berries that were previously unavailable
    - added letter indicators to the tuning panels on the floor of hardy's gym showing which is which note
    - brightened some underwater doors. if you know the ones, you know the ones.
    - it is now possible to access (the front part at least) of chrysolia springs, and the lost train before visiting spinel
    - the nature center now gives out some starting honey
    - when slathered, the adventurine wood honey trees now spawn heracross and pinsir immediately
    - it is now possible to visit spinel, beat serra, and obtain the medicine before ever setting foot in belrose mansion
    - you can now go to the sanctum immediately upon reaching 7th st without having to chase bennett around. also made chasing him around less obnoxious.
    - added some fast travels after a few story segments
    - the correct rocks to smash in order to drain each floor of pyrous mountain now glow
    - sweethearts and exp candy can now be purchased from the candy store at various points throughout the game. 
    - lowered the cost of nature-changing to two heart scales from 3
    - added the ability capsule QoL from rejuv to select from a list instead of sequencing through abilities
    - whiscash now has a higher encounter rate in the tanzan cove for the super rod quest
    - added an NPC to reset shelly's gym without leaving
    not to mention some other passwords, script backend cleanup...
    well, you'll see it all soon enough.

    get hype. this boat engine makes noise, motherfucker

    arrr matey
    shiver me timbers and walk the plank
    i be the cap'n of this 'ere ship
    and i have some treasure for ye this day
    (please enjoy some context-free/spoiler-free takes from our initial testers)

    ok that's enough. gotta leave something for a surprise.
    testing's going well! it's pretty fun but is also a lot of work.
    also. lots of feels.
    get hype (or whatever a pirate would say instead idk)

    this is your captain speaking
    life caught up to me and so i forgot to fly the train for a good month.
    but it's ok! i am back.
    today's stop is brought to you by @crimsoncrim who has made many art updates to this video game. please observe some hawt new pokemon center interiors!




    and, of course, the grand hall:

    we hope you enjoy these hawt new center locations! have a pleasant journey aboard the hype train.

    hi there this is your captain speaking
    i'm tired
    there's no fun posts today because remaking the whole field effects system is super hard and i really like giving myself more projects on top of that...
    rest assured, there will still be more posts in the future!
    in the meantime, we have prepared some refreshments for those of you on board.
    the distribution of said refreshments is a little bit less like a typical "drink and cookie (singular)" per person you might get on a normal airtrain...
    ...and a bit more like firing a t-shirt cannon.
    so your concierge staff (the devs) have been reading some of your theories.
    some of them are bonkers.
    some of them are mostly correct!
    and of course the two groups overlap.
    so i've loaded up my t-shirt cannon with a few rounds of theory confirmation.
    and i'm going to shoot it at whichever comments i think are the most fun.
    i have five t-shirts.
    i'll shoot them out tomorrow.

    this is your captain speaking
    i am turning the seatbelt sign on so you better sit the FUCK down
    are you sittin?
    sittin good?
    so if you completed the pokedex quest already, it's sittin right here:

    idk why exactly we're giving this out before saphira, but whatever i dont make the rules
    this'll be the reward at 300 mons in. 
    ok don't go anywhere sit the FUCK back down 
    cuz if you finish the starter quest this is sittin here:

    (this is earthquake. the text went away and i'm too busy flying this thing to fix it)
    idk why we give this out before hardy but idk i don't make the rules
    ok there we go kids we are now at super light speed
    those of you sitting in first class will have your 17 course meal out in a jiffy!
    those of you sitting in economy like a bunch of poors only get one single nilla wafer.

  • "long live sidebar"

    says sidebar, having received no attention in two weeks





  • 16-4.png

  • Create New...