Goodbye 2016, Hello 2017!

It’s tradition for blogs to look back at the achievements and notable events of the past year. It’s been a particularly turbulent one wherever you are in the world and is sure to be remembered for years to come. I keep joking that we’re currently living in the introduction paragraph of some future textbook on historical events; from all the establishment-smashing stuff that’s happened such as Brexit and the election of Donald Trump, to massive achievements in space exploration thanks to NASA’s Juno spacecraft, SpaceX landing a spacecraft successfully and the discovery of gravitational waves, to several horrifying terrorist attacks on multiple countries and countless celebrity deaths throughout the year, it’s easy to see why 2016 will be remembered as a turbulent year. But you can read about all these events pretty much anywhere else on the Internet and I want this post to focus on stuff surrounding game development, as that’s what my blog is for. It’s probably going to be my longest post ever, so hold onto your hats.

Although if you’ll allow me to get political for just a second, I’m pretty pissed that the happiest person this year is Nigel Fucking Farage, the hypocritical, toxic, lying wart. Man of the people my arse.

A review of my 2016

With that out of the way, it’s time to reminisce over the past year of this blog and then look to the future. First off, some boring stats: I posted 21 things this year, including this post. That’s less than once a fortnight, which makes me a liar since last year I vowed to try to post about once a week. Here’s this gem from my “Happy 2016 Everyone” post:

With that in mind, this year I’m going to try to get out one post per week – if not more – so I don’t fall behind and post nothing in a whole month (for example, December was completely dry this year).

This year will hopefully different. I should have enough to speak about, since I try to make a game for every WGD event I can, plus there’s 48 hour game jams such as Global Game Jam and Ludum Dare to give me an excuse to make games. On top of that, I’ll be putting out more posts about Honeycomb Engine which I hope are interesting for you to read. My posts about games should be more analytical and about reflection, while posts about Honeycomb will, for the time being, be technical explanations of the different aspects of a game engine.

Games I’ve made this year

I made or wrote about 6 games this year, which isn’t really that much compared to other years. That’s partially due to the fact I didn’t take part in August’s Ludum Dare this year and I also didn’t make anything for the whole of summer. On the bright side, I’ve had something to show at most WGD events since then, and I also entered Ludum Dare in December. I may as well list them all off here:

Slower Than Sound, for Ludum Dare 34, ‘Two-Button Control / Growing’ (which was actually in December 2015, but I only posted about it in January 2016)

ld34_01

My aim with this one was a simple game in which you fight spaceships one-by-one in a turn-based manner, but thanks to a couple of bugs and confusing turn indicators, the idea didn’t really work. It was difficult to know what you were supposed to do as I had no real tutorial, and the gameplay itself didn’t really make much sense. I think the art was nice, but that’s what took up a lot of the time from developing the mechanics.

Ritual Quest, for Global Game Jam 2016, ‘Ritual’

ggj16_finished_02

The premise of this game was simple: craft elements until you craft a ritual, at which point you’ve won. It takes heavy inspiration from games like Doodle God, with the exception that you can move around the world in this one, once you’ve crafted life. Then you can find new crafting elements in the overworld. Some of the recipes were very contrived, so if I were to revisit this game, I’d add more elements and refine some of the existing recipes with the new additions so they make a bit more sense. I’d also work on the UI a bit, although it was perfectly fine for a Global Game Jam entry.

Tappy Dev, for WGD’s ‘Fuck This’ 48-hour jam

Screenshot_20160324-191950

Because I’m a satirical bastard sometimes, I made a terrible clicker game about making games. I think it’s supposed to mock the repetitive nature of working in the games industry? Or I guess the game names and descriptions are meant to ridicule the games made by some developers. Either way, it’s a game where you mash your screen with as many fingers as possible as fast as possible, watch numbers go up and then every 1000 clicks you’ve “made a game”. Just your average mobile game, then. I made it as an experiment to see how different it is to make a mobile game than a desktop one, as the point of the ‘Fuck This’ jam is to use a tool, language, art style or platform you’ve never touched before. Using Unity was a bit of a cop-out, but at least I tried out mobile game development.

Shifting Dungeons, for Ludum Dare 35, ‘Shapeshift’ (which I also posted an update for)

press-02

promo-dev-03

The idea behind this was that the dungeons would be randomly generated, and the game would describe them as ‘shapeshifting’. Then I went one further and added powerups that morphed the player into different shapes to give them new abilities, but a couple of them were bugged out slightly so unfortunately it didn’t work out as well as I’d hoped. I did manage to get a few different dungeon varieties into the game, and if I were to continue it further, I’d probably try to nail down the fun factor and make the enemies a bit less bullet-spongey.

Ghost Party, for WGD’s ‘Spooky’ 3-week jam

screenshot_02

