Friday 30 December 2016

Minecraft and the BBC News Room

Well, after taking about 5 days to do nothing over Christmas, I've got back into things by creating a pretty nice Minecraft-themed background/room, as well as making some finishing touches to the news room. I'm actually pretty proud of what I've done with the Minecraft-themed one so far, though I hesitate to call it "complete". It's pictured below, in case you're curious.


Right now, I'm working on a kind of remote fallout bunker, but that's way too unfinished for public consumption, so you're going to have to check in next time for that one!

There is some rhyme and reason as to why I've decided to recreate this seemingly arbitrary set of rooms, I promise.

As I've mentioned in a previous blog post, this game is based off of a podcast that myself and a friend (slowly) produce. In the first episode(or "track"), we discuss things such as Minecraft and Neath Port Talbot's local news, among other things. This game should hopefully reflect the surrealist adventure that is the Spiderman in the Rhineland podcast.

Either way, this is yet another snapshot into what I've been doing. If you have any feedback, don't hesitate to let me know.

And if you have done, thanks for reading!

Tuesday 27 December 2016

Devblogging

I'm back from my break over Christmas, baby! Woo!

Since I started this blog, I've been considerably more productive. I've noticed that this is apparently a trend with fairly large number of other developers, who also find blogging to be a beneficial outlet, so I've decided I'm going to write a blog post about blog posting, in the same vein as what I briefly touched on in my previous post on how to prevent burnout.

First and foremost, I find that seeing a number ticking by helps a lot. Game development isn't always the most instantly gratifying process, as it requires you to actually complete a project before you get anything at all. A development blog helps that by giving you a number that you can raise. People want to see or read about things you've done? Put it on your blog! Instant gratification -> acquired.

Secondly, devblogging can gauge public interest to some degree. If you aren't sure how marketable or interesting a mechanic is, make a blog post with some title like "New mechanic!" and watch as people come in to read what you've come up with and maybe just write a comment back. Additionally, it practices your ability to create a short "blurb" to publicize your game with. It's often cited that the best game concepts are those that can be easily or succinctly summarized, and I believe that's true in a lot of cases.

Thirdly, it can be similar to "rubber ducky debugging". This is a fairly well-known practice where developers would place a literal rubber ducky on their desk and verbally explain the bug. I think that making a blog post about a tentative mechanic can help the developer to see clear problems in it that they might not have realized otherwise.

Also, running a development blog does generate some publicity for your project. When it's released and done, you get to easily reach all the repeat viewers of your blog with a single post, as well as gain some new ones if you hint that your project is almost done.

Of course, the real reason to make and maintain a development blog is to gain enough power and enough of a following to enforce social and political influence on an international scale by use of the Internet. I hope that this was obvious from the start, if it wasn't.. sorry.

In any case, if you have done, thanks for reading!

Thursday 22 December 2016

Preventing Burnout

This is a legitimately useful post that I'm making, rather than highly subjective musings. Enjoy!

I am very prone to what is called "burnout", a term referring to a developer getting tired or otherwise dissuaded from continuing to work on their project. This has been problematic, considering that it's caused me to kinda abandon two other projects in the past, so I've decided to share some tips that I've either come up with or seen somewhere else online.

One of the most useful things I've noticed is that it's important to pace yourself - even if you don't want to. This means that you shouldn't try to work more than 4-6 hours on your project per day. Of course, this is coming from the perspective of someone who has to go to school regularly, so perhaps 6-8 would be a more appropriate number for someone who otherwise has no other preoccupations.

The feeling of "I want to work on this project but I can't" in my own experience helps to keep the enjoyment of working on it fresh and lively in my own mind, which means I'm less likely to experience burnout.

Another thing that helps more than I would have expected is keeping an hour count. I use the Godot editor on Steam, which automatically records your hours spent "playing" any particular application and by now I have about 90 hours on record. This helps just for the sake of a number ticking up being somewhat satisfying. Maybe this won't work for you, but it's worth a go.

A pretty useful tip that I use a lot is that if I discover a bug or something that I really don't want to do, I schedule it for either tomorrow or the day after. The most important thing is that I do it then, procrastinating sets a bad precedent for the future. This can be difficult, but it's very useful. If you can suppress thoughts like "ugh I don't want to do this" or "grr this is going to be so much trouble" in lieu of thoughts like "I can make this bit blue" or "where can I add dithering", it helps a lot.

