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).



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.