Thursday, November 10, 2016

Retaliated

Retaliator's Main Menu
Well, I guess I should make a post about the latest news. I have severely neglected this blog due to work and other commitments, but as this most closely relates to what this blog was originally for, it is perhaps necessary. As some may know, I left my most recent job for a variety of reasons. Probably the biggest reason was the massive difference in work culture from my previous job at QUT, and how some aspects of it (e.g. staff constantly complaining about students) go completely against my own morals and ethics. There are other reasons too, but that is a story for another day...

Hilariously, I acquired a position (starting next year) at QUT within weeks of leaving my job, which was great! However, I needed something to do in the interim, lest I go insane from boredom. So, I decided to finish my game. On a completely shoestring budget of around $1000 and a full-time development cycle of about 3.5 months, I present to you my solo game project, and first real standalone portfolio piece: Retaliator. It is currently on Steam Greenlight.


I guess you could say I am slightly proud of it. It has been a project I have wanted to complete for years, but just never found the time or inspiration to do so. The reason being, there is a lot of work that goes in to finishing a game, even one with as small goals and deadlines as Retaliator. Retaliator is a top down SHMUP (Shoot Em Up) inspired by the classics of an era where game mechanics and explosions were more important than storylines. Having said that, there is one where you are retaliating against alien invaders who are destroying Earth, venturing across the galaxy to make waste to their home world. Working on it over the past few months has been an interesting experience.

Mission 2 - The Dark Side
Part of this experience has been diving into world crafting. As I am not a 3D modeller, texture artist or animator, simplifying the game's potential environmental design has been challenging. Additionally, as I am the sole developer of the game, I have had to rely on various free and paid for assets to get the job done, some of which don't always match the vision I had intended. Having these elements out of your control makes you study and research other people's work with inane levels of scrutiny. Spending your money on assets that do not fit the theme of your game is something to be avoided, particularly if said assets are unlikely to be replaced in the near future. Additionally, the challenges of integrating said content smoothly has been enlightening, often requiring you to reconfigure meshes, swap polygon normals, realign UV maps or just find something better. It is time consuming work, and I now have an even greater respect and appreciation for game artists and the work that they do.

The Zeus under attack
Early township environment
Alien homeworld shipyard
Another time consuming endeavor has been finding the right tune for my game. I originally had my pre-alpha version loaded up with samples from Homeworld and a remixed Nine Inch Nails track. This was ok for testing purposes, but for the final release I needed to find something both free/cheap and akin. This took a long time. There is a plethora of fantastic compositional work out there by artists all around the world, and I spent days lost in various genres, searching for that magical balance of ambience and action. I also learned about the various models of audio copyright, and how royalty free means very different things to different audio hosts. Eventually I stumbled upon the excellent samples hosted at MachinimaSound.com. It suited my purposes perfectly, and was royalty free in the truest sense (i.e. just provide attribution).


Getting people to playtest my game was also an interesting experience. While the two major pre-alpha playtest periods certainly inspired me to develop my game ever further, the level of playtesting provided by folks varied significantly. Some playtesters I barely knew provided extremely deep levels of analysis, providing their thoughts on mechanics, balance tweaks and aesthetic changes that I never would have considered. This surprised me and was very useful in the long run. On the other hand, other people I had known for years provided extremely surface level comments, not even bothering to submit them in the requested format. This disappointed me somewhat, particularly as they knew my passion for game development and my expectation for theirs to be just as high based on their study/occupation. I think playtesting really just boils down to the playtester. If it is not something they take seriously then I should not be expecting serious playtesting. I won't make this mistake in the future.

Special thanks to playtesters so far!
I have also realised that I probably have OCD. There are things, small things, that I will tweak and tweak until they are as close to perfect as I can fathom. Amusingly, some of these are unrelated to code. Visual/particle effects I will happily spend hours on, as well as adjusting sound effects until that echo/reverb/pitch is just right. The balancing of weapons and enemies is something I probably spent far too much time on, to the point where I unconsciously know how good or bad something is, have a bias for it, and don't realise how broken other aspects of it are. I have learned and have witnessed first hand that the creators of the game are often the worst testers and tweakers of the content as they are burdened by scope. Sometimes a simplistic, ignorant view of the world is more useful.