This one was fun to make, as I made it in just a few hours preceding the presentation for WGD games that week. I also seem to remember not having had much sleep the night before, so it really was a test of endurance to keep going and get it done. The basic premise is that ghosts flood in from either end of the screen and you have to click them, which makes them fall down. But each ghost had a randomised pattern – all followed a sine wave, but some were faster than others and occasionally a ghost would have an erratic and tall movement pattern that took them off the screen. They also had a z-position, so the ones closer to the screen were easier to hit but spent less time on screen.

If I were to revisit it, I’d probably give each type of ghost a unique movement pattern – some would have a sine wave, some would move linearly, while others might zig-zag and some might fade in and out of visibility while moving.

And finally, Chemical Chaos for Ludum Dare 37, ‘One Room’

ld37-01

With this one, I tried to channel my love of chemistry, although I realise that’s a tall order given how much some people loathe the subject. You’re given a series of simple chemistry tests – a distillation, a sodium + water experiment and a flame test – and it’s your job to keep them all going simultaneously. I wanted it to feel hectic and have lots going on at the same time, so I would have ideally added more minigames to the collection. I liked the idea behind it and think it could be a very fun experience if I polished it up a bit.

Honeycomb Game Engine

2016 is also the year I started on my game engine, Honeycomb, as my third-year project for my Computer Science degree. So far, it’s lacking in a lot of features, but it’s definitely on track for completion by the end of text term (and by ‘completion’, I mean of the features I’ve already planned. There’s no such thing as a ‘complete’ game engine I don’t think). As part of my plans for the engine, I want to make an example game with it once it’s feature-complete, so look out for that! I’m buzzing to see what it’ll turn out like.

honeycomb_logo

Games I played this year

I’ve really neglected actually playing games this year. I was discussing it with a friend the other day and discovered I could almost count the number of games I’ve played this year on one hand. And that’s not even just games from 2016, that’s all games I’ve not played before regardless of release date, excluding game jam games. Worse, the vast majority of them are on Nintendo platforms or are first-party Nintendo properties. I really need to diversify my game collection and maybe dig into my Steam collection in 2017! I’ll give a mini-review of the games I played here.

Pokken Tournament, Wii U

Image from http://www.pokkentournament.com/

I don’t play many traditional fighting games. But when Bandai Namco and The Pokémon Company teamed up to make a Tekken game with Pokémon in it, my interest was definitely piqued. It’s a fun game, even if I’m no good at it. I think its main strength is that it’s accessible to people who don’t usually play fighting games, and that’s definitely one of the reasons I like it so much. It’s also refreshing to see a Pokémon game in which the Pokémon make a bit more contact with each other, and with graphics like the ones on display here I’m excited to see what the future of Pokémon on the whole will bring, especially with the Nintendo Switch on the way. I’d love to see a Pokken Tournament 2, hopefully with a more in-depth storyline.

The Legend of Zelda: Twilight Princess HD, Wii U

Image from nintendo.co.uk

I’ve never played the original Twilight Princess on Gamecube or Wii, but I’d heard it was one of the best in the series. The first Zelda game I played was Ocarina of Time 3D, and I’ve been a huge fan ever since, so this purchase was a no-brainer. And how right everyone is, this game is one of the best games ever made! The dungeons are exquisitely designed and it feels as if every corner of the world had heart and soul pumped into it. The Wolf Link amiibo that came with the special edition is also the finest-looking amiibo to date. If anything, it’s just made me more excited for Breath of the Wild next year.

Star Fox Zero, Wii U

Image from nintendo.co.uk

The Wii U’s last moments could’ve done without a dumpster fire like this. It had some promise, but it let me down on almost every count. It’s boring, hard to control and I honestly couldn’t make it past the first few levels. I was lead to believe in reviews that the two-player mode was pretty fun and made it somewhat worth buying, but that’s a damn lie, it’s still hard to control and it made my boyfriend sad. Don’t buy it, for the love of all that is holy don’t buy it. I don’t care that reviews say it’s fine once you get used to the controls. In 2016, I shouldn’t have to get used to the controls! I would’ve loved a game that used the Wii U GamePad in an inventive, fun and refreshing way, but this game wasn’t it unfortunately.

The Legend of Zelda: The Wind Waker HD, Wii U

Image from amazon.co.uk

This wasn’t from 2016, but I only got it a few months ago. It’s one of the three games I played this year not from 2016! I also haven’t finished it yet, but so far I’ve been having lots of fun with it. The graphical style is unique and, while the Wii U hardware isn’t the most powerful in the world, no-one can argue that this game looks beautiful. I can’t say much else since I’ve not finished it, but the game and dungeon design is so far on par with other Zelda games. And the sailing sections help to break up the action with something a little different to what you’re used to seeing in a Zelda game.

Beat the Beat: Rhythm Paradise, Wii

Image from youtube.com

It turns out this is a great game to take to a university society dedicated to playing Nintendo games. It’s another one not from 2016, but boy am I glad I played this one! I’ve had the soundtrack stuck in my head for weeks and I’m still concerned for the mental well-being of the dev team. Seriously, can someone tell me what the heck is going on in some of these rhythm games? If you can explain what is happening in Donk Donk, I’ll give you a fiver. My personal favourites include Flock Step, Double Date (pictured above) and Flipper Flop.

