Radicool Trip 2 ~ WGD ‘Broken’ Two-Week Competition

The first thing I notice as I write this is that this is my 100th post on this blog! That averages out to a post every 10 or so days, so I really need to increase the frequency of my posts. I did want to do something special when this milestone came by, but I couldn’t think of anything I could do, so I’m just going to post as I normally would. Thanks to all my readers for supporting me up to this point! Hopefully there are many more posts to come. Also, I’m 13 days late with this post, since it’s the day before the two-week following this one. Ah well, I’m not known for my punctuality.

The themes for this jampetition was Broken, but due to an extra talk scheduled by the society, it lasted three weeks instead of the usual two. I guess that makes the title of this post quite misleading, but that’s not my fault! I decided to make a sequel to my previous game, Radicool Trip, although the gameplay is completely different. The game is also a sort-of 2D-3D hybrid, in which the world is 3D but you can only view the world from one plane at a time with an orthographic camera – that is, one that ‘looks straight’. It’s hard to explain, so here’s a screenshot:


I like how the psychedelic colours for the background turned out.

The flagship mechanic of the game, which is unfortunately very difficult to show off with images, is the ability to flip the world around in the X, Y and Z axes. Imagine Fez, but instead of just rotating the world left and right, you can rotate it up, down, clockwise and anticlockwise too. That’s what the UI in the bottom-right corner is for. The controls are a bit awkward, but it’s the only way to represent three-axis world rotations. I’ve tried this before unsuccessfully in a 3D game, so I was happy to figure out how to accomplish it. You can move the player left and right using A and D, or by flipping the world so there’s empty space below you. But beware, falling off the world will respawn you from the beginning of the level.


Of course I spent ages on text engines. What do you take me for?

A lot of the development time went on improving the text engine from Radicool Trip 1. It’s far more efficient and uses a better font than the previous engine. It’s also far easier to use, although I rushed the end of the game so it’s also very buggy. It worked out for the best though, because that made it fit the theme! There’s a bug where rotating the world and falling through two text triggers in a row causes them both to try and render at the same time, and another bug in the penultimate level that sometimes crashes the game inexplicably. I also set the wrong target level on the penultimate level’s goal so it sends you back to the first level, so it’s almost like some pretentious view on the repetitive, cyclic nature of life or something like that. But I swear it’s not.

I tried to write a bit of humour into the characters’ lines, although I also wrote them in about an hour before the jampetition showcase so it’s probably a little rusty. I’d really like to make an RPG of some kind at some point, so hopefully my shiny (yet broken) text engine will be of a lot of use for a project like that.

Anyway, you can find the game lurking in a corner of the internet somewhere! That horrifying corner is located on the very convenient link below.

The theme for the next two-week competition is Power, so you’ll very soon be seeing something I’ve been saving for a while. Plus, I’ll be posting about the WGD 48-hour game jam that happened this weekend even sooner; the theme for that was Translation.



A Game Design Tip a Day #11 – [Unity Physics] 2D Physics Effectors

This series is quite obviously no longer daily, since I’ve not updated my blog since the start of September. However, now that I actually have free time (Metal Gear Solid V came out, then I moved into my new flat ready for the second year of uni, hence the lack of blog time), I’ll try my best to continue the series. That is, until term starts and assignments start hitting me at Mach 3 speed.

2D Physics Effectors are pretty new in Unity. You could be forgiven for not really knowing much about them, since they came out with little fanfare back when Unity 5 launched and got largely drowned out by all the hype about physically-based rendering, global illumination and whatnot. For you guys still using Unity for your 2D games, these effectors will probably be a godsend to you. I’ll be covering all four of them, and to accompany this post, I’ve made a neat little demo scene just below for you to visually see what each effector does. Oh how I spoil you lot! I’ll also include the entire source project in case you want to tinker around with it.

Gimme the demo scene!

I tried using Unity’s WebGL export option to make it easier for people to view the demo scene, but it’s slow as hell to compile and only really works if you just happen to have a server ready to host it on. Instead, I’ll have to put up a series of download links, but hopefully I can manifest an easier way to do it next time. All the images below are from the demo, because there’s no real way to show the effectors in action unless they’re animated.

Area Effectors


This type of effector is handy if you have something like wind in your game and you want objects to be forced in some direction while they’re inside an area. It uses a trigger collider to detect Rigidbody2D objects and then adds whatever force you’ve specified (you provide a magnitude and an angle, since this is in 2D). You can also supply both regular and angular drag to objects in the area effector, and you can specify where the force is applied with the ‘Force Target’ option; choose the rigidbody and the force is applied to the centre of mass and no torque (turning effect) will result, or choose the collider and it’ll be applied to the collider’s centre point, which results in a torque if the collider centre happens to be different to the centre of mass’ position.

Point Effectors