Something that helps quite a bit is making a post on your devblog - provided you have one. If you don't have one, make one and post it to /r/devblogs or something similar. There's another whole post to be made to talk about devblogs and how they're helpful, but just trust me, seeing the "All time views" number tick up slowly is tremendously satisfying.

This is something that I've seen is commonly suggested but somewhat underrated. If you're stuck on something, shut your eyes for a few moments and picture it in your mind in as much excruciating detail as you can. Besides the beneficial side effects of exercising your imagination, this helps you with design, as well as allowing you to recognize the potential of what your game could be if you do everything exactly right.

One last thing that is tremendously useful; if you're not feeling motivated, think of one very small thing that you can do to your game. Bonus points if its very menial or repetitive and doesn't require creative effort, because while interacting with your game in any way you might start being able to think of ways to tackle other problems, whether they're how to recreate something graphically or how to tackle a tricky bug.

Even if you plan on working for 5 minutes, you will often work for much longer once you start. Sometimes the hardest part of something is to start it, and then the rest becomes quite enjoyable.

Anyway, that concludes my list of (hopefully) helpful tips, and if you have done, thanks for reading!

Tuesday 20 December 2016

Another two rooms done!

It only took about 2 weeks of work, but I can finally stop trying to recreate rooms from a certain video game involving bonfires, which is good because it's pretty damn difficult.

One of the rooms is this one:

It's admittedly not the best piece of pixel art ever created, but this took me literally 3 days. I'll come back to it at a later date because I'm certainly not satisfied with the end product, the rock in the bottom right is a bit.. strange and the borders are too lopsided for my liking.

Fortunately for me, I can put the amendments on the proverbial back-burner while I do something slightly more interesting. Also, at some point I need to fix a frustrating bug where a "fade out -> change scene -> fade in" will occasionally cause a strange flicker.

My best bet is to try and set up the mask which handles the fade in/fade out/visual snow/static effect as a singleton node. The only worry is that this would kind of reduce the amount of control that I have over the mask in each scene, seeing as it wouldn't be able to be keyframed in Godot's AnimationPlayer node.

That bit kind of runs contrary to my previous task of setting up the intensity and alpha channel to be uniforms explicitly so that they can be keyframed as necessary. Maybe a mixture of both is what I'm going to have to do, just initializing a singleton in the scene prior to the fade out, and deleting it after the fade in.


This is my favourite part of game development; the problem solving and thinking about a problem. Definitely not the creation of art assets, at any rate. At this point I'm almost glad I have a bug to fix...



And if you have done, thanks for reading.

Sunday 18 December 2016

Annoyed about Unity

Disclaimer: This post is what I call a "weighted opinion" post, where I can choose to subjectively value certain shortcomings of Unity over areas where it excels, because the areas where Unity excels do not align with my own skills and beliefs.

The Unity editor is one of the most popular visual editors in use in the indie game industry. I've even seen some (unconfirmed) reports that No Man's Sky uses the Unity engine.

Unfortunately, despite its somewhat misleading nomenclature, Unity is anything but unifying when it comes to multiple operating systems.

I've tried to use the Unity editor on Linux, but unfortunately it crashed every 3 minutes or if I right clicked on a drop down menu(I'm not even joking, this happened constantly). Not to mention the problems that Windows developers have when compiling for Unity, half the time it doesn't work despite the fact that it claims to have functionality for cross-compiling.

Also, Unity2D is awful, as someone who has tried, it's just awful. I spent about 3 hours one day and a couple more hours the next trying to get it to do really anything that I wanted it to do, and with minimal luck. Of course it didn't help that it crashed so often. Did I mention the crashing?

Godot is the natural successor to Unity. I've seen nothing that Unity can do that Godot can't. Unless you're doing something hyper-experimental which somehow can't be accomplished in Godot, there really is no reason to use Unity over Godot apart from the fact that Unity is the "industry standard".

It doesn't help that Unity is proprietary software (which I'm sure is why it's so awful on Linux) so modifying it is considerably harder than it could be. Godot is free software(MIT license), so modifying this isn't so bad(if you know how, at least).

