Jump to content


  • Posts

  • Joined

  • Last visited


6 Fledgling

About M3rein

  • Birthday June 13

Contact Methods

  • Website URL
  • Discord
  • Social Media A
  • Social Media B

Profile Information

  • Gender
  • Interests

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. The memeing remark was inappropriate, and I'm sorry for that. My tone was also rather hostile, but I stand by my comments beyond that.
  2. Like you, @andracass, I'm not really interested in a long back-and-forth. I've responded to what I saw, and that's all I wanted to do. Whether or not you are making improvements, is none of my concern. Because as I mentioned, I'm certain you have made good improvements, and I've pointed out a few that I thought were good. Regarding the ability/PBMoveData matter, I don't have much more to add. The current data structure (that is, loading and querying the cached string data) is bad, so anything that uses it will induce a performance hit. I'm not an expert on low-level programming, so I'll take your word for it. But I don't think we both agree that however long one extra multiplication may take, it's not going to be notice. Even if it happens 76,000 times a second. I also want to point out that I haven't worked on anything part of Pokémon Essentials as of v17.2. I have used it for the past few years though, and the sole reason why I came off hostile, and responded at all, is because you're blaming Essentials for things that aren't Essentials to blame for, such as Reborn-specific implementations or situations. And again, Essentials is sub-optimal. Otherwise I wouldn't have started my own project. But I disagree with the way you criticized it in these recent optimization posts.
  3. Essentials supports 4 hidden abilities, which is why it loads four individual abilities. Essentials is built around the whole "dexdata" approach. species/abilities/forms and all that are loaded by opening the relevant data file, reading from the relevant section at the desired offset. This is an archaic data structure, but removing three string read points isn't going to make a difference. A real difference would be switching to a Hash-based data structure, like how item data is stored ($ItemData). This would actually have a noticeable impact on performance, unlike what is suggested here. I also can't help but comment on your older optimization claims. The idea that "something*2/4" versus "something/2" makes any difference or what-so-ever, is ridiculous. This would take one processor cycle, of which there are roughly 3,000,000,000 per second (3.0 GHz) on modern computers. Even if it did run some 76000 times per second as per your claim, that would use 0.0025% of your processor's capacity in one single second. And then you claim that it makes an impact. Doing this with 128*4 in particular also obfuscates the meaning of the variable, which is Game_Map.realResX * 4 (why it didn't use that instead, I wouldn't know). This also applies to "4*Game_Map::TILEWIDTH", which is equal to Game_Map.realResX. Again, tailored for variable tile sizes. Pokémon Essentials is a starter kit, and requires a degree of documentation. Read also: https://www.quora.com/What-is-a-magic-number-in-programming You also talk about using constants for tile width/height and subpixel calculations, and ridicule Essentials for it. I think you've forgotten that Pokémon Essentials is a kit that was built to suit everyone's needs, and those may including variable tile width and height. As such, this needs to be reflected in the math. Perhaps Reborn, or most other fangames don't use this, but that doesn't make it Essentials' fault for including it. Then how in the world can you use said profiler to measure performance increases? After all, addition, subtraction, muliplication and division and all other mathematical operator all call functions too. As for the profiler, does it take into account averages, or do you just run it 10 times and pick the biggest speed difference to advertise your "improvements"? Based on some of the percentual increases you've shared, I wouldn't say you're using a particular reliable profiling method at all. Note that the context of quote was for event reflections, which was a good improvement. If you want to tackle real performance issues, you should look at calling external code (e.g. Win32API) or graphics processing (as you've done with mkxp; that's good). Or rewrite the map renderer, which is without a shred of doubt why Essentials tends to run poorly. That's where you can make real change, or with the aforementioned changes to the data structure. But from what I've seen, you prefer memeing over programming. Why do I care? You're claiming that Pokémon Essentials is the offender in most cases here. However, what you've shared is largely to be attributed to your ancient version of Essentials, or to things that are highly specific to Reborn. And that's not even to mention all the factual inaccuracies and exaggerations. Yes, Pokémon Essentials runs poorly, and yes, it needs improvements. But what you're doing is oftentimes wrongfully alienating Pokémon Essentials to your playerbase, and giving other fangame developers the impression that these changes are meaningful. I have read some decent improvements, like assuming a sprite does not warrant a reflection, as opposed to assuming it does. Or checking less input keys (although, if this is only called once during Input.update, you're going to have a hard time convincing me that it made any difference at all).
  4. Happy Birthday 😄, i hope that you will have a fun day 😉🍰

  • Create New...