Even wanted a magnet in your game? Then this is the effector for you. This one works by defining a point in 2D space (either the rigidbody position or collider position) and providing an outward force from that point to whatever objects are inside the trigger. You can even provide a negative magnitude and your Point Effector will act like a tiny planet. Most of the other options are straightforward, but ‘Force Mode’ is pretty important – set it to ‘Constant’ and the same force is applied to objects, no matter how far away they are from the effector. Set it to ‘Inverse Linear’ or ‘Inverse Squared’, and the attraction/repulsion will get weaker the further an object is from the Point Effector. ‘Inverse Squared’ will most accurately represent real-life gravity.

Surface Effectors


These ones may as well be called Conveyor Belt Effectors. Plonk one of these on a surface and change the ‘Speed’ parameter to change how fast these things move, with negative speeds causing a change in direction. You can add a bit of variation to the speed too, in case you want a conveyor belt that jerks when it moves.

Platform Effectors


Platform Effectors are a simple way of adding one-way collision to platforms, or you can turn off the one-way collision and have it act as a platform without friction or bounce on the sides. You can also set the maximum angle for what is considered a ‘side’ for the friction and bounce properties.

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:


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.


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!

Two-week Competitions: ‘Spooky’ and ‘Growth’

That’s right, today’s going to be a special two-game bonanza! Well, really it’ll just be one game and a pretty cool tech demo, but it’s generous nonetheless. Both the following games were made for two-week competitions for Warwick Game Design society, and made by the same two guys that made this.

Lavender Town, theme: Spooky

As the name suggests, it’s based on Lavender Town from the original Pokemon Red and Blue. The general atmosphere of the town is such a creepy experience, how could we not make a game based on the creepypastas spawned by the games? Obviously we wouldn’t completely rip off a completely-true, legit story such as this, so we did our own spin on it.



It’s a relatively short game (it’ll probably take you no more than 5 minutes), but it took a lot of work to pull off. We used a lot of resources for this one, such as a lovely glitch shader for sprites in Unity, plus of course all of the original music and sprites (which, because we’re idiots, we decided to copy out entirely by hand. At least we’re better at pixel art now).


The really cool glitch shader, mid-glitch.

If you’d like to give it a go, then you’ll find it in various places – either on IndieDB, on my Dropbox, or on the Warwick Game Design website, where you can also see everyone else’s entries.

Fractal Mountain Generator, theme: Growth

This game doesn’t really have much game in it at all, but it is pretty cool – it’s a random generator that subdivides a mesh over a number of iterations, and moves around the vertices a little to produce a fractal mountain. In an attempt to put some actual game inside it, there’s a red cube that spawns in a random place and drops down somewhere on the mountain, and you have to find it.


Only the highest quality textures.

There really isn’t much to do, except appreciate the fact that this game might not have existed, had we not found all the hidden bugs in time. Seriously, Tom and I probably crashed Unity more times for this project that we have for everything before this combined. If you want to give it a go, you can go grab it from my Dropbox.

fract-02Actual games are overrated; tech demos are where it’s at.

I’m also working on the next project by myself (although I’ll help Tom when he gets an idea, because I’m obviously such a nice person). The theme is Micro, so my idea is a little guy called Sam who inhabits a computer, and has the ability to change size and gravity to navigate through to the end of a few levels. Here’s a teaser image:


*Hop* *Bounce* *Boing*

Hopefully this time it won’t take me forever to get around to posting about the game!


Project Spikes Update #5 – Fields and Laser Improvements

Time for another update! To kick this one off, I’ll introduce a new feature: fields!


My laser arrays are much purpler than yours.

The red laser fields harm the player, while the purple ones destroy physics objects such as cubes and turrets. When the player goes through a red field, you die instantly too, so it’s probably best not to let that happen. These new fields are ripped from the old project mostly, but with a new appearance and a bit of new functionality, both of which slot nicely into the other game features (it’s lasers all around here). There’s also another tweak to lasers – I refer you to an image from last update:


Entanglement. I ain’t having no quantum physics going on here!

As you can see, the laser beams don’t line up correctly and look like something MC Escher would draw. But I’ve changed the lasers to use a different shader, so they’re less solid-looking than before, and render correctly, giving a more subtle look. Talking about tweaks, the Force Gun provides force in a different way than before, in that it doesn’t really apply a force, it provides an impulsive… well, force I guess. Physics nerds will probably understand the difference, but for the average Joe, that just means the movement of objects is a bit more instant.

To accommodate the fields, I’ve split Tutorial 2 into two, and tweaked both halves a bit, so there’s basically a new tutorial level to stop the tutorials feeling like an avalanche of features and instructions.


Things are starting to look a lot more colourful!