Miitomo, Android

Image from nintendolife.co.uk

Miitomo is one of those strange little experimental games, or at least that’s what it feels like to me. It’s similar to Nintendo’s own Tomodachi Life in some respects, but lacking in many aspects. It’s a communication app at its heart and integrates well with My Nintendo with daily and weekly challenges, but it sorta got old very quick. Regardless, I had a lot of fun with it when it first launched, answering very strange questions and hearing my friends’ quirky answers. And if any word describes Nintendo’s very first mobile experience, it’s just that: quirky. I was a fan of the costume crossovers with other Nintendo properties – seeing my Mii in a Link outfit or wearing an Inkling hat was pretty cute. I’d love if they brought out a massive update to make this more enticing and bring players back, but I don’t think that’s on the cards unfortunately.

Rayman Legends, Wii U

Image from ubisoft.com

Another game that’s not from 2016 and also great to play with friends. It’s one of the best couch co-op platform games I’ve played in a while, and it lets you ‘accidentally’ punch your friends into a bottomless pit of death, which is always a great selling point. The music levels are especially amazing, with some of the best level design I’ve seen in a recent game. Somehow, a game this creative came out of the maw of Ubisoft! It can be found for dead cheap and it’s been ported to most systems since launch, so I’d recommend picking it up if you can.

Pokémon Super Mystery Dungeon, 3DS

Image from youtube.com

I loved Pokémon Mystery Dungeon: Explorers of Darkness back on the DS. In the midst of the billions of other Pokémon games I had, it offered something different, as I hadn’t played Blue/Red Rescue Team prior. However, Gates to Infinity, the first PMD game on 3DS, left me a bit disappointed, a popular opinion amongst players. It wasn’t bad by any means, and the concept of building a Pokémon Paradise was a fun one, but it just lacked the depth of previous entries for me. Super Mystery Dungeon was different – it has so much content, I don’t think I’ll ever finish it. The combat is as basic as it’s ever been, although some small additions such as emeras and alliances keep things fresh, and I felt the plot was a lot more refined than that of Gates to Infinity. So far, it’s the definitive Pokémon Mystery Dungeon game for me.

Pokémon Go

Image from gameranx.com

You might have heard of this game once or twice. Yes, Pokémon Go is the one game this year that you couldn’t avoid mention of if you tried, and like every other human being on Earth, I gave it a go. While it was fun for the first few days, for me, walking around and catching Pokémon started to get dull. I did have fun while it lasted and it’s wonderful that it got me walking around a bit more in summer than I usually would have. I also took over a couple of gyms for a while despite having few powerful Pokémon (it’s part and parcel of living in a rural town, I guess).

What I like most about Pokémon Go is that it’s made it a lot easier for people to go outside, make new friends and enjoy themselves. And to the countless articles decrying people as pathetic for needing an excuse to go outside, I say sod that; many people find it difficult to work up the courage to go outside because of anxiety problems, or they simply find it boring to go for a walk, and this app has provided what a lot of those people needed – an excuse to open the door. It can only possibly be a good thing that more people are getting active thanks to Pokémon Go and I hope developers jump on the bandwagon of geo-location apps and continue to do good for people’s health in a similar way.

Pokémon Sun, 3DS

Image from ign.com

There’s a lot of Pokemon on this list, and for good reason: it’s Pokémon! When you buy a Pokémon game, you’re almost certainly guaranteed quality, and this year gave us a pair of blockbuster main series entries in Pokémon Sun and Moon. It’s another game I’ve not quite finished yet, but already it feels a lot better than X and Y in terms of story. For one, your friends aren’t made of cardboard and actually have interesting personas, and the story is so far very focused on the island challenge. That’s another plus point for me: the 8-gym system has desperately needed a shake-up for a while, and the island trials do it very well, with the Totem Pokémon being a welcome change from gym leaders.

One thing I’m not a huge fan on is the fact that wild Pokémon occasionally call for help, which is usually not a problem unless I’m trying to catch a Pokémon and it successfully calls for help about 15 times in a row. It took me 20 minutes the other day to catch a damn Caterpie. A Caterpie! And they can do it completely for free, it doesn’t even waste their turn. It’s sometimes good for grinding EXP, so there’s that I guess.

No Man’s Sky, PC

Image from pcgamer.com

Ooooohhh boy. This game sure was controversial, wasn’t it? Well, right off the bat I’m gonna go and make enemies with half of the Internet and say I actually quite liked it. If we’re objectively looking at the game and not the situation surrounding it, I can totally appreciate why the game is not for everyone. It does get boring and there really isn’t much to do, but that’s what I liked about it, crazy as it seems. In a world where every game is vying for your attention by throwing tons of flashy effects and fast-paced gameplay in your face, No Man’s Sky is instead happy to let you sit back and walk around a planet at your own place, appreciating the beautiful pastel-coloured scenery before flying into space seamlessly and visiting another planet to find huge bulks of resources, just so you can do the same thing again.