Also, Unity is considerably heavier, has even sloppier built-in assets(ragdoll physics, UI presets, etc) and is just overall awful to work with. It has an ugly UI, too.

Unfortunately, Unity still dominates the indie market even still. So many people haven't bothered to learn Godot because they know Unity already, and all the employers know Unity. This results in it being kinda difficult to get employed using Godot because it has such a tiny market share.

Oh well, I suppose that the option of trying to become a one-man development team is also open. Wish me luck, it's only getting harder and harder to compete in such an overfilled market.

Thursday 15 December 2016

Passwords

Disclaimer: This isn't exactly game development related, more of a general tech-related gripe.

Passwords are a vital concept to technological well-being. They prevent unauthorized users from accessing or changing personal information. This is nothing new, but my main annoyance is that people genuinely have no idea how to come up with a password that is safe.

It doesn't help that certain websites sometimes require special characters such as "$/%$£*(^ which is overall significantly less useful than requiring users to include numbers or upper-case letters.

This spreads a misconception about computer security. Of course, many human users wouldn't expect to have to enter a % or a ŝ when trying to break into an account by hand, but the fact of the matter is that unless you have very unfriendly friends, most unauthorized access attempts are going to be from strangers who use an automated program.

This automated program doesn't see any difference between the letter "a" and the symbol "%", it sees them both as just another string of bits. It is marginally useful, but seeing as realistically there are only 10 extra special characters that would be used for this, and considering how much more difficult it is to remember, it isn't that great.

Ideally, upper-case characters and numbers would be pushed harder than special characters, seeing as upper-case characters introduces 25 extra bits of entropy with not a great amount of extra effort.

However, what should really be pushed is quite simply longer passwords. A lot of passwords require 6 or 8 character strings as a minimum size, but this should be pushed higher up to, in my opinion, 12 or 14 characters in order to make it significantly harder and more time consuming to crack.

There's a relevant xkcd comic for this, if you're interested google "correct horse battery staple". It should come up.

Monday 12 December 2016

New background!

I spent most of today finalizing and trying to get a solid version of the latest background for a level.

Seeing as the background without context or interactivity really gives away nothing about its purpose, I feel comfortable showing this off here. Without further ado, enjoy the following:


I do highly doubt that this will continue into the final build without slight changes, but as it is now I feel pretty happy with it. It took a lot longer than I could have ever expected, seeing as it took a total of 4 revisions of the same area in order to get one that doesn't look so awful.

Bonus: if anyone guesses what game this area is from and gets it correct, I will keep you in the development loop personally, considering that it doesn't really resemble the actual area that I based it off very closely, and you are therefore clearly telepathic. I think that telepathic people could be useful to gauge market and audience interest, so it's worthwhile trying to keep you around. Post a comment if you want to hazard a guess.

In all seriousness, I did overwrite the 3 other revisions of this room before I realized that I had a blog where I can throw this stuff, so that's lost to the void. I'll try not to do that next time, but then again, hopefully I won't have to try 4 revisions and about 6 hours before getting one that looks tolerable.

And if you have done, thanks for reading.

Saturday 10 December 2016

University and Indie Development

Throughout my life in the educational system, I have never encountered any academic problems. In fact, at risk of appearing tremendously egotistical, I would go so far as to say that I have never encountered any kind of academic work which I found insurmountably difficult.

Currently, I'm considering whether or not to go to university. Having always attained quite highly in terms of grades, I have always taken it as a given that a requisite for getting employed was to do well in my GCSEs, do well in my A-levels, and finally do well in university.

Recently, I've been increasingly encouraged to look at universities to attend in order to get a degree in either Mathematics or Computer Science. The process of deciding on a university for this purpose is arduous, slow, and above all very tedious.

The question comes down to a difficult dichotomy between unpleasant certainty and ambiguously pleasant uncertainty.

The case in favour of university is quite simply that it is the most "safe" option. I know that if I go to university, I can get some indie development job and I can pay the bills and live, but for what? Is the case for life simply living for its own sake? That seems awfully redundant and honestly, very pointless.

The case against university is obviously the inverse of this, I may not be able to get a job, and I may not be able to pay bills to live comfortably, if I don't create anything worthwhile. This option does alleviate student debts, so the monetary burden is lighter, but so as the strength with which to carry the burden is weaker.

