Type to Search

Project GAL DevLog 1

Posted by : on

Category : game-projects


Project GAL Development Log

This is the first official dev log post for Project GAL.


Background/Intentions

Project GAL aims to fill the gap in my portfolio with a 3D game development project, enhancing my prospects in the video game industry job market. I aim to have this project in a playable state by the end of this month (September 2023) so I can include it on internship applications. This is going to be developed in parallel with my semester workload so that will certainly hold priority over this.


Development/Approach

Originally, the project was a Western-themed 3D bullet-hell game. To ensure timely completion, I simplified it into a 3D rail-based Western gallery shooter inspired by Disneyland's Toy Story Midway Mania and the arcade classic Time Crisis

A few key factors to my approach:
  • Design patterns for controlling game-flow logic:
    • Currently using Tarodev's singleton systems.
    • Possibly return to a C# native State Machine and custom event system for better code decoupling.
    • I also like the additive scenes approach, allowing for a base scene with other additive scenes to mask it.
  • Minimize the use of magic numbers in code by exposing primitives to the editor with Unity's SerializedFields
  • Utilize dependency injection by utilizing SerializedFields and Scriptable Objects where applicable.
  • Prefab any scene GameObjects to improve git merges and give tracked data meaningful human readable representation.
  • Prefab for reuse, allowing for the original concept to be quickly made later by simply modifying this project

Challenges/Issues

Challenge:

The initial dolly-track navigation presented camera challenges due to sudden directional changes.

Remedy:

I redesigned the path as a straight-track with player-controlled first-person aiming. Players can look around within set limits, improving immersion. A centered reticle follows mouse-controlled camera motion.

Challenge:

The player character was initially planned for 3rd-person POV but the complexity of 3D character rigging/animating is time-consuming and not vital at this time.

Remedy:

Opted for a 1st person POV to eliminate the need for any player character visuals outside the player's arm/gun.

Challenge:

Hardware limitations on my aging PC have affected workflow efficiency.

Remedy:

Utilize third-party low-poly assets and work in an isolated scene for creating prefabs of smaller objects

Challenge:

understanding control flow between Unity's Editor Mode, Play Mode, and the standalone executable "mode".

Remedy:

Learning many approaches to solve the control flow problem through articles, youtube and documentation, then deciding what works best for the game.


Shortcomings

Issue:

Player arm movement

  • Gun-holding arm/hand doesn't follow aim/reticle
Remedy:

I will map the upper arm bone of the player model to rotate in accordance with the player aim/view camera movement.

Issue:

Horse model animation

  • Horse head is idle, needs animation
Remedy:

I will give the horse head a simple bobbing animation to imply the locomotion of the rest of the horse unseen by the viewer.

Issue:

Gun doesn't shoot

  • Gun has no shooting implementation yet
Remedy:

Using the raycast helper function in my Input Manager, I will detect projectile hits and animate the hit location, and score increment accordingly.

Issue:

Start Menu UI

  • Exists but isn't wired to events/actions
Remedy:

Using either Unity Events and/or a custom UI Manager with my custom event system, I will wire UI buttons to Input System Actions


Current Results

Several elements are implemented and working:

  • Environment
    • Town Buildings and props look great
    • ProBuilder painted landscape adds immersion and aesthetic appeal
  • Player Controller
    • First-Person aim/look tracks mouse position properly
    • Raycast Mouse Hit exposed by InputManager for easy game design access and debugging simplicity
  • Dolly Track/Cart
    • Successfully transports Player and Camera through the level
    • No hairpin turns that overcomplicate things
  • Gallery Targets
    • 3rd party military range targets used for gallery target visuals
    • Gallery targets prefab created for easy placement around the level
    • Uses hinge joint with spring/dampening settings dialed in for quick/snappy target popups
GAL_Target_Prefab.gif

Project Impact

The time spent on this project has already contributed to my growth as a game developer. While I haven't delved deeply into 3D game projects, this one has highlighted areas for improvement.

For instance, I've gained practical experience with object rotations and Quaternions, translating my knowledge from the Computer Graphics college course I took. I can then use what I've experienced in my practical use of these concepts in creating more dynamic in-game movement and animations.

Furthermore, this project has clarified the complexities of Unity's Editor/Play Mode dynamic, thanks to techniques like Tarodev's singleton systems. I will use this knowledge to build games with a more straightforward and user friendly architecture, allowing for code reuse in future projects. This will allow me to speed up prototyping new ideas.

Additionally, I've learned to accept help from tutorials while balancing my desire for independent problem-solving. This approach has deepened my understanding and appreciation of Unity's capabilities and will fast track my own ability for future projects.


Demonstration Video


About Joshua Lollis
Joshua Lollis

Student/Game Dev/Programmer/Artist/Musician based in Fullerton CA, USA

Email : lollisjosh@csu.fullerton.edu

Website : https://telloviz.netlify.app

About Josh Lollis

Hi, my name is Josh! I love creating! I hope you find something that inspires you here. :D