My Portfolio

Friday, September 17, 2021

September 17th , 2021 - My One-button Game

This is my first 2D project. You can download and play my one-button game here : https://stevie57.itch.io/test

One of my classes that I'm helping in as a teacher assistant is Rapid Prototyping. Over the last week students in this class needed to create a working game revolving around the concept of one-button input only. I figured I could participate as well through creating my own one-button game which I have now completed.

==

My concept was a reaction/timing focused game where you need to catch the correct fruit using spacebar as the only input button. The correct fruit is randomly selected by the customer.


Here were some of my key personal goals for the one week project:

  • Playable build
  • Utilize Unity's new input system
  • Scene Manager using Unity Scene Assets/Scriptable objects
  • Implement Factory method for fruit creation
Playable build / Scope Management

I wanted to take an iterative approach where I would make a build as early as possible with extremely basic gameplay and then slowly add features and functionality in new builds. The goal here was to ensure that there was always a playable build that I could submit at any point even if it doesn't fully realize the project vision yet.

Version 1 - Prototype

I'm pretty happy with this approach and it worked well for this project. One immediate benefit was that it allowed me to identify and fix an error really early on with my scripts that was preventing me from building a playable game. The issue was with an editor script. The game plays and works perfectly fine while in Editor but fails when you try to build it. Trying to create an earlier playable build allowed me to troubleshoot this without the pressure of needing to submit it during the last day.


Utilize Unity's new input system
So far I really like Unity's new input system. However, I feel like there is still a lot to learn when it comes to using this and will need to continue to experiment with the input callbacks. 

Scene Manager and using Unity Scene Assets
I feel that my previous projects did not handle scene loading and managing very well at all. It has previously always turned into a mess with the different scenes that need to be loaded/unloaded. I tried creating my own solution but there was aspects of it that were beyond my ability to program at the moment.

Luckily, I found some online references to Ryan Hipple scene manager demonstration which I've been using since.

Implement Factory method/pattern for fruit creation
It was much easier implementing the factory pattern then I thought. However, I don't really see how using factor pattern process for fruit creation is better than instantiating Gameobjects using prefabs. Regardless, I'm happy I was able to implement a working solution of the factory design pattern.

Conclusion
Happy with my project and personally think its pretty amusing to watch someone play it as its pretty hard.

For Art, I ended up purchasing Aesprite to make drawing pixel style faster. It's been a pretty easy and fun to use tool.

I can probably also use scriptable objects more instead of assigning/injecting dependencies.

From a programming difficulty perspective it hasn't been too hard. I've been able to implement the designs and use my previous experience to quickly build this prototype.

However, the project is heavily dependent on events to communicate between systems. Towards the end this did become a bit of a mess and I'm going to try and better manage the complexity through better re-naming in the future.

Saturday, September 11, 2021

September 11th, 2021 - I've got a job now

I've been hired on as a teacher assistant for the Centre of Entertainment Arts in the Advanced Game Design program and I am now no longer job-less. 

Woo !

Just finished my first week as a teachers assistant(TA) and it hasn't been too bad. I'm helping out in mostly beginner programming classes. So far I'm enjoying it since I do find some enjoyment in teaching and I get to talk about programming which most people don't really want to hear the details about or understand.

However, the part that most excites me about my job as a teachers assistant is that I gain access to the programs library of different game design and programming courses and a chance to interact with experts and veterans who have created/shipped games. The game design courses should be pretty interesting to check out since I've only focused on programming so far. Hopefully, overtime this will make me a more versatile game developer and allow me to make better games.

I've seen some of the portfolio pieces for graduates from the advanced game design program and have been pretty impressed with some of them. 

I don't have any game projects to showcase today but here's a short experimental clip of a VR experience inspired from Inception. Inception is one of my favorite movies and I remember one of the most visually stunning scenes was when they manipulate the world physics in the dream world so that the city bends in on itself. My goal in this VR project was to recreate that effect and for me to see what it might feel like myself. 




Monday, August 16, 2021

August 16th - Field of view with gizmos combined with Linear algebra

Here's a short video on a NPC character changing their head direction to face the VR player when they enter their field of view. 

One of my main focus for the last week and a half has been on gaining a better understanding of linear algebra and learning how to use Unity's Gizmos/Handles for visualization. This was a short little exercise to put it all together.

Linear Algebra

The best resource I've found that has been the most helpful is a math series for game developers by Freya Holmer. The video series provides a great breakdown of math concepts such as vectors, vector normalization, dot-product/cross-product, local vs world space, trigonometry and more. I've also been supplementing what I learned during this series with the free linear algebra online courses at khan academy

I've been no means mastered the math but I now have a basic understanding of the concepts and most importantly know what to look up if I need it.

Design Patterns

I've also been learning/reviewing design patterns. The best resource for this has been Refactoring Guru. It's explanations are very clear with great examples in a variety of different programming languages. I can see myself revisiting this website again in the future for when I need a refresher on a specific pattern or looking for information.

Animation Rigging

I really like Unity's new animation rigging package. The ability to override an existing animation creates an endless opportunity for unique custom emergent animation in my opinion. This is especially the case for VR. I've played around with it quite a bit and its not too hard to use as well. 

I also did an older but still good course on Unity's Animator and animation controller. I'm not planning to specialize in character animation but at the moment I feel like I could do the basic work of setting up animations in Unity.

Tuesday, August 3, 2021

August 3rd 2021 - VR Game Jam 2021

 




This was my first game jam and it was an intense 3 days of programming. It was announced by two prominent VR YouTube channels, VR with Andrew and Valem, so I scheduled time specifically to be able to participate. I joined their discord channels to see if there were any people open to collaborating as a part of a team but ultimately ended up doing this jam solo. 

This blog post is going to be about my strategy for the game jam, the challenges I faced and what I learned from the experience.

My Strategy - Scope Restriction and MVG

My strategy for tackling this game jam was that I would keep the scope restricted by trying to utilize what I've done in the past and interactive elements I'm familiar with. Basically, it was to make sure that my project scope didn't include too many new things I would have to learn for the first time. 

I didn't jump into coding right away and spent a good half to full hour just brainstorming and trying to get a project concept before starting. 

My final idea was a VR game where you created small worlds like a cook in a kitchen. You sprinkle the right elements in a specific order to create the completed worlds. 

Here's some pics from the brainstorming. I never really meant for others to see it so its a bit of a mess.

Tuesday, July 20, 2021

Mobile Game July 20th - Input Manager touch screen and keyboard controls

Decided to not create a VR focused game and instead prototyped an endless runner mobile game for Android. Also took the opportunity to further test out Unity's new input system. 


I was able to put everything together over three days which I'm pretty happy with. Most of the time was spent watching different video tutorials on the input system and how to configure it. It isn't too difficult to use when setting up the controls for one player. However, I haven't been able to get the local multiplayer to work using the same keyboard. For now I think I'll take a break from it and try a different project before re-visiting.