Honestly, as far as indie development goes, how useful can a university degree even be? Considering so much is based off of portfolio, it's a trade-off of a marginal increase in employability with thousands in student debt.

Maybe I'll see what I can get accomplished before I need to go to university. Maybe I'll take a gap year and see what happens then. Maybe, if all else fails I can simply acquiesce to the unpleasant certainty that so many others choose willingly, for whatever reasons they may have.

Either way, I'm not making this decision now, and I'm likely not making it soon.

If you have done, thanks for reading.

Wednesday 7 December 2016

Slow and Steady

For those of you who read my previous post, I'm now working on a kind of joint project based on the podcast "Spiderman in the Rhineland", which I co-host(co-write?).

So far, it looks pretty good. I've made a few pixel art assets and one background(which is going to get completely re-made), and my friend sent me some mock-ups of various rooms.

One of the things that he sent me was this piece of promotional material:


I admit it isn't the best piece of material to get people to understand what this game is about, but nothing short of playing it or a hefty explanation from either myself or the aforementioned co-host will really suffice.

However, I've been learning how to make some pretty cool looking shaders, namely this one which takes in a noise map and makes some pretty nice soft static/noise effects over the screen with it. Feel free to steal this if you aren't too specific about what you want in a shader and you also have a means to create or acquire a very colourful noisemap. In fact, part of this noisemap is visible in the promotional material behind the big "SPIDERMAN IN THE RHINELAND" text.

In fact, I stole the rand(vec2 co) function from Stack Overflow as a means of generating a random number, so you're extra encouraged to steal this, so I can feel less bad about stealing that.

In any case, the real reason for the title of this post is because I spend 6 hours yesterday making a background which didn't even look that good when it was done. As previously stated, I'm going to have to scrap it entirely and remake it.

However, that's pretty fine by me, albeit a little bit annoying. Unfortunately, getting too attached to single assets seems to be a large reason why I lose interest - I find myself getting very concerned about going back and losing the progress I have already made or wasting my time. Of course, it's a much bigger waste of time to shy away from the project entirely, but that seems to very skilfully subvert the "reasonable" sector of my brain.

Anyway, if you have done, thanks for reading.

Sunday 4 December 2016

New Project!

After some discussion with a friend about the "podcast" that we run named "Spiderman in the Rhineland", I've picked up a new project in game ٩development.

It's going to be made in Godot, as a strange surrealist narrative walking simulator-esque "game" trying to be more of an art piece than an interactive adventure.

It's got a fairly small and manageable scope and I have all the time in the world to complete it. It has to be finished before Track/Episode 10, but at our current upload rate that will be some time mid 2018.

I'm not going to reveal too much about the content of the game, nor will I publish any screenshots as that much may ruin the experience itself - this is, of course, paired with the fact that all the art is very tentative and is going to be iterated on a lot. Minor spoiler; I'm also doing all the art assets either myself or ripped from the aforementioned friend. So far I have only taken one noisemap from him, so I can still claim most of the visual and mechanical content as being of my own merit.

Also, in the spirit of being fair, he made mention of my blog on his Youtube channel, so I'm going to make mention of his Youtube channel on my blog. We're getting this old boys club of information superhighway titans started early.

https://www.youtube.com/channel/UC8N8EUWoqyEOvvw8tGoHFjQ


Saturday 3 December 2016

Creativity

Creativity is, obviously, vital to creative endeavours such as game development.

Unfortunately, it seems like sheer luck of the draw as to who possesses the capacity for great creative output. Of course, some people say that creativity is a skill that can be practised, but they often give no leads as to how to even start such a task as practising creative thought.

My brain is wired in such a way that I enjoy following things from a definite start to a definite end. This is reflected in my own affinity for mathematics, a relatively robotic and logical game where the mathematician has a "toolbox" of actions and processes to be applied to a given problem, and the rest comes down to pattern recognition to know when to use a hammer and when to use a wrench.

Of course, I have had creative thoughts in the past. I have made creative things in the past. However, they come as seemingly random bursts of information in my mind rather than anything prepared or even expected. Is this what creativity is? I am hesitant to believe that creativity is indeed so spurious and unpredictable - there has to be some semblance of reason to it.


