Wednesday, October 18, 2017

QUT - Evolving one's Pedagogy

Since coming back to work at QUT, I have worked hard to evolve my teaching pedagogy further to make the learning processes I employ as efficient and worthwhile for my students as possible. Perhaps inspired by events at my previous employment, a place that emphasized the concept somewhat ridiculously (to it's own detriment), I have noticed gaps in the current curriculum offered at QUT that I feel I am capable of addressing in my own way.

Over the course of 2017, this evolution has come in several forms. First and foremost, I have returned to developing Unity game/genre specific tutorials for preliminary Unity units (e.g. IGB100 - Game Studio 1) taught at QUT. These units line up with other units running alongside the curriculum that I do not directly teach into, with the idea being that students can comfortably walk into these video tutorials with some prior knowledge of the software. The videos are similar to work I undertook several years ago (2013), from which I won a Vice Chancellor's Performance Award for significant contribution to University teaching. Developing them requires careful pre-planning and actual game production, often following a script and scheduling of tasks. One cannot simply wing it and hope that what is recorded is a timely and efficient production.

In addition to this, I have also put considerable effort into the assignment bases I use for more advanced scripting units. In particular, IGB383 - AI for Games is a unit I spent a great deal of time reworking the workshops and assignments for. The assignments themselves originate from semi-complete mini-games that I developed from scratch, complete with working mechanics, artificial intelligence and dynamic environments. I believe putting the effort into these works gives students the opportunity to focus on what is important (in this case, implementation of game AI) but also a platform for emulating game play elements in other subjects. Sometimes learning via example is the only way you can approach a topic, and giving students a smorgasbord of mechanics to harvest and evaluate is often beneficial.

Finally, I have undertaken an additional development task, producing globally applicable, degree wide videos regarding game design and implementation. These videos tackle not just technical Unity/C# topics, but project management and development life-cycle skills as well. It also affords me the opportunity to discuss certain topics which I consider to be very important game design skills and knowledge that are either taught degree wide or not necessarily covered at all during study at QUT. Some of these videos have been an absolute pleasure to make, especially ones where I can communicate some of the more nuanced aspects of game design. I hope to expand on this library, discussing source control, advanced game mechanics and scripting as well as more exploratory topics regarding modern day games.

Overall I have been rather enjoying my teaching run at QUT and hope I am kept on board to continue my work. I still have so much to do and many improvements to make regarding the evolution of my pedagogy.

Tuesday, August 8, 2017

None Shall Pass!

Season 11 in Diablo 3 has been an interesting one, bringing back many friends far and wide to witness the debut season for the 'new' Necromancer class. Having briefly tried the Necromancer pre-season and getting to GR80, I realised that, while the class is certainly enjoyable, the lack of gearing options severely dampens my interest in the class at endgame. Hopefully it is something that is addressed in the future.

Besides this, I have been rocking a Crusader this season, jumping back on the horse to figure out a comfortable playstyle, something I never did in the past. While I originally intended to gear towards running a thorns (i.e. damage reflect) build, I found that gearing for Roland's was quite akin to the old Hammer of the Ancients playstyle I became fond of playing as a Barbarian. As Barbarians have truly been left by the wayside for the last 4-5 seasons in favour of classes that, quite literally, are 10x more effective, jumping ship to a slightly better class employing a similar play philosophy has been advantageous. A lot of the 'tech' and realizations I made playing a Barbarian still work relatively well for a Crusader.

While a Crusader is certainly more cooldown/active defense dependant, similar passives and skills exist that give you strong defensive and, more importantly, sustain options, much like the Barbarian. I have started dubbing this playstyle "fish-tanking", simply because it attempts to maintain an adequate balance between the dimensions of your damage x mitigation x sustain fish-tank. If the dimensions of said fish-tank are inversely proportioned to the scaling of the other dimensions, then the sensible route is to maintain a balance between them to optimize your fish tank's volume. This concept certainly exists in a game like Diablo 3: stacking one type of stat reduces the capacity to stack another.

If your fish-tank's dimensions are 10 x 1 x 1, you will do some extraordinary damage, but you will die as soon as a mob touches you and won't even have the chance to sustain yourself. Your volume (or effectiveness) for handling content is 10. However, if you dial that damage back somewhat, take some time to consider your options in contrast to mindlessly stacking "MOAR DOMAGE!!", you might end up with a more balanced fish-tank of dimensions 5 x 5 x 5. Your volume (effectiveness) jumps all the way to 125. As you can see, that is a huge difference from 10.

Of course, the game's mechanics are not as simple as maximizing a fish-tank's volume. There are things that still kill me in 2-3 hits and bosses that are an absolute nightmare to fight. Additionally, the classes have varying degrees of sustain options, some more than others. The recent Necromancer addition probably having the strongest and most interesting. This philosophy does not work for everyone. However, it has allowed me to climb up to the relative power level of my much better geared Barbarian on live, clearing a GR85 in about as much time as my Barb would. I imagine that by the end of the season I will have eclipsed my Barbarian's power level and may have a new class/build to enjoy as much as HotA, LeapQuake and Whirlwind.

Fun times.

Friday, April 28, 2017


I havn't posted in awhile, so I thought it was about time to shitpost about some random epeen nonsense.

In Season 10 of Diablo III, Blizzard decided not to listen to the enormous library of constructive posts regarding class balance changes and instead decided to do their own thing yet again. This included buffing the highest performing classes even further and introducing Primal Ancient Legendaries.

Primal Ancient Legendaries (or PALs) are basically ancient legendaries that have rolled perfectly. They drop at an extremely low drop rate and are usually pretty crap. This is mainly because a) legendaries usually roll with terrible affixes, and b) terrible legendaries drop most of the time. Getting a well rolled PAL Furnace is extremely unlikely.

