Saturday 23 December 2017

Advice in the Games Industry

A lot of you might recognize that I tend to make informative or almost "instructional" videos to express my opinions and help other people in the games industry accomplish whatever they want to accomplish, or at least give them something to think about.
I like to think that some of my videos (such as my recent video on game developing at home) could help someone else in my position. However, I realize that most people aren't in my position. My circumstances are very specific, and not particularly common. This means that it's difficult for my perspective to have a directly helpful effect on the viewer.

This doesn't just apply to me, this is something that's industry-wide. The nature of video games means that people from all kinds of backgrounds can make at least something. It only takes a mid-range computer to get started with graphics, sound, programming and anything else that you can think of. Though this is a very terrible generalization that I really shouldn't be making, this is different to film and music which both require certain equipment which can produce drastically different results based on what camera or amplifier you're using.

The Godot Engine will run on pretty much any computer built in the last 5 years. If you upgrade to a newer computer, the Godot Engine will produce the exact same results regardless of where you compile it. You could argue that different engines would be a more suitable analogy for physical equipment in film and music, but there are many free engines whereas I wish you luck trying to find a free guitar or effect pedal.

The point that I'm making is that I believe game development is innately more accessible to get started in than other similar creative fields. Because of this, my advice is of limited value. Rami Ismail, half of independent game studio Vlambeer, commonly talks about how the steps he took to become successful in 2011 only worked for him in 2011. Applying the same steps might lead to getting into a fight on a public bus or worse still, failing entirely.

Now a smart viewer of my YouTube channel would 1) subscribe and 2) go and watch pretty much any of Rami Ismail's talks, because they're all a lot better than this. If you're still here, I'll continue with the video.

I haven't gotten successful, and I may not ever be successful. I'm slowly creating a mid to low rate indie game in a moderately niche engine, and when it's released who knows how it'll do. I'm still trying to figure out how to get going in the independent games industry as it is, by all logical means I should have no right to tell you people how to get successful.

If you get successful and have something to say about how you did it, write a blog post or make a video about it. If you failed, still do those things. If you've not even gotten the chance to try yet but you still feel you have something to say, go ahead. Worst case scenario, no one reads it. Post it to reddit and chances are, at least I'll read it because I read or watch a lot of things on /r/devblogs.

Best case scenario, it gets shared, you get cited and your name gets a little bit more on the radar than it was before. Or better yet, you inspire someone else to start making their own games or you help someone crack a puzzle that they have been deliberating over for the past month. The best part about the Internet is that this stuff sticks around- every video you upload and blog post you make lingers for the children of the future to look at.

This might be daunting, but who cares? I've really gone off topic at this point. This is a strange, strange video that mixes the topic of the industry moving fast and something motivational, but hey- it's something and I think I've said something useful so I'm recording this and uploading it as soon as I'm done with the script, which I'm writing right now. Except I'm not writing it right now, I'm recording it right now, but I'm only reading that in the future, and even then by the time you're watching this I will have finished recording it and have uploaded it.

Thanks for watching, and stay tuned for more strange videos that meander around for a while then end in a meta joke. I'm sure you're used to the formula by now if you're a long-term viewer. Goodbye!

Sunday 17 December 2017

Mass O' Kyzt: What's left?

I've spent the past seven months or so working on this game and I feel that I'm nearing the finish line. It's a good feeling, since as much as I love working on it, I'll be glad to have something that I can present and say "Hey, I made this!"

So the point of this video is to discuss what I think is left to do at the present moment in time. As it has done countless times before I'm sure my final product will differ somewhat from my working specification, but I'm feeling confident that it won't change too much now.

So what is left to do? I've completed what I believe to be the core gameplay loop, so I think pretty much everything with regard to the actual gameplay is going to stay pretty consistent from now until release. At most, I'll make some balance tweaks and I still have to draw some UI elements which are looking a bit dodgy at the moment.

The big task is going to be drawing a bunch of unlockable items. Things like player skins, enemy skins, maps, and tilesets. I think this is most likely what's going to take up the bulk of the remaining time, since I need to create enough to give the player something to work towards.

