#7 Dash of Love

 

SECRET

DigiMastered Works LLC

Office of Development

DMW107IB7007

Date 01/26/2022 09:58 PM

THIS IS FINALIZED INTELLIGENCE

 

To: The People
From: Tanner Fry
Subject: Dash of Love

 

Dynamic Cloud Shadows, Not Really

    Shadows are nice to have. Even in a 2D game the sense of depth is important. So, I've implemented "dynamic shadows" for my clouds in order to create a more realistic effect. However, it's very basic in its approach. There is no light source that is used to calculate where the shadow should be. Instead, cloud shadow placement is based on game clock time. Again, not really dynamic shadows, just some simple math to make them "dynamic" based on the time of day. 

     There are pros and cons of this approach. Pro, shadows don't require an intensive amount of processing power to determine where they should be. There's no need to use ray casting from a light source in order to determine the proper placement of shadows on objects. Con, objects need to have a shadow object attached to it and then said shadow object needs to either be fed into a shadow manager to calculate it's correct position, or have the parent of the shadow object calculate the shadow's position. Pro, most of the data that is used has already been created so the required processing power is limited.

    This can become horrid later down the road as we add more objects with different shadows but here's an example of our current cloud shadow implementation:

WeatherManager.cs

void Update() {
    // Move cloud shadows according to the time of day
    GameObject cloudShadow;
    foreach (GameObject cloud in listClouds) {
        cloudShadow = cloud.GetComponent<ObjectCloud>().objectCloudShadow;
        float xPosition;
        float changeInX = 0.083f;  // 1 / 12 = 0.083 (1 hour / 12 hours)
        xPosition = 1 - (GameSceneManager.Instance.clockHours * changeInX);
        cloudShadow.transform.localPosition = new Vector3(xPosition,                                                                          cloudShadow.transform.localPosition.y,
                                                  cloudShadow.transform.localPosition.z);
    }
}

Radio Life

    Everyone loves to listen to music. It's a universal language that's able to express a wide range of emotions. For myself, classical music is the calm I enjoy when developing features and components for AIA. 

    I'd like to implement a wide variety of music into the game so that anyone who picks it up can have the ability to vibe while playing. A little bit of searching through the radio may be required, but I guess that depends on my inevitable music making skills. Hiring a composer later on isn't out of the question, and the music can always be added at the end of development but starting sooner rather than later at least gives exposure to the process and difficulty.

    Below you can enjoy some short music samples. None of these are our 

Basic Radio Implementation

Command Console

    Flexibility is important for players and developers. A command console gives developers the ability to modify game components on the fly while testing and playing. Of course, the backend to perform those modifications will need to be created. Developers aren't the only people to benefit from a command console. The ability to mod the game is something that's being thought of quite often, so we're preemptively adding the console for future possibilities. Whether players will be able to disable in-game features/mechanics or tap into information to help the mod the game, we don't quite know yet.

Basic Command Console Implementation

"Enhanced" Road Building

    Road building is getting better, slowly. It's been frustrating and I wonder if I should just restart the process and figuring out a better approach. Placing a road now takes into account water and buildings. Neither can be built on but in the future, bridges and other infrastructure will be a desired implementation.

Road System Enhancements

    Unfortunately, the system still needs quite a bit of optimization. The issue arises when the manager compares all the roads made, since the user started holding down left click to build roads, to the currently placed road. The manager looks for gaps between the placed road and an existing road to see if there's enough space to place a new road, called the gap road. 

    Some of the math seems to be intensive, or it's the creation/deletion of roads. Sometimes a road can be created on top of an existing road thus making the manager delete it. I believe this could be the culprit but we'll find out soon enough.

Agent Movement and Location Realization

    Agents can now be selected and moved to a desired location. Their speed does keep into account game speed, therefore keeping everything in uniform.

Agent Selection and Movement

    Locations can now realize agents and store the data into the database in real time. Database calls don't seem to be that intensive at the moment but could be at a later date. This will need to be kept in mind as we move further along. If database calls do begin to eat up processing power, saving at periodic times will be the answer. For now, we'll keep it as it so we can see how well the system holds up.

A Location Realizing An Agent

    I think that wraps up this month's development article. I hope you enjoyed everything and maybe even learned something new! Until next time and if you have any suggestions on certain topics that you'd like to know more about, then head on over to our forums and let us know. You can also email our support at Support@digimasteredworks.com.

Roadmap

Milestones To Do:

  •  
    2022 Q1 - Development of core mechanics and game story
  •  
    2022 Q2 - Internal testing of core mechanics and Alpha testing
  •  
    2022 Q3 - Internal testing continued with review of core engine and mechanics
  •  
    2022 Q4 - Expansion of core features and Beta Testing
  •  
    2023 Q1 - Add enhancements from Beta Testing
  •  
    2023 Q2 - TBA

Milestones Completed:

  •  
    2021 Q1 - Initial designs and planning
  •  
    2021 Q2 - Initial designs and planning
  •  
    2021 Q3 - Initial designs and planning
  •  
    2021 Q4 - Development of core engine

SECRET

Approved for release: 01/18/22 ID: IB7007

1