While the ending was a complete and utter disappointment, I can’t help but feel that this is a game that shouldn’t have had an ending at all. Why would that have ever been a good idea? It’s a game that, at its core, works best when there are no immediate goals or aims, because that’s what made it feel so relaxing for me. I didn’t feel pressured to get to some location in a time limit and was having the most fun when I was idly watching weird creatures run around or just taking screenshots of the breathtaking procedurally generated surroundings. This game really is a testament to the power of letting maths make your game for you.

I’ve not played the Foundation Update yet, but I hear it’s a step in the right direction and I really, really, really hope that Hello Games continue listening to fans and making an effort to communicate, because that’s part of the reason so many people felt so burned in the first place. Oh, and the soundtrack by 65daysofstatic, Music For an Infinite Universe, is amazing and you should go buy it now.

Rhythm Paradise Megamix, 3DS

Image from nintendo.co.uk

If you own a 3DS and like rhythm games, you absolutely owe it to yourself to get a copy of this game. If I were to pick my favourite game this year, I think this would be it. The minigames are so ridiculous, so Nintendo, that you can’t help but love the boundless charm of this game. Each and every game is simple at its core but some are very challenging despite the simple controls and rules. The soundtrack is excellent and it’s stuck in my head worse than Beat the Beat: Rhythm Paradise‘s was. That’s helped by the fact that Megamix is a blend of other games in the series with some original games, so every game in Beat the Beat’s library bar 5 made it into Megamix. If that’s not a selling point, I don’t know what is.

I’ve got almost every perfect on this game, the hardest of which so far have to have been the Left- and Right-Hand Remixes and Lockstep, and I’ve got real close a couple of times with Final Remix, but I don’t think I’ll ever get a perfect on Machine Remix. Fuck the part near the end with the onions.

It’s not just games

Not everything I do is to do with games. Okay, most of it is, since most of my life is playing games, computer science, or the illegitimate child of the two – game development. But more importantly, there are some achievements I made this year that I may as well stick here, since I’ve talked about basically everything else I’ve done this year. First off, I got a boyfriend! He’s called James and he’s absolutely adorable, which I keep telling him just to get a relatively blank face in return. I would put a picture of us up, but he might kill me, so no. I’m also not sure if such a picture exists, we’re both rather shy. Second of all, I’ve continued my successful academic record at uni so far and achieved a first in my second year – a slightly higher first too, up from 71% to about 74%. Since second year is weighted twice as much as first year and both those numbers were rounded, that leaves me at about 73% overall, which is fairly comfortable into a first, although I hope to do even better this year if I can.

We also finally got Nintendo Society recognised as an official Warwick SU society (or, we will be next term). For those that aren’t aware, societies are like after-school clubs basically, and there’s a lot of variety in the types of societies found at Warwick, but one that didn’t exist when I joined was one purely for Nintendo fans. So for about two years now, a few friends and I have been working hard to set the society up, and we’ve been running unofficially for about that length of time anyway, which I think may have swung the SU’s vote. We mainly play Smash 4, but there’s also a lot of Pokemon and other Nintendo games at some of our events. I’ve also unleashed Rhythm Paradise on the society and watched them crumble, although we eventually beat Remix 10 on Beat the Beat. And lately, we’ve diversified our events to include other Smash games, which I’m terrible at. I think I’ll stick to Smash 4 and just Link everyone into oblivion with my dash attacks in 8-player smash instead.

Looking to the future, 2017

Ah yes, the future. I’m not psychic, but I can at least make educated guesses at what 2017 might hold for me. Firstly, I’ll get a version of Honeycomb done. It excites me to no end thinking about how far I might get with Honeycomb, and what sort of games it might be capable of making. It’s running using the Vulkan API, which is basically OpenGL’s baby. Vulkan gives more power to the programmer, which means I’m responsible for setting almost everything up where OpenGL would’ve done stuff for me, but the end result is that games don’t need to rely on bulky graphics drivers quite as much, removing driver overhead and resulting in increased performance. Hopefully it means games developed with Honeycomb end up being fast.

Also in 2017, I hope to make more games than in 2016, since 6 isn’t very many. I’ll aim to enter as many game jams as I can and try to make something really cool over summer this year. Above all else, I hope 2017 can be a happy and successful year for you all, even if 2016 maybe wasn’t the best year for everyone.

Advertisements

Ghost Party ~ WGD ‘Spooky (2016)’ Three-Week Competition

It’s been a while since I’ve properly sat down and made a game, apart from the Zero Hour Game Jam, which I entered with an entirely broken game about shooting ghosts with a flashlight. Today, after having three weeks to work on a game, I decided to start one the day it was due to be shown.

3dspooky5me

My Zero Hour Game Jam entry, the lesser of my two games about flashing ghosts.

I decided that my Zero Hour Game Jam entry had a few flaws, the main one being that you magically die after about 30 seconds every time without being visibly hit by anything. You hit ghosts by aiming straight at them; unfortunately, this means you have to aim the centre of the screen at them as the game uses a raycast, but there is no crosshair so it’s almost impossible to tell if you’re hitting the mark except that the ghosts turn red.

