Posts

Showing posts from July, 2021

Progress Update #33

Image
  Menus & Collision      This week was a real roller coaster. After trying to put a dent into the backlog work from last week and trying to get all of this week's tasks done, I managed to get a lot of it done and am one step closer to the closed beta. Options Menu      The first menu that I wanted to implement was the settings or options menu. The goal for this was basically just to have a place to set display settings without having to use console commands. I was able to shortcut this process by copy/pasting the options menu from a previous Unreal Engine game that I had worked on with the working title "Top Down Game". This version of an options menu had all of the display settings I wanted as well as colorblind options which are always nice to have when it's a built in feature of the engine. I did find though that the framerate limiter option wasn't working for some reason. I was able to get around this by using the console command t.MaxFPS %FrameRate% inste

Progress Update #32

Multithreading Round 2     My main goal this sprint was to get a smoother and more readable save and load process. Before this week I had random variables in the game mode that would track the loading and first time generation of planets. This made the code very hard to understand and was in dire need of a rewrite. Loading the Game     I started with the loading side of things as the save function only took a few milliseconds and didn't need as much help as the loading side of things did. My goal here included a few key parts: The load function takes place on a different thread so that the animation of the load screen stays fluid. At certain points, the load function should increment an enum as to give a sign of progress. Have all terrestrial planets generated before removing the loading widget from the screen. Make sure that all data is still being applied correctly.     To put the load function on a different thread I tried the same method as the terrain face generation, that is

Progress Update #31

Image
  Shaders and Particles     I had two goals for this sprint; to make the atmospheres work with more than one light source, and to improve the Niagara solar effects. Atmosphere Shader     For the first few hours I tried to get a better understanding of the shader to see if there was any simple tweak to make it be illuminated by multiple light sources. The more time went on the more I thought that a bigger change would be needed, so towards the end of the day I reached out to the creator of the shader Dimev on GitHub for some advice.  The issue that I opened on the repo can be found here .      In the response, Dimev pointed me to a version of the atmosphere shader on shadertoy  as well as a self-made guide on porting shadertoy shaders to Unreal Engine materials. With all of these new resources I got back to work.     I ended up using a version of the same shader in a program called SHADERed so that I could mess around with it on the fly. Not too long after I had got multiple lights w

Progress Update #30

Image
  Improving Visuals     During this week's sprint I fixed lighting on the asteroids, fixed a rendering bug with the orbit visualization, and made the store page look a little nicer. Asteroid Lighting     Refresher for asteroids: All asteroids in game are part of Niagara particle systems. They use a mesh renderer with a standard cube mesh. The shader applied to the mesh applies tessellation and noise based world displacement which shifts the tessellated vertices to give the illusion of detail. This approach was great because the mesh only had to be rendered with 6 faces but you were still able to get a detailed looking result.      The problem that I soon ran into with this approach is that lighting is calculated by the faces of the base mesh, not the tessellated faces. This then resulted in very harsh lighting which was very distracting.      I spent lots of time trying to figure out a way to apply the lighting to tessellated faces but it jus wasn't happening. This is when I r

Progress Update #29

Image
  Ahead of Schedule     This week I managed to get all the features done before the end of the sprint and even managed to make a dent in next week's work as well. Overview Overhaul     The main focus of this week's sprint was to redo the overview UI. Like I said last week, this remodeling essentially makes the highlight UI that I worked on obsolete. This is not necessarily a bad thing though as, in my opinion, it is much more easy to understand and interact with.     The essence of the new design was to have a collapsing sidebar that would have three sections: Bodies, Asteroids, and Simulation Settings. The bodies tab would have all of the information that was in the old highlight but now in an easy to read vertical list. This tab would also house the "Add Body" button that was made last week. The asteroids tab would have settings for the asteroids that are aimlessly wandering the solar system as well as specific settings for individual asteroid belts. From this tab t