- Apr 9, 2020
- 237
- 385
Either use rvpackerI'm still stumped on how it handles separate data and my attempts to translate rvdata2 to native text have failed too
Hey, thanks a lot! I can see what you mean by being not windows friendly lol but shouldn't be a problem to set up. Parser is actually easier to use. Yeah, some of them are plain to see but I wanted to check everything out, couldn't shake the feeling I'm missing something.Either use rvpacker
or in case you cannot install it because its dependency 'psyche' is.. uh.. not windows friendly you can use little gem that's half hidden
You must be registered to see the links
instructions on where to get dependency 'RPG' were somehow deleted so you can see them in revisions on top.
But in most cases you don't need it:
MonsterLib.rvdata2 is literally built using scripts within Scripts.rvdata2 from json files
Scripts.rvdata2 and all MapXXX.rvdata2 you can see in rpgmaker if you open lonaRPG using it
But it is a problem. At least I couldn't do it within 3 hours.I can see what you mean by being not windows friendly lol but shouldn't be a problem to set up.
Usually the latter end of my job is figuring out where the biggest losses of performance are in the software after we've done most of the bug fixing. I can tell immediately without even looking in the code though that this game is basically running commands on the main loop pretty much without a single pause, which can be great to make things more fast paced and challenging, but it also strains the engine quite a bit(for any engine). For example when NPCs aren't in combat do they really need to be random walking constantly or can we have them chill for a second? Some of these NPCs random walk so often and so fast it's actually difficult for me as a human to land a shot with a ranged weapon, because they keep switching places before the fight even began.(Random walking is also one of the worst ambient actions for NPCs to do too, because you can end up with 2-3 pathfind checks depending on where they managed to find themselves) Then we have the wolves which might as well be premonition ninja's with their ability to instantly overtake you and be exactly where you were going to be every single time.Other rpgmaker games with below 100 events on map don't slow down that much (tavern shows 89 events in my test). There's got to be something going on, but I can't simply set_trace_func like I did and see what's wrong. My experience with rpgmaker is limited to literally last week and there are no manuals on how graphic pipeline in rpgmaker works so no idea how to approach that. Only suspicion I have is that lonaRPG uses Khas light which adds light code to every Game_CharacterBase (so all 89 of events because Game_Event<Game_CharacterBase) so it might be doing extra work which isn't shown in trace log I'm checking because that script is packed in rvdata2.
OR I'm missing something. Which is probably the case.
Just notice u took the "arm" stuff way to literal luv itView attachment 783988
this is my second fanart of this game hope you like it
Christ, you weren't joking...But I did it. I did get the same problem with 'psych' and bundler is a pain honestly, I rechecked myBut it is a problem. At least I couldn't do it within 3 hours.
Optimizing primary systems that won't change much can be done earlier if done in parallel by another person. Besides, optimization will bring more bugs that you will have to fix later anyway. Also if optimization requires adding some data to objects, it's better to add it before you have 100500 objects to retroactively add it later on, right?Usually the latter end of my job is figuring out where the biggest losses of performance are in the software after we've done most of the bug fixing.
You won't believe me, but ANY game is basically main loop that only pauses when it has free time after doing everything in loop (and, I assure you, RPGMaker does same pause to not do more FPS than it's told to). You cannot make any smooth movement in any other way. And as soon as you remove "turn-based" tag A.I. decisions need to be made in any random point in time and often need to do it every other frame to check if there's new hostile in sight.I can tell immediately without even looking in the code though that this game is basically running commands on the main loop pretty much without a single pause, which can be great to make things more fast paced and challenging, but it also strains the engine quite a bit(for any engine).
Typical approach to NPC random walk that is used in like 70% cases (pseudo code):For example when NPCs aren't in combat do they really need to be random walking constantly or can we have them chill for a second? Some of these NPCs random walk so often and so fast it's actually difficult for me as a human to land a shot with a ranged weapon, because they keep switching places before the fight even began.(Random walking is also one of the worst ambient actions for NPCs to do too, because you can end up with 2-3 pathfind checks depending on where they managed to find themselves)
And, in fact, my profiling shown me... This is not the case. A.I. uses very small amount of CPU time except for few problems, two of which I've highlighted before. Things that eat performance are mostly sprites and graphics updating (you cannot do it every other frame because that update is literally "frame").Just adding a pause between each ambient CPU cycle would probably go a very long way to improving performance.
In my case in the end I hit makefile's "multiple target patterns", that I would need to dig up rake tool to install psych with corrected makefile through rakefile (sounds great already, ye?) and at same time I realized I might need to compile that yaml lib 64 bit myself so I just threw it out of window. Ain't wasting time on something that can be done 100500 times easier with one small ruby script.Christ, you weren't joking...But I did it. I did get the same problem with 'psych' and bundler is a pain honestly, I rechecked my
databases which are latest thinking it might be on my end. Btw msys2 was a bust, I tried it despite them using the older devkit. Before deciding to bundle, i wanted to try a separate build using the old devkit, so I sandboxed it using (at the time up-to-date bases) and it worked.
I can't express how glad I am for this.. I just love looking at the in game credits now.. And "game.ini" and the png file inside "Text". I can't even spell the name out since my posts just gets deleted. I seem to be on some mods watchlist or smthng.. Which is funny since there are far worse posts that are not deleted.. Which is totally fine by me..You must be registered to see the links.
Optimization done after the fact is done to clean up sloppy original coding(though you are right we are working on pre-release content so in effect we are correcting bugs and optimizing while the product is not yet fully released, so it is in parellel). However in the 6 years I've been doing this I've never had new bugs arise from optimization and the second half of each piece I work on is profiling and testing it for dramatic improvements(largely because we need to report how much cpu/gpu time was corrected and give detailed explanations for how it was corrected in much the same way we hand in bug reports with resulting corrections) so I would of ran headfirst into any bugs that resulted from it.Optimizing primary systems that won't change much can be done earlier if done in parallel by another person. Besides, optimization will bring more bugs that you will have to fix later anyway. Also if optimization requires adding some data to objects, it's better to add it before you have 100500 objects to retroactively add it later on, right?
What was the point of this statement? ALL software is a main loop, because the objective for everything in a computer is taking an input and giving an output. My statement wasn't to pause the main loop, my statement is NPCs do not need to be commanded to random walk for every second. It doesn't contribute to the challenge or immersion and I've played more games than this to know movement is perfectly fine when the NPCs aren't spamming right angle turns every other second. MOST professional games draw a point 2-3 tiles away and have them go to it precisely because it's immersion breaking to see enemies jumping left and right for no reason. Additionally the NPC sight checks are performed regardless if the AI is actively moving on the screen(I know you know this, but I guess we're at the level where we have to make obvious statements).You won't believe me, but ANY game is basically main loop that only pauses when it has free time after doing everything in loop (and, I assure you, RPGMaker does same pause to not do more FPS than it's told to). You cannot make any smooth movement in any other way. And as soon as you remove "turn-based" tag A.I. decisions need to be made in any random point in time and often need to do it every other frame to check if there's new hostile in sight.
Typical approach? We KNOW how he programmed it, the function is inside of Game_Character.rbTypical approach to NPC random walk that is used in like 70% cases (pseudo code):
val=rand(100)
if(0<val<50)stay_in_place()
if(50<val<100)move_to_random_tile()
in 25% more cases you don't move to random tile, but instead pathfind to random tile within range or objects npc wants to interact with.
2-3 pathfind checks are nothing for pc. 20 A.I. doing 2-3 pathfind checks are nothing for pc. Average modern pc can handle 500 units all pathfinding, being rendered and finding target to shoot at at same time. Even provided it's Ruby and not C++, that it's RPGMaker and half of rendering is software it still should pull 30 A.I. doing half of that at 60 FPS.
And in fact, when you see that in battle map with 5 A.I.s moving and searching/attacking you you get 50+ FPS easily. But in tavern where 2 A.I.s are moving and like 10 standing around and some events lying around you get 20-25 FPS - you know something is wrong not about A.I., am I wrong?
I really should be less lazy and use profiler rather than assume it's the same as previous scenarios.And, in fact, my profiling shown me... This is not the case. A.I. uses very small amount of CPU time except for few problems, two of which I've highlighted before. Things that eat performance are mostly sprites and graphics updating (you cannot do it every other frame because that update is literally "frame").
As for exact numbers, approximate relation between Graphics.update : $game_player.update : @spriteset.update time consumed is approximately 5 : 2.5 : 5 out of which check_stat was around 1-1.5 inside $game_player.update; removing it gained few fps at 20 FPS (from 14-20 it went to 18-25), you can do maths and see that whole loop of just updating graphics is at least 30-40ms which already brings us to 60 FPS or below.
From 4.06 to 4.2It SHOULD be safe to just copy and paste the saves to the game directory as there were no modifications to prior content except some tweaks that can be changed on the go...yet, would you please tell us from which exactly version are you updating?
Do note that on the loading screen it could give a OUTDATED message on saves, you can still load and play them normally.
EDIT: Forgot to mention that if that version outdated stuff really bothers you, you can edit it safely in the save file (2 places).
Go to the clinic near the tavern. There's a treatment by the guy there. It's pretty expensive though. I remember it being a few thousand trade points.how can i remove the slave mark of noer... bubbas steel store doesnt remove it, he just says leave my store lol
Just south of Noer's North gate, speak to the guy at the table on the left. It costs quite a bit of money however, just sneak/lie your way in or go through the orkind's cave connected to the sewers if you don't mind losing a day.how can i get another id paper?