This is where Google and philosophy fail me. I only know my own mind, and to imagine the mind of another hardly makes sense to me. Trying to emulate the particular patterns of thought and the neural connections so prominent in those who call themselves "creative" is obviously a fool's game. I can only ever achieve true creative ability by way of trial and error.

And that's pretty damn disappointing.

Saturday 26 November 2016

As if procrastination wasn't bad enough on its own...

I'm struggling to even create content for this blog, whose purpose is to motivate me. Fuck.

I also have no motivation to do anything productive at all. I've been playing League of Legends and revising a lot lately but sleep deprivation is inhibiting my ability to do both.

However, I did play Black Ice which I thought was a particularly notable game, simply for the developer's sake. I played the demo(yes, the game has a demo!) and it isn't too complicated, it's a procedurally generated open-world area, within which are shapes which generate small arenas for the player to fight off enemies for a given number of seconds.

If you haven't played it, I would recommend it. Plus, the demo is free and about 100MB so you don't have much to lose.

The developer has been actively developing this game for about 2 years now. Additionally, it's clear that fantastic art design is not his forte and he has gone the route of colourful, simplistic wire-frame effects, which in the context of this game are quite enjoyable.

He's an active member of his own game's community with, according to his profile, 100 hours playing his own game, indicating that he's genuinely invested and both enjoys his game and wants it to be the best it can be.

In any case, I hope you enjoyed my brief recommendation of Black Ice, in a somewhat futile attempt to stop this blog from becoming about my own procrastination and inability to stick to a project.

If you have done, thanks for reading.

Sunday 6 November 2016

Procrastination...

I'm just not feeling it like I did either of the other two times I developed something.

Maybe a remake isn't the best thing to do. I just need an idea to pique my interest and keep the enthusiasm going...

Send help.

Friday 28 October 2016

Minor victories with Godot

So far, progress has been slow learning Godot, but I'm enjoying it.

I've been looking over the documentation and "Step-by-Step" guide that they have listed and I'm slowly getting into the way of thinking with a visual editor. They compared each "node" to an ingredient in a kitchen, which was a very helpful analogy.

I was able to recreate a very very basic "AI" for a game of pong, which effectively just checked if the ball's Y coordinate was above or below the paddle and move at a given speed either up on down based on the ball's position. Hooray!

Anyway, if you have done, thanks for reading!

Thursday 27 October 2016

Thoughts on e-sports and enjoyable games

Warning: This is more rambling than I'm planning on doing regularly on this blog. Either way, I hope you enjoy!

Lately, I've been thinking about e-sports. You know, the kinds of hyper-competitive games which consist of some of the most popular games in the industry, for example League of Legends, Starcraft 2, Dota 2 and Counter-Strike: Global Offensive. I've tried all of these games and enjoyed them in descending order to which I've listed them.

These games all attract a very wide audience in the gaming world, allowing players to strive to reach a very high skill ceiling and prove their worth against other players in a ranked system. As a League of Legends player for the past 3 years, I can testify to this being a very addicting system of play.

I appreciate the emphasis that these games put on their competitive difficulty, but a problem appears when other studios see this and try to imitate the competitive elements of other successful games. A perfect example of this in action is another game from the creators of CS:GO, Team Fortress 2.

Whining about Team Fortress 2


Team Fortress is a very old game, originating as a Quake mod in 1999. Valve subsequently developed a sequel to this game to be released alongside the Orange Box in 2007. There is no doubt that this game stood the test of time, having been successful for almost 10 years and genuinely one of the best team-based deathmatch games of all time.

Unfortunately, as of late, Valve tried to apply the same principles of CS:GO's competitive nature to Team Fortress 2 where this simply didn't fit. They removed the previous system of having the choice between "Quickplay", a system which automatically matches you to a Valve server, or browsing for a community server instead.

Previously, the community was split between people who use Quickplay and people who use community servers. This was fine, Quickplay worked well enough and everyone was happy. Now, the system is different. Valve have replaced Quickplay with "competitive matchmaking" and "casual matchmaking". I have no problem with the casual matchmaking, but the competitive matchmaking is an absolute mess. From the way that leaving is handled to the way that 1 member of a 6-person team can make such a massive difference to the outcome of the game, I don't believe that Valve made the right decision with this.

