Monday, 1 January 2018

Improvement over 2017

This is going to be a more "blog"-like video than usual, so I hope you lot don't mind too much.

I think I can recognize that my skills have come a long way over the course of this past year, even if they're still very far from perfect. This time last year I was working on a spin-off game to a strange audio show named Spiderman in the Rhineland, which I technically co-host with other a friend of mine known as Magos on YouTube.

It was a fairly simple walking simulator style thing where the player would hold the up arrow key for about two minutes while they passed some poorly drawn pixel art backdrops. The backdrops weren't particularly great, though creating them was very helpful towards developing my ability to draw pixel art.

It's actually quite funny, you could see the backdrops improving as you played through the levels due to how awful I was at the beginning. Apart from that though, it was a bit rubbish and I never really completed it.

After that, I made a few short platformer-style walking simulators. They were... something, and I'd be lying if I wasn't a bit embarrassed about just how pretentious they were trying to be. Let's just move on.

In about April, I made the first game that I'm actually kind of happy with. It was called Super Displacement, and originally intended to be a kind of re-make of a game I made back in 2016 named Don't Be Still. Ultimately, I changed a lot and it's barely even related to Don't Be Still at this point.

For those of you who haven't played it, Super Displacement is an arcade-style shooter wherein you move at high speeds and shoot some squares. The idea is that if you touch the walls you'll lose, and the enemies - rather than dealing damage - will bounce you around quite vigorously to try to throw you into a wall.

It's pretty fun to play, even though looking back on it there are a few things which I just didn't think to include or tweak in particular ways. It's a little bit rough around the edges, but I'm happy with it.

Next, I participated in my first Ludum Dare, which was Ludum Dare 38. My submission was called "Polar Protector", since the crux of the game was to defend literal poles running through the planet from enemy alien creatures. There were some fairly glaring design flaws- such as it being very difficult to determine whether the enemies were actually attacking the poles. They would usually just stand still and the HP bar at the top would slowly begin to tick down. Not great for visual clarity.

But it held up well enough and I got 77th place in the "Fun" category, so I count that one as a win.

Soon afterwards, I got the idea to work on the game post-jam, so I added a new mechanic wherein the player would decide how the enemies got stronger. A lot of you will probably recognize how that turned out. It didn't really work in Polar Protector, but it's working pretty nicely in my current project, Mass O' Kyzt.

Anyway, I did start working on Mass O' Kyzt shortly after Polar Protector. It's been a very slow yet educational experience starting a project with relatively little knowledge and intuition regarding design, art or anything else that a game developer really should know. So far, I'm pretty happy with how it's turned out. My game is almost like a real game- a fairly second-rate game, but it doesn't look like somebody's first project. Which is good, because this is definitely not my first project.

I'm not going to do a step-by-step through my other projects since this has dragged on long enough and I think you get the idea- I started out pretty bad, and now I'm only a little bit bad. Hooray!

Thanks for watching and stay tuned for more videos which are probably less "blog"-y than this one, since I like to present useful ideas to my audience, not just talk about myself. Talking about myself is fun though, so I can't promise anything.

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.