I don't know how many "skins" I'll add, though I'll probably add at least two for the player and at least one for each enemy type. If I need to, I can always update the game with more content later on- as long as there's a solid baseline so that the game feels sufficiently complete, and so that the player can feel as though there's something that they want to play the game to get to.

I've currently got an icey environment which I'm pretty happy with, and I'm just about to experiment with some slippery "ice" tiles, though I don't know if I'll keep them. I'm planning a nice lava-filled environment, which I think will look nice and be a welcome contrast to the aforementioned icey environment.

I've also got some vague idea for a "bizarro" environment which I'm imagining would have some bright checkerboard textures, vibrant colours, etc- I'm aware that it's a bit silly but it's not necessarily lore-breaking. The Kyzt are able to 1. fuck with your perception of your environment and 2. build complex structures- it all makes sense. Trust me.

On the topic of complex structures, it was recently suggested to me that I could make a kind of technological "space-ship" design of environment. I'm thinking that it would take place inside a human ship that the Kyzt have invaded and are trying to take down from the inside.

That's quite a lot and it still doesn't even include the skins that I have to create, though I imagine those would be simpler on account of not being an entire screen's worth of data at a time. At the rate of about one environment per week, plus doing all the skins in one week, plus giving myself two weeks for final changes, accounting for the fact I can't estimate timelines to save my life and Steam's "final review"- the game should be ready for release by the end of January.

I'm gonna take this opportunity to say that despite the fact I'm talking about six weeks from now, that is a frighteningly close release date.

I've been working on Mass O' Kyzt for around 7 months now and I'm pretty ready for it to be done, but I really can't overstate how strange it is to actually imagine it being finished.

So here we are, I guess that's my schedule. If I can finish the lava-type map by next Sunday, I'll be right on schedule. Realistically who knows if I'll be able to do that but that's become my goal during the writing of this video.

Thanks for watching and stay tuned for more of the video equivalent of someone laying awake at night, thinking to themselves in their head about what they're gonna do tomorrow and how they're going to do it. Goodbye!

Thursday 14 December 2017

Game Development From Home

I do all of my game development from home, as I'm sure many people do, at least when starting out. This is because for one, I'm 17 so I legally couldn't move out if I wanted to and two, I don't have any money anyway, so yeah- whatever.

The point is that I've spent enough time trying to be productive in a fairly chaotic and uncontrolled environment to hopefully offer some helpful tips to anyone in the same or a similar position.

I think it's quite important to avoid thought-based traps. Things like "I'll work on my game when it's peaceful" or worse still, "I'll work on my game when these damned kids have grown up". For context, yeah, I'm the oldest of a lot of much younger siblings.

Both of these sentences are shifting responsibility away from your present self, which is unfortunately the most important version of your self to motivate. If your situation is anything like mine, it really isn't feasible to work on your game late at night. In my experience, working late at night is generally less productive and of a poorer quality than getting something done in the morning or mid-day.

After a full day of keeping up with household demands as well as school or work, I find that getting something done is a much more grueling task. I have two solutions to this. The first of such solutions is to push such thoughts out of my head entirely, or to realize that it's not going to be any easier to work on my game in the evening because I'll be tired by then. It balances out and I just have to actually get the work done.

The second solution which may not be possible depending on who you are or what your responsibilities are is to go to sleep at 9pm almost every night and wake up by 5:30am. This nets me 8 or so hours of sleep while still having a few hours in the morning to wake up and get into working on my game with minimal distractions.

I could probably fill another entire video with tips on how to get to sleep so early in a noisy household, but I'll keep it simple here since my YouTube channel is actually still about game development. Ear plugs are your friend, as are noise generators, as is making peace with the fact that people might wake you up while they probably don't mean to. Be cool, calm and let your mind wander a bit. Drink lots of non-caffeinated fluids. Last but not least, ease into a significantly earlier sleep schedule by going to sleep at say 10pm and waking up at 6:30am for a few nights, and then you can get into sleeping at 9pm and waking up at 5:30am. Of course, your times may vary.