The largest problem I have with this is that Valve don't seem to understand what makes Team Fortress 2 a wonderful game, at least in the eyes of myself and many members of the reddit community. Team Fortress 2 is good because it's casual, light-hearted and most of all, fun. A game can be fun by being competitive, but trying to shoe-horn in that form of fun into a game where it otherwise doesn't fit rarely does any good to the actual game itself.

I've played over 800 hours of Team Fortress 2 over the past 7 or 8 years, and I'm disappointed with Valve's betrayal of the spirit of the game over this time.

Feeling good in video games

 

Recently, I saw a little bit of an upcoming Indie game named "Dusk". From what I've seen of it in pre-alpha, it appears to be doing things right. It's an old-school shooter game, similar to other games like Quake, Serious Sam or Hexen. The most important thing to take away from it though is that this game didn't amp up the difficulty to a crazy degree in order to "stand out" as being hard(see: Dark Souls 2, as much as I adore the rest of the series).

This is something I absolutely respect from the developers. They understand that sometimes it just feels good to mow down tens of enemies with an automatic gun, feeling cool about yourself and not worrying too much about getting one-shot by an ill-timed roll(SEE: DARK SOULS 2).

Conclusion

 

Overall, I believe that games feeling satisfying to play is a very underrated concept. It makes such a difference and yet so many studios choose to invest in other things to such an extent where they don't even matter any more because the game feels awful to play. It can have the most beautiful water simulation in the world, but if it feels like I'm playing 1st person Super Meat Boy then I'm going to take issue with it.

In any case, if you have done, thanks for reading!

Wednesday 26 October 2016

First post!

This is my first post to this blog! Hooray!

Here I'm hopefully going to write a bit about where I am with respect to my knowledge and creations in the way of game development.

I guess a good place to start is to detail where exactly I am now, and how much I know!

My first programming language was Python, as is the case for many people. Its mathematical orientation synergized quite well with my skills at the time, and instantly I began programming more and more things.

My early programs were a mess. After getting to grips with the basics of Python I immediately sought to create something more useful or tangible, so I went on to create a text editor using Tkinter. This was something I technically had success with creating, as it contained a GUI, a function to open a file, create a new file and save a file. Unfortunately, when saving the file, it would append the contents of the new file to the contents of the old file. This was a bug that I interpreted as being insurmountable and I gave up.

A few months later, I revisited it, fixed the bug very easily(removing the opened file and replacing it with a new one instead of just outputting all the held text into the saved file), and then promptly forgot about it for a while. I had moved on to using Pygame, and soon afterwards Pyglet when Pygame proved to be too unintuitive for my tastes.

I can't even remember what I created at this point, but it took me several days of struggling to manually check the X and Y coordinates of mouse clicks to scan for button presses before I realized I was in over my head and quit for a while.

The months that followed were a dark era of programming, where I did nothing of any great value, and tried(and failed) to learn all of the following:

  • C
  • C#
  • C++
  • Java
  • MySQL
  • Ruby
  • PHP
  • Pascal
  • Javascript
  • The Unity engine
This process of repeated failure demoralized me for a while, but it actually did leave me with a very rudimentary understanding of almost all of those languages(except for PHP, what even is that).

I've since re-learned how to use Javascript and C++ in more detail, albeit superficially, and I've migrated to Debian Linux as my primary OS, shutting out the Unity engine.

I have made two unfinished...things in the past. The first of which I named "Don't Be Still", where the player controls a cube, moves around about 6 levels eliminating all enemies in each level and dies if they stand still for too long. This game was overall received on websites such as Kongregate and Newgrounds as being a good idea with awful execution.

The second thing, albeit much better, never saw public release due to a few flaws which my perfectionism got in the way of ever releasing. It was a turn-based rogue-like called "Set in Stone". I was not the sole developer of that one as I was the previous one, as my partner created all the graphical assets, a person much better in the way of art than myself.

After this, I've been a bit swamped with school work and as such have not created much else.

However, I've recently picked up the Godot engine, a cross-platform, MIT-licensed visual editor for primarily 2D games which is where my interest lies.

I'll hopefully be documenting my process of learning how to use this engine, as well as anything that I actually create with it.

If you have done, thanks for reading! Expect more posts soon.