My #TutorialJune Challenge
What is it?
A challenge that forces anybody who attempts it to do tutorials each day during the month of June and share their progress on Twitter. Hence, the name I gave it.
In my case these tutorials were game dev related.
Why did I start this challenge?
I'm a big procrastinator and only really active when I have clear goals and deadlines and time pressure. It’s kinda weird that I achieve my best game dev performances at game jams, where I have limited time to create a game, but due to the given time pressure and deadline I really get stuff done and stay motivated until the end. Outside of game jams my motivation often drops quite fast and I don't do much for my game development career. Hence, not getting closer to ever releasing a commercial game.
I know that I'm not a bad programmer, but what kept me from really working on a commercial game was having the right idea and so far it just hasn't found its way to me, which then dropped my motivation to work on anything at all.
So. To overcome my procrastinating and to push myself for improvement, I decided to dedicate the whole of June of 2021 to learning as many new game development topics as possible.
Another reason why I did this challenge was to finally be more active on Twitter and engage with the game dev community on a constant basis. Similar to my game dev activities my Twitter activities were focused around a few active days followed by weeks or months of not tweeting anything.
As every successful project, this challenge needed some preparation too. During the last days of May I went through Unity and all the bookmarks I set at Twitter, Youtube and Co to gather all the tutorials that I have saved for later and put all of them down in one Trello list. Afterwards I organized them according to what seems most interesting to me, but not too difficult to finish. My goal was to cover a different topic each day. So I had to break down the topics in junks that I was able to do each day. I did break this rule later on, because some topics were just too complex or I wanted to explore and improve on some of the topics in the following days.
With that done, I set up a Unity project called TutorialJune. I've been working with Unity for years and it was clear to me that all the tutorials will be focused around it, so I decided to simply throw everything into one big project. The organization inside the project was very chaotic, because for the tutorials I simply went quantity over quality. My focus was on learning as much as I can and I might clean shit up afterwards if I need to. However, I had folders on the top-level to separate the different topics/tutorials, but inside these folders there was total chaos. 😅
Starting off with 3D character animations
So, June 1st finally came around and I was starting my challenge. Fully motivated I jumped into the first topic on my list, 3D Character Animation. Most of my early games were 2D games and I was quite familiar with how to do animations for 2D characters, but due to only doing a few 3D games up until that point and them not really using many characters, I was not familiar with how character animation worked and now was finally the time to tackle this weak point of mine.
Here’s the tweet that I put out at the end of the day. Nothing special, but I was quite happy with what I have achieved.
During the next few days I continued working on different topics that are connected to 3D character animations and controls, such as animation layers, animation rigging and the CineMachine package. I also created some environments with Unity’s ProBuilder and ProGrids packages and Polybrush. I tried the Terrain tool too, but I didn't really liked it because it has so many flaws. A list of all tweets can be found at the end.
I also gave the new Unity Starter Assets a try which provides prefabs for first person and third person character controllers. These work way better than the old ones and also integrate flawlessly with the new Unity Input System. I can highly recommend them to anybody as a starting point who needs a character controller for their game.
Quick dive into Shaders
After doing some 3D character topics, I jumped into a topic that I wanted to look into for quite some time - Shaders. I’ve seen so many tweets from people doing the craziest and most mind blowing stuff with shaders and I wanted to understand how this is done, so I started off with a grass shader, followed by a water shader, which was the first tweet of mine that got more than 100 likes. For some people this doesn’t seem like a lot, but for somebody who had around 500 followers at that point, this was quite the achievement and I was really proud of myself and it gave me some additional motivation to keep going with my challenge.
After these two shaders, I kept doing shader and visual effect tutorials and I covered a cloud shader, cel/toon shader, anime speed lines and a pixelation effect.
Putting everything together
After having done some 3D character animations and some shaders I thought it was time to combine all of them to create a quick scene to see how it all looks together. I also added some grass via a handy tool from @MinionsArt that makes it super easy to draw grass on any mesh. Go check out her Twitter profile, patreon and github pages. It will save you so much time, trust me.
Doing some Fun Stuff
Well, what’s life without some laughs (and chaos)?
And what could fit better than some physics based ragdolls or soft-body objects?
Can I get a slice of that mesh please?
Mesh cutting/slicing was one of the topics that fascinated me for quite some time and I finally had a reason to learn how to do it. Well. Let’s say it was a little more complex than anticipated and I might have picked a bad tutorial to start with. The clean code and nice comments tricked me into believing the tutorial was good. I soon found out it wasn’t, but I already invested so much time that I continued on and somehow got it working in the end, kinda. Let’s just say, there is a reason why all the objects that are cut only have one solid color. I couldn’t get the UV calculation working after the cut. 😅
Procedural Animation > Traditional Animation
Another topic that has been fastincating me for quite some time was procedural animation. Hand-made animations can look super fancy, but if things don’t align that well in games, especially older ones, it just looks bad even if you have the most beautiful animation. Procedural animations are a good way to fix this issue and with the help of some programming animations can interact with the environment and your immersion isn’t broken.
I started off with the most basic tutorials on procedural animation which cover spider-like creatures (mostly with 4 legs to make it easier). After investing 2 days, I got a very decent creature running on uneven terrain and a tweet that performed quite well for my expectations back then. Little did I know at this point how much this little creature would affect the next months of my life, but that’s a story for another day/blog post.
Thinking with Portals
To end my #TutorialJune challenge I decided to learn how the famous portal mechanic is working. I again started off with a good looking tutorial, which turned out to have some massive flaws that I had to fix myself. Sorry Brackeys. In hindsight, I should have started with the tutorial from Sebastian Lague which covers more special cases and works much better in general. Anyway, here is the last tweet of my #TutorialJune challenge.
Was it worth it?
Hell Yeah! Absolutely!
I finally started to understand how Twitter works and I completely changed my mindset when it comes to followers, because I see them more as friends now with whom I just have a great time engaging via comments and tweets.
I don't really focus on getting new followers now, but more on having a good time with those who follow me and over time my Twitter family started to grow.
Here's a quick summary of my Twitter Analytics page for June 2021. I started of with around 500 followers at the start of June which meant that I increased my follower count by ~25% with the tweet impressions being higher than the last 12 months combined. 😅
I covered a lot of topics during June which can be seen on my Trello list and also on the list of all all tweets below and I was active each day.
However, there are still a lot of topics to tackle and improve on and I will definitely come back to them at a later point, but my focus shifted quite a bit in the months after June.
The main reason for this as already mentioned in the Challenge section above was my tutorial on procedural animation. I really enjoyed working on this topic, but I wasn't happy with how my "spider" was moving because it was not able to climb on walls. That's something I changed during the next months and it eventually evolved into the current big project I'm working on right now.
To keep my motivation up and also stay active on Twitter I decided to directly transition into the #100DaysOfGameDev challenge after I finished my #TutorialJune challenge, which in total means 4 months of daily game dev activities. More than I have ever done consecutively.
As of writing this blog post, I'm almost finished with the #100DaysOfGameDev challenge, I of course also cover that challenge in a few blog posts which I will link here when they are finished.
I can 100% recommend my #TutorialJune challenge to everybody who wants to improve in whatever field they want. Just pick a month and start doing tutorial after tutorial and share your progress on whatever social media platform you think fits the best. You will be amazed what you can achieve after just one month of intense training.
List of all Tweets
To give you the full picture of all the challenge-related tweets I put out during June, here is the full list. I mixed some other tweets into the mix, which you can look up too, but these are the most important ones.
If your are interested in any of the topics I covered, please open my tweet and check the replies. I usually linked the main sources that helped me get to the final result. You can also simply google the topic and see what other tutorials pop up.
Basic 3D Character Animation
ProBuilder + ProGrid
Struggling with Unity’s Terrain tool 😅
Skybox, Lighting + Fog
Second try on Unity’s Terrain tool. Hate it. PixelBrush isn’t much better tho...
Anime speed lines
New Unity Starter Assets
Quick scene with what I have learned so far
Fighting with Mesh Cutting 😡
Picked the wrong tutorial/code to start with 😅
Satisfying Animation with Mesh Cutting
Better Satisfying Animation
Soft Body Physics
Watching Shader Tutorials
Procedural Animation Basics
Finished Procedural Animation
Improved Procedural Animation
No idea what I did that day 😅