I did like the idea of hitting ghosts with a flashlight though, so I kept it and made a brand new game today with a different art style: crayons. You might think I’m crazy, but when you’re time-constrained, it always helps to think of quick hacks to make things easy. I could have just as easily used normal coloured pencil to draw everything, but a bad artist (or in this case, a rushed one, although I’m not exactly Picasso to start with) will always make coloured pencil look crap. On the contrary, when someone thinks of wax crayons, you think of a 5-year-old’s drawing tacked onto the fridge. Essentially, wax crayons have a very low skill ceiling and I exploited the heck out of that. It made for a very consistent style and I actually really like it! It’s similar to the style I used for Tappy Dev, but I think it’s possibly better.

screenshot_01

Yellow ghost is far too happy.

The general idea is that ghosts spawn from left and right, and it’s your job to shoot them down with your flashlight by clicking on them. It’s better than 3DSpooky5Me (my 0h game jam game), in that you can see the mouse cursor to indicate where you’re aiming. The ghosts are also much cuter.

Given more time, I’d go back and make sure the proportions of all the objects in the game were consistent. As you can see, the ground’s outline is very thick compared to that of the ghosts, despite being drawn using the same crayons. I’d also change the design of the gravestones and the large tombstones, since my friend said they look like printers. While the thought of a haunted Konica Minolta fills me with glee, I might save that idea for when I’m in a real jam.

I also need to change the mechanics a bit. Similar to the 0h Game Jam, I didn’t make the flashlight affect an area, but stuck with a raycast; having the flashlight hit all ghosts in its range when flashed would open up the possibility of combos and make the mechanic feel more satisfying when you line up 5 ghosts in the same flash. Currently, the score increments by a strange formula I devised based on the speed, sine-waviness and z-distance of the ghosts, but I feel this should be better communicated to the player, as it’s difficult to even notice how many points you got for hitting one. Furthermore, one thing the game lacks entirely is a lose condition, which I was minutes away from getting in the game, but was hindered at the last moment by having to go to the WGD event in which I showed the game.

But the biggest and funniest problem in this build is the unintentional and bewilderingly fast escalation in difficulty. Above was a screenshot from about 30 seconds in, but the following one is from a couple minutes in:

screenshot_02

Points for spotting the cameo appearance.

At the start, the difficulty increases in a linear fashion. Every 5 seconds (although I’d planned to change it to every 20 or 30 seconds and forgot), the time interval between ghost spawns goes down by a fixed amount. It does this 10 times, then it starts going down in a geometric progression. You can see where this is going. Every 5 seconds, the time between spawns is divided by 1.2. Then you end up with a ghost party. It’s a classic example of “oh I’m sure this arbitrarily-picked number will be fine”.

At the early stages of development (read: while zoning out in a lecture this morning, thinking about spooky ghosts), I considered adding some element of a rhythm game into this, but as you’ll find out there is no sound whatsoever. It’s somewhat inspired by the Sneaky Spirits game from Rhythm Paradise (or Rhythm Heaven, for you Americans). I wanted each ghost type to have their own behaviour, but this didn’t come to fruition and they instead all follow sine waves of varying frequency and magnitude.

I wanted the spiky green ones to zig-zag, the puffy white ones to flutter upwards and fall back down a bit constantly, and the blue ones were going to have Pacman-style grid movement. The pale ones were going to have an animated tail that wiggled around and the rare Drifloon (please don’t sue me, Nintendo) would’ve occasionally grabbed a headstone with its tassels and flown off with it. Maybe next build!

All things considered, the most important lesson I’ve learned today is that I should drawn with crayons more often. It’s really easy and looks pretty nice, especially with the Paper Mario-style aesthetic. It’s also not really apt to keep referencing ‘today’, but I’m not a clock so it’s fine. You can download the game here.

Slower Than Sound ~ Ludum Dare 34 – Two Button Controls / Growing

I’m not even going to pretend this post is supposed to be on time. Ludum Dare 34 happened on December 11th-14th, which means voting is already well and truly over and I’m just terrible with getting these posts up in time. Oh well, we’re here now, so it’s time to get started!

The theme for this one was *somehow* a tie between Two Button Controls and Growing. Since I wanted to cover both bases (not required as participants were allowed to choose just one theme), my original plan for my game featured both, although I settled for just Two Buttons in the end because of the huge time constraints. My game features two spaceships that shoot at each other (similar to Faster Than Light, hence the horrifyingly bad title), trying to target the other ship’s weapons. Both ships are able to shield each of their weapons temporarily in the hope that they’d be able to block out incoming enemy bullets. The game is turn-based, so one player attacks while the other defends.

The Two-Button part comes in with switching between weapons; on your attacking turn, you press Q to toggle which of your weapons you wish to fire, and E to fire the current weapon. On your defending turn (the enemy’s attack turn), you similarly press Q to toggle the selected weapon, and press E to raise its shield temporarily.