They also introduced a requirement prior to them dropping on normal/seasons. You need to clear a GR70 first.

This aspect of PALs has created enormous controversy within the Diablo III community, revealing some interesting aspects about the majority of people who play it. For most players, this 'gateway' is ridiculously unfair, requiring insane amounts of playtime to get thousands of paragon levels, perfectly rolled Ancient gear and leveling your gems as high as possible, not to mention a build that is different from what they are playing. This dismay has been expressed adamantly on the forums, with many people complaining that GR70 is far too high. For example, this post containing the following:

"... I can hardly do T13 let alone GR 70 with my DH. Now I know some will say, ''change this skill'', ''add this item'', blah, blah, blah. But the point I shouldn't have to min max that much! I have level 60 gems, 6 pc set, Ancient items, even Augments. I'm not an idiot or new to the DH either. It's just that GR 70 is a insane Gateway. Make the gateway 50 or 60 or take it away completely."

I had not realized this would even be a concern and initially interpreted the complaints as people joking/trolling. Admittedly my best geared D3 character farted at and completed a GR70 while I pushed to GR90 and beyond. Reading through the comments, it seems the community is very much split on just how easy a GR70 actually is. While I would calmly place my token on the 'is' side of the argument, it seems many, many players would disagree.

So I decided to conduct an experiment: How long would it take me to get to GR70 in Season 10 from scratch?

I decided to play a Demon Hunter, a class I had not invested time in since Season 1 and therefore have no understanding of their current meta. To be fair, I have played every other class in a season prior to this one at some point. Additionally, the Demon Hunter still appears to be the squishiest class in the game (at least on paper), so it would provide an additional challenge.

The end result is as follows...

I attempted a so-so GR70 about 15 hours in after completely solo leveling to paragon 463. I had no ancients, no augments, non-ideal gear rolls, level 50 gems and no prior attempts. I had 4 minutes to spare. What is annoying is that I know I could have done it much sooner if I had not screwed around trying to get Elemental Arrow to work better with the Marauder's set. Probably around the 13 hour mark.

So, in conclusion, people complaining on Diablo forums is nothing new and the GR70 gateway controversy is just further proof that some people don't know how to play the game. Which, for a game going on 5 years old is pretty sad.

I shall patiently await the Necromancer.

Thursday, November 10, 2016


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

Saturday, December 19, 2015

Work hard. Fight hard.

Damn, it's been awhile. Turns out working full-time and part time at two different places results in you having barely any free time. Who would have thought? This is especially true when you decide to supervise student projects at the same time. That is a story for another day though.

Anyways, while I havn't been doing as much gaming as I used to, I have been keeping pretty busy with video editing. While the discourse of those videos have not been about games, they are interesting projects in their own right. I will likely make a post about them in the new year, when I start doing more work related video editing too. Soon(tm).

So. Having a weekend to myself, randomly hosting a fight night, having a few people attend, playing some games and having some game footage to edit is a godsend these days, and something that I thoroughly enjoyed. The footage was mostly decent with some humorous  elements patched in. Hosting a double-elimination tournament was also entertaining for me. I will need to figure out streamlining the recording process however, as transferring footage between rounds was not practical. However, the end result is as follows (recommended 720p fullscreen):

I am pretty happy with it, considering I cannot really expect much more these days. I look forward to hosting more Fight Nights, with more recent and future games like Street Fighter V, Killer Instinct, Mortal Kombat X and Super Smash Bros taking center stage. Oh yes, Fight Night will go on. For as long as it has to.

Sunday, September 6, 2015


Hammer of the Ancients

Cost: 20 fury

"Call forth a massive hammer to smash enemies directly in front of you for 535% weapon damage. Hammer of the Ancients has a 1% increased Critical Hit Chance for every 5 Fury that you have".

There is something so unnaturally exhilarating about smashing something overhead repeatedly, with all your fury, until it ceases to exist. In Diablo 3, HotA, for the longest time, was the Barbarian's most reliable king-hit ability. With certain rune and elemental configurations, it packed an absolute whallop, as well as having an interesting crit chance mechanic for you to control, maintain and gear around. It was supremely satisfying to play with.

While it didn't exactly get nerfed, it became a significantly less useful ability in the Reaper of Souls expansion and follow up patches. Simply put, it hit like a wet noodle and was not useful for anything besides leveling. This was unfortunate for many Barbs, including myself, and resulted in many of us using more reliable but less gratifying Whirlwind builds to continue our journey of slaughtering hell's endless armies.

Join me now then as we see HotA return to form and enter the fray once more, bigger, better and more beasty than ever before in content patch 2.3. Open and rotate your eyes at the numbers that appear when gore splatters and monsters explode. Rip and fucking tear, motherfucker!

720p/1080p recommended viewing.

Update: GR65 Clear - 50th in World!