Oct 20, 2016

Guess what time it is?

No, not update time unfortunately. I just wanna make the title of this post relevant to its content. But worry not! I am slowly chucking away at it. In fact, I've just rewritten the time system entirely from the ground up with pure eventing. I know I'm an narcissistic asshole who likes self-deprecating humor (if you haven't figure that out by now), but I'm honestly REALLY impressed with myself this time. Technical stuff below, but other than that, I'm also brainstorming a way to keep track of NPC locations so if you say, enter a building, the NPCs outside will "keep moving," and when you go outside again, the NPCs will remember how long it has passed since you entered a building and be properly adjusted to a distance based on that info. Yeah, once again, complicated. Because NPCs in RPG Makers aren't built to be kept track of like NPCs in Harvest Moons, Rune Factories and Stardew Valley. (An excuse for me to mention Stardew Valley. The characters isn't as fun as Harvest Moons' or Rune Factory's, but still a great game. Give it a try if you like Harvest Moon or Rune Factory.)

So, on to the technical stuff. The time system I previously used is a 3rd party plugin by Moghunter/Atelier Rgss. It has several problems with it and since I can't program, I can't make edits myself. So I looked into another plugin, and this one's from Hudell. But just like Moghunter's, it has its own share of problems. Namely, Moghunter's hour hand in the clock HUD doesn't move. Yes. It bothers me (that being said, I've decided to not include an analog clock HUD anyway). It also doesn't properly fix overflowing values, but I haven't checked Hudell's to see if it does the same. And Hudell's is also written in a way that keeps the clock running despite tabbing out of the game. Which as you might guess, is kind of a problem. So, it's obvious that some sort of change is needed (insert political joke here). And the result is me completely rewriting the system that's fully tailored to the game's needs. Okay, it's a time system. There's not much features you can add to a time system. But the idea is that it runs independently from the other systems, and if some other event make changes to the time, the time system itself will make the proper adjustments if something went wrong. Like auto correcting overflowing values! If say, I'm doing something stupid like adding 323 minutes instead of 5 hours and 23 minutes, the system will be smart enough to do the calculations to determine 323 minutes = 5 hours and 23 minutes, and adds the values properly. With a system like this, I don't have to add a conditional branch to fix overflowing values every time I manipulate some other time value. Generally speaking, it just makes events cleaner for me to manage and write.

The system sounds like it's very complicated, but truthfully, it's a very elegantly written solution. I've optimized it to all hell and made sure it doesn't do unnecessary calculations and waste computing power. If only I could say the same for the other existing systems in place... The animated text windows is made up of 8 fucking common events and choice boxes is made up of 4 fucking ones. Like, what the hell? So yeah, that's about it for today I guess. See you guys later!

No comments:

Post a Comment