ld34_01.png

The game is a bit buggy, but at least it’s pretty.

The original plan had you navigating through space on some world map using Q and E to turn left and right, flying forward automatically and trying to get to the next galaxy while avoiding asteroids. However, I didn’t have enough time to even attempt that part. In that version, you would trigger battles randomly, with enemies getting stronger as you progress. You would also be able to visit shops in order to upgrade your ship and buy more weapons; the annoying thing is that I had the code in place to add more weapons to your ship, but I couldn’t showcase it properly because the game crashes on level 2 (I eventually made the game just a series of 10 ships you have to fight, gaining weapons some levels).

ld34_02.png

I also liked the effect of blown-up ships.

What started off as a pretty ambitious project got somewhat out of hand as I spent too long on the art. I’m pleased with how the game looks, but I wish I’d had all the key gameplay features nailed first of all. This Ludum Dare entry was the antithesis of how I usually work; this one sacrificed features for looks, while for example, my Ludum Dare 32 entry, I Will Be Happy, did well due to its simplistic graphical style and focus on gameplay. In the future, it seems I’ll be making sure I shift most of my attention on the gameplay. That said, I’m happy with the graphics – the stars look very nice as they scroll in the background and the ships, despite their minimalist look, are pretty pleasing to look at (if I do say so myself of course, I’m always modest, me).

I also didn’t rate enough other Ludum Dare games for mine to get any rating, although it was good fun making this entry. Here’s to the next Ludum Dare in April, hopefully I’ll do better next time round!

If you’d like to give it a go, you can try it out on the Ludum Dare website – there’s a link on there somewhere. Have fun and don’t get too confused – the game is a bit messy so I’d like to clean it up a little at some point.

Game Design Tips #13 – [Unity] ScriptableObjects and Custom Project Gizmos

It’s been a while since my last Game Design Tip, but I’m back and ready to show off some cool things I started using very recently. Ever wanted to save data as an asset in Unity? Turns out, there’s a dead easy way to do that. I’d heard of ScriptableObjects before, but not used them; they’re a godsend for any task where you just care about keeping hold of static data for something – weapons, enemies, item drops, you name it.

I’ll take an example I was working on the other day. I have a load of guns that the player may own, each with their own cooldown rates, damage, clip size and whatnot. My strategy at the time would have been to create a MonoBehaviour script that holds a bunch of public variables, stick that script on a bunch of GameObjects and tweak their variables individually, then save them all as prefabs. Upon needing to read the data, I’d instantiate one of those objects (or have them all instantiated at level start), then read off all the variables. In doing so, I’d waste a bunch of memory loading up GameObjects whose sole purpose was to hold data, clogging up the RAM with redundant data and making the garbage collector mad.

tip_13-01

That was dumb.

Instead, I should have used ScriptableObjects, something Unity provides for this exact purpose. Instead of extending MonoBehaviour, we’re first of all going to extend ScriptableObject. That’s going to tell Unity that this script is special, just like every one of my readers. That’s my flattery quota for the day met!

tip_13-02

You’ll also notice we gave the entire class the [Serializable] attribute. This is provided by the System namespace (hence, that’s included on line 2) and tells Unity we’ll want it to do stuff to it to make it visible in the Inspector. In reality, it’s a lot more complex than that, but we don’t care for now, do we? We just want our data saved. Oh, and I’ve stuck this class in the WeaponClasses namespace for the hell of it, but you can ignore that if you so wish. In my example, WeaponType is just an enum to deduce which class the weapon falls under.

Now that we’ve gone about making our data serializable, we need a way to make these new Weapon objects. There’s probably many ways to do this, but I’ve used a bit of Editor scripting to get the job done. It might look a bit alien at first, but it’ll all start to come together soon.

tip_13-03

This is a brand-new script which doesn’t extend Monobehaviour, ScriptableObject etc. It just needs to import UnityEngine and UnityEditor, and the script must be placed under Assets/Editor. We use the [MenuItem] attribute to add a lovely menu entry for making new weapons – now, we’ll be able to click ‘Assets’ on the toolbar, hover over ‘Create’ and find ‘Weapon’ listed underneath all the usual entries. Clicking this places a brand-spanking-new Weapon under the path defined in the script (line 14) and focuses Unity on the new Weapon in the Project Window (lines 16 and 17). Just a word of warning – it’ll replace anything called NewWeapon.asset in that directory, so I’d rename it straight away! Now you’ll have an awesome new Weapon instance you can reference in your scripts without having to attach it to some empty GameObject.

tip_13-04

Not a typo, just a really fun thing for gunning people down.

I did a little more processing with mine using an additional, more complex Editor script to hide certain variables based on the type of weapon, but this is basically what you get when you click on one of your Weapon instances in the Project window. We’re done with ScriptableObjects now, but let’s go one step further and make a cool gizmo for our Weapons.

Weapon icon