Tweaking this scene induced epileptic symptoms :(
Finally, the endless scripting. It is what I do after all, but somehow I value it the least these days, despite it being 70% of the game. I have had my head in code for nearly 3 months. I have no idea how many lines of code I have written. Probably over 10000. Everything is just a blur of loops, conditionals and vector math at the moment. While I had most of the core mechanics completed the year before (3 week's work), much of it required re-tuning and rewriting. Overall, it is probably not the best code I have written, and I am sure I could have saved a few lines in several places. However, it is not important. It is a fallacy of the programmer to think that their code needs to be completely perfect and efficient, and how this will automatically translate into amazing game play. I have seen this mistake in my own work and in the work of students, and it is illogical. You could spend all your time designing a funky algorithm or a system of complex co-routines to handle your state switching and then watch it all fall apart as unexpected complications arise. Never over-design something that should be simple. Use what you are comfortable with, especially when it makes sense to. Code is invisible for the most part, and as long as your game's frame rate does not tank because of your code, then your solution is appropriate. Mostly.

See? Lightning bolts!
It has been a lot of fun working on Retaliator and it is still a project I will revisit in the future. However, for the moment, it is a project I will be taking a break from. While I would like the game to become popular enough for it to be sold (providing additional polish), it was honestly never the goal of the project. I finally have a portfolio piece, a game I can point in the vague direction of Steam and say "that" and "this is what I can do" without being embarrassed. It is a good feeling, and a life goal that I would never have accomplished if certain circumstances persisted. Leaving my work to sort it all out might just be the most sensible thing I have ever done.

Sunday, July 3, 2016

All of teh videos!

Well, that is interesting. Despite working full-time now, I still seem to be video editing as much as I used to. What I have not been doing is using those videos as my standard excuse to write some dribble on this blog. In the last few months I have edited and uploaded more videos than I can sensibly discuss, so I might just describe the few that are more interesting and leave the rest for people to explore themselves.

Yeah, that,
Anyways, thing. Doom. Doom was a video game released in 1993. Doom was also released in 2016. Funny how that works. Seriously though, Doom (2016) was pretty darn good. It seems that after years and years of the same, stale COD style shooters, the industry is finally turning its head back and looking to the past for inspiration. As far as the single-player goes, Doom pays decent homage to its roots, but is not afraid to inject it with a degree of modern shooter jazz. Not the ironsights, health-regenerating, cover system crap. Interesting stuff like weapon enhancements and different movement speed options. It is at least refreshing and provides you with some choice as you duck, weave, rip and tear through the hordes of hell. It is a fast game. It is a gory game. It is a game with serious attitude. But perhaps most importantly ... it is a AAA game, and a markedly successful one at that. Hopefully this bodes well for the return of the arcade/arena shooter to popular mainstream.


Interestingly, Blizzard also seem to be dipping their toes into similar waters. Overwatch, a game resurrected from the corpse of Titan, Blizzard's next MMORPG, is also a multiplayer FPS game that goes against the grain of mainstream. Like Doom, it is arcade-like, moderately paced, colourful and, in typical Blizzard fashion, very addictive. Riding on the shoulders of Team Fortress 2, it is very much the evolution of the class-based shooter. Perhaps the most noticeable aspect of Overwatch is just how polished the game feels, from the environmental design to the minor nicks and scratches on the heroes armour. The heros themselves are quite varied and it is easy to find yourself gelling with several of them over the course of play. There is likely a heroes play style for everyone, although it is best if your familiarise yourself with several, between role types if possible. As enjoyable as the game can be, most of my losses can be attributed to poor team composition. There is nothing more annoying than having 3 sniper heroes, 2 defense heroes and a tank (me) trying to assault an objective. Very few people are interested in playing a healer, which gets tedious when you have to play as one every second game.


Anyways, that might do for the immediate moment. I shall do another post in the near future involving the other videos I have edited.

Monday, April 25, 2016

Struggler Indeed

Berserk is … interesting. Simply put, it is a dark fantasy consisting of a man’s struggle against evil. As a manga, the story of Berserk is particularly shocking, consisting of some of the most horrific and grim storytelling to ever grace a medium. It is perhaps this reason that I find it intriguing, as it’s particularly serious but fantastical aesthetic is one that I find appealing for a variety of reasons. Not to mention, the main protagonist and the name of the manga are absolutely badass!

I originally experienced Berserk in the form of the anime series, many, many years ago, I think in my first year of university. The original anime series seemed more like a low production adaptation of the manga, but a relatively accurate one as I discovered later. The Berserk manga is one of the longest running manga in the history of the medium, starting in 1989 and still running to this day. It is one of the few manga I read and stay up to date on. So much more has happened since the original story arc, depicted in the anime. Even now, I still find the ongoing story fresh, brutal and exciting.


It is not surprising that the Berserk manga turned anime received a movie series adaptation, that of which was done quite well. Injecting an additional degree of humanity into the story, the Golden Age Arc (2012-2013) tells the initial phase of the Berserk exceptionally well, and in a much more digestable format than the manga or anime. It is one of the few anime movie adaptations I recommend to people not fans of the medium as although it is probably difficult to understand, it is paced well enough to be an entertaining watch nonetheless. In fact, a friend of mine watched only the final movie and said he thoroughly enjoyed it, despite having no clue what was going on.

So, not having internet for over a month (long story) I have managed to find the time to edit another anime trailer AMV for another of my favourite anime movie series. This one has been in the conceptual phase for a long time, brewing in the back of my mind ever since I discovered a suitable musical track for it. Taking over 6 hours to edit, it was markedly easier to compile than the Evangelion trailer AMV I did last year.


It is strange how much of my inspiration for video editing comes from finding the right sound for things. I don’t even begin thinking about editing a video until the right tune comes along. Hopefully, when I find the time and the right jive, I will edit some of my more unusual ideas together. We shall see.

Saturday, February 13, 2016

Prepare for the End - Paragon 1000

I play a lot of Diablo III. Well, at least comparatively to the people I know. It is a reliable outlet for relaxation and on-demand game play that I use to escape some of the nonsense in the world. Especially in the last year or so.

Anyways, such an unconscious commitment puts me in a position where I am able to compete against some of the best Diablo III players around the world. I have pretty decent gear. Some would say best in slot. My augmentations (gear stat enchants) are reasonably high across the board, having put countless hours into slowly leveling gems. I don't play in groups often, nor do I have a high GR pushing team to get accelerated XP and substantially higher level gems (<=20 levels higher).


Despite this, for the last 3 seasons in a row I have consistently placed in the top 50 of the Barbarian leader board at some point, and usually remain in the top 300 before the season ends. Mostly, this is unintentional as I do not fish for magical, planets aligned greater rifts nor do I push high level content overly frequently. In the few occasions that I do, I usually place somewhere that is respectable. Otherwise it generally doesn't concern me.

However, finally reaching Paragon level 1000 warrants at least some kind of attempt. I have been playing as a LeapQuake Barb for most of the season, a build that performs well across the board and requires some interesting stat balancing to achieve a comfortable spell rotation. Doing so will result in a lot of your damage mitigation achieved by simply being airborne, avoiding horrors with well placed/timed leaps. The following is a recording of the third, on-time attempt.


Thankfully the GRift was nice enough to grant me a well placed power pylon and give me Hamelin as the final boss. This particular boss is a Barb's best friend, allowing one to maintain maximum rampage stacks for most of the fight, providing a considerable damage and tankiness boost.

It is interesting to note that, at the time of writing this, of the other 49 Barbarians in the top 50, 46 of them are Raekor Barbs - a Furious Charge glass cannon fishing build that makes me ill. The 4 of us who are LeapQuake Barbs are ranked with Paragon levels as follows: 16th (2063), 27th (1570), 46th (1065) and 49th (1001). By comparison, the number 1 position is held by a Raekor's Barb with Paragon level 3101! By comparison, it seems I play hardly any Diablo III at all.

I have also been playing Season 5 content on a monk with two good mates who have progressed very nicely for themselves. I will likely continue my Diablo III playtime with them.