Posts

Showing posts from March, 2021

Progress Update #16

Image
  Improving the Skybox     I only had one deadline today so this progress update is going to be a little shorter. The feature that I had to complete was to improve the skybox. This meant adding support for nebulae.  Nebulae:     Looking at pictures of the night sky online, I noticed that there was more going on than just stars. The main thing was interstellar clouds of gas or distant clouds of stars. Without fully simulating these complex structures, I believed I could fake them with some random noise. Now, what I came up with is not too complex but I believe it produces a solid illusion of these structures and definitely gives the skybox more variety. In my opinion the desaturation really sells the effect (note: the first three example pictures were taken before I added desaturation, see the last picture for what desaturation looks like). https://blueprintue.com/blueprint/_fwl825c/     I also wrote the corresponding C++ to make all of the material parameters editable in the scene.    

Progress Update #15

Image
      Atmosphere and Clouds in UE4     This past week has been entirely dedicated to making atmospheres for the planets. After recently re-watching Sebastian Lague's Coding Adventure: Atmosphere , I had become inspired to do the same for my planets, but I wanted clouds too. (Also the Trello is now available here ) The Atmosphere:     Making the atmosphere was actually incredibly easy, mostly because someone had already done exactly what I was trying to do. While doing research into atmospheres in game engines, I came across a GitHub repo called: Realistic Atmosphere in Godot and UE4 . Suffice it to say, the materials included in this repo were perfect for my application.      Now, I didn't want to just Ctrl+C Ctrl+V because the purpose of this game is for everything to be done by myself, and I didn't really think that would count. However, I did spend a fair amount of time figuring out how it works, so by now I have a fair understanding. Also, with the bulk of the shader do

Progress Update #14

Image
    Bug Fixes... Hurray!      The past week I have been fixing various levels of issues, from engine breaking corrupt files to making the orbit debug just a little more accurate.  Fixing the Orbit Calculation     In progress update 12  I started trying to calculate orbit velocities, this time however I was determined to finish it and get it right. So as I said in that update I started with the gravitational two-body problem .     Just to recap the orbit section of update 12; I wasn't able to use the standard calculation for orbital velocity because neither mass in my game was negligible, so instead of that I tried to make an approximate equation based on manually acquired velocities of different masses, but it didn't work for all masses because of the sample size.     The gravitational two-body problem, " concerns the motion of two point particles that interact only with each other, due to gravity" where the masses of the particles are significant enough to effect the

Progress Update #13

Image
  Niagara Asteroids in UE4     These past few days I have continued work on asteroids. Only that now I have ditched instanced static meshes in favor of getting my hands on the new-ish Niagara particle system.  Learning Niagara     I have decided that since this is an entirely new subsystem of the engine I would do everything in blueprint first, then transition everything to C++ when I knew it was working reliably. Additionally, because Niagara is still relatively new, the official documentation is sparse if existent at all. So with most tutorials at this time geared towards blueprint implementation, starting in blueprint will give me the highest likelihood of finding a solution to any problems I may come across. The Niagara Workflow     The first thing I learned about Niagara is that the workflow has changed significantly from what cascade was. Where in cascade (to my limited knowledge) you worked in one particle system where everything to do with it was self-contained, Niagara separat

Progress Update #12

Image
  Early Spring Cleaning + New Small Features     This past week I have taken care of some TODO's and changed a few small features. From Commit  986d999: "Fixes"     This commit had to to mainly with structure. I have recently been reading "Design Patterns: Elements of Reusable Object-Oriented Design" (available as a pdf here ) all about the importance of intentional design and design patterns in object-oriented programming. The reading got me thinking about how haphazard I have been recently with adding new features and how I should probably plan out as much of a system as I can in UML before diving head-first into development. This is where the "Fixes" come in.     The biggest change here was the creation of a GaseousColorGenerator class. This is to keep the structure of gas giants more in line with that of the terrestrial planets; that is to have a color generator object that handles creating textures, changing material properties, etc.  This change