This is the icon I’ll be using. It’s dead easy to tell Unity to use this for our Weapons; just save this under the exact name “Weapon icon.png” or “Weapon icon.tif” – only .png and .tif files are allowed. The syntax is [Class Name] [single space] [the word “icon”] [.png/.tif]. Super simple stuff!

tip_13-05

Now we have pretty-looking icons for our Weapons and a clean way to save data for each Weapon. Unfortunately, it doesn’t make them look different in the Inspector, but at least they have an icon in the Project view that makes them easier to find. I hope this has been helpful, and I’ll be back soon with more tips.

So you want to get started with Unity Game Development?

unity-logo

With the release of Unity 5, developers using the game engine have more power handed to them than ever. With an overhaul of the lighting pipeline with realtime Global Illumination and the audio pipeline with advanced audio mixers, and perhaps the most important new change, the Personal Licence, providing all engine features for free, now is the perfect time to start developing a game with Unity. But how does one get started? Here are a few tips if you’re making your first ever game.

Aim low for your first product

It doesn’t matter how ambitious you want to be; you need experience first. We all have that ‘great idea’, and the time will come when you’re ready to give it a go, but for now, you’ll need to take a step back to work on the basics. First of all, go grab Unity (this post will focus on Unity, but most of the stuff I’m talking about should be applicable to most game development tools), and make something, anything, with it. Make a primitive sphere roll around on a plane, add textures drawn in Paint, do anything you wish; just playing around and getting to grips with whichever editor you’re using will be an invaluable experience. This ‘trial’ stage can last as long as you want, but make sure you’re comfortable before moving on – my Unity trial stage lasted about two months (although you can see a definite increase in proficiency from start to finish). unity_platformer_17

Just make something, even a fundamentally broken game like my first attempt.

Use online resources

I can’t begin to tell you how useful the Internet is when it comes to tutorials, questions and answers, cheat sheets, podcasts, you name it. If you get stuck on something, odds are someone else in the world once fell into the same pitfall as you; seek out how they fixed the problem. Unity in particular has some of the best forums for help, especially their Answers section. Of course, you may also find it helpful to have a few books to hand, although these can sometimes be pricey. I’ll include a full list of resources that helped me at the end of this post, but as a general rule of thumb, give questions a quick Google before you ask them online.

The guys at Extra Credits are phenomenal – this video is all about getting started.

If it all falls apart, don’t worry!

It happens to the best of us. We slave over a project, we polish it to hell, we release it into the world and… and it just doesn’t work. We show it to a friend, and they produce a list of errors rather than the compliments and . Your game, for whatever reason, just doesn’t feel right to everyone who isn’t you. This is an extremely easy time to just give up on your project, but rather than sulking into a corner and throwing away the progress you’ve made, listen to the comments you’re getting and take them as constructive criticism. It’s much better for you if these fatal errors are found early on, so every time you implement something big in your game, go find a heavily critical friend and see what they think. And never, ever reply to someone’s criticism with a list of why they’re wrong – you need to listen to your target audience and market your game towards them. And besides, you’ve got this far already, so just give your game that extra push it needs and it’ll turn into the vision you had in your head when you began the project. spikes-75

Oh God what was I thinking.

My old game, Project Spikes, went through several iterations and confused players about 99% of the time. But I kept going with the project and attempted to fix as many of the problems with the game as I could, because it was a valuable learning experience for me. In the end, the project ended up down the toilet, but that doesn’t mean it was a waste. Many of the techniques and assets I developed are still useful now, so the game was a huge lesson in level design, asset creation and how to script with Unity.

Other tips

  • Make lots of small games. There’s no better way to increase your creativity and hone your skills than setting a small timeframe and aiming for a game that focuses around only one mechanic.
  • Use assets online. There are tons of resources and content-generating programs available, some with a free-to-use licence.

Resources I found useful

Unity-specific:

General Game Design:

Awesome Tools:

  • Bfxr – a sound generator. Great for sound effects and other little snippets of audio you need for your game, and easy to use, usable in your browser or as a standalone download.
  • Pyxel Edit – Very simple program, nice for pixel art, and cheap. There’s a trial version too.
  • Chronolapse – For anyone who wants to document their game’s development, this is a cool tool that takes screenshots every few seconds, then stitches up a video at the end. Great for 48-hour jams.

If you have any other great resources or tips you think I’ve missed out, feel free to comment below!

Ludum Dare #31: My First 48-hour Competition!

I’ve finally gotten round to actually writing about this, despite it taking place way back in December! For those who aren’t that familiar with Ludum Dare, the basic concept is that people from across the world spend 48 hours making a game to a theme that gets voted on by participants beforehand, and people taking part must make all assets and write all code during the 48 hours. There’s also a more lax Jam version, in which participants get an additional 24 hours, can work in teams and can use assets from anywhere. Because I’m an idiot, I chose the competition, not the jam. The theme was ‘Entire Game On One Screen‘, and since I was a little stuck for things to do with this theme (well, technical limitation, not theme), I ripped myself off. A lot. Some of the basics of the art and concept was taken from one of my up-until-now-unseen 2-week challenge games – this game to be precise:

