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:
0 Comments
With this final quarter wrapping up the school year, you would expect it to feel that way; it doesn't. This year online has been an odd and difficult one (for me anyway) and with so much less time in class both teachers and students are left to work until the very last minute. Even still, the work I managed to get done this year for game design is incredibly important, especially the information learned in the Junior Programmer Pathway which we are just wrapping up. In a year that mostly felt like a blur, I feel I learned a lot after this class after picking up Unity and C#, and since next year we will be utilizing these newly learned tools, I regret all those sleepless nights just a slight bit less. I look forward to being able to take AGAD next year, because as we will be going into the hopefully normal school year being familiar with Unity we will have a lot more time and capabilities to get things done, and do them well. This year we didn't have the time to get our own games going, or touch on the post-production process like we did the pre and production processes, but that's just another reason to look ahead to next year, and maybe even work on my own projects on my own time during the summer.
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:
We've now begun moving out of the preproduction phase of game design; the brainstorming, storyboarding, prototyping, and sketching is now going to be put to use in the production phase. The game engine we will be learning in the GAD course is Unity, where we will grow familiar with the interface along with learning and using the programming language C# to create games of our own. Getting accustomed to the workspace/layout of Unity is one of the first steps in creating your first game in the engine, and learning the tools and where to find them quickly and efficiently can take time but will save you time in the long run. The image below shows some of the different components that make up the engine. Knowing about the various assets that make a game is also important, and methods like whiteboxing can aid in the process of creating your game. Mesh objects are incredibly important as the different types can either contain the bones that facilitate an animation, act as props (interactive and non-interactive), and manage collisions. Simple mesh objects called volumes determine a game area that differs from the other areas. Volumes can be used to define world boundaries, trigger an occurrence, change world physics in the specified area, or apply different render and lighting settings to certain areas in the game. Things like animations should be imported as the capacity of game engines like Unity to create animation is incomparable to other software like Blender or 3ds Max. This is only scratching the surface of the Unity engine, but getting started on complex software takes time, and with time we can learn about the specifics of the engine.
In Summary:
Most people reading this have probably heard of the game Osu!, as it is widely recognized and popular in the rhythm game genre. To new players having just downloaded the game, you are given a tutorial and the game comes with beatmaps you can start with before downloading or making your own. There are variations of gameplay that nearly anybody could find enjoyable; classic osu!, osu! mania, osu! taiko, and osu! catch. Most people, including myself, would typically play classic, but the variation available allows the game to catch the attention of a wider audience, and gives the player the opportunity for a more unique experience. Compeition is another key aspect; what makes the player strive to improve their scores, and their ability to complete increasingly difficult maps. For the average player, this can come from the leaderboards - the want to constantly improve personal best's to reach higher on the leaderboards. These leaderboards are made even more competitive with the introduction of the mods which can either increase or decrease your score multiplier. Mods can be not only an important tool for increasing your score and placement on leaderboards, but also can be a learning tool to make the maps easier on newer players. Another aspect of competition would be the multiplayer aspect. Being able to play maps in real time against other players can drive players to do better, continue playing and practicing in order to get a higher score than others. I played multiplayer with my friend, Madison, and it was even more fun than playing on my own as we could also share maps that we enjoyed and talk with one another, along with friendly competition. This also brings in an aspect of community which is key to a lot of successful games. Through the game chat you can meet new people with shared interests, but also since beatmaps are produced by the community you can play maps that relate to your own interests. Osu! has reached such popularity, in my opinion, because it is so accessible. The game is free to download and so are the wide range of maps available for download. In Summary:
Moving ahead we are going to be working on level design and creation, and the steps, process, and details that make a level fun and playable. One of the most important aspects of level design goes back to flow, a concept discussed earlier in the year. Your design should always keep in mind difficulty vs. fun, so as to be difficult enough to make for an interesting challenge, but not enough to the point where the game is no longer enjoyable, or even unplayable. Issues with difficulty vs. fun can be mediated by things such as spawn points; another good example would be the Osu! mods I went over in my last game review. Setting up diagrams is a key part of the process when designing levels. This is how you can set up your puzzles/challenges/obstacles and solely focus on those aspects to be used later in the process when actually creating the level. This will allow you to set up your obstacles, challenges, opponents, etc. without having to include aesthetics or art, so it's purely a reference for the level setup. The art behind level design is still important too, though. Making sure you have a consistent theme in your art and environment will help make the game more immersive and enjoyable for the player, jarring changes in aesthetic or art style can take the player out of the immersion.
In Summary:
We are currently working through the preproduction process of creating a game, specifically the conceptualization, concept art, and storyboarding aspects. After this though, we are going to be learning more about level design, and can even create our own game prototypes. This unit has been interesting because it is almost entirely built off of each of our individual game ideas, and we get to follow through on it with concept art and a prototype. In this class previously, we have built off of our previous work, but not in a way that entirely follows through on one concept like this. I am excited because of this, but also because we finally get to take a deeper look at level design. I've been wanting to learn more about level design for a while now; about what it takes to create a good level, the thought process from start to finish, and how to create the physical depiction of a design. I think it will be challenging to create a good level design, especially as it would be my first fully thought out level layout, but no one really expects game design to be easy.
In Summary:
In our next upcoming project, we are to create the concept artwork for our very own game idea! In order to do this we learned about the various processes that go into creating this artwork. This would include creating a mood board, making simple thumbnails, and refining those ideas into actual sketches, and eventually completely refined concept art. I found the idea of creating a mood board interesting and the most new out of these processes because when I draw I don't typically have to think out my concept that thoroughly as I am simply drawing for the sake of drawing. When it comes to concept art, however, it's clear that your ideas must be much more well thought out and thorough, as you want a design that gives a clear message, and one that is fully understand by the rest of the development team. The process for refining your art all the way from a thumbnail to the finished product is interesting to see because our simple silhouette thumbnail ideas can be the very basic foundation for a much more complex character design. This process isn't easy, and the amount of work put in by concept artists can often be overlooked as not many people think about these processes and all the genuine work put in behind the scenes. Being able to put myself in the shoes of a concept artist and execute my own designs helps me appreciate game artists even more!
In Summary:
So far this year we have delved into game mechanics and player-game interactions, and this upcoming unit I am looking forward to learning about conceptualization of games, storyboarding, and level layout. Learning about the preproduction processes of game development is an important inside look on what conscious decisions are made by developers. Lately we've been doing a lot of textbook learning, which is understandable for the content we've learned, but I'm looking forward to being able to apply information in a hands on way, which we will most likely be doing this upcoming unit. I am excited to be able to learn about level design and even be able to outline a level of my own if possible. Same goes for storyboarding as I enjoy drawing, and seeing how stories can be sketched out is very interesting. I'm interested to see how storyboarding works in the context of game design rather than just an animation, and if it differs at all. Completing these preproduction stages on my own would be a big accomplishment in and of itself, so I'm super excited to be able to learn about and work on my own game prototype. 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
|