Post news Report RSS Fragment’s Moonrise | #30 Matrix Multiplication, UI Adjustments

A direct look into some specific things we’ve been working on- particularly advancements done in our open world generation, and some UI adjustments.

Posted by on

NewOpenWorld


Welcome to our thirtieth blog post!


Where our normal blog posts have typically featured bosses and other various gameplay aspects, we think taking a step into our development process, particularly things that have been changing recently, would be a good idea.

As such, here are some of the things we’ve changed and what we’ll likely be working towards next.

---


First comes alterations done to our open world system- particularly as it relates to how our World Map generates.

NewVsPreviousOpenWorldMaps


Originally, our node system was generated as described in one of our previous blogs. More info about that here.

Now, we’ve gone ahead and fully reworked that original design. While the prior design definitely does work and get the job done, this new methodology will work significantly faster and add additional scalability (all that is left is we need to fix some of those very obvious rendering bugs!).

SpiderWeb


The new code is based a lot more around math, specifically matrix multiplication. The end result always allows for a series of X nodes to be generated while still retaining ‘freedom’ from looking too much like a “spider web” (ie, crossing lines, as shown above). We’re now able to generate spawns more math dependent rather than Unity dependent, freeing us up from some of the raycast calls.

---


Next, we’d like to talk about a few misc things, namely some Options Menu reworks and current things we’re developing towards.

OptionsMenu


A few key things to note: our long-awaited resolution and fullscreen adjustments are finally in. They did not come without a few bugs, however. Which prompts a good programming lesson: while working with any sort of changing variable, be sure to always reference that true variable, don’t reference a copy of it. One of the bugs we had was that very, very old code would reference the screen resolution at the start of the game. What this means is that if the game was started in 1920x1080 but then changed to 1280x720, the game would still think we were in 1080 while we were actually in 720. This in turn messed up a very basic part of the game which is scrolling the camera (on instance in which you change your resolution). The fix is very easy- reference the Application’s screen resolution on each call. Simple things like that, had they been done all that time ago, would have saved us the time cost now both in discovery of the bug and resolution of it.

Next key aspect is the FPS Cap: this is fairly important overall when it comes to weaker computers. Fragment’s Moonrise is a fairly resource-intensive game. There will be multiple Units on the screen at any given time, each firing off their very complex AI each frame. While we can get the game to run at a solid 60 FPS on modern computers, older computers will still chug. Testing the game on one of our laptops, we’d only get 40-50 FPS. While we will of course be optimizing as much of the code as we can at a later date, its still good to allow the Player to drop their FPS down to 30 as they desire. With capping FPS to 30, our weaker computer runs the game great. Our primary goal is to get this game to run on as many computers as possible; medium tier computers will run this without any problems. But we want the vast majority of computers in use by people today to at least achieve a solid 30 FPS and still be able to play and enjoy the game.

hotkeys


Now, onto our next steps. RTS games in general feature a lot of buttons, and our game is no different. There are quite literally dozens of buttons to be used, and while our current hotkey scheme should suffice for the general population of right-handed players, hotkey alterations are still a must. So one of the areas we’ll be coding for is both the ability to rebind hotkeys alongside a comprehensive list of ALL hotkeys (both static and rebind-able) with a description listed so the player always knows exactly how things work at any given moment.

---


Thank you for viewing our post! Support and interest for the project has been rapidly growing ever since we began posting here, and we're incredibly grateful for all the wonderful feedback so far! We hope this project interests you as much as we love developing for it, and please look forward to more updates coming in the very near future!

If you’re brand new, consider checking out our trailer and overall description of the game here.

Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: