Hello everyone! My name is Jessi and I’ve recently jumped into the wonderful world of game design. (and Unity!) The lovely people here at Gaming Rebellion have invited me to share my experiences with you as I tackle the various intricacies of game development with very little experience or direction.
So laugh with me. Weep with me and poke fun at me as I fail over and over again.
I love Kickstarter. I love supporting indie developers who put everything on the line trying to get their projects off the ground. I love that they’re doing what they love and that they have the courage to share that with the world.
Sometimes Kickstarter campaigns go badly. We know this. It’s easy to abuse the system, and it’s easy for small developers to get in way over their heads. Sometimes Kickstarter is just plain ridiculous, like this guy who ran a campaign for potato salad. Sometimes, we are made to be sad.
But sometimes you find something so unique and wonderful and special that it makes everything okay again. Like Cosmochoria. After playing the demo I knew I had to back the project simply because playing the game made me genuinely happy.
I backed at the “Dev Team” tier so I could follow the progress of the game and play the latest builds on Steam as they are uploaded. Every Friday, the game’s creator Nate Schmold holds a live Twitch stream where viewers can watch the developer work on the project in real time, which I personally think is awesome.
After tuning in to the weekly streams, it became apparent why I loved Cosmochoria so much. It is immensely clear that the game’s creator is passionate about his project. He is pouring his heart and soul into the game, and his genuine love of his project bleeds through into his work. I would be lying if I said I wasn’t a little jealous – a part of me has always wanted to be a game developer. But I also wanted to go to school, and apparently in order to study programming and design, you need to have taken Math and Science in high school, and I had taken neither. So I filed that idea away and pursued Creative Writing instead. (I actually hadn’t taken English in high school either, but they have equivalency exams for that!)
If I’ve learned anything from Kickstarter, and from awesome developers like Nate, it’s that if you want to do something, then you need to just do it. If you truly want to, you’ll find a way, and if you don’t, then you probably didn’t really want to do it in the first place. So begins my wondrous journey into the world of game design. Besides satiating my incessant need to document things, I hope that sharing my experience may be helpful to some of you out there.
The first thing to admit is that I have no idea what I’m doing. I have some incredibly minor experience in programming. I used to make COBS for an old PC game called Creatures and when I was a teenager I made some mods for The Sims 2. (I don’t even want to link to the Sims mods because of how terrible my texturing is and how much of an ass I sound like on my “policies” page. But hey, I was a kid; at least I was trying, right?)
I make small web pages sometimes, and I took one programming class in university as an elective and made some very simple programs.
Other than playing around on RPG Maker for days and days as a kid, I don’t have any actual experience making a fully functional cohesive game. But I remember how much I enjoyed creating, learning to code, and seeing my silly little things come to life, and I suppose that’s enough for now. The first thing to do is to think of what I can do, what is manageable right now, and then continue on from there. I’m not too intimidated by the idea of self-teaching. (you may have gathered by now that I’m not a classroom kind of person. Shh! It’s a secret.)
The idea of actually making a real, working game with colors and clicking and keyboard inputs is an overwhelming idea at first. My initial goal was to pick an art style. This was an easy and manageable first step. This was something I could do.
I want the player to start out as a little blob. Blobs are pretty easy to draw, so that was a good first step. I drew some little guys out on paper to get an idea of what would work for my game. Unfortunately, my pencil-and-paper skills have been somewhat neglected, so this isn’t going to be pretty. I’m sorry, everyone.
But regardless, I still drew blobs. And then more blobs. And then when I was done, I scanned the blobs and colored them. (I didn’t like the first blob. He got cut.)
I’m going to be working with vector graphics, since this is the style I feel the most comfortable with. (I work at a sign shop and I use Corel Draw every day, though it’s usually to create washroom symbols and trace logos.)
After this I thought I would take a stab at drawing a background. This was more intimidating, as I don’t usually draw scenery, but I figured I had to give it a shot. I had an idea in my head and I did my best to recreate it on paper.
I love drawing grassy cliffs. I’m not sure why. I think because they remind me of great big furry beasties. (But I ramble.) Next was coloring and trying to develop an art style that works. I wanted to do a fairly clean, simple kind of thing. Partially because it’s easy to work with and partially because I just enjoy that type of aesthetic. Working with 2D graphics, (especially vectors) can be a challenge at times, as it’s difficult to get the detail you want into your graphics without everything becoming cluttered. It’s a delicate balancing act, and though I definitely need to work on it some more, I’m happy with the direction this aesthetic is taking me.
So there we have it. I’ve got an idea and a picture so far. We’re pretty much set now.
So I downloaded Unity. Actually, that is not entirely true. I did a whole slew of other things instead of downloading Unity because the idea of actually trying to work with Unity was terrifying. Here is a list of things I did:
Walked to the store
Exercised (procrastination is good for your health!)
Looked at Hyrule Warriors screenshots
Went on Twitter
Looked up games on Kickstarter
Watched this Hyrule Warriors video because it had Cuccos in it
Actually downloaded Unity
That friendly “Welcome To Unity” pop-up did nothing to alleviate my discomfort. Everything was incredibly overwhelming. I was both excited by the many many buttons and options, as well as horrified because I didn’t know what any of them did. I spent at least an hour looking for tutorials online.
For me, it’s very important to find the right kind of tutorial. There are plenty of YouTube videos available, but I don’t learn very easily by watching demonstrations or listening to lectures. (I’m a kinesthetic learner, which means I have to actually physically do something in order to remember it). This means I usually need a text-based tutorial that I can read at my own pace and follow along with step-by-step.
Eventually I found this tutorial for getting started in Unity 2D and suddenly the game engine didn’t seem quite so horrifying anymore. This tutorial was perfect for me – not only does it explain what to do, but it also explains why it needs to be done. This was great because it allowed me to play around and experiment a bit and see what happened, (which helps me learn) without becoming completely lost. I was also pretty happy to see that C# was one of the languages that Unity supports. I learned a little C in school, and while it is quite a bit different, it is familiar enough that I don’t feel completely overwhelmed.
After doing some tutorials, looking some stuff up online, and clicking random buttons, I eventually accomplished some stuff! Some incredibly basic stuff, but stuff nonetheless. I even uploaded this very low-quality video of the stuff that I accomplished. The little blob jumping around is the player and the others are just innocent bystanders.
My apologies for the video quality. Finding a good video capture program is on my long list of things that need to be done. (Suggestions, anyone?)
Incorporating music and sound into my game is a frustrating and difficult experience for me. This is because sounds are something that I do not do. I can make my own sprites and write my own code, (eventually!) but I’ll never be able to make my own sound effects or create my own music. (This may be untrue – if I dedicate years and years of my life to learning how to then maybe I could, but I probably won’t.) Were I a developer with money, I would hire someone to do these things for me, but as I am working on a relatively low budget (no budget), then I must look elsewhere.
I found a pretty cool sound effects generator called Bfxr. (I say “found” as if this took a long time. In reality I just put “free sound effects generator” into Google and this showed up!) It has some different options that allow users to generate some basic sound effects, like jumping and coin pickups, and then customize or mix them. It’s pretty handy for simple sounds, and everything you generate is free to use, which is awesome.
I was also super stoked to learn that Mantrakid/Nate Schmold’s awesome music is released creative commons on Bandcamp. (And lest we forget, Nate is the developer behind the amazing Cosmochoria!) At the risk of being perceived as creepy and stalker-ish, I’m going to say that I absolutely love this guy’s work and so much of it just fits perfectly with the atmosphere I want to create, so I’m completely thrilled to be allowed to use it in my project.
I know that there are websites that allow indie devs to purchase exclusive rights to music for fairly cheap, but I’d rather have something with soul, even if it’s not exclusive to my project. That’s not to say that the music on these websites is bad, but it doesn’t resonate with me in the same way. I’ve also been taught that if you create something with the specific intent of selling it (and for no other purpose) then it will never have a soul. (Does anyone have any thoughts on this?)
Here is what I have learned to do so far:
– Write a script to determine whether or not the player character is touching “ground” (courtesy of this tutorial)
– Determine whether the player character is in water by modifying the ground script
– Disallow the player to jump if they are not on the ground (no more flying!)
– Allow player to jump continuously while in water to simulate swimming/propulsion
– Change the player animation if jumping
– Add item pickups (coins) that disappear when collected and add points to a counter (this tutorial again!)
– Incorporate basic sound effects
– Incorporate particle effects and write a script to alter their sorting layer
– Use Unity’s Animation system to create player animations, as well as rotating objects (courtesy of this tutorial here)
I’m really enjoying working with Unity so far. After getting over the initial hurdle of really having no idea what anything does, the program becomes very simple and intuitive to use. I really love the option to add a color overlay to your sprites, for example. This makes it easy to recolor sprites and backgrounds without having to physically go back into your art program and manually recolor your images. Simple and efficient!
I have also found that I really enjoy creating backgrounds/environments, which surprised me. I was never very good at drawing backgrounds by hand, but working on a computer where you can edit and move various parts around makes the experience enjoyable. It becomes more like building than drawing.
I’ve also been following some indie developers and it seems that “burnout” is a common experience. I can definitely understand this, especially if you are only working on one aspect of the game every day. To counter this and stay motivated, I have been trying to do small things here and there, such as work on concept art, that may not apply directly to what I am doing but helps me to stay focused and invested.
So that’s all for now! If you would like me to expand on a certain aspect of development that I’ve mentioned, please feel free to let me know in the comments. My future goals include creating game objects, NPC AI, and actually coming up with a name.
Thank you for reading!