Leaderboard
Popular Content
Showing content with the highest reputation since 07/29/25 in Posts
-
gosh, it's dusty here, isn't it? well... i suppose that's the nature of a finished game. most of my efforts in recent times have gone to things that are not reborn... but most is not at all. in our last post, orsan teased the following about finally updating the protagonist OW (OverWorld) sprites for 19.6: today, we're going to show and talk about these in a bit more detail. (a note for our blind players-- this is a purely visual update most and so this is probably not for you. with apologies, i will be sparing myself the task of IDing each image). OW updates were something that, in an ideal world, i would have done with e19. only, i was soooooo tired by the end of it, and we did a lot of shampoo-ing of VS and battle sprites, i truly did not have the stamina. however... these sprites appear in virtually every screenshot of the game ever, and so the mistakes of my past continued to haunt me until i was cow-prodded into doing something about them. fortunately, there was a lot that i wanted to fix, and my skill in spriting had grown over time, so it was quite rewarding to do. to see them in action, let's post a dizzying array of gifs: above includes both walking and running variants. our old sprites were made with very, very minimal effort to make the run sprites; i only moved the head forward and down a little bit, which is what sometimes resulted in the ability to spam the run button and appear to dance in place. i don't know if that's still possible these days, but i think that having a more dynamic running pose will feel nice anyway. truthfully, i want to develop my skills to push such poses to even more exaggerated animations than this. but alas, that is not for this little update project. when updating our protagonists, i wanted to choose a 'style' of animation and stick with it for consistency between them. this consistency was a flaw in the previous set of sprites. they were made at various times and levels of skill, and so they are not always consistent in their dimensions and animation. this is also why the shape and size of some of them will appear to have slightly changed. this was also an opportunity to fix some of the issues that had nagged me with our previous style of sprites. compare these frames. new vero (left) vs old (right): old decibel (left) vs new (right): the issue is clearer on decibel's-- the way the feet are positioned ends up making a solid black line across the bottom of the sprite. on vero's, there is a one pixel notch, which i would consider better but still visually awkward. i'm not going to claim that the updated sprites are perfect, but i think we succeeded in refining the walk and run cycles to help silhouette the feet better in all frames of animation. here is another example, demonstrating a change in the animation style i mentioned before. in the above screen, pay attention to the relative placement of the sprites' hands. in each step frame, i wanted to increase the action of the movement by making the hands appear to move more widely. i think this helps 'running' vs 'walking' come across much clearer. for aspiring spriters: I find that starting with the positions of the hands is a great way to tackle these little bodies. it'll help you refine the silhouette early on. also look how much better alice looks! i haven't liked her very much in the past-- and with her OW sprite previously looking so different from her other graphics, it's no wonder! it looks like she had buns or something. i hope everyone enjoys the new hair-floof. i think i'll be using her more in the future myself. perhaps the most notable new detail of the animation overall is the hair animation. in the current set of sprites, most character's hair hardly animates at all. much as we love lucia, hers in particular has been very awkward in the past. bouncy hair is a nice way to add a lot of life to sprites, and it's also one of my favorite things to do in sprites now. it's fun to make it go swoowsh-swoosh-swoosh! here's some frames, and how i think of animating them: frames 1 and 3 are always identical in these sprites, the work is on 2 and 4. in either case, i choose a direction, either clockwise or counter clockwise to think of each 'tuft' of hair as moving. then it's just a matter of moving the pixels as little as possible while finding a shape for the points that looks nice in pixel form, and doesn't create awkward movement when applied to the height change (frames 2 and 4 bend at the knees, and thus the head sinks 1 pixel lower, which can make some animations look awkward. testing is important!) on a different note, did you notice from the first gifs that kuro is looking different? in my view, he's kind of been the least popular protagonist. originally, i imagined him having kind of a deliberately shaggy hair style, but i don't really like that as much these days, and more importantly it doesn't really seem to be a hit with players either. so i took the opportunity to kind of shore his hair up to a nicer shape in general. here's his updated VS sprite: we wouldn't want to change him tooooo much for the players that are used to him as he is, but i felt this would generally be received as an improvement. and hey, we finally got his sunglasses into his OW too! because of how many variations and alterations player OW sprites have, this ended up being a significant undertaking! there are many little pieces-- walking, running, biking, fishing, surfing, tauros-riding, minecart-riding, etcetcetc... i would not have had the stamina to do all of the animations over myself-- in the end, i just made the base walking and running sprites, and then others in the community initiative helped out with the finishing details. big shoutouts to moonpaw, nephilinite, meteors, not_aza, and inserobite102. in addition to the extra animations, they also helped refine some of the cross-sprite details... enu oversaw it and contributed some scripting to avoid having to make redundant graphics (surfing, fishing while surfing, diving were all very similar...) too! thank you all! speaking of diving... i think, but i'm not sure? that the main games are doing this these days too... but we also took the opportunity to answer the question of "how does the player breathe underwater when diving?" let's close out with some before-and-after references. for fun, i also included the original versions of Alice and Vero, back in the earliest episodes when they were the only protags. if you are looking to improve your spriting from others' example, i suggest studying the differences in these images and seeing how they changed over time. softer colors, flatter hair shading, brighter outlines... what else do you notice? this kind of analytic exercise is a good way to improve your own skills. by the way, for anyone still interested in the eventual postgame continuation of our dev let's play-- it is not forgotten. only life has been getting very in the way for a long time now, and at this point i would at least wait until 19.6 anyway. thank you all, as ever, for caring about the game at all stages of its lifecycle, and i hope you can look forward to the update35 points
-
Greetings, you probably don’t know who I am. I’m Falirion, one of the Programmers for Rejuvenation. So if I work on Rejuvenation what am I doing on Reborn’s devblog? Well since Reborn, Rejuvenation and Desolation all share our primary codebase I was asked (yes, asked, please ignore the banging on the barricaded door in the background) to talk a bit about one of the more major code reworks that have been done during 19.6’s development, the rework of the move resolution in battle, a part of the Code that was essentially rewritten from scratch. I will give the warning right now, this is going to get technical. So let’s start with the obvious first question. Why? Why fully rewrite a section of the code that was already working fine? Well, because while in the grand scheme of things it was working correctly, about 95% of cases or so, there were several existing bugs that were ultimately deeply rooted in how we actually handle the resolution of moves. We had a collection of bugs that all ultimately boil down to a certain older bug that has plagued the codebase since before I was even part of this community and probably even since the start of Reborn’s development. Our older Players may remember the so-called “spread damage bug”, a bug in which, when using a damaging move that affected multiple opponents, the second affected target would take more damage than it should, if the first affected target fainted to the attack. This was due to the double battle spread damage reduction not applying to the second target because, due to the first target fainting, the game didn’t recognize anymore that it should reduce this damage for being spread damage. Now of course this bug has been fixed for a while so why is this relevant? The fix to this bug is what a programmer colloquially refers to as “duct tape”, a more or less sloppy fix that resolves the issue but doesn’t really address the root cause, like using duct tape to try and keep your headphones from falling apart instead of replacing them. In the earlier mentioned bug collection almost all of them were a variation of this: something happened when dealing damage to target 1, and this would then affect how the move interacts on target 2 (typically the damage) when it in fact shouldn’t do this. Some examples are Moxie, Beast Boost, Soul-Heart and Water Spout or Eruption vs Rowap Berry. And the root cause is the same we were for all these years doing move resolution wrong, simple as that. The issues can be boiled down to 3 key points: Timing, Referentiality and Structure. Before explaining these, a quick aside. When explaining these I am going to refer to 2 Moves in particular Stomping Tantrum and Dragon Darts. This is because the functionality of these 2 moves taught me a fair bit about how the move execution needs to be to work correctly. And while I assume that most people reading this are familiar with Pokémon mechanics, for clarity a quick rundown: Stomping Tantrum is a damaging ground type move which doubles in power if the previous move the attacker used has failed… for most reasons, hitting protect for example does not activate this power boost. Dragon Darts in single battles is just a 2 hit attack, kinda like dragon type double hit. In double battles however this move has a quality we will call smart targeting, it will attempt to hit both opponents once each, if however the move would fail against one of the targets, it will ignore that target and instead hit the remaining target twice. So since we are now on the same page... Of the primary issues Structure is by far the most important one, but I will keep it for last so let’s start with Timing. Now, in the old move execution the general order of things isn’t inherently wrong; first check that the move doesn’t fail, then calculate and apply the damage and then handle the effects. It’s just the logical order of things. However the failure check was happening way too late, in particular for dragon darts, by the time the failure check was happening we had already determined which targets we are hitting and how often. Which is a problem for Dragon Darts because it needs to know whether it would fail or not to determine who to hit and how often in the first place. As such we had to move failure checks a lot earlier and while doing so we noticed, a lot of specific failure conditions were checking at the wrong time entirely, in fact type immunities and primal weathers were part of the damage calculation which is just wrong on so many levels. So let’s talk real quick about failure conditions, in Reborn 19.5 code they are generally in 2 places, at the start of move execution in a method called “pbTryUseMove”, which covers things like being asleep, paralyzed and other things that prevent the move from happening and as such not using PP, and “pbSuccessCheck” which covers just about all the rest just before the move would deal damage. If only it was so easy… After the rework we categorize them into 4 categories (numbered 0 to 3 because we are programmers so we start counting at 0). category 0 is “pbTryUseMove” and is largely the same as before so moving right along. category 1 is new entirely, timing wise it happens after subtracting PP, but before the activation of protean for example. This includes things like primal weathers and queenly majesty, the move is canceled in its entirety, usually irrespective of the explicit target (queenly majesty is a side effect ability, who actually has the ability is irrelevant). Only exceptions here are sucker punch and poltergeist, which directly check for the target here. category 2 and category 3 are both equivalent to “pbSuccessCheck” and are still in this method. Why are these categories separate if they are in the same place? Well I personally also call Category 3 "the group of random move specific failure conditions that exists because Pokémon code always has to be weird and wacky" but that’s a mouthful. The difference between Category 2 and 3 is that Category 2 conditions are checked before checking Accuracy while Category 3 conditions are checked afterwards. To be frank I was tempted to ignore this but there is a quirk about this that is relevant to Stomping Tantrum. Which leads us to Referentiality, an issue largely specific to Stomping Tantrum, as mentioned earlier not all failure conditions actually activate Stomping Tantrum’s power boost. Hitting into a target’s Protect (or equivalent) for example. Another group of failure conditions which don’t count for Stomping Tantrum are in fact all Category 3 failures. Any Failure condition that happens after the accuracy check will not activate the damage boost. Which brings us to the key problem, how do we even recognize why a move failed? Can we even? In the old move execution, we could not, the move failed and there was no reference as to why. Additionally in the Timing category I mentioned that we are checking move failure before determining who and how often we hit them. There is a problem with this, when we check whether a move fails against a certain target now, we are before the point where we handle anything, so we have to delay the effects and player feedback for these failures. Which means we need to know why a move failed after the check is finished. As such we are using what we call hit flags. In the above screenshot you see a bit of the failure handling, along with a lot of examples of these hit flags. They are kept for each target the move targets and make note of what happens to the move against that target. For Stomping Tantrum’s case we can check against these hit flags and make the effect not activate if any of the ones that shouldn’t trigger it are included. So lastly Structure. The primary problem was that when handling moves damaging multiple targets, we were handling targets sequentially, which is to say one after the other. We were checking failure conditions, calculating damage, applying damage, applying effects and so on for one target fully before moving on to the next. Which is the root cause for most of the bugs I mentioned at the start. So if that is wrong what is actually correct? The targets in canon are handled in parallel so we first check for move failure for all targets before then handling those failures for all relevant targets, before calculating damage on all targets, before applying… you get the idea. This approach prevents what happens to the first target affecting what happens to the second, because the damage you are dealing to the second target has already been calculated. This also lets us remove the Duct tape fixes and have overall cleaner code. So how do we actually know that canon works this way? Dragon Darts is a big hint. Not only do we need to know whether the move fails against all targets before calculating damage, we can also tell that failure checking works similarly in parallel based on how Dragon Darts acts when it fails against both targets. When Dragon Darts fails against both targets the player will only receive the feedback for one of those targets, the other target being ignored entirely. The feedback received relates to the target whose failure condition has the least priority when checking failure conditions Let’s look at the reworked pbSuccessCheck real quick. What we see here is that first it creates an Array of hit flags, one hit flag for every target the move targets. Initially the hit flag is on “:Success”, indicating a move that connects with the target. Then it checks each possible failure condition, in order for all targets before checking the next one, in order on this screenshot, whether the target is hidden via the effect of the ability Commander (gen 9 ability jumpscare!), whether the target is in a semi-invulnerability turn (like Fly or Phantom Force), whether a priority move is blocked by psychic terrain and whether the move is blocked by Wide Guard. Between each of these it runs a method called “successCheckFinished?” which ends the check when it detects that the move would fail against all targets at this point and also does some filtering for Dragon Darts to remove the first target that failed. The point here is that the failure condition check also runs in parallel and has a very specific order it checks these conditions for and this order matters. Structure was also significant in a different way, fixing this required a ton of work. Depicted here is the method "pbEffect" as it is in 19.5 Reborn the primary method of move handling, each move with an effect subclasses (overwrite it with their own modified version which can still call into this higher level version of the method) this method. The issue is this method bundles together, everything; damage calculation, damage application, move animation, move effects, literally everything. And to make the previously mentioned fixes to the structure we had to untangle this method, separate the components so we can do each step separately for all targets instead of doing it all for one target. Which due to the subclassing meant, we had to rewrite every single move, all the several hundred moves that exist in the game, we had to fully rewrite in a new structure. I have to give a shoutout to the Community Cooperation Initiative, modders that signed up to work directly on the codebase without being part of the dev teams, maybe even canonize their mods and such things. Without the help of all of them, rewriting all these moves in the new structure would have taken much longer than it did. Thank you for your help in this and everything else since. Now there is more I could talk about here, but I have probably already been rambling way too much. As a TLDR: we rewrote the entirety of the move execution because the rebornian games had some key things wrong here for several years if not more than a decade, which allowed us to fix some long standing bugs which were not fixable otherwise. So why should you, the player, care? Under the hood it changed completely but for gameplay it remained essentially the same except we fixed some bugs, right? Essentially yes, but all this also allowed us to streamline things, for example this: Nice, right? enu asked me to ensure when rewriting the move execution that we can implement simultaneous damage dealing and health bar movement. Doesn’t just look nice but also speeds up move execution a fair bit. Uhh… looks like the door barricade isn’t gonna hold much longer, so I gotta bounce, hope you found this interesting, I know I can get way too much into details, so excuse the long explanation. Have a nice day! Sounds of a door breaking open You will never take me alive!22 points
-
Hi, it’s Orsan here! Just a quick post for you all this time: We’re not dead! 19.6 is currently in the works. A ton of people are cooking up a ton of amazing stuff for this update! We can’t wait for you all to see it. Every time I look in the Community Cooperation Initiative discord, something new and wacky is going on. So much is being worked on, though, that 19.6 is going to take a while. Please bear with us! A few quick announcements about some of the people who have been helping out: We have a new developer on the team! Joining us from the Community Cooperation Initiative, it’s Karvanha! If you’ve played 19.5, you’ve probably already seen some of Karvanha’s contributions, such as the multiple rows of balls in multi battles and the move descriptions in battles, to name a few! Karvanha has also made an unfathomable amount of bugfixes and put a ton of work into the Gen 9 engine implementation for modders. We’re all glad to have him on the team! Returning from the old team, also, it’s Azzie! She’s been knocking it out of the park with her contributions as well, between ████████████ and █████████████████! Oh, I can’t show those yet, can I? Well, rest assured, she’s been doing great work– one of these two features wasn’t even initially planned, she just dropped in with it and we all immediately fell in love. Over on the Community Cooperation Initiative side, we recently pulled in several artists– Apophyll has been helping us with some sprites for a secret feature for a while now, and MoonPaw, bowle, meteors, Not_Aza, and inserobite102 have been helping us create many variants of existing sprites– such as our new protag sprites! These were shared on Discord a while back, but here’s a preview for you all here! They’ve been doing a great job! AiedalEclipsed, who made the initial updater for 19.0 and manages the links for the downloads of all three games, has also been cooking up an improvement to a feature of the game that’s been there since Episode 1! It’s been a little messy for a long time, and the new improvement to it is great! Thanks, Aie! Yeah, that’s… pretty much it! We’re all working hard to make this update great, between core developers and the Community Cooperation Initiative! I probably shouldn’t leave this off without a screenshot, huh… How about this? (yeah i know i don't have the updated protag sprite, it's on a different branch and i don't feel like switching) Thanks for all of your patience and support! See you all next time!5 points
-
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!1 point