The creation of this game is not over for me yet, but even still it's been a journey that's taught me a lot already. Although my main concern now is coding, I was still able to learn a lot of new skills in C# through the tutorials I watched and info I read outside of the given materials in the AGAD course. Unfortunately, I still have not been able to fix my issue with the typer script and assigning my canvas text to the word output public variable in Unity. My next step may just be to create a new canvas for the typing UI and then reassign my script, because the way I created my canvas and the panel itself may be causing issues, as strange as that seems. All in all, I was able to learn a lot more about coding in C# both through practice and researching on my own, I have a better understanding of how to connect various scenes in Unity through scripts and build settings, and a far better understanding of UI than I previously had. One of the most enjoyable aspects of this project though, had o be building the environment. Although it was tedious at times, it was nice to be able to see everything come together how I wanted and trying to figure out how to use the assets themselves as parkour obstacles and platforms while remaining somewhat immersive was fun, and deciding how to add affordance and signifiers was as well. Hopefully creating a new canvas will fix my issue with the typer so that my game can be playable soon!
In Summary:
3 Comments
The typer code was a far more strenuous process, as it required several different scripts to be created. Having to incorporate the typing into the parkour how I wanted meant I had to make certain box colliders trigger the typing UI, which would be a separate scene in Unity, to pop up and then I had to make the actual script for the "typer" or how the player's typing would be registered as correct or incorrect, and how the game would know when the full word was correctly typed. Then I had to figure out how to get the scene to switch back to the actual game scene once the word was completed, and I had to create a separate script for the word bank, which was also complicated by the typing UI only being on screen upon the player entering certain colliders, triggering the event. This is currently not functional as my public variable of word output, which would allow my words to be displayed in the typing UI is not allowing me to assign my canvas' text to it.
In Summary:
In Summary:
I came up with the idea of a parkour-typing game because in elementary school I distinctly remember typing games in the computer lab, and since typing is one of those things you can only really learn through practice, I thought creating a typing game from the younger demographic would be a good way to create an educational game for them. The narrative/theme itself is going to be based on the player needing to reach the bus on time and the player will do this by navigating the neighborhood (level 1) until they reach a storm drain, jumping down to the sewers (level 2) and at the end of level 2 they will go back up to the surface and once they reach the bus they win. The parkour aspect is self-explanatory, move past the obstacles to reach the end, but the typing aspect comes into play after some obstacles are passed. For example, if the character successfully jumps from one platform to the next, there would be a box collider that would trigger the typing UI to pop up, and they would have to type the word(s) on screen before going back to the actual game scene and continuing the parkour. Coding this may be a challenge considering my C# is not very good and I have no idea how to make a typing game, but I think it could be a good learning experience as well. As for assets I've looked and already found many good free assets from the Unity Asset store that would work well for the level theme, and even mesh well with each other.
In Summary:
In this course one of the most important pieces of new information was on how to use Probuilder in Unity. The tools available in Probuilder make the production of levels much smoother, and is reminiscent of 3D modeling programs I have used in the past, especially 3DS Max. The method of using Probuilder to create levels by flipping the normals on a cube and expanding from there in order to keep the player in an enclosed environment is very useful. I think in general the interface of Unity can be difficult at first but the more you work with it, the easier it will be to catch on. None of the content on this course was particularly difficult, considering most of it was not new information, however what was new, Probuilder and the FPS AIO asset, weren't difficult to use, in fact they made working in Unity much easier. This course helped me recall the skills and tools I learned about last year, while also introducing me to a few new ones which made workflow much more efficient.
In Summary:
The Junior Programmer Pathway in Unity is a long one, but I learned a lot about programming and the game engine itself. We were taught about the importance of variables in your code, and how they could be applied in the engine (private v. public), and different types of variables such as float, int, bool, etc. We learned how to make objects transform, and cause collisions due to the colliders in Unity. We even touched on audio and animation and how the engine and the IDE work together to bring the game to life. As the pathway went on debugging became easier even though the content got harder, and I found myself looking at hints for these debugging challenges less and less frequently. I became more familiar with C# and was also able to work more quickly as time went on and that familiarity grew. I think anyone who's spent time with any programming language can agree it's always the tiny, (seemingly) insignificant, and unnoticeable errors that are the most frequent and frustrating to deal with. Dealing with these types of mistakes myself made an already lengthy process far longer. Exhibit A: the semi-colon. Below is the script I made this error on, and as you can see there is an if statement under update. After a certain point of cramming programming work you get a bit too comfortable adding semi-colons at the end of lines, so much so that you may accidentally find yourself putting them where they don't belong, without even realizing it. That was the mistake I made when putting a semi-colon after the first line of the aforementioned if statement. This completely ruined my game in Unity, and I was left for 15 minutes attempting to figure out where I went wrong if all of my code looked good. Once I realized what I had done I was left to ponder where I went wrong in a different way. Aside from this another difficulty I encountered was when we were introduced to tags and how they could be used in scripts. Exhibit B: capitalization. Now, around the same time we were taught how to use tags in Unity and how to make our script recognize them, we were also taught about the GameObject.Find function which used the name of the object in the Unity hierarchy. This shouldn't be any issue as anyone without a smooth, sleep-deprived brain should recognize that the tag you put on an object should have the same name as the object itself so that even if you accidentally mix up the two in your head it wouldn't be a problem. It was a problem for me. If you can see that "Obstacle at the bottom of the script below, you might notice the O is capitalized, which is how I made the tag on the obstacle object in Unity. My mistake was giving the object tag a capital O rather than lowercase, which it was in the hierarchy, then forgetting about it and then conflating object name and object tag even though the function CompareTag was right in front of me. This error, like the previous, wasted a lot of time. In Summary:
After learning the basics of Unity, we started working on our next course in Unity Learn: Junior Programmer. This course will teach us the basics of programming in Unity, which is key for game development in general, and especially in Unity. While previously having experience and doing work in the 3d space, this will open up new doors, as the code is really the bread and butter of any game. It started off with us learning C# scripts, we were able to customize the speed and direction of a vehicle in Unity. Something important we learned was how to make the camera follow the player using scripts. Obviously camera movement is fundamental when it comes to gameplay, so this was a key takeaway. We also learned how to take user input and apply it to the scene/assets. Aspects of game like these are why it is key to learn about coding and scripts if you want to develop games.
In Summary:
Recently we started working in the Unity game engine, utilizing the Unity Learn pathways. Having completed the Unity Essentials pathway I learned a lot about how the engine works, though I still have a ways to go; hence the word "essentials". Although intimidating, it wasn't too difficult getting the hang of the interface as a lot of aspects are similar to 3ds Max which I am quite familiar with. Something that amazed me was how many resources there are for developers using Unity, with the Unity asset store and more, there are also many communities online that allow aspiring devs to interact with experienced ones. Communication and connections are extremely important in most fields including game design, and the communities surrounding Unity give many opportunities for both of these.
Going into Unity it was easy to learn some basic shortcuts as they are similar to, if not the same as, those in 3ds Max. For the most part, the projects we made in this pathway were also simple and easy to make, as I believe their main purpose is to get the student accustomed to the interface and the most basic of tools. None of the information about Unity so far has been particularly difficult to understand, but I'm sure that will change once we get into a key part of Unity: programming. Overall I feel pretty good about working in the Unity engine, and hope to continue this progress to soon make a full, unique game of my own. I'm looking forward to learning about scripts and all the possibilities it will bring about! In Summary:
|
About meI am a Senior at DSA and currently taking the Advanced Game Art and Design course. I enjoy playing video games and drawing in my free time. The opinions expressed within this blog are my own, and do not reflect that of Durham School of the Arts of Durham Public Schools Archives
May 2022
Categories
All
|