sam-01

This is why I don’t write stories for two-week challenges.

Wow, you’re not dead. What have you been doing since your last post, 58 days ago?

Thanks for asking! Now, cast your mind back to the end of November. Yeah, that’s how useless I’ve been with this blog. The final 2-week challenge for the Warwick Game Design Society was ‘Micro’, which I actually won! That’s possibly because everyone had a lot of work due towards the end of term, but I’m still really glad I came first. The game I made was rather short, and involved a byte called Sam moving around through a (very abstract) computer, collecting powerups that shrink and grow him, and flip gravity. You can take a look at it here. I’ve only included a Windows build for now, but if you’d like me to build it for Mac or Linux, I’d be more than happy to.

Why the heck is this relevant?

Because the theme is so terrible, I was really stuck for ideas. I just needed to put something on the screen to play with, and my Sam sprite made this easy – I could re-draw it in about 10 seconds. Then I started screwing about with gravity, using my gravity pickups from Sam’s Micro World. Then I got portals working on the edges of the screen. Then I added coins, screen shake, sounds and many other cool little things, and it came together in the end – I got my very first Ludum Dare game put together within the time limit, in a surprisingly polished state. Give it a go in its competition state!

ld31-04Forever Falling, one of the most complete games I’ve ever made.

The most helpful thing about having a large platform to deliver this game to is that I got tons of feedback. There were a lot of positives; mainly, people loved the slow-motion level transitions, and the general gravity-bending mechanics. A few people also liked the tension when the timer was nearly zero just as they were at the end of the level. However, pretty much every comment on the game’s page said one thing that I overlooked for the entire competition: “it’d be nice to not restart the game from the beginning when I die“. I’m actually an idiot. If anything, it’s shown me how much I overlook in my own games – since I was playtesting each level individually, I didn’t realise that it was a problem. I didn’t do badly by any means though – I came 266th overall out of about 1300-or-so entries, even on my first try, so I’m very pleased with how I did.

ld31-05

Ahhh, why didn’t I make the player respawn at the start of levels!

It was still a thoroughly enjoyable experience, so much so that I’ll hopefully be doing the next one in April. I managed to get portals working in 2D – something I really wish I could do in 3D, but I have no idea how – and on top of that, the portals redirect gravity according to the direction they’re facing. You can also flip gravity at any point, which leads to pretty awesome, weird platforming. A lot of people liked smashing into walls, as it had a satisfying screen shake and sound effect, plus it gives you points, actively encouraging you to smash into everything at high velocity. I did a bit of work on it after the competition, and got a bit of a leaderboard working, plus a very important feature: you restart each level when you die, rather than the entire game. The first level will probably (definitely) be formatted badly, since it was a quick job with the Unity UI stuff, but give it a go if you’d like.

ld31-03Have another image, free of charge.

A bit sooner in the future, later this month, I’ll hopefully be doing Global Game Jam too. I’m super-psyched for it, hopefully it’ll be a bit more relaxed than LD31 due to it being a jam rather than a competition. I’ll be trying to not neglect this blog like I did at the end of last year (I’m a terrible person, I know), so expect to see a bit more activity over the next 11 and a half months. Oh, and happy late 2015 everyone!

A Completely Random Post #2, Plus a Free Game Reveal

Again I have found myself in the deep, dark pit of boredom. So, I’m gonna go ahead and defile the sanctity of the Internet with my random words about random things.

So, what are you gonna be talking about today, good sir?

To start off, here’s a picture of me from last Saturday, wearing cat ears:

10977_10201709556739280_8321185336860236513_n

When I give you this look, you know you’re coming home with me.

In less than a month, this guy is apparently going to uni. He’s about as surprised as you are. Yup, some guy with way too much of a smirk and sexy cat ears is on his way to Warwick to do all things Computer Science-y, and as such he’s clearly taken steps to up his maturity level. But since I’ll be doing a computer science course, that SHOULD mean that my work will go through the roof in terms of quality. In the meantime, I still have the rest of the month, pretty much, to get my game upto scratch. And that brings me to my next piece of news – my new game!

New game? What? Why? Where? How? This is new!

Boom! Right out of the blue! Well, the grey really. Time for the reveal of my brand new game, Four By Eight!

4x8-01

Well, well, well. A shiny new game, huh? I wanna play!

The basic idea of the game is that the world exists as a 4×8 array of tiles, as seen above. You control the white tile, and you’re only able to move up and down on the leftmost column in discrete steps. The goal? Avoid the grey tiles that move towards you at  increasing speeds from the right. Simple, huh? When I add a couple more features on top of that (don’t worry, I’m chock full of them) then I’ll put out a version for you guys to play.

The idea with this game is to keep the art style as minimalist as possible, while keeping enough stuff happening on the screen to keep players interested. Then, on top of that I’ll try keeping the game addictive, so there’s that ‘one more try’ factor, like all arcade-style games need to have. I guess that’s all I have to say right now about this exciting new project, so until next time!