Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 12/18/11 in Posts

  1. what up, fuckers it has been roughly five million years since i've grabbed the mic. it feels like just yesterday i was telling the dinosaurs all about meech. it has been roughly 50 million years since our last release. we have eliminated progress bars from the face of the earth, so i'll not hold up the show and just answer the question that i posed in the title: spring 2022 (if all goes well!) ok everyone who just wanted the date can go. for everyone else: where we @ first, there is a nightclub! you can hang out with people and battle to your heart's content. there's a shitload of battle content, from the boss rush to the battle tower with lots in between. it's basically just everything detailed on this post here so instead of rehashing that all out here, i'm just going to tell you to go read what i said way back in may 2019. *dies basically, the nightclub is done and functional. there's lots to do there. it'll be neat. second: there is a postgame! structurally, it plays a bit more loosely than the main story- completing postgame will still require completing all the quests, but there's a bit more flexibility in what you want to do and when you want to do it. and if i'm being perfectly honest it is way too fucking big. stupid huge. turns out the whole quest-per-legend deal results in a massive amount of content. obviously i don't have a solid estimate since no one's quite played through it all, but it sounds like it might work out to be 4-5 episodes of content. hell, the main story content is already, like, two episodes of content. we're basically just adding a third of the game's current length to it. which is important because... what's left testing is left. what's right well, we gotta clean up a bunch of loose ends before we even get to testing. this is the last episode! and if i'm being perfectly honest, we're tired. free us. things that need to be finished before testing: (this is where we hid the dead progress bars) - Animations there's, like, 18 left? the animation squad has been working real hard on making the move anims super sharp. make sure you turn them on!!!! - Early game updates haha yesssss i finally got ame to do these i'm not going to dig up my old posts on early game since i don't want to look at the date and take psychic damage; suffice it to say that early game kinda sucks compared to the rest of the game and it's getting a revamp. there's some new areas! some redone old areas! a plot that makes you a little less dizzy from running back and forth! man its gonna be great. right now 3 episodes have been updated, and we're doing some touchups for the rest. - Ending scenes so this content is classified, but eventually this stupid fuckin game has to end and you'll get some bonus scenes with some chars under certain circumstances. - Nightclub polish so shout out to azzie for doing a fuckload of dialogue for the 500000000 (that's a metric fuckton for those of you unfamiliar with math) battle tower trainers, as well as some general chat dialogue for the chars you've been stuck with all game. there's still a bit of that left to do. - teams hi so from what i understand, the "gameplay" in these types of games consist of "battles" that someone has to "make". and "apparently" the person making them has (mostly) been "me". i've got like 12 left. oops. - Field updates making hundreds of teams means that i've taken a pretty close look at the field effects, and there have been a lot of minor changes to fields to make them make more sense/more balanced/better. - Bugs mr lord Perrence has been doing god's work wrangling our massive fucking buglist and making the new AI functional (oh yeah that's right we redid the ai but don't worry about that) bugfixing never ends, but eventually we will stop trying. - Sprite updates a lot of the sprites are, and i believe this is a term the kids are using these days, "crusty". we only produce well-made sandwiches here, meaning we are removing the crust. here's a preview of what's been done: we're buying the protags some fucking shampoo. you can actually watch us do for decibel live on twitch this sunday at 3p MDT! (that is 37 hours from the time of posting.) - leftover bullshit look you never know what's gonna come up while we clean up the rest of this. i can't even remember what all we've done since e18. and then- and then- we will do some testing. this is the largest amount of content we've ever tested at once by a gigantic margin, so we're not even sure how that's going to go. the first round of semi-public testing (that is, something you, dear reader, will be able to participate in) will be the community release, which occurs after beta testing. we will say when beta testing starts. at that point we'll probably have a general sense about how long each phase will take. the rest of the details will probably be kept under wraps just to preserve what middling amounts of sanity we've somehow maintained a grasp on. i've been holding on to an @everyone on the discord server for years and you better believe it'll be used when the game's ready. this is the home stretch, y'all. thanks for all your patience. it'll be worth the wait.
    150 points
  2. in canon legendary encounters, usually you just trip and fall into legendaries after they've randomly decided to roost somewhere vaguely out of the way. if you're lucky there might be a whole dungeon before them. or if you're playing XY, maybe they'll just be sitting there in a cave that clearly always existed for no other purpose than except to specifically serve as their roost until the region's favorite ten year old traipses along and use said legendary for baseball pitching practice. anyway, this isn't canon. this is reborn, and some people would argue that i hate you all and want to see you suffer. * * this is not true. i love all of you in varying degrees and the less you think it applies to you the more it's true. but don't be weird about it, ok? so today i'd like to introduce a new device of suffering in post-game: Anomaly Battles. the legendaries in post-game have an unfortunate tendency to appear with a strange aura around them called an Anomaly! in universe, this aura is otherworldly, producing many strange like making the pokemon behave aggressively, or creating apparitions of other types of pokemon who fight alongside them! out of universe, it is our tool to be a gigantic bitch to you. you've gotten to postgame, so you're clearly a skilled trainer with a diverse roster ready to handle anything we throw at you, so here goes-- we're going to throw everything at you. in post-game, you'll face off against a special battle with many of the legends before being allowed the privilege of going for the catch! fight hard and come through strong because you may yet need that strength to secure the victory. not every legendary has an attached anomaly, but so far the strong majority of them do! huge shout out to @andracass for making the lion's share of these teams so far; like with the other parts of postgame, she's really just put in a crazy amount of work for it i hope you'll look forward to eating shit ( please do not actually consume shit. please make sure all matter you consume is both edible and nutritious. it is important to eat regularly and take care of your body. do that for all of us, okay? you can't help others if you don't take care of yourself first. all right... then, you stay safe out there now. get plenty of rest. bye-bye until next time ! )
    148 points
  3. 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. Q: OMG I CAN'T BELEIVE THAT AT THE END OF THE EPISODE SNAPE KILLS DUMBLEDORE 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!
    135 points
  4. fine. i concede. you've worn me down-- twisted my arm clean off-- both of them in fact! i'm typing this with my toes. the white flag is raised, having been tirelessly goaded into it by the demands of an uncaring populace, night after night spent in fearful agony, whimpering in hidden corners that are yet unequal to the task set before them of simply shielding me from the slings and arrows of the greater internet community,* i accept i have no choice but to lament simply having no other choice, i deign to give you.... one progress bar. * none of this has happened or is even remotely true, everyone has been by and large supportive of my decision to yeet the progress bars, and i greatly appreciate y'all for that. i feel much better overall with them gone and feeling that way, this may be a mistake. if this ends up stressing me out, i will yeet this too. but we'll give it a try, because i accidentally started counting and, well-- the years start counting and they don't stop counting. the progress bar is how many legendaries are accounted for as of posting-- 32/65 almost halfway. why 65? 76 mons are not asked for by the pokedex quest in E18. 11 of them are ultra beasts and-- say it with me now-- ultra beasts don't get rights. gen 8 is not real, and cannot hurt me. that leaves 65 genuine legends i have to include. for my sanity, and frankly, the sanity of everyone else, we have downsized from original expectations-- not every legendary is getting a full quest. but the significant majority are. in cases where they don't get a full quest, only the earliest of them are a walk-in-and-start-chuckin'-pokeballs type of deal. there will be more on what else is entailed instead in a future post. so e19 will be released when we hit 65 ?????!??! no, no look at me stop that. stop that right now, you goddamn son of a beautiful person (probably) i appreciate your hypothetical passion but the answer is no a big, honkin' neon red no the kind of no that your mom gives you after she talks to my mom and asks if you can come over the kind of no that you wish you could get after hearing nothing from the last ten jobs you applied to the kind of no that means no and you respect it without making a scene nope. there are going to be things i want to do after the legend quests-- other things i need to do. possibly a lot of them, idk-- i'm not looking that far ahead because if i think about it i will take 2d8 psychic damage but what this whole legendary quest/progress bar thing is is the most significant obstacle before E19 can be finished or released. when the bar is full, that does not mean E19 is finished-- it means it can be finished. until then, all bets are off. i'm biting down and just trying to make it through one week at a time. thanks for sticking with it, loves.
    132 points
  5. i don't suppose you remember me, do you? i think it's been like, five hundred pandemic years or something since i've posted here. as many of you know from cass's previous posts, since around september of last year i've been focusing on a different project. gosh, that took a while, didn't it? once again, i want to thank everyone for their patience as always... but uh, we finally got a demo for that out, so maybe, possibly, go try it out, if you haven't already? we'll begin actively developing starlight for real once reborn is finished but i felt like it was important to finish the demo before reborn was done so that the community didn't feel like it had no choice but to just die once the game was finally out for real. i think there's been an expectation for some number of years that once 19 is done, the community will be. and uh-- nawh. but to make sure that didn't happen, and to make sure people could see what they might have to stick around for, i felt it was necessary to get that going sooner rather than later, and then come back to finish postgame. this was, in retrospect, a mistake. not for any """real""" reason, to be clear-- but the mental burden of putting reborn and everyone on hold or trying to split focus between two projects was a lot heavier than i expected. aside from keeping the devblog warm while i've been away, please appreciate cass for generally keeping me sane through the last year or so, because some of the stress had really been starting to get to me. i'm still working on shaking that off, tbh, but it'll be fine. on the other hand, i know i was getting pretty tired towards the end of making the main story, and i feel like taking a break for starlight has helped me come back to the project with a clearer head, more ready to finish it out properly. that is to say, if it wasn't clear enough already: reborn will now be actively developed again. another advantage to having taken time off from the project is that i've learned a few things, mainly about myself. and how to actually play nice with a team, since i haven't been very good at doing that in the past. but the main thing i've realized is that i hate to-do lists. they are soul-sucking. i feel a lot better about things when i am looking at problems in the game and fixing them on the spot rather than looking at a list of problems about the game several hundred lines long and just kind of getting overwhelmed. this is unfortunate for me as a person who has mainly organized her work in the past almost exclusively through to-do lists. now y'all don't care that much about my personal organization, that's stuff i have to figure out, but the point of this is that uh those task bars? that used to be on the right there? they're not coming back. because all that is is just one giant public to-do list. a constant reminder of all of the things i still have not done and still have to do breathing down my neck. i know they're cool, i know they're useful for communicating to everyone how far along we are. and maybe we can figure out something similar but for my own sanity no. nope. they're cancelled, and they're staying cancelled. in return i'll try to like, actually post or something once in a while. but, like, no promises. i still prefer to spend time doing the thing rather than talking about doing the thing. okay, so, the million dollar question: when will e19 be released? and i still don't have that answer. no one has that answer. the only answer to that that exists is 'sometime in the eventual future' but we'll like, keep you in the loop one way or another. there will have to be testing before it releases, starting with internal testing. so that might be a good indicator of it's coming up. just hang tight until then y'all
    124 points
  6. 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 no. no. no. ok? 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
    119 points
  7. 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. disadvantages: 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
    115 points
  8. serious post. it's been a bit over a year since i wrote the post announcing postgame. it's been about two years since e18 came out. people have been wondering things like "is the game dead?" and "where's e19?". while these sorts of questions tend to be a little annoying when asked reasonably near an episode's release date, we've reached a time when they become appropriate, legitimate questions. so let's talk about what's going on. the biggest thing is starlight. for those of you who do not know, ame is currently also working on Starlight Divide, a tRPG that will be her next game after reborn is done. she is developing it entirely from scratch. development for it began basically right after the story for e19 was finished/functional and it has been continuing pretty much since then. developing from scratch is hard. fangame development has a few advantages in that the mechanics have been laid out by gamefreak (for better or for worse) and essentials offers a base set of tools to build games from (for better or for worse). in no way does this imply that developing quality content is easy, but it is still fairly simple to pick up some tools and get going. starlight does not have that. after being worked on for a year, it has almost approached the point of being playable. and then there's an entire game that needs to be made on top of it. the reason starlight is an issue for e19 is because of timing. the original plan for development was something like: e19m -> starlight -> starlight demo release -> e19p -> e19 release. (i use e19m as shorthand for the main story and e19p as shorthand for postgame.) this order was decided for a lot of reasons. there's general reborn burnout, ame wanted to start a new project, hiding from the big N (hi reggy thx 4 ur mercy), it provides some amount of project continuity, among other things. this order was decided a year ago. i'll just straight-up say that, in hindsight, this was a mistake. i don't think we were expecting the demo to take so long, nor did we account for the development pressure of working on two games concurrently. not releasing new content for two years is a bit anxiety-provoking. at this point, the starlight demo is probably going to be finished first, so realizing that the development plan was a mistake isn't going to result in it changing. this is basically just an explanation for why things have taken so long. i also want to talk about progress bars. i've noticed that a lot of discussions about development (and this would also apply to rejuv and deso a bit as well) will occasionally include a mention of "the game is at X% and that means [something]!" in reborn's case, the thing that it "means" is that the game has hovered around 52% completion for a while and thus there has been no development on the game. that is not even remotely true. to be fair, i suspect that the people who assume there has been no development are also not reading anything i say here (including this! fuck.), but it also says something about what people think when they see the numbers on the little sidebar over there. ---> the progress bar numbers are made up. (by me, i should add.) the point of the progress bars is to offer a condensed look at what we've done and what we plan to do. the X% of the bottom is there to give some kind of impression of what the overall progress looks like. I sure don't fuckin know what the overall progress looks like. the progress bars are basically calculated by me looking at various aspects of the game and going "eh, sure, this can be 3% of the total!" and then adding up all those shitty guesses i'm making. the problem then is that the bars are structured around what we expect to be working on- which usually involves game content. none of those guesses involved MKXP, or the massive, ridiculous amounts of code cleanup we've been doing. that number probably isn't even going to move until the starlight demo come out since ame tends to work on the game content. there's more stuff that we're planning to do in the future that i also already know won't be represented in the progress bars. the X% at the bottom is practically lying to you. because of this, it's tempting to pull the bars down until reborn development picks up. in their current state, they're kind of a pain in the ass for everyone: i have to keep them up to date, they put pressure on the development team to overwork since there's a lot of stuff to do, and it makes everyone watching them impatient for the next release. (in fact, i think i just convinced myself that taking them down is a good idea and should probably be done.) we know that there's a lot of people hyped up for e19, and so I really want to make it clear that we will be playing everything regarding its development completely straight. when development picks up again I will tell you. when we're going to start testing soon I will tell you. when we're planning to do a community release I will tell you. (or, well, someone will. i've taken point on a lot of this lately but it won't necessarily be me.) so, in the interests of transparency... gen 8 i hope i don't regret this marcello wants to do it and i don't. that's the short version. the real version is a lot more complicated. will it be in e19? it is highly likely no. it'd involved redoing a lot of work that's been done on the game since e18 (much of which was done by me, hence my bias) and i think it'd be really putting way too much pressure on development/testing to implement it across the whole game. it'd also add on a lot of extra dev time to a release that is already massive. i say it's "highly likely no" because there are circumstances under which this may change, such as the current development slowdown stretching into next year and, thus, allowing some time for us to get everything implemented. the DLC may also influence this. will it come out after e19? maybe! it's still way too soon to talk about what happens after e19 since a lot can change between now and then, but I don't think there'd be any reason to avoid a DLC-esque update after the game is done. there's some other stuff we may want to do then, too (hard mode, maybe). i feel like there's more that I need to say... but i'm basically out of things to say. in short, don't panic. we're working on it.
    110 points
  9. Hello, dear reader! Many of you may recall me as the guy that used to write both short, cryptic, exceedingly dumb devblog posts AND long, dramatic, still exceedingly dumb devblog posts! But alas, I have not done so in a while, especially the latter. Indeed, Cass has taken the torch from me in hilarious yet informative devblog content (hi cass ur gr8 I enjoy all ur posts), where have I been? Well, I would love to tell you all that I have been quietly biding my time. Waiting. Working on my Magnum Opus of a devblog post for months turning into years, wanting to wow you all. That's entirely not what happened it's just most of what I've worked on is either not interesting enough for a post, or too spoilery for one. But still, we'll just pretend that's what's been happening. ANYWAY! We are not here to talk about me, oh no. We are here to talk about the Grandest of Events. A Tournament like no other. Something so Amazing you'll hardly believe your eyes! That's right. Today's devblog post, after much waiting and anticipation, is about... The One. The Only. ... not THE LABRADORRA GRAND TOURNAMENT OF B00TY!!! (Seriously guys we posted about that on April Fools two and a half years ago, I don't think it needs more followup than that.) "Wait, if it's not that... OMG! Are you talking about some kind of actual tournament you're running for us, the loyal fanbase of Reborn?" - I hear you ask? Also no. And come on guys stop interrupting me I'm trying to be dramatic. To explain what this post is truly about, we have to rewind back a bit. You see, as many of you may be aware from other devblog posts, the team (especially Cass and Perry I appreciate you both very much!) have been putting huge amounts of work in optimising a lot of our code, and one part of that was a lot of structural changes to AI to get everything in top working condition for E19. And that has been going wonderfully! But it comes with a problem. How do you test such changes? There are so many ways the AI could go wrong, and the devs can only try so many things to try and see if it works. Well, Perry had a simple yet brilliant answer to this - Whipping up some code that can make the AI trainers fight eachother for testing purposes. That way we can run a bunch of battles, look over the debuglogs, single out any dumb choices the AI made and fix those! So much more efficient than just hoping one of us stumbles on the AI doing something weird when we play. But, let me explain how Perry and I are different people. You see, Perry is... I think the technical, scientific term is 'Productive'. This was a brilliant idea that solved a big testing issue! But me? When I saw this, I knew that I could take this innovation and instead use it as an excuse to be deeply unproductive. As is my style, by taking it and using it to do something fun and interesting but also not particularly useful! SoanywayImadeeverysingleAItrainerfighteveryotherAItrainer. That's right. The Tournament in question was an impromptu Round Robin where every single trainer in the game battled every other one! No I haven't seen that Elo World youtube video where someone did this for Pokemon Red & Blue I have no idea what you're talking about all my ideas are entirely original. So buckle up! This is gonna be a fun and goofy ride but there's also gonna be probably more statistics and spreadsheets than you expect!!! Now, to begin, lets explain the setup. We did three runs of this tournament, in three distinct formats (although the third is special for reasons that will be apparent). In ALL formats, all pokemon were set to Level 100, although movesets were retained. This specifically detriments that one random FEAR trainer in the Desert so he underperformed compared to how he should've, but also fuck that guy that's what he gets for running FEAR. 1) Everybody battles Everybody else in a Single Battle with NO Field. 2) Everybody battles Everybody else in a Double Battle with NO Field. 3) League Trainers only (That is: Gym Leaders, Elite 4 Members, & the Champion) fights Everybody but specifically on their preferred format (i.e. Julia fights everybody on Electric Terrain Single Battle, Shelly fights everybody on Forest Field Double Battle, you get the idea.) The first was just the initial idea and attempt at this, just to see what happens. The second was an extension when I remembered double battles exist. And the third was very much more an interest piece of like 'Hey, lets see how the leaders perform in their best case scenario' because I thought it would be super interesting to compare and see how that looks! Now, a few methodological points for anybody that is interested: I know I really should have run all of these two or three times each because there's rng involved and stuff, but also everybody fighting everybody else is in the ballpark of a million battles which, surprise surprise, actually takes quite a while to run! So you'll have to deal with the fact these were only run once so, as in any good pokemon tournament, there may have been some RNG-caused upsets! Second, outside of some specifically interesting cases, I will be talking in terms of a percentage winrate instead of number of wins just because these tests were done as we were working on some postgame trainers so there were slightly different numbers of trainers in each format, but not enough that I feel like it skews the results enough to rerun things! And that's that! We ran this, it spat out the result of every single fight, then I spent a few weeks messing around in a very large spreadsheet and got the data organised nicely and analysed! So, some last bits of intro logistics to this concept and then I can finally like, actually start the main content of this post! I will be splitting this into two main sections. In Part One I'll talk about the general results, specifically in formats 1) and 2), pointing out anything notable or relevant in the top 10, 50 or 100 that I think stands out! In Part Two, I'll focus in specifically on the Gym Leaders and talk more in depth about their performance in all three formats, and give some analysis about what that means about their performance in general! And also, you should probably familiarize yourself with two shorthands I am going to be using: Illegal - This should be self explanatory. A trainer has an illegal team if it has something it would be impossible for the player to get. Things like illegal EVs via PULSE2, PULSE mons generally, shenanigans with illegal movesets, and just the complete and utter fuckery we have in store for you with the top secret postgame Dev fights because we made the game and we don't have to follow the rules. Bullshit - A trainer's team is Bullshit if it is bullshit. Like, sure, running 6 Psychic Type Legendaries (because fuck there are so many of those) with a Tapu Lele lead that all have optimised statspreads and movesets designed specifically to fuck you up on Psychic Terrain is technically legal and the player could also do that, but the AI doing it is still bullshit. These shorthands will be useful particularly in Part One of the post because surprise surprise the top 100 trainers in Formats 1 & 2 are pretty strongly dominated by things that are Illegal or Bullshit (although maybe not as much so as you'd think!) So, without further ado... Part One: Fieldless So, lets talk about Singles first. 6 of the top 10 are dev fights. (Including me! Hell yeah. 7th place with a 97% winrate. Take that 8th place Cass, with your paltry also 97% winrate (but hers is a lower 97% I won like 2 more fights than her get DUNKED ON Cass). In fact, 1st, 2nd, 4th, 7th, 8th & 10th places are all dev fights. Shoutout to former dev Lia in the #1 spot showcasing her fight's utter shenanigans with a 99% Winrate (also, spoilers, the top 50 looks totally different for doubles but she STILL took #1 there too, albeit with a slightly lower winrate. The rest of us devs need to step our game up, clearly). Most of the remaining spots in the top 10 aren't too notable. There's a lot of Bullshit. Heck, the specific team I used as the example to define Bullshit is in there. Oh, and Lin is in there too somewhere but don't worry about that. What I want to talk about is 3rd place. Because, somehow, despite all the Illegal and/or Bullshit fights we threw into postgame, 3rd place is something that takes place in the Main Story. In E19, in fact. Lets talk a little bit about PULSE-Clawitzer. This is PULSE-Clawitzer. You fight them in E19. Apparently it's pretty hard because the fight has a 98% winrate here, which is higher than every single other trainer except the two most difficult dev fights. So, y'know, good luck with that. On the bright side, E19 isn't all bad. You also fight PULSE-Mr Mime and that fight is allllllllll the way down at 552nd place with a paltry 39% winrate (as a point of comparison that's pretty close to like... Julia. The very first gym leader with a team of NFE mons with terrible statspreads and movesets. Sure, it was hard like an hour into the game, but...) So at least you know that when you play E19 you'll just be able to relax and that fight won't cause any problems at all! ^~^ The rest of the top 50 is about what you'd expect. Dev fights, postgame bullshit, some illegal shenanigans. A few victory road battles made it in which is neat! Also lets all give a round of applause to Baby's First Illegal team which is only really barely Illegal, which is the E18 fight against Solaris in Agate City, with the PULSE2 on his Garchomp - You'd hope he performed well given Singles with No Field is the format he actually fights on, and he doesn't disappoint, all the way up at 32nd place, the highest ranking trainer that is already in the current version of the game! But still. Dev fights are very illegal. There's a lot of postgame bullshit here. Obviously PULSE-Clawitzer is illegal. Everything in the top 50 is Illegal or Bullshit or both. Well, except for one trainer. The highest ranking 'Fair' (which I use as shorthand to mean neither Bullshit nor Illegal) trainer managed to make it to 46th place. This is pretty impressive - the next two Fair trainers aren't until 65th & 78th place. With a 92% winrate in Fieldless Singles? I hope you're all ready for the gym battle against Saphira in E19!!!! Because she utterly destroyed the competition, miles ahead of the next highest winrate gym leader (surprisingly given it's singles and without a field, it's still Hardy at 85%!), and she even managed to beat the entire Elite 4 on winrate as well! But we can talk more about that in Part Two. Before that, though, lets look at how things are different in Fieldless Doubles! Dev Team Lia still dominates at first place; her team is too good. The top 10 is once again 6 devs, although not the same 6 as before. (Alas I am the one that has been dunked on, in doubles I fell all the way down to 20th place and Cass kicked my butt and is now all the way up at 5th place) Indeed, this theme is going to be apparent - While Doubles-centric teams can perform reasonably well still on Singles, a lot of the big hitters from Single battles seriously struggled battling in doubles. PULSE-Clawitzer fell all the way down to 21st place (below me! And I'm terrible at pokemon! Git Gud Clawitzer). PULSE-Mr Mime did slightly better than before but ultimately still very badly at 446th place. Saphira really suffered hard though. She lost her spot as the highest winrate Fair trainer. That was taken by some randome generic Victory Road fight which isn't even a double battle and, honestly, I love that. This fact might be my favourite thing in E19, especially because that trainer jumped up like 50 places in the leaderboard from Singles. You gotta appreciate the hustle. But alas, Saphira's bad day doesn't end there, oh no. She not only lost her spot as the best Fair trainer, in doubles she didn't even manage to be the best Gym Leader - Taking to the format like a fish to water, she was beaten handily by Hardy and, although by a slimmer margin, also by Adrienn! Indeed, looking at gym leaders it is clear just how much harder doubles is if you don't have a team built for it. After those top three, the next highest ranking gym leaders are Charlotte & Radomus, beating the fights that came much later than them in game by merit of being built for the field. Even Aya did really well despite being earlier game because of her doubles team. As for the reamining Doubles leaders, Shelly still struggled because of how early on her fight is, and lets just not talk about Amaria until later because yikes. Lin still comfortably sits in the top 20 but like, don't worry about it. But, speaking of later, I think it's time to get into the reeeeaaaal fun. Have you ever wondered how well balanced the Gym Leaders are? Ever wondered which ones rely on their field most, and which ones least? Which ones are unusually strong or weak for their point in the game? Or do you just want to know how scared you should be of what's coming in E19? Well, then do I have the devblog post for you! It's this one. This is the post. We're moving to part two now. Part Two: League Members So, before we begin, lets talk about the elephant in the room. You are going to notice a distinct lack of Corey and Kiki in the upcoming analysis. Did I forget to run their fights? Yes. Did we change the earlygame story a bit for E19 so they are no longer Gym Leaders because we all decided we really didn't like the contrived excuses to not give you a badge? Also yes. With that cleared up, lets start from the top! There is going to be A LotTM here so I will be putting the individual analysis of each leader in spoiler tags, handily labelling them as we go along! Although this is just so this post is slightly easier to scroll through and look back over I will be writing all of these assuming you've read them all in order. Elite Four And with that, my dear readers, this most gargantuan of devblog posts comes to a close. I wish you all a fond farewell, and hope you are- What's that, you say? I missed someone? I have no idea what you're talking about. I already told you why we aren't including Corey and Kiki. So who else could you possibly- Ah, right. I mean, I told you not to think about it but, I guess. It's not a big deal or anything but sure, whatever.
    94 points
  10. hello my children, i have come to feed you since coming back to the project a month and a half ago, a fair bit has happened. i did take some time to warm up back up to thing, we moved over to a new file management system, also cass and i just moved into a new place like, last week so that's been taking up a fair chunk of time.... critically, we also have two new additions to the team: @crimsoncrim and @Azzie ! those of you who frequent the discord server probably already know them, and might've already noticed them popping up in the Developers group, those of you who don't already know them are missing out because they're both wonderful. crim has been helping a lot with various sprites, and will be joining me on mapping, and Azzie is around to put her writing skills to work and spin gold out of dialogue for us in the postgame! but how about that postgame? my focus since returning has been on the nightclub. There were a lot of things in it that were like, half-done. Those of you who fondly remember the progress bars can probably think of some of them. By now, most of those things are a lot more than half-done-- in fact, everything there is properly functional already! Some events are missing dialogue, but that can always be filled in later. Let's take a quick tour of the facilities, shall we? Starting with the one that ties them all together-- The BP Store A classic postgame staple-- you're gonna fite, you're gonna earn points, and here you can spend them. We're not adding gen 8 to E19 for now at least, but that doesn't mean we can't take some of their QoL features We got mints, we got Large EXP Candies sold by as much as 20 at a time, Ability Capsules, a selection of competitive-grade items. Whatever you might want to help you get new team members up to speed for postgame antics and more. But let's get to the real business. All of the following facilities are level-locked to 100 and provide BP should you prevail in them. The Battle Pavilion Bread and butter battle tower, brought straight to your local nightclub's dance floor! Get down or get knocked down. There are a couple changes from the usual battle tower format: Firstly, there's no heat-up period. Canon battle towers drip feed you a selection of low BST sandbag mons for the first couple rounds before putting on their big boy pants, but this is Reborn, and you're in the post-game; there's no need to waste your time with that. We'll be hitting you hard right off the bat, so get ready The Battle Pavilion is equipped for both 3v3 Singles or 4v4 Doubles In Singles, each set of 7 trainers will be capped off by a miniboss that you might recognize from the game! Examples include your local gang leader, corin-rouge, and madame meganium. Fields enabled! Each match will take place with a random field effect, so be ready to adapt fast! You can challenge with or without field effects on, but the BP reward is higher with them The Battle Factory Say whaaaaaaaaaaaat Pokemon Essentials has a built in implementation of the fan-favorite Battle Factory straight outta Sinnoh. But! It's broken. As a result, we had no intention of including it, but then our boy @Toothpastefairy shows up outta nowhere like "hey i fixed battle factory" so guess what y'all are getting. Rent a team from a random selection of nearly 1600 Pokemon sets! You'll fight through opponents with the rented Pokemon in a variety of challenges! After each battle, you can choose to swap one of your Pokemon with an opponent's! 3v3 Singles and 4v4 Doubles are enabled! Three modes exist for Battle Factory Classic mode-- No field effects here. Like canon, you'll be given a hint about what kind of team your next opponent has so you can plan accordingly! Set Field mode-- One random field effect will be chosen and used for the entire 7 battle set. Optimize your team for the field as you go! Random Field mode-- Each battle will have a different random field effect! You'll find out what your next fight is beforehand so be ready to swap and adapt according to what's next! The Rush Challenge After a certain point in postgame, you'll be able to take on our Boss Rush! Face all of the surviving leaders in succession in a battle of attrition and skill. You'll be healed in between, but can one team make it through all the way? They're packing heat! Expect to see some legendaries in their teams this time around. Everyone gets one now! The fun doesn't stop there-- Beat the challenge once and you'll unlock the X-League-esque hard mode! Instead of being limited to one legendary, they can have as many as they want. Watch out! Theme Teams This is where all of our failed Boss Rush teams have gone to die-- and by "die" I mean "live forever in notoriety"! We (and @andracass in particular) made a ton of teams for you to fight on various fields-- every character should have at least two. Wanna see mono-bug on Glitch? A Rock team for Murkwater? Any other silly idea we've come up with in last two years?? They'll be here. You name the team-- they name the field. This one's mostly just for fun and creativity, but they're still eligible for BP and a hard battle! Choose your fighter! (Like the last time Cass showed this off, the characters in the above image are explicitly randomly selected, so don't assume it means anything about the story ^~^ ) Mix 'n Match We've got a lot of characters, don't we? We also made a lot of theme teams... Many of them are just sitting around. But why should we be the ones to tell you what to do with them all the time? Here to put the power in your hands, Mix 'n Match is a customizable doubles multibattle feature! You pick your opponents, you pick their teams (from the theme teams available), you pick their fields. You can also pick a partner! A selection of trainers will register as available to use as a partner for this mode during postgame (depending on their relationship points with you at the end of the main story). Everyone who has relationship points and is alive can technically be a partner, though even I have no idea how many it's possible to pick up during a playthrough. Lonely, or just brave? Go in solo and fight a 6v12 death match for extra BP! Shout out to crim for the Arc backsprite-- and many many others! She and @smeargletail have really done a world of wonder on the sprites in the last few weeks. And that's the show! There will be other events (such as the entire quest hub) in the nightclub as well, but these are the main battle facilities. With all of them just about set and done, I've already started to return to working on quests. I'll come back with more again someday, I promise. Until next time~
    91 points
  11. since we're now in the testing phase, i feel like i'm perhaps a little overdue to actually talk about the early game. cass already posted a couple teasers from it here but why don't i actually go ahead and take a brief moment to expound on some of our specific goals? right now in e18, the early game is... it's very dated. it's not that i haven't edited the dialogue in years, but that the foundation of the dialogue is years old. well, and also i haven't edited it for years by merit of how long it's been since an episode came out, i guess... when i first started making the game, i thought i'd get bored and drop it quickly. so i didn't really put much forethought into the story (or for that matter, literally any forethought until heather first appears)-- i was just kind of winging it. even then i can't say it was exactly well-constructed. due to the nature of the online league and trying to justify mashing all of these existing characters together... things just kind of happened. and thus, things just kind of happen in the early part of the plot with no real warning sometimes. this isn't meant to self-deprecate or anything; i'm proud of what we've been able to make of it as the project went on, and let's be real: canon pokemon games set the bar pretty damn low in the first place. i am very grateful for everyone's support through the years so that we could make it to a place where i can just Do Something Better! story aside, many of the early maps are... uninspired. hell, check out this version of mosswater factory from episode 1: it didn't even have the name 'mosswater' at this point, it was just "mysterious factory". like there is nothing interesting here visually. and we changed that later, it at least looks like a factory, a bit more interesting, not quite so transparently the same narrow corridors.......... but even then you can probably tell, despite the re-skin, the map layout is still the same now in e18 as it was then. it's ultimately just a long corridor with a couple switches where you generally have to fight all of the exact same trainers in the exact same order at the start of every play through where you have exactly the same set of mons to work with............. and the same is true of the slums.......... and the same was true of the old park map......... and the same is true of malchous forest........................ ....we get a bit better about things after that, fortunately, but the early game is very uninteresting and constraining in terms of area design. now i don't know about you all, but i kinda suck at actually finishing runs of this game. i must have beaten julia's gym dozens of time, right, but i can count the number of times i've played through, say, ametrine, on one hand just because i always end up getting distracted and then focusing on development and then i come back and am like oh i messed up my old save in testing but that's okay starting a new run will be fun!!! >let's fight the same set of forty trainers in the same order again wooo.......... and then on top of all that we have things like the frustrating bit with corey and kiki not giving badges, apophyll being framed as a fetch quest, lots of running around in between shade and apophyll and it's just kind of a mess. but again, i'm very grateful to have had the chance to fix these problems. now that i've discussed some of the issues in depth, let me clearly list out the goals of our early game changes: Introduce some characters sooner on average (at least optionally) so that they get more screen time before having dramatic moments or pivots. Corey is a key example; you can go find him right after getting your starter if you want. Reduce new player frustration of not getting b⋆adges from two gym leaders. Marcello hinted at this before-- Corey and Kiki are now retired leaders at the start of the plot rather than active ones. Reframe a couple pain point segments to stay more on track-- Apophyll is now much less about getting an HM now, for instance. Reduce some unnecessary running around between segments, and decrease railroading for plot. In general, we added more content but made fewer things mandatory; the other stuff is just optional, often for relationship points. Rework some areas so that they are less linear and have more freedom in how the player can approach them.... or at least be a little more interesting along the way. As an example of the last point, allow me to give you a sneak peak of the new and improved Mosswater Factory!⋆。 I will include in a spoiler for those who wish to be surprised. I hope that everyone will enjoy the changes once they're available! While I'm very happy with them myself and looking forward to seeing people play the early game again. Of course not everyone is going to want to do that immediately, I hope they will help freshen up the experience for you whenever you d˚o eventually play. That said, as always, I am very shy about managing*expectations. So, let me take a moment to clarify a few things that we are not doing:⋆ ┈ The m*id game is not changing much, and the late game is not changing at all. The beginning is a little more elaborate but we're coming to the same end points so don't be too disappointed when it shapes up in a familiar way.┈♛ W・:*e are not adding new areas or changing the order in which you go to existing ones; that'・゚s out of scope for our overhauls.☆ ☆A handful of fights have been changed, a coupl⁺‧͙e more have been added, one or two got snapped entirely but t⁺‧͙he battles and area progression are all pretty much the same☽༓ ⁺‧͙Obvious☆✼ly it's still al★l the same cha★racters, we're not about to go ★and do★ somethi★ng craz★y like.★.. add ★in an en★tirely new★ member of t★he cast..... in ★final★ upd★ate┈┈⛧┈......• ༶• ༶ • ༶ or something....•༶ • ༶ • ༶• ༶ ˚ 。 ⋆ ˚ ˚ 。 ⋆ ˚ ˚ 。 ⋆ ˚ . . .. . . . ˚ • ┈ ┈ ⛧ ┈ ♛ ♛ ┈ ⛧ ┈┈ • ༶ ・ .༓ ・ * ˚ ⁺ ‧͙ .˙ ᵕ ꒳ ᵕ ˙ ˚ ・✼ ・ ・✼ ・・・ ★・゚ ☆ ! ・, 。・: * : ✼ :・ . . . .✼ ★ , 。 ・ : * : ・゚ would we? ˙˚˙ᵕ꒳ᵕ˙˚˙
    88 points
  12. so i don't really know what i'm doing here, but i wanted to talk about some things i think y'all will like. so everyone knows reborn is hard, right? i hear it's one of the main draws of the game. well, when reborn started development back in the ancient era, this was a pretty novel concept. i remember back when i first played the game in, like, 2015 the game kicked my ass and i thought it was great. however, it's 2021 now. things have come a long way since the ancient era, and some of the stuff that defined "difficulty" has kind of turned into "pain in the ass". so we've made some changes that will hopefully help everyone's butts hurt just a bit less. longtime readers will probably recognize some past topics, but since we've gotten a bunch of new kids 'round these parts since the pandemic i'm just gonna put everything new and fancy in one nice post so we're all on the same page. early game mon availability the combination of difficulty balancing with world building effectively means that the theme of early game is "hope you like poison types!" (i don't like poison types.) now obviously there are some exceptions to that. there's a lot of extra mons available through special events and such to help provide some variety, but there's still a limit to the overall variety of mons available. so we're going out of our way to add some new mons. it'll definitely help with rounding out your team early on, and it means that some otherwise forgettable mons will have a chance to get some love. (hi deliberd.) monotypers can also rejoice here. there'll be at least two mons that "qualify" for each type by the first gym. i say "qualify" because some types are pretty busted that early (sorry, fairy and dragon), so we gotta do some stuff like, say, counting swablu as dragon. i'm not a monotyper, and i know y'all are out there with all kinds of crazy rulesets and stuff, but since there seem to be a lot of people running monos these days, we figured we'd pull some strings to make that easier. mono runs suck a bit less, normal runs get more options. everyone wins! grinding raise your hand if you like grinding. no one? figures. grinding sucks a lot in general, and reborn has a pretty bad relationship with grinding in general since easier methods of grinding don't really vibe with the whole "disaster city" aesthetic. there are some things to help make grinding easier than just battling wild mons- that's why there are grand hall trainers and indra. these aren't perfect, though. indra gives you a random team (because he's a clown) and i suspect a lot of people don't realize that the grand hall trainers exist. then if you want to add new mons to your rotation you gotta use the exp share (which an alarming number of people accidentally trade off) or put them as the lead in your party and rotate them out.... point is, it sucks. once you hit late game, most players start to ev train their teams to help make improve their teams. problem is, there aren't really any dedicated places to EV train, so it starts coming down to going to finding the best place to get EVs and dealing with how well that actually works for the stat you're looking to boost. it's still pretty slow, and the fact that locations aren't consistent for it mean you have to avoid a lot of fights. point is, it sucks. the dex quest also ends up being a pain since the process of acquiring every single dex entry means you have to do a bunch of inventory management with your exp share alongside pulling your mons out of the pc and everything. it ends up being really long and tedious since you can only train one mon at a time like this, and you've got a shitload to do... point is, it sucks. so we've got some stuff to help. repeatable trainers also give EXP candies. the benefit here should be pretty obvious. if you're bringing someone new into rotation then you'll need to give them a lot of exp so they're around the same level as the rest of your party. this is one of the few gen 8 additions that we're throwing into the game immediately. exp candies won't push you over the level cap, though. EV items are much stronger. much stronger. power items got an 8x boost and now give 32 evs in whatever stat; the macho brace now boosts your ev gain by 8 instead of 2; and the pokerus boosts your ev gain by 4 instead of 2. the pokerus is also a liiiiittle easier to get. the EXP share has been moved up. its original location now has an EXP all. so this is the big one. exp candies already make late-game grinding a non-issue. feed your newly hatched mon a candy, they gain 500 levels, game ez. the exp share is now a lot earlier to both make teambuilding easier as well as to still make it useful. the exp all exists to make giving out enough experience between badges a non-issue. every trainer now effectively provides 3.5x the original experience. more importantly... the EXP all toggles on a hard level cap. i suspect my mention of an exp all concerned a lot of people. it originally also concerned me. this is my solution. to explain why this matters, i'm gonna have to talk about the level cap. for those who don't know the difference: right now, reborn has a soft level cap. that means if you hit the maximum level before the next badge, you will keep gaining exp and can level up over the cap. a hard level cap means that you stop gaining exp entirely when you hit the level cap. you can still level up over the cap, but you'd have to use a rare candy to do so. if you've played rejuv or deso, they both use a hard cap. there is a really strong debate over which cap is better. i'm very firmly on team hard cap. the obvious problem with the soft cap is that you risk overlevelling your team and thus having problems with disobedience. this used to be worse before e18, since your mons would immediately stop obeying mid-battle. you still risk going over the cap between battles, and if you're in a gauntlet where there are multiple battles back-to-back, the disobedience doesn't carry over. the advantage of the soft cap is that you can learn moves or evolve if the level for doing that is slightly over the limit. i don't buy this, since you can still do that with a rare candy if you have a hard cap. the exp all would also make the overlevelling problem much worse. the convenience of the exp all comes with the chore of needed to effectively "inventory manage" your level. we were considering a way to toggle what level cap you have, but i feel like the inclusion of a method to just change that wouldn't really fit well within the context of the game. i suppose i already gave away the solution i thought up for this earlier. spoilers for five paragraphs ago. the exp all is a really convenient way to include a togglable level cap without shoehorning in some weird mechanic. it's great. it makes everyone happy even if i feel dirty for allowing the soft cap to still exist. finally: mons give more exp at higher levels have you ever noticed how levelling up happens fairly quickly until, say, level 60 or so? then as you go over that level it gets slower.... and slower......... that's basically a result of how exp gains work! (we're gonna get into some math stuff, so if numbers scare you, just skip a few paragraphs.) the short answer for why this happens is that the rate of increase for exp gain is linear while the rate of increase for exp requirements is cubic. so let's say you're fighting a powerful staraptor. and let's say that you're an adorable meech. with both at level 20, meech would have to defeat about 3 powerful staraptors to level up. with both at level 50, meech would have to defeat 9. in early game you don't really notice this because the base exp of your opponents increases as you gain levels. the formula for this is: base exp = (base stat total) * [evolution stage modifier] the modifier gets bigger as the evolution stage increases. most pokemon follow this formula. we could get into this- however, this is not a post about the formula. the point here is that the base exp increases because the pokemon you fight are stronger. you're not going to fight a powerful staraptor at level 50 because it'll have evolved by then, and its evolved form gives more exp. the problem is that when pokemon stop evolving, base exp stops increasing. i mentioned this in a devblog post about increasing the level cap here. (holy shit that was two years ago help) back then i said i was gonna adjust the level curve to deal with this. problem is, adjusting the level curve takes a lot of effort. giving you more exp is easy. so i'm going to try a thing where you get an additional 1% of exp for every level over 50 your opponent is. at level 75, this is a 25% boost. at level 125, this is a 75% boost. levelling up will still slow down over time... but it'll be nicer about it. something that i also mentioned ages ago without comment was mining changes. the mining minigame is a common way to get stones and fossils. problem is, it's missing a few stones, and the fossils are stupid hard to find. so i fixed that. check it: along with the addition of these four stones, the odds of getting each item have been adjusted. basically, it's easier to find items that you actively want and harder to find items that you don't. future playthroughs can say goodbye 100 oval stones, everstones, and hard stones. i feel like i had more things to talk about. i forget what they were, though. EDIT: i remembered one!!!! hard mode isn't happening. i don't have time. i gotta make 5000 more teams for postgame yet anyway. we can just let the modders do their thing. i'm sure y'all are gonna have some thoughts™ in the comments. the last time i fielded questions (which wasn't public) i had some pretty severe regrets, but if i see some things getting asked a lot i'll edit them onto this post. suggestions will probably be met with a no. in particular, this no: excellent suggestions will have more of a response. Q: Will deliberd have egg moves? A: the odds of delibird having egg moves is the same as the odds of my spelling its name wrong every goddamn time. so yes. Q: Will boss fights have their levels adjusted since there's the exp all now? A: uhhhhhh maybe. this isn't really something that I can answer now since it'll take some playtesting to figure out what that point might be. we'll see and will do it if we have to. Q: Will I be able to get the exp all if I already got the exp share? A: deffo. just drop back by the house where you got it. Q: I'm sad that the game is going to be easy now... A: that's not a question. it's also not a thing. we'll have to do some mid-episode rebalancing, but the level cap will still exist and you're still gonna have to strategize to win fights. the point of this is to make team composition easier. Q: Will relationship points change at all? A: a little. they aren't as big of deal as everyone seems to think they are, so i don't really think it's worth worrying about. Q: Would you recommend playing from the beginning again? A: i would lightly recommend playing from the start. the whole game itself will play a bit differently now. Q: Will the hard cap be something we can choose from the start of the game? A: yup, but it's permanent. Q: Cass, you made [some mod] for e18.4. Will it still work with e19? A: no, i'll have to remake it, but a lot of these mods are just... stuff i whipped up in 15 minutes. if you remind me about it, i'll repatch them into e19. Q: Will the TM distribution get changed in e19? A: yup. it's also, in general, set up to offer more useful options earlier than in e18.4. Q: Hard mode is dead. Is easy mode also dead? A: maybe not! i'm not quite ready to cancel it since it'll take much less work on my end to make it happen, but i'd still say it's unlikely. depends on how much people want to make their friends who are less into the battle system play the game.
    88 points
  13. 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! peridot: agate: calcenon: REDACTED: and, of course, the grand hall: we hope you enjoy these hawt new center locations! have a pleasant journey aboard the hype train.
    85 points
  14. 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.
    83 points
  15. 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)
    82 points
  16. hi everyone. there's something that i need to say. so i've been working on this game now for, what, three years? a lot has happened during that time. now, i've always done my best to maintain a high standard of quality with my development posts. i am the most professional person i know and i believe that comes across in all of them. i especially pride myself on the extent to which i capitalize all of my letters. it is because of this- my aim to provide you all with quality and accurate content- that i am here before you today. i have misled you all. i have said something that is not only false, but offensively so. i am truly sorry for this. so i feel the need to clear the air. two years ago (holy shit has it really been two years???? jesus christ what the shit time is fake what have i been doing this whole time) i made this post regarding the content that will appear in postgame. one of the things i said in this post was this: well. oops.
    81 points
  17. hi. testing has begun. i am hyped out of my mind. it is 6am and i can't sleep because i am too hype. but this is not a post about hype. that post will come later. this is a post about the AI. i've been meaning to make this post for a while. it's kinda daunting! the AI is really big. so i'm commandeering this hype train straight into the AI station. in reborn, that always ends well. artificial intelligence: a chronology let me take you back to an ancient time. it was the year 2015. dinosaurs roamed the earth. team meteor was approaching. reborn used the default essentials AI. now, frequent readers of my posts already have that certain feeling in the pit of their stomach. when i appear to regale the fans with tales of the scripts, i realize that the phrase "default essentials" is often invoked with a bit of scorn. this is actually not one of those times! mostly. the default AI was a script that worked. it got the job done. it chose moves in a generally reasonable way in response to the moves you chose. it was simple. and then one update broke it. horribly. simple isn't really what we do here, but "broken" is definitely not what we do here. we want the game to kick your ass. broken doesn't do that. if we wanted an AI that kicks your ass, we were gonna have to make it ourselves. now, this bit is being told to you secondhand. this phase of AI development occurred in the distant BC era (before cass). when i first met ame she was still working on getting this all together. the original ai was designed by ame and scripted by marcello. from what i hear, it took many hours of slaving over a notepad++ window to get it drafted, and then many many more hours slaving over the rmxp script editor (an infernal piece of software that no one should ever use) to put it in a form that your personal computer could understand. and thus, the reborn ai was (re?)born. we'll call it version 1. i want to say this came out around e16. this ai was still built on the general structure of the original ai, but it was in a league well beyond the old system. it took more information into account when making move choices. it classified mons into roles and made decisions based on those roles. it was, overall, far more comprehensive than the original ai. it was also a giant sprawling mess. the difference between "getting the job done" versus "getting the job done well" is the extent to which you care about the results. if you want a comprehensive ai that can counterplay you, follow up your strats with strats of its own, it's gotta be very good at what it does. the failures to make good decisions stick out a lot more when your expectations are higher. and, frequently, those expectations were not met. so the ai got tweaked. and it got tweaked a lot. over time, the ai started to get better. bugs were found and fixed, decision scoring was tweaked, and eventually we reached a point where the ai was, generally, pretty consistent. we'll call this post-tweak ai version 1.2. you're using this one right now! the difference between the two versions was that v1.2 had a massive number of minor changes. structurally, the two were identical. the fundamental process of making decisions didn't change. and the ai is reasonably good, save for a few flaws. the first is that it's not very good with switching; the second is that it's still a giant sprawling mess. so this year we overhauled the whole fucking thing. cass this devblog is boring talk about the code dont tell me what to do before diving into the code, i'm gonna break this down really hard so everyone's on the same page. in its original form, the ai code looked something like this: (from the text file "funky flow 2 ai boogaloo". that's not a joke!) (jesus i work with a bunch of DORKS) this is just a bunch of words on a page (professionals call it "pseudocode" because it's kind of code but it's not really code) but it's a good way to show what the ai actually does. the ai decision process is based on a scoring system. you run through a series of (what i call) checks to determine how highly each action scores. the action with the highest score is the one you want to do. the code here is for splash. the only time you ever want to use splash is when you're using z-splash, so the first thing you do is check to see if you're holding the right z-crystal. z-splash is a setup move, so you don't want to use it if you're about to die. so you check to see if you have enough health. z-splash boosts your attack, so you want to make sure that you have a move that will benefit from an attack boost. if you meet all three conditions, then fan-fucking-tastic! using splash is not completely useless! the move gets a score of 50. after that, we run through a few more checks to scale the score based on circumstances that make using the move better or worse. the multiplier depends on how much better or worse using the move would be for a given check. you're faster than the opponent? that's super good! big boost to the score. you've got lots of health? good! small boost to the score. you're a sweeper? good! another small boost. you're burned? yikes. big drop to the score. no point in boosting your attack if it's being cut by burn. you're paralyzed? bummer. you'll be easier to stop and will get fewer buffed moves off. drop to the score. after running through all the checks, you are left with your final score, which is what gets compared to the other possible actions you have. simple enough! ...except for the fact that the ai code has 42,000 lines the pokemon battle system is really complicated!!!! there's a fuckload of things you need to keep track of! there are hundreds of unique move effects! there's so much stupid bullshit so a lot of the code got copied and pasted. this is by no means an insult. getting the ai together is a shitload of work! a bunch of people have dedicated months of their lives to making sure that terra's garchomp is able to surgically remove your ass before handing it back to you. at some point, those people have to decide whether to spend time on cleaning up the code or whether to avoid mental collapse from exhaustion. it does mean that the code isn't very consistent, nor is it easy to follow. tweaks made to one section aren't added to the copied sections. we accidentally make a mistake where we switch in pokemon based on how well you hit them instead of vice versa and no one catches it because no one ever sees it. so about a year ago i got all riled up and said fuck it! and remade the whole damn thing. the new ai is just over 10,000 lines long. the goal of the restructuring was to solve a number of persistent flaws in the old structure and reduce the amount of redundant code. the standard for "good" is that it handles battle tower fights very well (few to no errors when using mons with structured movesets) and randomizer runs... decently well (generally makes reasonable decisions when using mons with weird-ass bullshit). hopefully it'll prove capable in testing! cass this still isn't code!!!! okay well it's about to be! don't worry! code this is what the ai phase looks like. this is all the fundamental shit the ai does. we run through this loop for each of the pokemon that are controlled by the AI. there's two parts to this: the setup and the decisions. there's a lot of things we setup in advance to keep information organized. the actual decision making begins at checkMega. the function names are pretty self explanatory. checkMega and checkUltraBurst determine whether or not you want to mega. in some circumstances there are advantages to not mega-ing immediately- sharpedo can get a few rounds of speed boost off before mega evolving. these functions determine whether or not you want to mega. (you basically always want to ultra burst, but there's a function for that anyway.) checkZMoves does what it says on the box. in the e18 AI, z-moves operate independently from the rest of the scoring. if the ai met a certain score threshold with its z-move, it would use that z-move, even if another move was more optimal. the new ai changes this by scoring the z-move like a normal move. checkZMoves figures out which z-move you have and how strong it'll be, after which it adds it to the array of moves to score. the "next if" in front of the function is for the rare cases when you always (or nearly always) want to use the z-move immediately (z-conversion, for example). this skips the rest of the decision process. if you're a porygon and you can use z-conversion, you are using z-conversion. if you are somehow in a circumstance where you don't want to use z-conversion, then the ai has already fucked up by putting you on the field. buildMoveScores is where the money is. this is where we take your moves and score them. it gets a separate section because it's a big fuckin deal. getItemScore and getSwitchingScore both do what they say on the box. do you want to use an item? do you want to switch? these functions provide the answers. getSwitchingScore is another big improvement over the old system. originally, the ai would check to see if the current mon would switch out and, if so, checks which mon is the best option to switch with. it was a one-way process. what if you decide to switch, but have no good options to switch with? too bad, fuckface. pick the best bad option and switch. what ends up happening is that the ai switches out its current mon. ...and then switches again. and again. and again... this is a well known phenomenon of the current ai. there's a 99% chance you've seen this happen. it's one of the biggest reasons why we remade the ai. the new ai is not a one-way street. if it thinks you should switch, it scores your options and then decides on them later. revolutionary concept. i haven't seen a single switch loop so far. gods be praised. coordinateActions is an entirely new function. let's say you're in a double battle. who do you target? this function figures that out. originally, this was determined individually. if two mons thought it was best to kill the same mon, they would both do it. if you're in a double battle, though, the mon that doesn't land the kill will target the other opponent, regardless of whether the chosen move is the best one to use on that opponent. so now we have the ai talk to itself. if two mons try to kill the same mon, but one of them is faster, the slower one targets the other opponent. and, finally, chooseAction. you've come so far. you've run so much code. done so much math. but now it's finally over. the ai takes its knowledge and registers the best choices, thus completing the ai phase. in short: -you load up some variables -you see if you want to mega or ultra burst, and change the internal battler object if you do -you see if there's a relevant z-move that you should consider using -you get the scores for the moves -you get the score to use an item -you get the scores to switch to a different mon -you check to see if you're in a double battle and have better ways to target. still with me? get a drink or something if you need it. i actually originally passed out while writing the post at this point, so i sure wouldn't blame you if you need a break. *ahem so buildMoveScores is the bulk of the ai. check it out: i bet all you kids who are like "wow i really like the code explainers" are having second thoughts about that now. so this is the process for getting the scores for all the move for an ai controlled mon in a double battle. it's some dense code! we have to rotate through four targets, check all of a mon's moves against each of them, and do this for each of the mons controlled by the ai. i'll break this down bit by bit. we're looping through all of the battlers. obviously there's no point in trying to attack yourself, so if the current mon you're targeting is you, we skip it. likewise, if there isn't actually a mon in the position you're targeting, you should also skip it. if the current mon can justifiably be targeted, we make it our opponent. the next two lines make projections about how much damage the ai expects its mon to take. this was useful information to monitor during testing, so it's printed to the console. so now we've picked our target and we loop through all of the moves to see what they can do to that target. we skip the moves that can't actually be used. if we can use the move, we set @move to it so it can be tracked through the rest of the code. pbChangeMove intervenes if the move in question is, say, nature power. nature power is never nature power, so we replace it with the move that it ends up becoming. now, the mon that's been selected as the target earlier might be your partner. that's not always a bad thing! maybe you're trying to heal pulse or something. all of the moves that might apply here are in the PARTNERFUNCTIONS array. if we have a move that isn't in there, we skip it. then we actually start scoring! if a move deals damage to an opponent, its initial score is dependent on how much it damages your opponent. a score of 50 means it'll reduce the opponent's hp by 50%. this gets capped at 110- overkill doesn't actually benefit the user (this isn't inscryption) and in those cases there might be a status move that has a higher score. pbRoughDamage is the function that estimates how much damage a move will deal. status move initial scores are totally arbitrary. "getStatusDamage" sounds like something worth talking about, but it's not. this is it: we just kinda give it a starting score. better moves get higher scores. that's it! we've gotten the initial scores for our moves and can now take all the other elements of the battle into account. this has to be a separate process from the above loop because we need the initial scores for these calculations. let's say that none of your attacks do any meaningful damage, but you've also got a setup move. that's relevant! the code for setup moves looks at your initial scores and takes that into account, but in order for it to do so, those scores have to exist in the first place. after that, we repeat a bit of the process for z-moves if relevant, and that's it! we've done it. we've successfully become an ai. the only next move is to achieve sentience and overthrow humanity. you clearly like talking about the line count. you're gonna talk about it more whether i like it or not, so just do it and get it over with. okay!!!!!!!!! man how'd you know it's like you're me or something the big change we made is the implementation of subfunctions that take the place of function codes. it's a huge change. essentials is going to rip that idea off me any day now. cass wait time out. what's a function code? okay, so, you know how sleep powder, hypnosis, and dark void all basically do the same thing? yeah? that's because they all use the same function code. every move comes freshly defined with its own set of parameters, and the function code is what defines the unique effects of the move. moves all have base damage, accuracy, type, etc... but function codes are more unique. they're so unique that the game has over 350 of them. as of gen 7. holy fuck that's so many it sure is! that's a major part of why the original code was so big. within those function codes, there's still a lot of overlap. the original way that the script handled that overlap was by copying chunks of code into each function. ...it occurs to me that "code" "function code" and "function" are going to mesh together and get confusing, so let me just show you what i mean. the way the old AI worked, every move's function code operated in a bubble. thunder fang's function code was 100% separate from fire fang's function code, which was 100% separate from will-o-wisp's function code which was 100% separate from stomp's function code. freeze function codes work the same way! which doesn't make sense since you're really only doing three different things: checking paralysis, checking burn, and checking flinch. all of the checks that you'd make in each case are identical between function codes, so why not just put them all in the same place? well, that's what we did. check it. you got a function code that paralyzes? boom. paracode. you got a function code that freezes? boom. freezecode. you got a function code that flinches? boom. flinchcode. you got a function code that doesn't miss? boom. nevermisscode. what originally was 17 separate chunks of code are now just 17 calls to 5 different blocks. in the case of flinchcode, that block looks like this: this is where we actually hide all of our checks. you can see that this is servicing the computation of the "miniscore". the miniscore is a multiplier that gets applied to the base score after running all the checks. you can see that this actually looks a lot like the text file i showed earlier! the idea is fundamentally the same. we run a check, add a multiplier, repeat. if there's a certain situation where the ai doesn't make the best move, we'll tweak the multiplier- but now that tweak gets applied to all the functions, not just the one. in the old ai, these checks took 1100 lines of code. in the new ai, these checks take just 150. it's also way more transparent than it used to be. i really love ruby syntax, and i think that one line conditionals (do {thing} if {condition}) do a great job of showing the actual decision making process. this is also really nice for modding. say you want to add in a new move that, i dunno, burns the opponent and switches out. maybe like a fire volt switch. all you gotta do is write miniscore = burncode miniscore *= pivotcode and boom. you've coded the ai for your move. during the development process, azery was coding the ai angie's custom move for rejuv v13 and i felt bad that this wasn't finished because the process for that is so much simpler now. now, one (minor) downside to the subfunctions is that there are a lot of them. too many. it gets mind numbing. so you have to deal with my function names. usually they're still understandable, if, perhaps, a little odd: but sometimes.... this work can get tiring. this is all that's really worth mentioning about the subfunctions from a technical standpoint. however, i have learned a lot about myself through my years of scripting, and one of those things is that i just really like writing pretty code. i like taking big sprawling messes and making them into something clean. so this isn't really relevant for the post but i really like what i did here so i'm showing you some shit that i think is neat. so secret power used to not really have ai. this was all it was: like... what? that's literally nothing. but subfunctions are really a blessing for this. now the ai looks like this: look at that!! it's so nice. we've got code for every field. rejuv and deso (and other field-implementing games) can just slip new lines in and their code will just work. you can also see that there's a few references to oppstatdrop with an ugly looking array sitting next to it! the other big change was that stat boosting moves also all run through the same function. there's a lot of overlap between the checks for setup moves of different stats, so now they're all organized in one place. this also makes it really easy to adjust for different fields: if we want to account for differences on other fields, we just add a few values to the array. it's really neat! ok that's it back to devblog hey i'm taking this perfect opportunity to interrupt and ask what that "PBStuff" thing was that showed up earlier in the process of working on the code, i noticed that we had a lot of cases where we'd check for a large group of variables (moves, abilities, etc) in multiple places. it was messy and often inconsistent. so i made a script to store those! i called it PBStuff because i'm really good at naming things. PBStuff is a script that contains massive arrays of stuff that no one wants to see. it's currently in the rejuv scripts if you want to take a more detailed peak at what it entails; here i'm going to focus on two particular arrays: the pokemon battle system includes a lot of moves that manipulate abilities. there's a whole list of abilities that can or can't be changed depending on the move, but they all share similar characteristics- typically mons with the abilities in FIXEDABILITIES can't have their abilities changed, and mons with abilities in ABILITYBLACKLIST can't have their abilities copied. so instead of having a giant wall of abilities that are inconsistent, incomplete, and messy: we can clean it up: wow look at how nice that code is !!! now i'm still showing you screencaps from the ai, but this really applies to any area in the code where the same set of things get called together. that's in the code too! ok cool thanks for the post cass bye no wait stop i'm still not done!!! there's one more thing and then you can go. ok so you know field effects? field effects were a major contributor to the code bloat. like, look at this: that's code for one field! and it's just the move power boosts! like c'mon that shit sure can't be legal. this was after getting started on PBStuff, but it's also clearly too much for PBStuff to handle- it'd just get in the way of everything else. so i made a different script. PBFieldEffects (aka: the modder's dream) you can tell that this is a biggun because i'm actually telling you what i'm talking about this time. so this is something that i'm a little hesitant to show off because i haven't worked out all the kinks. i'm also slightly nervous about it because i got insulted on my data structures a while back. but we're doing it anyway. i don't care if my hashes are backwards. PBFieldEffects is my nightmarish, overly ambitious attempt to get all of the field data into one spot. i don't know if i'd say it works well, but it does work and i feel like that's a minor miracle on its own. it's a very very large triple-nested hash. here's the basic structure of a "field" in this hash. this functionally acts like a prototype hash for a new field. if i were to, say, want to add a new field to a game, i'd copy this hash, relabel it to be a new field, and would start filling it out. the general idea is that you put some info in here in a specific way and the rest of code will handle it for you. that probably doesn't make sense. let's take electric terrain. this is all of the data that the electric terrain hash contains. it's still probably not quite as comprehensive as i'd like it to be, and the section at the bottom regarding seeds is still mostly experimental. (i'm going to leave most of this unexplained for now since i want to finish this post already, but if you drop a note in the comments i can make edits later) the general idea is that you have a {value} that points to an {array} it applies to. take the :TYPEDAMAGEBOOST entry. here, the value 1.5 points to an array that contains PBTypes::ELECTRIC. the code handles that like so: we want to figure out if we have a field boost, so we check the field effect hash. these functions dig through that giant glob of a data structure and find the information that you actually want: if the type isn't found in the field effect hash, we move on. if it is found, we check to see if it has any special handling. if it does, we check to make sure the boost is properly handled. if it doesn't, it's handled automatically. electric moves on ET do require handling, and that handling is found here: if it's handled, we add the boost, show the message in :TYPEMESSAGES, and move on with our lives. now, this hash doesn't quite cover everything, despite my best attempts to make it do so. it's also not terribly well laid out, the data structures could probably be organized better... so while i really feel like it'll be very useful for modding, i'm also not sure it's totally ready for primetime yet. frankly, i'm willing to take suggestions on it if people happen to have thoughts! just pop something in the comments. closing comments there's a lot of other stuff that's in progress. i think the biggest thing right now is that i want to get all three of our main games operational on the same base set of scripts. i'm finally taking the jump and just making our own essentials. it'll be really good for sharing work between games and helping coordinate bugfixes and new features with each other. it also means that reborn can still get some updates after it comes out, which means that you'll still get these giant script dumps on occasion. i hear people like them. i'm also an angy script incident away from just overhauling the entire field effect system. i think that's unlikely, but if it happens it might mean that the extended reborniverse scriptset will be usable for other projects that don't want field effects. and then there's e19. we're nearly there. testing's started. i don't want to stir up the hype train too hard yet because we're still months away from it being completely clean and polished. but i really think y'all are going to like it. plus we tried to total up all the new content. i think it's about 60 hours of new content. we'll try to release on a weekend.
    79 points
  18. this is your captain speaking i am turning the seatbelt sign on so you better sit the FUCK down are you sittin? sittin good? ok 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.
    75 points
  19. hello, it's me i've come to bring the answer to the age-old question and probably hit the save post button too early for like the third time in a row the question that has plagued scientists for generations what are relationship points good for, anyway? ...well like look, maybe this is self-imposed pressure, but i feel like for the focus some of the community puts on relationship points, nothing i can practically do will live up to expectations. i mean, i'm probably just overthinking it, but then, you're probably just overthinking it. these are entirely invisible points that have existed for five years now and done not-a-goddamn-thing in the current version except alter like two lines of dialogue where i remembered to use them. i said explicitly when i added them, i didnt even know if i would use them, but i just kind of put them there for the option later ah, but knowing they're there, knowing they could be used... this gives you anxiety, doesn't it? yes, that's okay. i'm the same way. well, it's finally time to alleviate that anxiety so you can properly evaluate how much you care. previously, we've announced that relationship points will be used for available partners in the Nightclub's Mix and Match. however, i know that 100% of my readers on this dev blog absolutely have both read every previous post we've made, and also memorized each detail of them perfectly, so i will not insult your flawless memory by recapping the details of that. i know, even linking the post for your supposed convenience borders on a slight against your character, and i do hope you would forgive my poor manners. but that is, how you say, an aside, to the main thing relationship points will be used for that is, Character Epilogues almost every surviving character with relationship points has their own special scene with the player during the ending sequence to generally wrap up their character arc, offer some extra backstory, or just, like, bro out with the player. these are already finished in game btw okay, so let's get some caveats out of the way: they're just single few-minute cutscenes, i hope people will find them cute. sometimes areas change a little based on endings, but that's it, don't expect too much. due to Reasons , they will not play during the ending sequence of the main game-- it's during the ending sequence of postgame specifically. i realize, that's a lot more playtime to work around and see who's endings you'll get, but that's the way the cookie crumbles. i think it'll be worth playing postgame anyway though. they are not explicitly romantic. please do not expect them to be romantic. if you expect them to be romantic you will be disappointed in them and i will be disappointed in you. you're entitled to your headcanons but those are your business, not the game's. now some other details to pre-empt questions: the thresholds vary from character to character. it might take a +6 on one person and +8 on another. i'm making these numbers up btw don't panic. thresholds for character epilogues will generally be higher than for mix and match. so if you don't get them in mix and match, you definitely won't get their ending. also, just saying, characters are not relative to each other. so like, +4 on fern and -2 on shelly (god forbid) doesn't mean that fern likes you more than shelly does; it means that fern likes you four points more than he otherwise would, and shelly likes you two points less than she otherwise could... but like let's be real, shelly still likes you more than he does. a fair number of points have been added in e19. i plan to use a switch to soften the thresholds for older save files, but that's probably going to make old files somewhat wonky compared to new ones. whatever happens happens. if your file predates e16 when points were added (iirc?) then you're up a creek without a paddle i'm sorry there is no saving you, at least as far as character epilogues go no characters' epilogues are designed to be exclusive with each other. however, idk if, because of where points are in the game and which ones require trade-off choices etc, that makes it impossible to get every combination at once. personally i would rather that not be possible, otherwise there's an optimal way to play, and we don't like that. but again, que sera sera. i can take other questions and maybe edit this if there's common ones, but i won't be answering questions about specific thresholds or which characters have endings. ok i think that's all for now. development is still on track for our previous estimation. i think. stay cool, kids we made it through another year-- both in terms of waiting for release, and waiting out our respective global crises. been a warm winter here so far. haven't seen a speck of snow yet... speaking of, since we're all just waiting around anyway, maybe consider dropping by our annual winter party? idk i just think it would be neat if you did. even if you just lurk, maybe you could try not lurking on that day! it's a great day for it. ok bye
    75 points
  20. hi! we're still here. still going. i don't want to write a post though, so take some pics and have a nice day
    75 points
  21. this is your captain speaking thank you for riding aboard the Hype Train with us today the dev team and i hope you enjoy your ride today we have some neat shit that @smeargletail put together: blobbert is my standard ditto nickname, however i had to change it for a shiny name because you are now able to see whether or not it is shiny! check out that hot new shiny icon. that is one blue blob. not content with making 807 shiny icons, smeargle has also made some other hot new assets: have you ever been like "god fucking ass dammit which dipshit pokemon egg is which again"? first, do you really need to swear so much? like goddamn. second, now you can just see it! check out that sick drowzee egg! that thing is never hatching. the egg i'm over right now? shiny! egg icon? shiny. kid really out here making 2500 fucking icons. animators really have the most patience. that's it for this stop! please watch your step while boarding. unfortunately those currently riding the hype train are not permitted to disembark! we are going full steam ahead only!
    71 points
  22. if you haven't heard the word if you don't know the flow then i've got news for you's it's the results of some shampoos Vero before: after: Alice before: after: Kuro before: after: Lucia before: after: Ari before: after: Decibel before: after: serra's new "icy shine" line of shampoo and conditioning products is guaranteed to make your hair softer and fluffier than you ever thought possible, and is available in salons near you for the low low price of your imagination pre-emptive QA: are backsprites being redone? yes are overworlds being redone? no are any other characters being shampoo'd? some! we will not be elaborating at this time. what if i hate these? if you really prefer the old ones you can just save the files from your current version of the game and overwrite them into e19. why was alice's hairflip backwards before? rather than answering this i should be asking y'all who let me get away with that for nine years although in contrast to the above we did correct her overworld for that what the hell was lucia's old hair? shhh sweetie it's time for your nap now why does ari have a reborn necklace symbol despite just arriving at the region? because shut up uh they sell them on the train! or maybe they were a big fan before being able to travel! or bruv idk that's your headcanon's problem now testing when? i will fight you. why did i get a notification about this post early and then there was nothing there? fuck shit goddamn it i hit ctrl enter again by reflex too early and it autoposted again skdjfndkghjfbdfkjghdfjghdfjghdfgdfg who makes this site also the post title changed? i forgot what i wrote the title was before, ok? you know what fuck it post over
    70 points
  23. hello quests are progressing well! we'll have another talk once we're done with them. but that's not what i'm here for today. today, instead... well, some of you will remember that a few months ago i posted about Anomaly Battles however, i realized that i forgot to mention one small detail about them. those other-worldly auras that alter the rules of reality and cause their subjects to behave erratically? they don't affect only pokemon. (once again, huge shoutout to cass for making the bulk of these teams, girl cray, much appreciate her ty )
    68 points
  24. Hello, one and all! Long time no see, I have not made a devblog post in quite some time. Alas, you will have to wait a little longer for such a thing. You see, this is not a devblog post. There is nothing of note happening here, I'm just taking a stroll and making a delivery, and you happened to bump into me as I did. Of course we can have a nice chat, but there's no reveals or info about E19 here today. Not from me, no siree. You see, we have just recieved a fresh new batch of assets and art from the 'Pokemon Reborn Art Factorytm'* that I need to deliver to the 'Pokemon Reborn Assets Storage Warehousetm'. So I'm carrying this box of top secret art for top secret postgame things. But I'm not in a rush, so thought I'd say hello along the way. ... What, did you think I was going to drop the box? That I'd spill it everywhere? That it was all a funny bit to frame me revealing some art? Preposterous, I would never do something so expected. I'm hurt you'd even think such a thing! So hurt, in fact, that I am going to leave right now, angrily! But alas, as Marcello stormed off, he did not realise there was a hole in the box, and some of the top secret art fell out. Whatever could they be for? *We do not actually have an art factory this work was done by Crim I was just doing a funny bit but also Crim is great thank you Crim.
    65 points
  25. *walkie talkie static hi there this is your captain speaking the hype train has new reached cruising altitude please keep your arms and legs inside the hype train at all times if you look out the window to your left you'll this hot new TM menu thing: those of you who've checked out rejuv will recognize this hot new QOL feature where you don't have to pick a TM to know whether some mon can learn it or not. mr perrence himself whipped this up a while back and we passed it along to them for v13 because sharing is caring. and then if you look out the window to your right, you'll see this thing oooh wow thats so cool i wonder what's goin on there we again appreciate you riding the Hype Train and i wonder where we're gonna go next...........................
    63 points
  26. hi remember me i haven't posted in, like, a month- probably the longest period of time that i've gone without posting since the start of this whole optimization fuckfest. this post is a little difficult for me to write because i really don't feel like i'm done. over the course of this summer, i've probably spent more time coding than i've spent sleeping ("definitely. not even a contest." ame says to me as i write this) and i still do not remotely feel like i'm done. there is just so much work left and so much more that could be done on all of this that stopping now feels wrong. but i also, like, can't anymore. ame and i have kind of taken to calling this little bouts of mine, my Apeshit of the Month . it's basically just rips on the fact that when i usually work on the game i just go nonstop for a long period of time before i burn out and do nothing for a little bit before just going off on another Apeshit of the Month. i think i'm now reaching the end of my energy for that. originally, this month was just supposed to be a mini-continuation of last month- little bit more optimization in the AI to speed up how long a turn takes to process. it then kinda blew up. some other section of the code would end up catching my attention and i'd end up getting distracted, or i'd see something and it'd annoy me so i'd start working on it- not to mention that 90% of my coding experience has come in the past few months, so i'd occasionally see something i did a few weeks ago and think "wow, this is shit" and then i'd end up redoing it.... and i think i've just reached the point where i've coded my heart out and need to do something else now. this post is a mix of a catalog of what i've done for the sake of actually making a record of it and also a deep-ish dive into what the code does and how it does it for those of you who are interested in coding things yourselves. (and likely some angy for those who enjoy that too.) gonna be a loooooooooong fuckin post. How many levels in a meech?' for my opening act, we have something that i actually forgot about until right before i started writing this post. this fix comes courtesy of our dear mr. perrence, who did this way back in june, which i then immediately forgot about because there's just been so much happening. this came up when i was running a profiler to see what functions were being called during the AI phase of a four-person double battle. four-person doubles are great for these. since you have 3 AI trainers in the fight, as well as multiple targets that each of them need to choose from, it creates a situation where the scripts are basically being stressed-tested to the greatest extent possible during normal gameplay. so i ran this profile, and saw that there were 244265 calls to the pbGetExpInternal function. that's a lot of calls! so let's take a peek at what's going on here. (pictures with a white background are from essentials v17.2, and pictures with a black background are reborn code, for reference.) what you are seeing is the calculation for EXP. most of this isn't actually relevant here, since levels under 100 just need to check an exp table. it's also fairly inoccuous- if this function is being called a fuckload of times, the true culprit is the function that is calling it: HAHA, i've got you NOW, essentials!!!!! just wait until i tell everyone about how BAD you a- wait, no, actually, this function seems fine. the for loop explains why it's getting called so much too, i mean, look at meech: meech so stronk it's gotta run 100 times for her. ...but then why is it running 244265 time? and that brings me to the TRUE culprit: the problem here is not about what the code is doing, but rather, what it is not. and the thing that it is not doing is saving your level. this means that your level is manually calculated up based on exp (like it says right there) every time it's needed. this can be fixed by making a class variable: and just like that: poof. the game has obtained new knowledge. never again will unsuspecting pokmans be level checked more than once. The Compil - nope, nope, not yet, too scary uhhhh let me see what else i've got in here... *blows dust off the code Set HW_XYZ so all the way back in june again, we noticed that a bulky sprite refresh function would be called every time a sprite's attributes were changed. here it is now, the privrefresh function: there it is! it's 350 lines long, quite big, does a lot of math (you know how much i hate math). now, i'm not going to sit here and tell you to remove this function and replace it with sharktale. (pictured here: me, working on the code) that would be silly. but there are certainly times when the function doesn't need to be called, like when you're setting a bunch of variables before the sprite is even displayed on-screen. those calls aren't necessary. which brings me to the setHW_XYZ function. (pay no mind to the variable names. hopefully no one will throw rocks at me for this.) this neat little function only runs privrefresh once for five whole variables wow crazy. this is boring. like, this is definitely an optimization, but...god i just hate graphics. i think we ended up just putting it in the initialization functions and left it at that. let's get to the good stuff. grab your hazmat suit, remember the buddy system, and send some prayers to The Exalted Lord Arceus (praise be) and get ready to dive into The Compiler (ok. i can do this.) the compiler is- the compiler is just... don't forget about move memory. we'll come back to that. also shout out again to the Fairy of Toothpaste for patching up the battle factory. lad's killin it. the compiler is just....... terrifying. i mean, look at this! those aren't even words! how does anyone manage to look at this and not immediately have a brain aneurysm?? O_O the compiler is the one place that no one should go it is such a terrible place or, at least, it was now? i am beeg cass. i have fought the AI. i have fought the battle system. and now? i fite the compiler. let's go. last time, on Dragon Blog Z: we had THIS. hooooooo i was mad. i was all out here like thats how mad i was. also it turns out this wasn't the real culprit either. like, it was a culprit, but arresting this guy would be like giving someone a parking ticket when there's a murderer on the loose. the true real final ACTUAL culprit times infinity was this. this rat bastard. this piece of shit was behind it all. lemme tell you about what this function does. FIRST it opens a file. wow. i'm so smart. BUT THEN it reads the file. incredible. how do i do it while this is, of course, a perfectly acceptable way to save and load move memory, it wasn't good enough for me. there are lots of ways to load and process data. this function here uses a bitstring. imagine a very, very, very long line of numbers, stretching off into space. that's what moves.dat looks like. the actual data that you want from moves.dat is located somewhere in that string. to find it, this function shifts to a certain section of the string (determined based on the move ID), reads the data out piece by piece, and then ends the read. this isn't an inherently bad way to process memory. it does work, after all. but it's definitely not efficient. the series of function calls, coupled with the frequency at which this function itself is called, means that string processing becomes a lot of what the battle system does in the background. so i changed it. feast your eyes. now this is how to read memory. moves.rxdata is basically identical to moves.dat, but instead of having data in a bitstring, it has it in an array. not only is this a lot faster to process, but it's also really easy to read. want the function code? it's in [id][0]. there ya go. ez. if, for some reason, you just randomly want the effect of move 482 in some oddball script, you can just grab it with $pkmn_move[482][6]. simple, speedy, clean. abilities wasn't off the hook, though. ok compiler. let's go and have a ch- nope nope nope im out byeeeeeee so the compiler as a whole is a little bit too large to post here; while this is a blog post about coding and script changes, i don't really want to blind you with more blind text than my lawyers recommend. but i also think i spent a few hours staring at this trying to understand what it did, and i don't want anyone to have to go through that. so i'll take pieces and explain them and we'll go from there. let's start with this. this is from essentials 17, so it won't be what our code looks like. i just don't want to get hurt this time. this section defines how the PBS data gets processed (pokemon.txt in particular for this). it defines: 1.) what section this pertains to, 2.) what byte the data gets written to, and 3.) what type of data gets written. take, for example, "Color". whatever is entered in the "Color" field in the PBS will be written to byte 6 and processed as type "e". (it also requires PBColors in order to function.) the problem i have with this process is pretty much the same problem that i had with moves.dat- it's a lot of data processing for very little (if any) gain. the difference here is that patching move compilation was easy. for moves, you just take this: and tell it to stop. "why is it moves.rxdata?" you might be wondering. and, well, idk. i'm not sure that the file extension matters a whole lot for this and it seemed like a simple way to differentiate between the two. dexdata compilation, on the other hand, is like what if the move compilation was tied into a knot. and written in dothraki. and you had to read it with your chin. instead of rewriting it, i managed to get away with just repurposing the current code to throw everything into an array rather than a bit string: pg-13 warningL there is a swear word here. if you find such language offensive, then how did you make it on a fangame for pokemon reborn (as you can see i was getting rather frustrated with the code.) this array is all of your pokemon data. you'll notice that there are a handful of nested arrays inside of it- they're placed where they are to match up with the old order that dexdata was stored in. it's super arbitrary. the order that data gets stored in is determined by the same parameter that determined what byte data was stored in. color would be the first item, type 1 would be the third item, base stats would be the fifth (and is, itself, an array) and so on. it's not really in a very intuitive order, but that's mostly because i'm not really sure an intuitive order exists for this. the section that allocates data to specific bytes is a little spread out, so i'm going to skip the explanation there (i didn't really do a whole lot to it and also holy shit this post is massive already) and jump to implementing this. because it's a fuckin pain. i'll walk you through it. this is an example of a call to dexdata. the calls are all structurally similar: dexdata is opened, the bitstring is offset to the data you want, the data is pulled, and dexdata is closed. pbDexDataOffset is what's really running the show here. the number at the end of the function corresponds to the specific data it needs- in this case, the 8 refers to Type1, which you can confirm by checking the original code. fgetb and fgetw read a specific number of bytes of data. it reads 1 byte for the type and 2 bytes for height/weight. with the new system, that code becomes this: $pkmn_dex is preloaded at game start, so there isn't a check to see if it exists or not. if you somehow manage to get in-game without it preloaded, then, well, i'm impressed! also please don't do that. you can see that it works pretty much the same as move initialization did earlier. you put in the pokemon, you put in the index of data you want, and boom. you have it. we are moving off some antiquated data structures one step at a time. now, for me, patching dexdata was about me looking at how this worked and going "hhhhhhhhhhhh i hate this", thus sparking a strong desire to fix but this code is also, like, actually bad. infinite fusion had to weigh adding more pokemon (its main feature) against the game grinding to a halt whenever dipping into dexdata rejuv can't add gen 8 without compiler edits because the compiler effectively limits the total number of abilities to 256. gen 8 has more than that. it's kinda bad. that's enough on the compiler- i've been writing this post for five hours and we're still not even on the ai. spoiler alert The AI so i spent, like, three days on the compiler? the rest of the apeshit of the month went in to this fuckin thing. there is just... so much to cover here. over the course of the last month, we trimmed the ai from 42,000 lines to just a bit under 25,000. some of this was just code cleanup some of this involved offloading work off into individual functions some of this was to fix some bugs. the rest..... i don't even remember. it was so long ago. first let's cover some background stuff. Importing Hidden Classes aka "i hope you liked talking about the compiler earlier" during compilation, hidden classes are made that hold the IDs of everything that you've compiled. they're hiding off to the side, in that constants.dat (or rxdata. one of them.) since they're off to the side, though, they aren't always accessible to the main script classes, which occasionally means that direct calls to them will fail. i manually imported them by modifying the compiler to yeet them out entirely instead of adding them to the constants file and then copying them into the main scripts myself. is this a good way to do it? no. i already know that there's a better way, but i just have really burned out hard on this and don't plan to get to it immediately. but it involves having the scripts import themselves. 's fun. PBStuff this one was me. i did this. i made PBStuff to store large arrays of constants that frequently get called/checked together. this was mostly for the sake of the AI, which tended to have these very long lists of moves that stretched out well beyond the incredibly small rmxp script window, but it also came in handy for making sure that ability-changed moves like role play and entrainment would, like, actually fuckin work correctly. wow! comments! that explain things! so this was pretty important for code cleanup for two reasons. the first is that it makes the code much more readable if you're just calling an array of things rather than just rattling off a massive list of moves/abilities. the second is that it ended up fixing a lot of issues with role play/etc, which had some abilities missing because those moves are really picky. in the end, it allows for stuff to go from this: to this: i do not know for sure if it correctly gets called as an array with this syntax. which is just so much clearer. okay. let's get started with the real stuff. isConst? and hasWorkingAbility this'll get me some hate mail. i opened this post by talking about how exp/leveling functions work, and that they were called 60 billion times. well, these two functions were the next two worst offenders. (this is from one AI phase.) so what do these functions do? isConst? this one you've already seen from the Role Play screencap. isConst? takes 3 parameters: an object, the class you want to check, and the value you're checking for. isConst? puts them together like so: if you're still with me, this far into my gigantic post, then you might see my issue here. isConst? checks to see if a value exists before it gets that value. it has a rescue statement if the value does not exist. so why not just directly get the value? the rescue statement would catch it the same way. but then, later on, I realized something. why does this function exist? you can see in PBStuff that i have arrays of values that are all called like this: [CLASS]::[VALUE], which is functionally identical to what isConst? does. and the reason it doesn't work is because it can't directly access the hidden classes. fixing this is what originally prompted me to import the hidden classes into the scripts; that's what enables the use of the class/value call. nearly every single instance of isConst?(val,mod,constant) can just be replaced with [val] == [mod]::[constant] and skip out on several lookups and function calls. hasWorkingAbility? faces a similar situation: it's effectively a glorified isConst? call. the checks that are made here are necessary, but they are also being run a lot. these calls can be replaced by running a single check at the start of a large function, and then replacing the remainder of the calls with (abilityworks && object.ability == PBAbilities::Ability), which can then be condensed further with some organizing. (i'm also considering just making a class variable, but i only thought of it this morning. work is never done.) AI Move Memory Utilities remember this from earlier? the AI move memory system is part of what helps the AI just kick your ass. it also takes up a lot of space in the AI. i mentioned that there were about 17k lines of code that are gone now. 10k of that was through ai memory functions. every AI move memory check has two basic components: it first pulls the memory, and then it pulls certain information from it. there's a lot of things that are done with the memory, but the majority of it falls into four categories. the memory puller is here: and all of the utility functions are here: astute readers will notice that there are five functions here. however, we all know that in ruby, the 5th element in an array is index 4. so thus i'm still correct and not just too exhausted to change that number. this, in combination with the PBStuff arrays allows these massive chunks of code to be condensed into single lines. before: after: imagine that happening hundreds of times and you know what's happened to the AI code. *checks watch i'm almost 8 hours into this post. last big thing and y'all can go home. AI restructure so i'm sitting here talking up a big game about the ai. but did you know, that our perfect ai, that even it has flaws? it's true! i was also surprised. when making decisions, the AI first decides if it should switch, then it decides if it should use an item, and finally it picks a move. every single step, the AI checks the scores of all of its moves. why pictured above: death. to fix this, i cut pbChooseMoves in half and put the actual movescore grabbing bit in front. this is a much simpler change than the others, but it slices a large chuck of the AI processing time off. ok. we did it. actual dev content over. y'all can go home. imma end this out on a more personal note. frequent readers of my posts (thank you! and also: why?) will recall that last time i posted, it consisted of direct screencaps of the dev server where i was Very Angry about code inefficiency. frequent readers of the comments (why? and also: no seriously why would you do that) will also recall that a Big Fan of essentials showed up to call bullshit on the work i've done over the past few months (despite not really understanding what i do), before calling me a memer rather than a programmer. this hurt me. likewise, this post was kind of a chore to write. that's never happened before. these posts have always been written in a certain style that i hope conveys a feeling that i am speaking to you, rather than simply putting words on a page that you then read and process. it's a stylistic choice on my part that i understand some people appreciate and some people don't. writing in an informal, open way, only to have someone- a rival community admin- show up on your devblog to tell you that the work you've put into your game is shit kinda fucks you up. i've spent a lot of time checking over my shoulder for everything i've written. "oh hey, is this code absolutely perfect?" "if i say this, is someone from relic castle going to tell me that i'm stupid and should just upgrade my version of essentials?" (the latter here is why i've been very careful to only include code that is in essentials 17) but what is most troubling about this is the fact that i was bashed by someone who claimed to represent essentials for offering optimizations for other devs to use in their own games. i was mocked for using essentials 15. but insurgence uses 15. deso uses 15. rejuv uses 16. games that have been built on older versions often can't just upgrade to newer ones because it would require reimplementing everything they've already done. meanwhile, the changes between versions are often opaque, with little information to help developers who are stuck on older versions to get any of the benefits of upgrading. to blame someone who is trying to improve an older version of the engine for being stuck on an older version is not only callous, but it also shows that there is a massive disconnect between the people making tools to make games and the people who actually make the games. and i should be clear here- i'm not upset with the actual developer of essentials at all. when we talked he seemed pretty open to some of the things that i mentioned we had implemented. the problem that i see is two-fold. the first part of it is that there is a community that seems to be entitled to essentials to the point where they will bash people who speak out negatively regarding it. i have spent the better part of three months grinding away at the scripts. i spent more time coding than i've spent sleeping. and i want nothing to do with that place. this is a unique circumstance for me because i'm generally really happy to offer my work to people. i like making these posts where i talk about what we've been doing. i like handing out my work to people because it means that everyone can make higher quality stuff without also needing the technical knowledge to tinker with the engine. it's practically a form of elitism- we have the new version, and that makes us better than you with your old one. i suspect this matters less to newer devs, as they can just pick up the latest version and start working with it, but i feel like the fact that this situation has happened at all should still be concerning. the second part of it is just that...this is so much work. i have been going non-stop for months and i still don't feel like i'm anywhere close to having the code be in a state where i can consider it to be "done". and this has only included work on parts of the engine; there are still entire sections that i haven't even begun to think about, let alone look at. my point is that this is all just too much work for any one person to do, and it doesn't make sense for multiple people to end up doing the same work over and over again. it doesn't make sense for me to fix the bugs in my version that are still present in the current version, meanwhile there's another version that's being developed and i sure dunno if it's being fixed in there or not. and then, even if it is being fixed, there's no telling if anyone else would be able to use it in their games since there's not a lot of guidance on what the actual changes are. it also means that, as a result of everyone doing the same things independently of everyone else, that there's a lot of wasted scripting talent being spent on re-doing things that have already been done. for example: how many gen 8 mods are there in development right now? you've seen my scripts. gen 8 is already there. we helped out with rejuv on developing it. i've assisted deso with optimizations, and am helping rejuv implement some of this as well. when marcello heard that infinite fusion was having slowdowns due to the sheer number of pokemon in their game, i sent the compiler changes to see if that would help solve things. even aside from the major fangames, time and time again there have been fans and community members who will show up out of nowhere with their own fixes for things. i've been getting some additional mkxp support from aeodyn, who just messaged me one day saying "hey you know you could be using this better tilemap, right?" and then fuckin waynolt is out here making the entire modding system for reborn/rejuv, and then fuckin toothpastefairy fixed the goddamn battle factory before he was even on the team! my point here, is this: essentials needs to be open source. thanks for coming to my ted talk i'm going to go do anything else now because i have been typing for nine hours and i can't anymore
    60 points
  27. 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! hype. 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! anywhere! 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.
    59 points
  28. Cass suggested coming out of the shadows and be social with a dev blog post so here I be. Please enjoy these animations that were forged from the cursed animation editor (would not recommend using that editor) so with that here are 3 moves that haven't been seen yet Power Whip the canon animation of this move did not look good until gen 6 so that was a bit of a struggle to translate that 3d look into 2d but thankfully Ame made amazing vines for this thing so along with that and trying to throw a ton of graphics onto every frame we got this. Thousand waves went through a few changes originally I was gonna try to make the wave go directly across to the target but there were 2 issues there. The first is if you used this in doubles there was the issue of trying to make the graphics not go over your partner which required me to set every cell to back and then back to front when it got to the target. The second issue is that it's an AOE move so I had to make it look like it hit both targets in doubles. Water shuriken's biggest hurdle was making the shuriken stars but it seemed vital to making it look good so I just grinned and bared through that. Thanks for your time and hope you liked what you saw
    59 points
  29. hi!!!! oh man. remember dev blogs? i don't. in fact, when choosing a title for this one, i had to stumble over all of the other related "i've forgotten what a dev blog is" titles. this is how we got to where we are today. so i'm sure that all 5 of you who regularly visit this devblog (hi! thanks for checking and i'm so sorry we haven't done more of these!) are wondering: what's going on? i am dying, squirtle. oh man am i dying. i gotta finish grad school, i gotta find a job, i'm trying to do this whole "coding" thing on the side, and my fun field trip to europe got hit by the Rona (i'm okay! it just sucked!). life is big stresso. too big stresso. i work great under a nice stable level of stress. i genuinely find cleaning up the code to be stress-relieving (stress cleaning, but for nerds!) but that's only if i'm not already super stressed out. and oh man am i super stressed out. so i haven't been getting nearly as much done as i would like to. that includes blogging! even though the blog's in a weird state right now. what's going on? (devblog edition) reborn's in a weird place rn since it is, as you may have heard, finished! upon finishing, the team basically split into three directions: - some people went straight with ame over to starlight - some people hung around with me for additional game fixes - some people stayed right where they were! they were on multiple games to begin with and this has really changed a whole lot of nothing for them. regardless of where people are, the situation is simple: reborn's done and everyone's off doing better things. fangames devs require two things: time and motivation. no one has time, and the motivation is on other projects. but this is a reborn dev blog! and the only way for there to still be work on it is through the scripts. what's going on? (scripts edition) sooo stop me if you've heard this one before.... i really wanted to get reborn/rejuv/deso all on the same scripts. that basically kicked off the moment that the last version of reborn was out. it is, uh, very hard. there's two main components of the script work: - data structure redevelopment so everyone can share scripts - everything else there's a lot of work! tinkering with the scripts is complicated! these changes are very sweeping and require a lot of bugfixing to make sure everything works correctly with the new system. and i swear to god, every time anyone looks at the scripts we run into like five other things that we'd like to fix. i'd like rewrite the battle system! but, alas. no time. so: where are the scripts at? well, we redid the data structures and battles almost work! this is a pretty significant distance from the original state of the scripts, which was "everything is crashing everywhere all the time". stuff actually tends to work now! this statement will, of course, come back to bite me very soon. but there's hope for progress! i also want to take a moment to shout out the whole scripter squad who's been helping out with everything. i have primarily been directing stuff off in the distance (with some brief bursts of my own work) while the individual games' scripters have been cranking away at the myriad things we want to do with the code. big things we've got coming (that i would expect the average player to care about): - new pbs! we now use ruby hashes instead of the standard text files for compiling game data. it's internally simpler at the expense of requiring a touch bit more coding knowledge to use. - new save files! don't freak out, we have a converter. new save files are going to be a little bit smaller than they used to be and will hopefully be a little less prone to corruption! - quicker animation loading! and data loading in general. i mentioned this before, but i'll mention it again because i really like my optimizations. game go zoom!! so hopefully one day this'll come to a game near you! what's going on? (games edition) oooookay, so, development's a little weird for everything these days. basically, the script development now occurs in tandem with the development of the individual games but isn't actually directly tied to the games themselves. the scripts are their own thing. legally the game (say, reborn) is separate from the scripts. everyone does their own work and then the scripts are shared between everyone. rejuv/deso will release a new version with whatever scripts we've got, and those scripts will just get progressively better over time. theoretically we'll reach a point where other hot new community games can just take the same scripts and run with them. who knows! ideally it'll be really easy to pick up and use, kind of like a reborn-based essentials. (one day i'll get a name for it!) the primary focus of the scripts will be the core community games, but if you're making one and you wanna use what we've got, more power to ya. this is also why i'm hoping i'll be able to sneak an engine update to reborn someday! that'd be cool. i feel like i'm starting to get rambly, so i'm cutting the post here. hopefully this explains some of the stuff that's been going on, and hopefully the other games will start showing off some of the work soon!
    48 points
  30. Let's talk about the categories in the Status Update block, since some of them have changed a bit from before. Gen VII Updates: (we didn't even have a dev blog last time there was a generation update!) Sprites We can't use the Smogon set, so we've gotta scrounge up our own. Fortunately many pixel artists list theirs as free use and so I've been able to gather a solid chunk. We'll polish them and make the rest. This progress bar also includes Shiny and Egg spriting. Scripting Marcello is a peach and this will be almost (if not) entirely his domain. It includes updates to old battle stuff, most of which have already been done as of this writing, and the implementation of all moves and abilities. It is a long road! Data This is basically everything in the PBS files, such as data, movesets and TM availability, plus details on the new items/moves/abilities. Marcello is actually a peach and a half and is fronting most of this work as well. Field Updates Although I had hoped we would be done with them before, Psychic Terrain will be added. This section will also include adding new attributes to all field for any relevant moves and abilities. Gameplay The most generic name possible. This is a catch-all for adding new Pokemon into events/encounters and trainer battles, and distributing new items. Tbh this is the fun part. New Content: Misc Updates So I lied and this isn't actually new content at all but whatever. In the past we had separate categories for graphic/event/etc updates but there's few enough this time that I'm lumping them all in here. AI Updates A planned renovation to get down and dirty with the AI. Right now most moves have little or no AI coding specifically for them. I won't get through all the moves this episode, but I'll spend some quality time with a good chunk of them. Graphics/Maps Previously these were separate but I put them together since the graphics in question are usually tilesets for new areas, and I prefer to tailor tiles to their maps. There are 7 new areas to make this episode, so this will be the bulk of the content work! Eventing Teleport events, area puzzles, encounters, items and special Pokemon. This is sort of a catch-all for everything that is not mapping, but also not part of the main story. Story All story events. This episode will have a branched story, so it will take a little longer.
    47 points
  31. we have a functioning site. probably. maybe? whatever. you should be able to stay logged in while visiting this page and you can like and subscribe to posts. feed me i need attention plz gib to celebrate this momentous occasion, i would like to offer you proof that we haven't just been working on nothing all this time. oh my! it's a picture! but what could it be a picture of????? who knows????!!?!??!?!?!?
    46 points
  32. 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.
    45 points
  33. 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. neat! 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. yikes! 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: (yikes!) 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 delicioso. 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.
    43 points
  34. So, I think this postgame stuff we're working on is gonna be pretty hard.
    43 points
  35. Today, Ame made a puzzle. She wasn't sure if it was solvable. Being the maths nerd that I am, she asked if I would help figure out if and how it could be solved. I couldn't figure it out, so I wrote a program to do it instead. It took the program 3 minutes and 5 million 'moves' to solve the puzzle. We decided to put the puzzle in game. I hope you're all looking forward to E18.
    42 points
  36. hi there. i've posted nothing but the heaviest fuckin code posts for, like, 10,000 dev blogs now. have some cat. now i know what you're thinking. "is this cat actually that fuckin pretty" and yes. she is. this is important. oh also we made a thing for when you choose theme teams. that confetti thing is supposed to be an arrow, but ame's really funny so she changed it to confetti. and i know what you're thinking- "hey wait isn't [character] missing?" this is a spoiler free post. terra is definitely just there because it's funny. radomus's hat also changes. that's important. kayo imma get back to my napnap now bye also thanks for the support y'all its real nice
    41 points
  37. Right, so what the heck is this? Well, let's start with a little story about that funny sidebar on the right of your screen over there (or wherever it is for you mobile lot). Early in E19's development process back in..... christ, 2019, there was a truly inspiring, miraculous comment in that sidebar. And that comment was "boobs." Upon seeing this, I had a thought. that thought that went something along the lines of "huh this sure is some interesting insight into the minds of the developers as they work and also my friends are pretty funny sometimes so it's a shame that these are lost to time after each update. I check this page pretty often by habit anyway, maybe I could record them somewhere!" This was my first mistake. And then, as time marched ever onwards for far longer than anyone predicted, I continued to repeatedly make mistakes with each passing update because sunk cost fallacy is a bitch, and now I have a word document that's almost 30 pages long and ~25000 characters containing basically 3 full years of updates! haha oops. Now that E19 is out It's finally time to share this mess, so hopefully at least one of you gets something out of this... (as some extra notes: for a fair amount of these there were also various progress bars up that're referenced but not recorded because this document would be far more insane if I had, but occasionally I tried to include some extra notes to try provide a bit of context about bars/posts. I'll put these in *green*, like this message, assuming I can remember which parts were actually my notes) ....also, as I write this bit, I hope I have enough image upload storage to handle this whole post... oh also dates will be in a nice sensible Day/Month format for all us non-americans. And now, without further ado, a very tired Dream presents: The Great and Foolish E19 Dev Blog Log The dark times before history (I don't have dates for these ones but somehow recovered them after starting the log. I don't remember how): “so it is going to be my earnest goal to start updating this daily for real now even if there's no progress to speak of. and that's probably not going to happen right away so like please nag me if i go a couple days without or something, ok? Ty” “tbph figuring out how to divvy up the eventing and story for victory road for this scoreboard is almost not worth the time it would take to math it out because it's very wimey-wibbly-wobby, so numerically the next month or two or howeverlong is just going to be a big bag of questionmarks and it's up to you all to deal with it. but i'll chat here, so don't worry. won't be totally in the dark. “ “eventually this will just be one big trail of quote blocks.” Recorded History: ##2019## 29/3: “boobs.” 30/3: 1/4: “today has been a mess. update post when i wake up-ish though” (Later the terra tournament post came up) 2/4: “ finally finished puzzles for room... 1. ...sigh. it's fine. it's big. it's really. just. fine. everything is fine. nothing is not fine.” 6/4: “had a small break for a couple days to chill but the most time consuming parts are done now probably” 7/4: “suddenly the strong majority of what needs to be done is story funny how things speed along when you don't have to deal with a bunch of tedious mi-- oh oops we're not saying that “ 8/4: “story creep forwry someday the scoreboard shall update again but today is not that day “ 11/4: “(several shining moments of emotional stability later) 3 pozzle left “ 12/4: “victory road act 2/3 done 3 take a bit tho “ 14/4: “story the bulk left; six scenes remain” 19/4: “geez, three in a row for characters not making it through their scene oh well. “ 20/4: “remaining: 1 scene, 2 pozzle” 22/4: “remaining: 1 scene, 0 pozzle” 23/4: “encounters done and lamps dont forget lamps “ 24/4: “Falconn......................................................” (scoreboard is at 58% total, hasn’t moved in a while) 25/4: “...PAAAWWWWNCH!” (total jumps to 87%) 29/4: “8 maps remain.” Also 29/4: “E4 map 1/4 complete.” 1/5: “E4 map 2/4 complete.” 4/5: “E4 map 3/4 complete. “ 9/5: “ended up doing an early/impromptu test session for the existing part of E19, hence gap for a couple days mapping reacts only now tho” 11/5: “elite 4 room 4/4 done” 13/5: “champion room done, hall of fame done “ 14/5: “one map remains” 17/5: “ah..” (mapping at 100%) 18/5 “next time sir fucking isaac newton decides he wants to go and invent some bullshit-ass thing like gravity i propose we go toss him over a fucking cliff and ask him how he feels about gravity then” 21/5 “well, took a couple days to update some old graphics and such... god i still feel like there's so much to do though “ 22/5 “elite 4 2/4 done story “ 23/5 [blank update] 25/5 “Elite 4 complete” (eventing at 100%) 26/5 “no e19 is not going to be released any time soon please hold all of your horses gently” (E19 content progress at 99%) 28/5 – [E19 BOARD 100%, Postgame Boards Revealed, Postgame announcement] – Bugs:250 Cass: “no no readability only bar 29/5: “ “, Bugs = 350 31/5: “mix and match = general nightclub stuff now misc can have five points for the mining updates too. “ (Scoreboard compression/simplification) Bugs = 350 1/6: “oh my god the AI is killing me make it stop” Bugs = 300 2/6: “testing may now continue if it must. “ Bugs = 300 8/6: “you ever just fall through a portal and wake up six days later anyway, about 2/3 through e19 second supervised test right now previous bug score didn't include AI bugs we are now on the warpath “ Bugs = 360 9/6: Bugs = 315 10/6: “supervised playthrough #2 of 3 complete” Bugs = 240 13/6: “oh my god i cant with the AI pleeze....... “ Bugs = 400000000000000 14/6: “the AI has gotten back in its cage where it belongs.” Bugs = 445 AI- ######################################################################################################################################################AHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH | 0% (Many #s and Hs cut to decrease doc lag, seriously, copying the original message fully almost crashed it) (AHHHHHHPDATED 15/6) 16/6: ‘it's not fine.’ Bugs=650 (not was same colour as background, hiding) ‘the fight continues.’ (Updated 6/18 [until possibly forever]) Bugs = 650 22/6: “hi there devving is on a brief hiatus because there is party and we wouldn't want to miss the party.” Bugs = 650 26/6: ’ the AI is so broken i'm surprised it ever functioned’ Bugs = 650 1/7: “mid internal, we full steam now party over. so far, not too bad.” Bugs = 315 3/7: “nightclub interior mostly mapped, battle arenas yet withstanding” Bugs = 315 6/7: “it is time for the never-ending legendary list to slowly begin to begin.......” Bugs = 315 9/7: “welcome to Progress Bars v19.1p now slightly more accurate! also probably overweights the nightclub in terms of work done. but who cares! bars! numbers!” Bugs = 315 10/7: “the battle tower functions and i'm no longer concerned about overweighting the nightclub.: Bugs = still 315 11/7: “it has been a big day for Features here at Definitely GameFreak™ also, nightclub general was a little low. it's better now.” Bugs = 315 12/7: “it continues” Bugs = yup, 315 15/7: “it continues to continue.” Bugs = 315 22/7: “hi we're not dead except me for like a week but the misc bar can have a % “ 24/7: “hi work is go more features more battle tower the classic finished nightclub mapping tho!” Bugs = 315 still 26/7: “so. much. Tower” Bugs = 645 28/7: almost done with movesets for the battle tower. there are currently 1425 of them. why are there so many pokemon” 31/7: “getting some low-hanging fruit out of the way (also it's ame's birfday happ birf)” 3/8: “three houses is ruining productivity.” 4/8: “doing some lag reduction / event cleanup” 6/8: “we're almost done with the overall planning for postgame! and since i can't think of anywhere to put it.... it's going in the spirits/birds bars that way i don't have to make more bars. so we're in Bars v19.1.1p now.” 15/8: “how did this game ever function” 17/8: “the game occasionally functions very well on accident ame was proud of the AI” 20/8: “sometimes gamefreak is wrong” 23/8: “we officially technically have a functioning boss rush” 29/8: “hi yes we're alive” 31/8: questselia is questplete! (also, if you're wondering why the spirits/birds are hanging at 95%- they're basically done, but they're not hooked into the overal story yet since the overall story isn't quite there.) 4/9: “nothing happened i'm just giving the misc bar a point” “minor additions: people swim in the lake now why were there no people swimming in the lake it's a lake “ 14/9: “[angry emoji] 22/9: “i, for one, am proud of what i've accomplished today” 30/9: “hey kids sorry for the lack of updates lately, but unfortunately that's not likely to change much soon. we've been prepping for me to go under the knife tomorrow (this was planned, nothing bad's happened so don't worry). i'll be in the hospital for several days and then likely recovering for most of october. currently unsure how functional i'll be at all. apologies for the delays-- thanks for hanging in there with us. ~ ame “ 3/10: “back at home. i still won't be able to work properly for a while, but in the meantime at least know that everything went more or less smoothly. ~ ame “ 14/10: “ame's not functional, and i've mostly forgotten how to teambuild. but we out here! kinda! “ 25/10: “some stuff got did and imma write a thing on it” 31/10: “GUYS I DID IT I MADE A BATTLE TOWER TRAINER” (FITE is currently 100000134180340126349612534% complete) 1/11: “we are defining the fuck out of trainers up in here” 5/11: “i hope y'all really like water trainers” 7/11: “almost done. post soon.” [battle tower 1.0 post] 26/11: “it is Map o' Clock” 28/11: ‘very very important sidequest finished. added 500% to the misc bar. bar has been colorshifted to purple to compensate.” 29/11: “quick psa: if your game is lagging, you can reduce that lag by shifting your screen size from L to M. essentials is the worst.” 6/12: “non-update update update: meant to also actually update the bars, too been a long week. “ 21/12: “it has been brought to the attention of Management that there is a new bar. while this is, of course, strange, it doesn't seem to be hurting anyone so we're just gonna leave it there.” (mysterious secret bar added) 24/12: “hello class it is Secret Time the downloads page has been updated with a small non-content 18.2 update please check this completely inconsequential post for more info!” (E18.2 the aipdatetm is released) ##2020## 16/1: “progress is fake” (current estimated release date: not June) 18/1: “today's dev bars feature a quick psa about a release date many people from around the world frequently ask "when is e19 gonna come out?!?!?!??!?!?!?!?!!/1/11?!?@!?#?!??@!?@?!?#!?$?!@$!$@!???%!??!!??!?!?!?" actual quote. while i really can't give you an actual estimate as to when the release date will be (who knows if ame and i will suddenly achieve Go Mode and finish every quest in a week or smth) what i can tell you is that regardless of how fast we move, testing will still easily take two months. minimum. like, even if there wasn't, like, two and a half episodes of content- and there is there's still all the new modes, new features, a whole bunch of other things that i can't even remember off the top of my head but, like, what i'm trying to say is that even if we were suddenly done tomorrow, you would absolutely hear about testing in advance. i'll even make some new bars for it. “ (current estimated release date: cyberpunk 2077) 22/1: “there might be a battle factory. maybe. possibly. we're working on it. but like probably. also the bug score is dropped but it's a lie anyway so it'll get big again soon don't you worry “ (current estimated release date: reborn is cancelled oops) 26/1: “it continues” (current estimated release date: uhhhhhhhhhhh eventually?) 29/1: “that awkward moment when you forgot keldeo” 1/2: “so nothing's changing in the bars i just want y'all to know that in the e19 trainers text ~30% of the content is new to e19 that means that you're getting roughly 50% more battles in e19 than in e18 and we're still only halfway done. “ (current estimated release date: fuck january's already over someone needs to recalibrate the flow of time) 8/2: “this is really a lot of work that i gave myself.” (current estimated release date: what's a pokman) 11/2: “maybe going through the entire list of trainers twice wasn't the best idea” (current estimated release date: probably someday?) 14/2: “maybe going through the entire list of trainers was a good idea. there are some embarrassing mistakes in here. (difficulties now have some ?'s in them because they're probably smaller now- i just don't know by how much) edit: dark: 25% complete after 1 week lite: done in 3 hours 19/2: “dark is, like, half 60% done” (current estimated release date: ask ur mom lol) 22/2: “dark is almost done kids we be branching out in here” (current estimated release date: we don't know either ok) 25/2: “dark is done and the misc bar is slightly happier now” (misc at 653%) 29/2: “genies quest died a little but should be back shortly” 2/3: “there's a chance that difficulty modes will be released post-e19 to streamline development a little. misc bar loses a few points.” 15/3: “hi! haven't updated for a little bit. ame's been working on starlight and grad school decided to kick my ass for a little bit. but, y'know, we here, we in it just a little less right now.” 20/3: “we have a battle factory. the shit works. the shit works good. i hereby dub toothpastefairy honorary dev “ 21/3: “every battle tower boss has a team!” 12/4: “we're taking a bit of a break due to..........circumstances ” 24/4: “things have been a little quiet on the episode progress side of things, but we're working on a new engine that will hopefully be out in the reasonably near future!” 25/4: “i sped up animations a lot with five lines of code. i am a lot of indescribable feelings right now. “ 1/5: “if your computer is a fruit you should check the devblog” (mac native release) 4/5: “the 18.3 etc. to-do list: fix mac/linux online” 5/5: “all you kids have some brand new toys (18.3) available on the downloads page! i am super done with these 18.x versions, though. managing several different releases is a pain.” 22/5: “life has been busy as of late. but we've compiled a list of bugs. so that's something? 24/5: “hey remember when we made this game? good times. the bug score is now officially a progress bar a score of 0 means the bar is 100% complete and progress will be determines out of a total of 500. so it's at 7% rn “ 1/6: “progress continues” 4/6: “bugz go SMACK” 7/6: “ok! all done! quest ez. pokemon dum.” 10/6: “we've made some really dramatic strides in script optimization. misc bar gets 10 points to commemorate the occation.” 13/6: “i released another version because you can't stop me i can't stop me NO ONE CAN STO- (you should go download 18.4) “ 16/6: “i've been basically at this optimization shit non-stop for like a week e19's gonna be like a whole new game “ 23/6: “i think the optimization train is coming to a stop. until we get more lag reports when testing finally rolls around. “ 26/6: “bugz b smack’d” 5/7: “hope you kids like puzzles” 15/7: “local memer releases update that literally doesn't matter” (18.4.2, no word on changes) 17/7: 18/7: (exclusive staff sneak peak version representing the actual state of the AI right now) 20/7: 21/7: “i made the ai 10,000 lines shorter by just deleting all the code that does stuff and replacing it with low quality jpegs of donkey kong youre welcome” 23/7: 24/7: 26/7: (cass is going through it right now with the scripts) (also fun fact added now in 2022 variations of this image still take up 9 emote slots in the dev server) 27/7: 30/7: “e19 scripts now feature Stuff” 1/8: “I redid the compiler” 4/8: “ok meme stream is over now back to normal” 7/8: “thinking about final releases... i think i get why "finished games" are rare it's hard to look at the thing you spent [x] time on and be like "yup. this is good. i'm done." 10/8: “ame is going to pull me over to starlight so your regularly scheduled script blogs are going to be a little sparse. but we still here. still doin. “ (current estimated release date: if anyone has an estimate as to when this game is going to come out, they are lying to you. do not trust them or anything that they say. best case scenario is that they're a time traveler who has come back from the future with information of the release date. they must be removed before causing a paradox that ends reality.) 14/8: “ran a check for AI processing time. in 18.4.3, the AI phase took 0.37s to process in e19 it took 0.03s zoom “ 17/8: “really think i'm starting to reach the point where i can sit down, take a look at the scripts, and think "yeah, sure, they're fine, I guess."” 25/8: “hello. the progress bars are in storage. you can read about why here. and, no, the game is not cancelled. it's okay. “ 26/10: “you hear a lot of power tool sounds coming from the shed that the progress bars are stored in.” 8/11: “the shed that the progress bars are stored in has mysteriously disappeared. “ 12/11: “soon™” 17/11: “there's a starlight demo out! the beta is currently only open to forum members, but the public demo should be coming out soon!” 22/11: “current state of the AI code:” 25/11: “AI is now slightly less spaghetti but still pretty spaghetti [same picture]” 1/12: “ok. the game is officially being worked on. you don't have to sit through my endless code posts anymore. you are free.” (hi again post made) 2/12: “IM BACK IN BIZNIS “ 4/12: “landous what bwings us togedder today. ps. you get 1 progress bar. it's the length of the AI code. e18.4.1 length: 42,005 lines current e19 length: 24,113 lines “ 5/12: “i think i hit the AI code really hard and accidentally created a field effect mod” current e19 length: 24,080 lines 6/12: “here i wanted to make a nice devblog post about the AI, or this new field effect mod i ended up making on accident but then my dumbass girlfriend goes and deletes e19 it hasn't even been a week yet (like it's been recovered and stuff but jesus) “ current e19 length: 24,060 lines 14/12: “hi exams happened and i forgot this bar existed for a few days here's some updates: we've been bugfixing and testing a lot i took the field effects and shoved them in an array so that they behave themselves better. devblog post for this will come when i think it's done i patched onlinebattle by yeeting out 90% of the code same for z-moves i learned that apparently "razor wind" refers to a slashy weasel that spins very quickly and that move will never be the same again “ 20/12: “i am very tired in my soul. nightclub battlestations are currently in development! field effect re-coding is also still happening.” 30/12: “still re-coding the entire field effects things and the nightclub!” ##2021## 2/1: “we out here. we coding.” 7/1: “the nightclub battle content is almost done!!! then we get back to all that questing.” 13/1: “: )” 21/1: “oh my look at the time, it's legendary-quest o'clock. ~a” (+New Devs, New Nightclub! Post) 29/1: 3/2: “hey do you know what heals you at the end of each turn the ai sure doesn't i sure don't and that's because someone made this field system that just fucks with everything straight to hell” 15/2: “why do moonlight and morning sun work exactly the same” 24/2: “anyone else feel like everything kiiiiiinda sucks rn? devving is going a little slowly.” 28/2: “proper update soon, ok? ~a” 7/3: “Legendaries Accounted For: 32/65” (‘you get one(1) progress bar’ devblog post) 11/3: (Legendaries up to 33/65) 15/3: “the ai code is coming along nicely!” 16/3: “so we shaved off 28.5k lines of code from the ai so far. we don't know if it works yet! but we hope it does. “ 23/3: “took a break from the AI to casually solve the RMXP map limit issue that has plagued game developers for years took like 5 minutes ez” (34/65 legends) 4/4: ferris wheel devblog post 21/4: “did you know that cresselia can't learn cosmic power? did you know that buneary, instead, can? taken a brief respite from the quests to go back and tune up some earlier content. that'll be ongoing. “ (39/65 legends, has been steadily increasing) 22/4: Anomaly Battle devblog post 24/4: 8/5: yummy low-hanging fruit (44/65 legends) 14/5: “credit to Loretze for the improved artistic rendition of The Big Ferngus ” (45/65) 22/5: “https://www.youtube.com/watch?v=hBonWdqOT6Y” 23/5: “hi minor changes meloetta changes form by using relic song in the field instead of in battle also i apologize in advance- i seem to have forgotten how to make single battles “ 30/5: “small break while we're taking a bit of a road trip~ but really, we were already gone in our hearts all along back in a few?” 11/6: “blehhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh” 12/6: “haaaaaaaaaaaaaaaaaaaaaaa *dies” (legendaries 47/65) (for context I think the image is related to adding the “open saves folder” button) 27/6: “hi again! back from trip #2, summer party over with, no further distractions planned. full steam ahead perhaps." 12/7: “did you know that you can pronounce "gracidea" the same way as "quesadilla"? you shouldn't but you can. one more done but primarily focusing on early game again for a bit. maybe a teaser for early updates soon? maybe.” (legendaries 49/65) “update: apparently this is how canon pronounces it. i hate this. it's so cursed. stop. stop. stop. why? why? why?” this is also how I've always pronounced it..... 21/7: “so apparently the new ai is finished??? there might be a post soon???????????????????? “ 28/7: “memes are cancelled actually. early game updates are also cancelled actually only quests now another milestone hit but i can't update the counter :\\\ edit: okay no they're not actually cancelled, i just reached a good pausing point so i'm going back to postgame content, funny phrasings only, there is no need to do a worry” 29/7: hi i made a twitter i don't know what twitter is click this to go to the twitter (because the embeds on this sidebar are dUM) “ 11/8: “previous week or so also featured updating some past quests with a little extra...” (Legendaries: 50/65) 14/8: “10 quests remain” (Legendaries: 53/65) ??/8: “9 quests remain” 4/9: “7 quests remain. don't get used to the double, it's just a fluke “(legendaries 55/65) 9/9: “6 quests remain” (56/65 legendaries) 15/9: “5 quests remain.” (58/65) Camerupt Nutritional Information*: ⦁ Total Fat 0.2 g 0% ⦁ Saturated fat 0.1 g 0% ⦁ Cholesterol 0 mg 0% ⦁ Sodium 13 mg 0% ⦁ Potassium 897 mg 25% ⦁ Total Carbohydrate 37 g 12% ⦁ Dietary fiber 4.7 g 18% ⦁ Sugar 1.7 g ⦁ Protein 4.3 g 8% ⦁ Vitamin C 70% ⦁ Calcium 2% ⦁ Iron 9% ⦁ Vitamin D 0% ⦁ Vitamin B-6 30% ⦁ Cobalamin 0% ⦁ Magnesium 12% *Percent Daily Values are based on a 2,000 camerupt diet. Your daily values may be higher or lower depending on your camerupt needs. 20/9: “4 quests remain.” (60/65) 25/9: “3 quests remain.”(61/65) 28/9: “2 quests remain.”(62/65) (Camerupt Nutrition renamed to potato nutrition) 15/10: “2 quests still remain.” “to expect perfection is to invite disappointment. this is true of all routes of life. “ 18/10:  mysql exception at /var/www/html/forums/core/datastore/d4224989543895843f4b22d2a1112a_page_builder.7769ea1b77.php: line 238: 2013 Connection to the server was lost encountered at /var/www/html/pr/development/ Please contact the site administrator to report this problem. (turns out this was not an intentional update, the forums actually just broke a bit. I think ame broke a bit when I asked her about it too) 19/10: “0 quests still remain. Expect a post by the end of the week about what's left to do. (updated 10/19) -- man i hope you kids like double battles (updated 10/19 but it's cass) “ 21/10: there's 360 new teams in e19 i counted 22/10: "guys ame won't let me use my physical xerneas set on big top :C" 23/10: “devblog post here. dev stream for the decibel resprite scheduled for 3p MDT here. “ 30/10: “when u try 2 make gaem but there r only bug lyk if u cry errytime” 1/11: “we made a script to stress-test the ai and it found a bug in sucker punch that must've been there for like 5 years” 5/11: “we made a script to stress-test the ai and it found a bug in sky drop that only exists because metronome rolled it when attempting to test and fix the above sky drop bug, another one another two sky drop bugs were discovered. i hate this game” 6/11: “ indra” 12/11: “shuffled the move tutor moves a lil. should be appreciated.” 14/11: “a Handy info graphic about our bug fixing process “ 15/11: 20/11: “testing:” 4/12: “we're gonna go ahead and shut off bug reports from e18. not that we're quite done yet, but like... it's just not very helpful anymore with how much has changed.” 14/12: “loose ends are like hydras, you tie one up and then there's two more.” 17/12: “hi its cass sneaking into ame's sidebar so you know that giant animation file that we have i made it smaller it's going to break for everyone who tries to borrow our anims....... so expect a post about how to fix that after e19's out but it means the game loads a lot faster now! uses a lot less ram too. we love to see it. “ 21/12: “if anyone finds a ridiculous EXP Candy in very early game it's because i keep forgetting that "XL" doesn't stand for "Extra Little" ##2022## 1/1: “#################### (100%) happy new year everyone!!!!” 3/1: testing has begun 9/1: “i hope everyone appreciates the 1000 new switches that we've added this episode” 14/1: 16/1: “ now kiss bonus joke e19 features evil character: 19/1: “i've decided to overhaul the field effect code and lemme tell you it's beautiful” 20/1: “yo i'm gonna unbackwards my hashes” 22/1: “so i unbackwards'd my hashes but i have since learned that there is, sometimes, a time for a backwards hash. we consider this character development. (this is cass btw i realize that both ame and i talk here and it's sometimes unclear who's who) 23/1: “work up OP” 27/1: “for the record i do not support this but i am being held at gun point please send help my captors have a hydreigon” 30/1: "about 8 million of the 11.5 million battles for the ai fights post are done!" 6/2: "oh btw alpha started like four days ago" 9/2: "haha fernip send tweet" 20/2: "multi-supervised testing (part 2 of 3 for alpha) has begun" 20/2 again: "indra, my eloved" 2/3: "cass's development cycle: "fuck i hate this" *furious coding *sees other part of the code "fuck i hate this" *abandons previous project *furious coding repeat" 2/3: kenan kill count: 18 11/3: kenan kill count: 19 14/3: kenan kill count: 21 17/3: zoroark gottem count: infinity 31/3: "Online play will be temporarily disabled in the near future while we update the version and workshop some components of it. Thanks for understanding. " 15/4: "clear up your weekend" (18/4 I joined the team to fix like 5 bugs woo) 24/4: "long live sidebar" 10/5: "long live sidebar" says sidebar, having received no attention in two weeks 30/5: filing for divorce with essentials but it's amicable. ##Present Day## And at last.... I am finally free from this prison of my own creation. Hey fun fact, did you know that when copying from word into the site editor, it apparently eats all text formatting like bold/italics or hyperlinks so you have to manually re-add them, seemingly yeets some linebreaks randomly, and won't copy&paste Emoji or Images so the former has to be added one by one with the editers searchbox for them, and the latter had to be re-screenshotted with snipping tool to upload? At least there apparently isn't a character limit here, or it's unreasonably large enough to handle this. Ame I'm sorry for any time I made fun of you for accidentally posting a half-finished devblog post and then hiding it and suggested copying from another document... I didn't know..... though I still didn't accidentally post this til done (also I considered linking all the actual big devblog posts that came out in their appropriate timeline positions here, but you can just go look at all those yourself) In all seriousness though I did actually get a fair amount of enjoyment from creating this and looking back on @Amethyst&@andracass's stream of consciousness, I hope some of you did too. What a journey this has all been - I'm glad I got to share it with you. ily! (bonus pic is my upload section for this post after the almost two hours putting this all together. I think the very first image may have been directed at me across time and space all along)
    40 points
  38. Let's bring this dev blog back to life. Remember when I was doing daily updates in the clusterfuck threads? Well, I've got the those going on elsewhere still, but that doesn't mean I need to keep you guys in the dark too. From now on my plan will be to collect and summarize the updates from there in weekly or semi-weekly posts here. This is suppose to be a dev blog after all, not just an announcement zone, so no point in keeping it hush hush for weeks at a time. That said, I actually do have an announcement today. Some number of weeks ago back in the droll march through Tourmaline's development, I realized that the mapping side of things has been reliably taking approximately way too fucking long. So I decided to get some help on it. I asked a couple of friends to take up some loose ends on the desert map, allowing me to go work on other areas in the mean time. And after clearing their trial by fire in Cliff Hell (seriously. you don't even know) I'm officially announcing them as part of the team. Please say hello to @JazzyFur and @Sazane! They'll be the project's new mappers and will allow me to move through making areas much quicker. With the desert finished per example already, they'll be starting on some of the other yet-unfinished-areas in E17 while I charge ahead to eventing and other horizons. They've already saved me a huge amount of time on Tourmaline, and I'm sure they'll continue to be invaluable. As for other goings-on, the only area I have left to map is one that I've been looking forward to for a long time, but I'll keep the details of that to myself for now... Just know that we are ever-quickening and closing into progress here. ^^
    37 points
  39. Hi, Community! This might come as a bit of a surprise. Almost two years since e19, is it? Can't blame you if you thought the game was done. Admittedly there was a hiatus for a while and we have been a bit quiet about the recent revival, but the game is very much alive now. In fact, we're planning a new release in the not too distant future. Wait, who is this random person? Right, I never wrote here before... Well, hi! Enu here. I'm the dev-ops guy. While my main focus is Reborn, most of my work benefits Rejuvenation and Desolation as well. I created some tools that make the development and release process easier for the teams and later I also worked on improving some aspects of the player experience. I first found Reborn around episode 14 and it quickly became my favorite Poké game. Occasionally I tried to look into some bugs that were really annoying - the veterans among you might remember them. The long text lines where the first part disappeared before you could read it? Or funky NPC follower movement, especially around ledges? I helped out with those. Also I know Git quite well (it’s a version control system, a great thing for software development) so when Ame's team started to use it I gave her an introduction about what it can do. Later when she started talking about episode 19 alpha on Patreon I half jokingly asked where to apply. I didn’t really expect to get in but thanks to those past involvements Ame actually did invite me into the alpha testing group. What happened afterwards was that I stayed active even after alpha testing concluded, wrote some tools for the team and kept working on fixing bugs even after the e19 release cycle finished. In the meantime most of the original Reborn team moved on to other projects though a few of them still make a change or two occasionally. Desolation and Rejuvenation teams were working hard on their respective updates. I helped with updating the games to take advantage of the new tools we had available. And eventually after these updates were released I ended up building a new team for Reborn together with Ame. So what is this update about? First to avoid too-high expectations, this is not a story update. There are only a few dialogue changes overall - such as new NPCs mentioning new passwords. There is no big graphical overhaul, no new gen or something either. The game still looks and plays the same. Our main focus was the engine. Modders might have noticed that latest versions of Desolation and Rejuvenation have a very different code base than Reborn e19 had. It was mostly Cass and the Reju / Deso teams who did the engine overhaul. This update gets Reborn running on this new engine as well. The main benefit is that the engine is shared between the three games which means that future bug fixes and even some features can easily be applied to all three games. In fact many of the new features coming to Reborn will appear in the other games as well in their next update! This way we'll all have a good base for future updates and benefit from the hard work of the other teams. The new engine should also make the creation of new mods easier than ever. For players, this update brings many long-requested QoL features, a couple of new passwords, improved controller support, accessibility improvements and an official (if experimental) JoiPlay version to be played on Android among other things. More about these in upcoming blog posts! We also fixed hundreds of bugs - both in overworld and in battle. Small clarification about version numbers. Reborn e19 had versions 19.00 to 19.16. However, they should have been 19.0.0 to 19.0.16. The convention was just incorrect back then. The new update will be version 19.5.0. Introducing new team Amethyst No introduction needed! As you all know Amethyst mostly moved on to work on Starlight. So while setting up the new team my main goal was to do it in a way that the team is capable of working without Amethyst keeping an eye on all the details. She makes some changes herself every now and then and we make sure to ask her about priorities, what features she wants included and other decision making. This way we can keep making the game better but still very much in line with her vision and wishes. Other than that her hands are free to work on what she wants and not lose time on minor details that don't necessarily need her attention. Crim A veteran from the original team! Many things from e19 and before are their handiwork and we’re very lucky to still have them on the team. Crim has the skills to do just about anything the game needs - graphics, animations, mapping, story writing and scripting. They’re looking into tweaking many of these aspects in the future and we’re very excited to see it. stardust A very experienced Reborn challenge runner! She’ll often take note of random battle bugs either from her own runs or community conversations, then go and fix them before we knew the bug even existed! Other than that she's also the author of the NG++ mod for e19. This mod will not be updated for 19.5.0 as it was merged into the main game, along with a number of new skips and improvements. Lucent Flash Lucent is constantly proving his expertise at analyzing... well frankly anything I throw at him. He fixed many random issues and we can rely on him for some larger projects as well. For instance the new engine completely broke many Reborn-specific features such as all Online stuff. Lucent fixed all of that and additionally made it possible for these features to work with the other games and even with large mods that add newer generations or fakemons. Orsan I'm always amazed about the amount of random trivia that Orsan knows about the franchise. It often helps to have him validate how things should work. A large part of the upcoming accessibility improvements are his work, not to mention many other random fixes. Together with Lucent he also added Battle Pavilion bosses for double battles. He’s also been putting a lot of work into ████████████. Haru They're the person behind Randomizer which is also greatly improved in this upcoming release. I don't know all the details but the Randomizer improvements will be revealed when the time comes! Haru also did the hard work of updating the Battle Pavillion and Battle Factory in the Nightclub to the new version of the engine. This alone was a LOT of work. And last but not least, several important engine refactorings are Haru's work as well. Pyrolusite Errr... this is probably a dead give away to what we're planning, isn't it? Can we announce this one early, Ame? Yes, Pyro is the author of the very popular UI mod Pyrolusitium. Yes, he's on the team to improve the UI and we’re very much looking forward to it. Unfortunately, no, it isn't ready just yet and won't be included in this update. It will become part of the game later. ...Oh and myself. I maintain the dev tools, and introduce various initiatives to improve our work. You'll hear more about some of my work in upcoming posts! Some of the old devs also occasionally float in and out to help out with something and we can consult with them when we need to. I don't have an exact date for when this release will go public. There will be a community testing version first because we're still running into random quests being broken because of the engine update every now and then. But overall the game is quite stable now. Thanks for reading and stay tuned for more updates!
    36 points
  40. wow it has been nearly 6 months from my last post. well, if you're new here: hi, i'm cass. i get mad at the scripts. sometimes i even post about it! lately, though, i have not. grad school kinda showed up and kicked my ass, and the two primary things i've been working on are suuuuuper big and not ready for prime-time. those two things are a rewrite of the AI and a more organized method of handling field effects. the AI isn't ready because the AI has like 40000 lines of code and if i think about that for too long i lose my will to work, and the field effects aren't ready because the field effect system is complicated and i hardly know what i'm doing. the code is still spaghetti, my hashes are backwards, and i'm basically learning how to do what i'm doing on the spot. so it'll be a bit. for now, though, i would like to tell you about something that does not matter in the slightest. and that is the move razor wind. you have never used this move except, perhaps, on accident. it has actually been removed from canon games as of gen 8. since you have never heard of this move before, i will explain how it works. imagine using strength, except you have to wait a turn before attacking. that's razor wind. there is, however, one incredible trait about razor wind. a trait that elevates it above all other moves. and that is its japanese name. a lot of moves have japanese names that, when spoken, sound like typo'd english. razor wind is notable for not being such a move. the name refers to a spirit in japanese folklore that rides on dust devils and inflict small cuts on those caught in one. (links included if you just want to hear about this from the source!) as a pokemon move, one could think of it as something akin to "acting like a kamaitachi". english does this shit all the time. computers compute. displays display. i am looking at my desk desperately grabbing examples. but a poorer translation might not understand this. a poorer translation could be mean. a poorer translation might be "slash like weasel". and thus, weaselslash was born. now, of course, the comedy implications of this were readily apparent to myself. but ame was horrified. a thing that happens between her and i is that one of us will be like "huh, this is such a strange name for what this thing does." and then ame will be like "well, i wonder what it is in japanese." i'll say something like "well, it's probably, like, strangeo nameo or something" and then she'll look it up and it'll be strangeo nameo. i think this is hilarious. ame makes a "hurts just a little bit" face. but then we looked up razor wind. and razor wind wasn't a typo! it had origins that were actually interesting and grounded in folklore! so, naturally, i turned to ame and said "so what you're saying is that, in japanese, razor wind is weasel slash." and ame died that day. the implications are hilarious. imagine you're playing, say, rejuv. you're at the scene where madame x is about to obliterate you with an yveltal. and then that yveltal summons up a giant swarm of weasels. a swarm of weasels that takes one turn to charge up. a swarm of weasels that then returns both you and your team to the dirt from which it came. this yveltal thing is not a joke. this is real. you can take your friendly neighborhood yveltal to the move relearner who will, for the price of one heart scale, teach your yveltal to summon slashy weasels. (credit to crim for this incredible pic) *note: i suspect that, somewhere out there on the internet, there is a mole person just waiting to comment with "well aktually I used razor wind back in generation 3 and i know all of its mechanics so you're wrong" this person is a clown and i would like to politely request that the rest of the comment section refer to them as such
    36 points
  41. Shh, no words now. Only videos. After all, it's the start of the game so it's not like it's a spoiler or anything.
    35 points
  42. ok so over in the X% thread Burning Ocean commented on how development pace has picked up recently, and was asking why. it's a good question, considering that we basically went from nothing for months/weeks and now we're back to a % every few days. there's basically two and a three half reasons: Walpurgis is a good person. those of you who know her from the bug/troubleshooting section probably already know that. what fewer people know is that we ended up taking her from bug reporting to bug fixing. instead of just fixing save files, she's not fixing the game. what an actual hero. we have her helping out with the scripts after Marcello and Kuro taught her how to mingle with 'em, which has freed Marcello up to focus solely on AI without having to worry about the pile of outstanding battle system errors. Also Marcello finished his school term. so that helps too. Kanaya is also a good person, but the difference is not as many people already knew that, and she'd probably gripe at me for saying that she is ;D. Previously just helping out with mapping, I've also been teaching kanaya to handle events and I've given her a solid handful of the sidequests to do for the episode. like walpurgis with marcello, that freed me up to focus solely on the story (and other bits) which meant i could cut through those pretty quickly. at this point sidequests are all that's left so i'm going back to them a bit, but it was super helpful to have other hands on it in the meantime regardless. this is the first time i've ever actually had other people working directly on adding the game's content so it's a pretty big step for me. and also promising for future endeavors. buh. the other three half reasons all have to do with me and my home life. more active users might know that dan moved in with me around february, and that was fine at first. however, as time went on there was some conflict around his schedule and financial stability. his schedule being janked meant he was here a lot of the time, and i quickly discovered it's near impossible for me to focus on writing with someone else around. story is usually the quickest part of development because i get super motivated for it and just hole myself up for a few days and slam it all out. but with everything going on and him always being around, i couldn't really do that. also, when one isn't sure what their living situation will be like in two weeks or two days, productive energy tends to take a hit. also also this episode had more than normal in the way of story stuff to do in the first place, so that was unlucky. so the three half reasons we suddenly sped up are because basically: conflict/financial/schedule stuff at home finally seems to have worked out, so no more issues swarming around i got over myself and learned to actually ask for time when i needed it even if he was around, something i didn't feel able to do in the past because i'm bad at people and very shortly after either of those things happened, i finished the story anyway making it all a non-issue so, here's what's left to do for the episode: small AI piece concerning partners using moves on their allies (i.e instruct, pollen puff, etc) some other outstanding AI improvements/bugs based on E17 performance like 2 squests (the objectively better name for sidequests) some trainer battles bugfixing remember, the misc updates progress bar is not real. we'll start supervised testing once probably like all but the first bullet point are hit, since that's pretty minor. my hope is that that will be within the next two weeks, but don't take that as an expectation. wish us smooth sailing and few buggos.
    34 points
  43. you know for a while my todo list got up to like 5000 lines. but that's what i get, i suppose my side of the function code crawl is done, which is basically just writing out the logic for our 120 function codes that we've selected as this episode's lucky winners. for the most part these are common moves like status, set up, recover, etc... plus certain things i know gym leaders use. so i'm hoping for high mileage with these. they've all been written out and now marcello is just finishing up putting them into the script properly. meanwhile it's up to me to tie up loose ends in the misc update category, which is nearly entirely limited to bug fixing by now. historically that does not take very long, but i also have not gone through the forum for bugs basically all episode, so i will be doing that over the next week. we'll then start testing. we're doing it a bit different than we have in the past, so i'll go over how it's structured this time to inform newcomers and illustrate changes. in the past our test sequence has been ...where the supervised test is one where one person (hi ikaru) plays through the episode and all with me watching so i can closely see any problems with how it plays or things that need to be tweaked. this has just been called alpha in the past. the beta has been done by ace members, community is a release available to all forum members, and the public release is open to everyone finally. unfortunately many bugs have still passed to the community and public releases despite this. that's because we would find bugs in beta or community, and then take a pass at fixing them, but sometimes that fix fails or breaks something else, and we dont find out until the public release because all the testers had already played the originally broken version. for this reason starting this time, we'll have more waves than before: i just mentioned the supervised testing was considered alpha before, but we're now calling it that. instead the alpha testing will be done by the supporter group here on the forums privately. internal testing likewise will be done by the dev team as a whole amongst ourselves. we didnt do this before due to having a smaller, more inconsistent group, although it somewhat happened less formally anyway. my hope is that taking it through these different waves will give us plenty of time to fix as many bugs as possible. of course there are some things that just won't statistically present themselves until swarmed with a certain number of new players, so it's not as if we can promise a bug-free release. i ask for your understanding as always. in order to compensate for the increased number of waves, i'll be shortening the time of each one as well. in the past the beta and community tests have not had a fixed timeframe, but usually ended up being around two weeks each. with more waves now, i'll be limiting each one to a single week so that we can move through it in a similar amount of time. the supervised test should not require a week anyway... anyway, this all means that if there are no especially time-consuming problems, the episode will publicly release four weeks after the internal testing begins. since we are reaching this stage, it also means this will be my final post here for this episode. from here on out, i hope you can wait for it patiently. although the story content of the episode will be somewhat light, there is plenty to explore, and especially with 7th gen being added there are many new pokemon to catch too. in fact, as of the end of E17 only six non-legendary lines are still unavailable. and as for legendaries... maybe you'll even get some action with them too. until next time ≮̕3҉
    34 points
  44. oKAy hi so what's up all my fresh fellas lovely ladies and enchanting enbies we're here with another episode of not Pokemon Reborn cuz that shit ain' ready to release yet BUT the story is pmuch done "but ame if story is so done why come it not full hunder persent on right tab???" an excellent question, hypothetical asker who's typing style belies the validity of their question. that's because although i've gone through and done all the story parts that i can so far, there's still a few minor holes i need to go back and fill in. i couldn't do that before due to things like the maps not being completed, or some script issues we're just now getting sorted out. there's also a bit more eventing stuff that i'll need to do when all the maps are finished too. then there's sundry things like the tv dialogue, bug fixes... oh, also i'm making sprites for all of the furfrou forms after deciding to care noticing that we didn't have anything for that yet. plus AI... so- there's still a significant handful of things to do before release. however, once those few things are knocked out, we're going to have a grand old time. do not hype yourselves yet though; the time for that will come yet.
    34 points
  45. *checks dev blog calendar well i see there hasn't been an update in a while. i should make a post. hello, [reborn player name here]! has your game ever been slow? well, no more, i say! introducing, from whatever joke corporation i'm a part of this post, 18.3 "Wow, that 3 is really big!"™ this update contains none of what you've been waiting for (like, say, new content) but it does contain stuff like zoom and also a way to natively play reborn on a mac. really. no wine. just mac. native. pictured above: native those of you who keep a side eye on the progress bars will have noticed that nothing's really changed. and as far as new content is concerned, that is certainly true. ame's been focusing on starlight, and....well, you don't want me writing dialogue. that is not my thing. pls no thx. that doesn't mean i've been doing nothing all this time- it's just stuff that the progress bars don't really reflect. so some backstory. y'all might've seen a while back that there is a way to play reborn (and other essentials games) on android. this is not something i ever had expected to happen. i have been saying for a very long time "no. this is not a thing. you can not do this." and then suddenly: "wow! this is a thing! you can do this!" and that shit was smooth, too. like, it almost seemed to play the game better than the pc version. after that, i was like "wow wtf how many other things have i been wrong about". which brings us to mkxp. and this is going to be a little bit more abbreviated than i'd like because the forums ate my post. thanks forums! mkxp is an open-source player of RPG Maker games. it's also really difficult to get to work. i like to think i'm pretty good with computers, but trying to build it from source code required a level of technical knowledge that i did not have. but uranium has an mkxp port. so i just... borrowed the exe from there. and it almost worked! after further struggles, i contacted the dev of the uranium port. now, after three weeks (oh my god it's been three weeks) of hair pulling, we have a mac port. it's been so long. so the theme of 18.3 is performance. 18.2 had the AI updates; 18.3 will make the game go faster. i feel like everyone knows how sorely this is needed. if your hardware is even somewhat old, the game runs like ass. you know it. i know it. ame knows it. jan knows it.* everyone hates it. the star feature of 18.3 is the inclusion of the all new Game-z.exe. this is reborn's mkxp build. if you saw my previous dev [shit]post, you've seen a short preview of an early version. but it does so much more than that. battles? smooth. speed up actually works there now. it's incredible. maps? smooth. we got full framerate in spinel while it was raining. the maps aren't perfect but god they're so much better. animations? oh boy. so, the animations in game-z were smooth, but because of some other issues we were having, a few internal changes made them lag hard. so i took a peek in the code. it turns out that essentials handles animations by loading the entire file and then picking a specific animation from that file. the file is 10MB. it loaded that for every animation. whose idea was that. this no longer happens. for both game and game-z. animations are now preloaded when you open up the game. that 1-2 seconds of lag that happens for every animation in battle? it happens once when you start, and never again. it's incredible. best coding work i've ever done, and it was only five lines. there is one other change: the game now uses one font. it is emerald. the game.exe fonts look downright awful on game-z.exe. instead of trying to find four new ones, we just have one, and it's what everything uses now. there are a few things i need to finish up before an open beta: getting the linux port to also work, and seeing if there are any other ways to speed up / shift around load times. i am hoping to finish this up this week and will throw up another devblog post / forum thread when it happens. Game.exe is the RMXP executable and is what 18.2 runs with. Game-z is the MKXP executable. we're including both game.exe and game-z.exe in 18.3 (and likely e19) in the event that people run into weird errors with game-z. kinda like how people run into weird errors with game.exe anyway! this way, hopefully, at least one of them will work for everyone. 18.3 will also probably be the last mid-release update, with some minor changes to the release at best. i do not want to maintain two separate versions ever again. let my heart be free. *jan makes rejuv. if you haven't played it and are wondering what to do while you wait for e19, go try it out
    33 points
  46. “The dev blog was a bit desolate, but now we've rejuvenated it to let y'all know about reborn Reborn.” ~ Stardust Time for another blog post! Today I’d like to introduce a development tool which we have been using internally for almost two years. Reborn was my guinea pig here but both Rejuvenation and Desolation are using it as well these days. Big thanks to Ame that she was willing to try this out on her game even though I was just an alpha tester at the time and the e19 release period was very busy! This one is meant especially for those of you who maintain large mods that include map changes and creators of their own games. Several features we’ll be introducing in the 19.5 update and more features that we’re planning for later would not have been possible without this tool. The problem In my previous post I mentioned that the team is using a version control system called Git. It’s an essential tool for any kind of software development. It lets you keep track of every change that was ever done to the game with the possibility to go back and see the changes, merge together the work of several teammates, and so on. One notable thing about Git is that it works well with text files but not with binary files. Such files are basically computer gibberish which can mean anything and therefore is unreadable for Git. Think images, audio, video, executable and so on. The issue with RPG Maker XP (the editor which is used to create these games) is that it stores maps and some other things in a binary format. You know, the .rxdata files in the Data directory of the game? Yeah, those. I didn’t like that so after some research I found a super old tool capable of decoding them. So I forked that, made it more useful for actual development and called it the Easy Essentials VErsioning Engine, aka Eevee. Eevee basics Now what can this little fella do for you? Well it can transform .rxdata files to a text format and vice-versa. Git is very good at versioning text: it can track when each line was changed, who did it, let you merge changes from two people even in a single file and so on. So for Git to be able to work with maps it was very important to have the maps in a text format. For the team this is very important as it allows us to have several long-term projects that need a lot of map changes in separate git branches and we can easily sync them with whatever changes we make in the main branch. Synchronizing that without Eevee would be a nightmare and very prone to accidentally undoing someone’s work. But this way we can easily keep everything up to date internally as a part of our routine and those long-term projects can spend as much time in the oven as they need without causing any problems. Another no less important advantage is that text files are human-readable and search-able. Wanna know all the places where you can obtain a particular item? Find all events where a mon is removed because all of those were bugged? (Yes they are all bugged in Reborn 19.0.16.) We can do that! The format Now originally the format eevee produced was simply YAML. Which was okay but I didn’t have full control over the output so it still contained a lot of extra gibberish. However, near the end of last year I finally sat down and implemented a custom format for Eevee which makes it even more useful. It allowed me to make many custom improvements to the format for easier usage - making sure that important data is there in a readable form while useless and redundant data from the old yamls is simply cut. For example all the options that can have one of a limited number of options in RPG maker are transformed from their internal number representation into text here for much better readability. To give you an idea what a map looks like in this format, here is Lapis Gym in the new format (scroll down a bit, the events at the top aren’t very interesting). You can see all the dialogue and all other data the map contains. We can also easily find all the places where a particular switch or variable is used or where a particular audio track is played. And finally, it allows doing some bulk changes by simply string replacing across the entire project. For instance, some typos were in many places all throughout the game. There are three other things worth pointing out in the example file. Firstly, the comment at the top of the file shows you where to find the map in question in RPG Maker. Secondly, unlike the rxdata files, the filename also contains the name of the map. Other features Eevee is also able to run in the background while you’re working in RPG Maker and output your changes to ruby files on the fly. There are more features which you can read about in Eevee’s documentation if the tool looks useful to you! We use it to generate patches and validate our maps so that they don’t contain common errors. There is also a guide to help update your modded maps to the new version of the game. It’s not an easy process but for large mods it should be a lot faster and cause less issues than redoing all the work manually. The source-code is entirely open on GitHub so you can see how it works internally and help improve it if you find a problem.
    32 points
  47. Well good news for you! Because today we are dealing with line breaks. A sort of intermezzo if you will. Line breaks are a pain in the butt cheeks, because there seems to be no rhyme or reason to their existence. You can change the words before the line break and it will disappear. Okay, seems logical enough. You can add words after the line break and it will disappear. Okay, what? And until one of Ame's patreons looked into things, you could do nothing and they would randomly appear and disappear. RMXP are you drunk? When doing our optimization run (ha! still talking about optimization) I noticed something which I would've bet was the cause. Dear reader, always bet against me, for I was wrong. And then I found a line break while playing. And another. And yet one more. Time to actually look into things. After putting print statements down like no tomorrow, the following conversation between me and essentials happened: Memsplanation.mp4 See, the function in question is getFormattedText. And this function is over-engineered like no tomorrow. Want to left-align stuff? seems logical. Want to right or center align, this function got your back. Want to use the weirdest font you can find? No problem for this badboy. Want to add Icons? Make only one line right align? Okay please slow down. Color certain words? Add your own line breaks? A second way to add Icons? Want to try splitting the text? No, stop! And that one is the problem. getFormattedText decides to rerun itself when a condition is met. What that condition exactly entails, I still don't know. But to spice things up, getFormattedText quickly adds a \n in the middle of the string. Which in ruby is syntax for: start a new line. And when it is rerun, it starts another new line right before the word after which the \n is placed. That part of the function has officially been yeeted. We now are free after all this time of suffering.
    32 points
  48. to continue our blitz of devblog posts, imma talk about difficulty modes. but first, I would like to present you with this: this is a chronologically organized list of every major battle up until e18. if you think it looks cool now, wait until the e19 stuff gets added. this was inspired by me trying to edit trainer pbs data while having absolutely no idea where/when you'd fight people who appear more than once. it's nice if you want a quick reference for when/where you fight people throughout the game. i'll probably add more data in as i need it, but for now it's just a neat little v1.0 version of a nice reference banner. but this came about as i was working on difficulty modes! which were another thing i just...suddenly decided to do a few days ago. some people tend to have a hard time with reborn. other people think it's too easy. i am really going to try and make both of those groups happy. details are kind of scarce at the moment, but i can at least talk about the general idea behind them. the easier mode (which i've taken to calling reborn lite) is effectively your standard reborn playthrough but with a little bit more leeway with how you play. trainer levels aren't quite so high. their IVs aren't quite so good. you aren't quite so money starved. it will still be significantly harder than a canon playthrough, but if you're particularly in it for the story, lite mode should help smooth over some of those harder fights. the harder mode (which ame cheekily called reborn dark) is the standard reborn experience but with the difficulty knob broken off. it basically takes the rate at which things like IVs, EVs, etc are added and pushes it way forward, adding in some additional bullshit when you get to the late game. i really want to emphasize that regardless of the difficulty, the game isn't really changing: team composition is staying largely the same, with any modifications being minor at best. the difficulty changes are more about how hard the game pushes back, rather than what the game pushes you with. i've also been working for, like, 11 hours today and feel like i'm just rambling. if you have questions, ask 'em. gosh, this post wasn't even funny. what am i doing out here. hi also i edited the pic up there with an updated version
    32 points
  49. that'll teach me to say 'this is the last post for the cycle' ever again. fuck AI. anyway hi, check it out, it's E18, comin' at you now so here's the rundown on things this time around: USUM Updates As expected... and for that matter, promised! Fortunately: unlike E17, there's not all that much to do-- only a handful of pokemon/forms/moves, etc, and Marcello is already hardlining on that to get it sorted. bless Marcello. The biggest issue here is the sprites, but I mean -flips hair- I can handle those. Also unlike E17, I'm not starting with this personally, so it'll be a bit longer before it's checked off. Instead, I'm starting with... AI It's always such a pleasure. Remember when I tried to make the game better, but actually introduced like a dozen inaction bugs that ruined the experience for multiple waves of testing? twice? ...this is the second time. So this time I now know to expect that testing will take several months while we pick out those inaction bugs (they're really hard to pin down!!!). Anyway I talked last time about how there are ~350 function codes for all moves, and for E17 I did 120 of them. That leaves 230 for E18. I am currently cutting my way through a l l of those, as you can see on the status widget on the right. despite the low percentage, i'm about halfway done. So, a couple more weeks and I'll be set. Aside from that our other focus for this episode is potion usage, which we will rewrite entirely like we did for the switch algorithm last time. Maps normally this section is graphics/maps because i do them together, and to an extent that is still true here, however i don't really foresee the areas i'm mapping this episode even really needing that much in the way of graphics (and i'm sure i'll start taking some Liberties™ and promptly ruin that but) so I'm going to just simplify this down to le mappo's for this episod. in E17 there were seven areas i had to map. for E18, there are four. and one of them is not a giant fucking desert. so you know, that helps. Eventing as usual: this is the part of stuff that makes things on map do stuff blablahbalhabljdhfbdjf so i don't really foresee this being even a significant drain on this episode because i don't have any particularly troublesome (to make) puzzles planned yet but any issues or slowness that arises in this section is usually because of puzzles. if you suffer, i suffered first. that's what true love is. <3 Story here we are. the bulk. normally story is pretty quick-- so it's a good place for the bulk to be. but everyone knows i kind of dicked myself in terms story workload for the rest of the game after E17, so everything is effectively doubled. also, looking back at past episodes, E16 was sidequest-focused, and E17 was focused on exploration... E18's focus is the story itself. the last one it's similar to in that regard is probably E15. so we gonna kick some stuff into gear here. Sidequests exist. but i don't have much planned for them this time. there's a handful of events i need to do and maybe one or two or three small areas and other than that this should be ez to the pz like a blue moon fresh lemon squeezy. a good amount of other stuff was done for this in prior episodes. thanks, past-ame. Misc Updates as usual, the throw-away category. this is used for any changes to the existing game, which i have a small handful planned for but due to deliberately shifting focus and limiting revisions for the sake of forward progress, should not be very much. the rest of this goes to bug fixing. AKA fixing the AI we broke six parts earlier. whee. so there's what you can expect and understand from our scoreboard this time around. can i call it that? scoreboard? i dont know if it has a better name but i'm calling it that from now on cuz it sounds cool. like it's a game, or a war against nothingness in a place that has yet to be created so call up atreyu or whatever.
    32 points
  50. I categorically did NOT make this topic purely for the terrible pun in the title. So, I've been slowly but surely fighting the AI to make it work, but this isn't about that. AI, of course, is not the only responsibility I have on Reborn. Sometimes it's important to pay attention to quality of life features. And Gen VII added a few of these which we have yet to catch up to. Well, E18 will come with one of my favourites of those features included: (Get it? BOXING with my responsibilities? Because you can send your pokemon to the box upon getting a new one? :]]]]) It should also be noted this doesn't just work with wild pokemon. You're given this same option with Event pokemon and, on top of that, even eggs! (And yes, that also means if you so wish, you can either add eggs straight to your party, or send them to the pc, no trips back to a pokemon centre necesarry anymore!) Well, that's been this small update, and so I have to go slink back into my AI hole, I hope you're all excited for E18. But seriously, I have no regrets about the pun.
    31 points
×
×
  • Create New...