In the background are the red fields that kill you. You’ll also see part of a TV screen at the top of the tower – remember back in the real early version of the new project, when screenshots were added? You could press F5 to take a screenshot, and it would render the image to a screen in the level. That’s been added back, but this time the screens have a simple model. Every tutorial level has at least one screen, so you can see your last screenshot whenever you want.

I’m also partway done with the turret texturing job, which is taking much longer than anticipated. I’ve tweaked the angry turret face, and made one for destroyed angry turrets.


No, Steve, noooo! I’ll get revenge for you!

Next update is going to be a big texturing/modelling update, because I’ve been putting off replacing placeholders for a long time (the Force Gun springs to mind, however hilarious it is). You can find the update over at IndieDB once it’s uploaded/authorised, so have fun playing! Don’t forget, this update contains all the features I mentioned back in the Update #4 post, including better turret collision and different textures on cubes based on how damaged they are.


Project Spikes Update #4 – Improving Physics

This update doesn’t have a download to accompany it, but I decided to at least tell you guys how things are going. Or I could disappear for a couple months, but would I do that? (Please don’t answer than, I’m a terrible developer. Development team. Developtron.)

I’ve been working a lot on the cubes and laser turrets in particular. Whereas before the cubes would simply disappear when the fell of the end of the level, now they have a death sequence, where the cubes now shrink into nothingness, but by the next downloadable version, there will also be a particle effect when the cube dies.

Additionally, the evil laser turrets can now harm good turrets and cubes (we offered them anger management classes, but all they did was turn their lasers on us). To show the level of harm inflicted upon the poor cubes/turrets, their texture will change as they get more hurt, to look increasingly abused. I’ve finished the beat-up textures for cubes, and by next update I’ll have done so for turrets, too, along with textures for turrets.


From the bottom-left, going anti-clockwise: Pristine, Used, Chernobyl.

I’ve also made slightly better models for turrets and I’m halfway through texturing them. The good turrets look much the same, just with a couple more details on the legs and parts of the front, but evil turrets look more like the good turrets in construction, with a bit jutting out of the bottom with the second laser coming out of the lower part. But the best thing about the evil turrets: they now have angry faces!


I’m not sure if the angry turret is funny or creepy. Or both.

This was a very comical suggestion from a friend, but maybe it needs more work. However, the angry eyebrows will stay. When either of the turrets dies, it turns into a pile of debris, which you can see in front of both turrets. Then you can fling the debris around like no tomorrow! You also can’t collide with the debris, so you won’t be subjected to a horrible bumpy ride while walking over it, and when you pick up a not-dead turret, you won’t collide with it, which was a problem before.

Under the hood there have been a lot of optimisations with turrets too, mostly that evil turrets now don’t have two turret scripts attached to them as I’ve re-written some of the laser’s code, so they use less memory. Which is always a bonus, because everyone loves having RAM lying about. There’s also a couple less interesting tweaks and additions to the pause menu, but no-one cares about that because it doesn’t have eyebrows.

Well, that’s about it for this update. I’ll keep you posted on how things are going, and I hope to put out a new download soon. I may also have a new level done by then, but we’ll see how that goes, because I might improve other stuff first.


Project Spikes – Angry Lasers

Here’s another update, with even more lasers!


Oh yeah, two lasers. Swag.

Double Trouble

The red laser turrets are evil –  they’ll try to kill you with death and dying and lasers. It’s not enough to have just one laser either, they have two just to make sure. Also in this update are the reflective surfaces I promised last update – they’re the shiny walls in the background of the screenshot above. They’re used to guide lasers past barriers to activate laser collectors, a pretty fun feature.


Reflecting lasers? How do I give you money!

You’ll find these lasers in one of the newer tutorial levels, which have been split into smaller sections so people don’t get overwhelmed by features. But that’s not all the laser goodness I have in store for you my good people, because there’s now a wall-mounted variety which stays static, so you’ll have to dodge it without blasting it out of the way.


Because moving about is soooooo mainstream.

What else is new?

Well, there’s also two varieties of button that will activate events in the game – one you can press with the ‘E’ key (which can be configured in the startup options),  and another is activated by shooting cubes at it. Both are found in the new tutorial levels. Along with this is a bit of new scenery, in the form of bridge and fence models, which break up the monotony of blue blocks.


Ooohhh, bridges are cool, and so is the colour red!

To go with the new buttons, I’ve also added a new cube spawner which will plonk out a cube for you to play with. Of course, it’ll only let you have one at a time, because any more than that would be greedy. The cube detectors have been improved massively too – now they actually steal the cube you put into them, so you can better tell when it’s been activated. Both the spawner and detector need textures, and at some point I need to make a turret spawner, but this is a good start.


Everyone loves the classic red button, what other colour would it be?

Well, thanks for reading, as always you can go download the update over at Indie DB. It might take a while for the update downloads to be authenticated by them, but once it has been, then have fun playing.