Jump to content

andracass

Veterans
  • Posts

    1827
  • Joined

  • Last visited

  • Days Won

    132

 Content Type 

Profiles

Forums

Events

Reborn Development Blog

Rejuvenation Development Blog

Starlight Divide Devblog

Desolation Dev Blog

Everything posted by andracass

  1. so you're not wrong about game-z, but the good news about this is that game.exe should also be a lot faster!
  2. the original essentials itself had a shitload of bugs in it so like we're probably already there
  3. https://www.rebornevo.com/pr/development/ right side
  4. so you'd have to: set variable 151 to 1 set switch 289 to ON set variable 176 to 5 Map038.rxdata or just use this. drop that in your data folder and talk to the friendly glaceon in the top left corner of the grand hall.
  5. andracass

    18.4

    good for you, bud.
  6. andracass

    18.4

    try it and find out
  7. andracass

    18.4

    the patch is for 18.3 i too also indeed quite yes very much do not interpret such actions as either good nor bad but rather simply emergent of the neurological capabilities which that which one might consider "human" may produce. it is significantly beyond the teleological scope of such an insignificant comment such as this for a person of my nature, stature, statue, eminence to report as to the nature of such a condition. in fact one must take great heed to consider the various entomological/etymological methods for defining the word known as "bug" should a person of the human variety desire to produce any sort of coherent answer to such an inquiry as the one you posit before myself
  8. on the subject of "things that need to still be done": the randomizer has been updated for the new version! it is still the same randomizer. it just works with 18.4 now. get it here!
  9. hi! i forgot to make a post here too. we have a new version! the change to it is really small but it should help speed the game up a lot. it's also in a patch version if you already have 18.3- just download the patch at the bottom of the downloads page and replace your scripts file. enjoy!
  10. its ok fam i gotchu *ahem optimization o'clock: abridged version SEE THIS SHIT IT BAD thx
  11. no seriously take it we have a thing for map connections too and we're working on speeding up load times for maps i wonder if we could do a preloader.......
  12. dude I barely know how to code
  13. (it's in a modified form of ruby)
  14. good morning. let's talk optimizations. we all know that essentials is, uh, slow. in fact, it's so slow, that 18.4 isn't even the first release to be at least partially based on making it faster. what is difficult to overstate is just the sheer extent to which this is not necessary. everyone who makes the game knows this. that second meme was a big enough deal that it got me to make another release. after everything i've been through. it was just such a big speedup that keeping it to just the devs actively felt bad. so let's do storytime. Event Optimizing this is the real basic stuff. in-game events on the map (trainers, doors, anything that results in a change to the map as a result of some kind of interaction) are easily the biggest sources of lag. you can tell what maps have a large number of events simply based on how slowly the map runs. calcenon Gym is my baseline for how laggy the game is simply because of the sheer event density on that map. so a few months ago, when all this optimization shit started, it began by seeing what events were unnecessary and could simply be condensed to a smaller number without resulting in any changes to the overall gameplay. an excellent example of this is spinel. every disappearance in spinel takes up some quantity of events. originally this was done with one event per tile that changed as a result of one teleport. take the pokemart. here's how it disappears in 18.4: the pokemart uses 16 events to disappear. here's how it is in e19: three! one for the graphic, and two to trigger the change if you touch them. the entire graphic is just moved into the one event. some areas will definitely be faster because of this, but the downside of this sort of optimization is that it's limited to the areas that have been checked over- and we really have a lot of places that would need to be checked. which leads me to Script Optimizing we've known that there's bloat in the scripts for a while, but the script-side of things is so obscenely large that it'd take ages to find anything to fix that has any sort of impact on actual gameplay. and then: toothpastefairy. toothpastefairy is our newest, freshest dev. i've mentioned him before as the person behind the battle factory- y'know, the thing that we literally did not expect to happen. this was before he joined the team, too. the sheer number of bugs on our to-do list was enough for him to be promoted from honorary dev to actual real life dev. since then we've been getting shit done left and right. bugs getting squished. memes gettin made. then, one day, he comes in with this. i hooked up the profiler for myself, and we just went to town on this shit. here's some of what we've got. Quad-calcing the terrain tag the above snippet of code is used to determine whether or not a sprite would reflect off the tile in front of it. in doing so, it grabbed the terrain tag four separate times- which is, itself, a time consuming process. fixing this was as easy as assigning the output to a variable and then using the variable for the comparison. is this a map? the terrain tag checking process itself involves taking the coordinates of a tile on the map and shuffling through every layer until you hit one that correctly has a tag. however, it also includes this. are you on a map? of course you are. you're playing the game. this was removed. 128*4 so we know that 128*4 = 512 because we can do math. the in_range? function calculates it again just in case. and it does so four times. and is one of the most frequently called functions in the entire scripts. why. this was changed to 512. is this a control? every frame, the game processes whether or not you have a button pressed down. it does so using a process along the lines of this: here's the thing. there aren't 256 keys on the keyboard. we barely even have half of that. this was carved into three separate sections that go through the keys that actually exist. the one line change this is the big one. *breathes okay. so let's talk about what this does. essentials uses a function to determine whether or not a sprite should have a reflection. this conditional is what essentials uses to add sprites to the list of sprites that should be reflected. under normal circumstances, this is determined by whether the event itself specifically says it is not to be reflected. essentials will assume that all sprites should be reflected unless they are explicitly told not to. the issue here is that we literally have thousands of events. no one is ever going to put /noreflect/ on every single one of them so instead, the new code checks one thing and one thing only: whether the player is currently in serra's gym (map 506). do you know what's easier than quad-calcing the terrain tag? literally never calling that function at all. we've been working up a storm over at Not GameFreak HQ with patching things up left and right but it is truly difficult to overstate exactly how huge of a change this is. every single event in the game used to go through this giant function, and now it doesn't. the change was so freakishly huge, it dropped the frame time reported by the profiler by over 60%. now granted the profiler isn't exactly the best at calculating the total time spent on individual functions... but look at the sheer size of that drop for such a minor change. it was inspirational- so much so that i put out another update. after everything i've been through. my computer crashed twice. i had to rebuild my mac vm. but we did it. it's here. it's worth noting that 18.4 only includes the one line change right now. it's small enough that it doesn't need to be tested in advance. anything else and i'm worried some weird aspect of this engine will just make everything break completely. but you bet your ass this shit'll be in e19.
  15. andracass

    18.4

    both the randomizer doesn't work with this
  16. andracass

    18.4

    if i think about this for too long it just starts to hurt.
  17. andracass

    18.4

    look, i know i said i was never going to do this again. but. we have another version. here's the entire changelog: added a line to the scripts and that's it. that's all we did. it is much faster than 18.3. and it was already fast. and i thought about this for exactly 5 seconds so you know it's gonna be great. please enjoy. the files are still uploading at the time of writing. i'd wait for them to finish, but the sun is coming up and i want to go to bed*. so we are also featuring a patch! you can find it on the downloads page, right at the top. (the full length classic story-style dev blog post about it will be here tomorrow. or today- since, y'know, the sun's up.) *edit: haha lol i absolutely waited and now the files are up. hello, sun. my old nemesis
  18. idk i couldn't see anything because of the blindfold
  19. shit is that a usb steering wheel thats how i play reborn
  20. ame and i were flipping through the ancient legends of reborn and we found the original maker of this thread this post is in honor of that. may it rest in peace.
×
×
  • Create New...