Another general tip for game development from home is to avoid the tendency to go make a drink to buy time so you don't have to work for a few minutes longer. I'm quite guilty of this and as a result I drink like seven cups of tea a day. To avoid this, it helps to open up your game, poke around and see what you need to get done before getting up. In my experience, once I get up my mind has left the gamedev zone and is now thinking about whatever other miscellaneous rubbish wanders in instead.

The idea is that if you make a mental note of what you're about to do when you get back, you'll put your beverage of choice on your desk and be easily able to get back to work without being inclined to spent another moment to finish your tea while you figure out what to do.

Plus, it can provide an extra incentive to the thinking bit since your ability to go get a nice hot cup of something depends on your ability to figure out your next task.

Though I don't do this, some people set themselves rigid hours between which they will or won't work on their game. For instance, between 8am and 4pm, I'll close everything else on my computer and only allow myself to work on my game. You can experiment with whatever works for you in particular, such as a five-minute break every hour, a fifteen minute break every two hours, an hour as a "lunch break"- the point is that it can be helpful to not have a super liquid schedule. I would give myself a more rigid schedule, but that's difficult given the fact that I have to go to school and that sort of throws a spanner in the works for a few reasons.

Lastly, don't overwork yourself. This isn't to say be lazy and slack off because obviously that's not gonna help anyone but make sure to recognize from as reasonable a view as possible whether you need a break or not. The unfortunate truth is the the universe will not be kind to you if you take too much time off. I hate to be the "tough love" guy, but indie game development is really very hard and you need to recognize that your job is to make the best game you can in order to have a chance at staying afloat in the industry, let alone getting anywhere truly successful.

If you overwork yourself, I believe that you will almost always make a worse product. Spreading yourself too thin too fast usually means that you won't have enough butter on your toast and you ripped the bread in the process. In order to make a good product and to be at maximum efficiency, creativity and productivity you need to take some breaks. Be reasonable and allocate time to take a step back and have a potentially brutally honest look at what you're doing, where you're going and what you're going to do about it.

Thanks for watching, and stay tuned for more videos that are very tangentially about game development, but applicable to most fields of creative work where the creator is sufficiently independent. It's kind of like a cheat for YouTube. Brand as a gamedev channel and then go off and make some random stuff, all the while keeping your audience sufficiently fooled so as to not have everyone unsubscribe.

Friday 8 December 2017

Ludum Dare 40: An Evaluation

I recently participated in the latest Ludum Dare event which took place just under a week ago. My submission was called "Bring Your Own Bullets", wherein the player has to play a small minigame to fire bullets which they collect from the surrounding arena. Let's get the self-promotion out of the way, if you haven't played this game already then I recommend you do so- it's legitimately one of the better games I've created.

So why am I recording this video? Well, I decided that I'd document some of my thought process during the planning and development of Bring Your Own Bullets.

At the start of the jam, I wrote out maybe 7 or 8 semi-developed ideas for what my submission could be. The idea that I chose was a game wherein you collect bullets around the arena, and each bullet you collect makes you weaker in some way.

I initially though I'd make the player deal less damage for every bullet they collect, though at some point I reasoned that the player should want to feel as powerful as reasonably possible so I decided I'd find a different way of making something worse, as per the theme.

Next, I tried out making the player have less health. However, I quickly realized that each match was taking forever to complete and rather than making the enemies deal more damage(which would effectively nullify the core gameplay hook in the first place), I decided to make the player die in a single hit and find a different way for them to get weaker with the more bullets they collect.

Finally, I decided I'd make the player slower. I didn't really expect to keep this one since I realized a problem before I even started- the player eventually got so slow that they physically could not dodge the enemy projectiles and they would lose immediately after getting to a certain threshold.

I decided that the player would only be slowed down based on the number of bullets that they currently hold, rather than the total number of bullets they collected. This helped a lot and created something bordering on interesting gameplay.

Somehow, I came up with the idea of a quick reflex-based minigame to make it a little bit more interesting for the player. I don't know exactly how it popped into my head, but I think I made some connection from the idea of a physical pool of bullets possessed by the player and a revolver being difficult to quickly reload.

I was pretty happy with this system, so I kept it. I promised myself that I wouldn't change the mechanics any more after that since I was approaching the upper boundary of how much I can program in a day and still remember how to breathe and blink. I spent the rest of the day coming up with ideas to juice up my game, or making it more satisfying and pleasant to play.

I added some very light screenshake, some particle effects and a nice pulsating background for good measure. Also, several things work off of the same hue value- I did something similar in Super Displacement, where the enemies' red hue was mixed with the current colour of the background grid. Nothing too complicated, but it helped everything feel a bit more unified by more than you'd expect.

As an aside, the sound effects were actually the easiest part of the whole experience. Godot 3.0 uses a new bus-based system for audio processing and once I figured out how to make raw wav files loop since I couldn't import them as proper samples, it was a breeze and really satisfying to use. Plus it comes with some nice stock effects like delay, reverb, etc. What's not to love?

Also, I named the soundtrack "doesn't this bell pepper taste morose?" which is legitimately one of my favourite titles just because it's such a silly premise for a vegetable to taste like a mood but that's just my weird sense of humour. I'll stop now before I get into the etymology of some of the song names from Super Displacement's soundtrack.

Thanks for watching and stay tuned for something a bit less Ludum Dare flavoured. I told you I wouldnt' make another Ludum Dare video and I guess I lied because here I am, making another Ludum Dare video.

Tuesday 5 December 2017

Practice

The sad truth of game development and a lot of creative pursuits is that practically nobody is born good at what they do. It can take years for somebody to get good at something, let alone great, let alone significant in the field as a whole.

This can be discouraging, since in the worst cases it can be years and years of work before you see any kind of improvement. I have some experience with this, since two years ago I was truly terrible at pretty much anything related to drawing, including sprite work and especially animation. I wasn't good at it so up until I started making games, I never really tried that hard. I was good at coding, so why bother?

Ultimately, I got to a point where I had to make placeholder graphics for my games and so, I got into pixel art. Two years later, I'm approaching being competent in pixel art- it's still nothing to write home about, but I've clearly improved from only being able to poorly re-colour Terraria sprites.

Similarly, my first game (excluding the one I made when I was like 8 years old) was released August 10th, 2016. It was called "Don't Be Still" and the idea was just that you couldn't stay still too long or you'd lose, and you'd maneuver some levels populated with enemies that I think would shoot at you. It was pretty bad, buggy, unfinished, unpolished, pointless and honestly pretty horrible to play.

Looking back on it, it's incredible that I made that game only about a year ago. However, with what I believe to be fairly high amounts of practice and dedication to becoming good at making video games, I've improved by several orders of magnitude.

The point of this video is probably a bit hazy at this point. I'm just rambling on about my experiences with improving in artistic fields and I think it's all getting a bit disjointed, so I'll just assert something now.

I believe that practice is pretty much the only way you can get better at game development. Reading old design documents from Nintendo and watching Extra Credits videos will get you to some degree of knowledge, but knowledge isn't skill. Knowledge is knowing what to do whereas skill is being able to actually do it.

It can be difficult for someone to step back and view their own creation as something that they're not working on. By creating something, you have a preconception of what your creation should be in your mind. This preconception can muddy your actual perception of what your game is really like. Other people won't have the initial spark that inspired your game, nor will they have knowledge of the thousands of builds that you tested just prior. Your audience will only ever know what is in front of them and I think it's impossible to fully view your game from an outside perspective.

This is relevant because knowledge allows you to think of something that should be fun on an intellectual level. Something that should extract the correct amount of dopamine from a potential player at all the right times and something that on paper would be a best-selling game.

Skill is a persons ability to execute on this knowledge and actually be able to deal with it. Taking my recent Ludum Dare submission as an example, I know only from experience how much screen-shake is fun and how much makes the player feel shaken and nauseous. The minimalistic "growing circle" effect when a bullet hits the boundary was one of the first things I thought of when planning out my game because I had experimented with that effect in a previous game.

It didn't fit in that game, but I tried it and from having tried it I have a better understanding of under what circumstances that specific effect would be nice to have.

So by having practiced game development, I became a more able and competent game developer.

You just wasted 3 or so minutes of your life watching someone tell you that practice makes perfect. Well done.

Thanks for watching and stay tuned for videos like "water is wet", "the sky is blue" and "games are objectively bad in every sense of the word"- goodbye!