Textures, Finally! – Project Spikes 20/10 Update

I’ve been busy the past two weeks with my UCAS application and wasting my life playing Pokemon Y for hours on end, so I skipped last week’s update and worked towards this week instead. I’ve started the second world, which I’ve decided will be a maze world (it’s gonna be a-maze-ing, I promise).

spikes-23As you can see, I’ve also added blocky textures to the floor and walls, giving the game a nicer feel; I will make some textures to add to world 1 too, in the same blue colour scheme as the rest of the world. World 2’s colour scheme is brown, and as such, the skybox is also brown. I have redesigned turrets slightly, and applied similar textures to them, in red.

spikes-22To show players what to do, I’ve added a little tutorial screen, accessible from the start menu, that demonstrates the contents of the game and what the aims are. As features are added, I will expand this screen and perhaps make a playable level that guides the player through the game’s controls, features and aims.

I’ve had a lot of feedback asking for checkpoints in the longer levels, and in this update I’ve added them; currently they’re only invisible areas you can walk through, prompting a little box saying “Checkpoint reached” to pop up, but later I will make a proper object to stand on, and perhaps some particle effects to accompany respawning. Once you die, you now have a choice to return to the start menu and start the game again, or return to the level you dies in and try it again from the start, preventing you from having to do every level again to reach your death point. There is another new option on the start screen to go straight to the newest level too, if you don’t feel like playing all of the first world beforehand.


There have been a couple of tweaks to some levels too: level 4 has been redesigned a bit to make much more sense than it used to, and the upper section in level 5 with the moving spikes has been moved, as crouching and avoiding the spikes at the same time was annoying.

You can play the game in the usual place, any feedback is greatly appreciated. Have fun playing!



Day 13 Progress

This is the download link to the latest version of the game:


I’ve been working on making new terrain for the levels in my game. The levels are a bit basic at the moment, and they don’t have many features, but they are much more interesting than what I had before. I have been experimenting with heightmaps and the Unity terrain generation to get better level terrain, and I am happy with the result. I had a few problems initially because using heightmaps in Unity requires .raw files, which are basically image files with very little formatting, and I am using GIMP, which cannot save to a .raw file. I found a program that can convert png files into raw files though, so I got it working eventually. Here’s a tip: if you have Photoshop, use that, it’s as easy as just saving to a .raw file…  hub_world_1

This is the heightmap I used for my hub world. I got this through a quick Google image search but you may want to create your own, like I did for my other levels.

A heightmap is basically a top-down greyscale view of your terrain, with white areas highest up and black areas lowest down, and grey in-between. When this is imported into Unity using the Terrain feature, it automatically creates terrain to match your heightmap. That makes it much easier to create your levels. You can then ‘paint’ your terrain with any texture you want, and bam! You have your basic level. Then you can just add objects in, like scenery, enemies and collectibles, and you have a game. I need to add some enemies and scenery, but I’m happy with my current progress.

I have also been working on getting my character to pick up gems, and it finally works! There is no counter to actually keep track of how many you’ve picked up and they have no function yet, but this will be implemented soon. The way I fixed it is by adding the ‘Rigidbody’ component to the box collider my gem pickup script was attached to, as this allows the ‘OnTriggerEnter’ function in the script to work. Basically this function is activated when any object with a collider component enters the collider of the object I’ve attached the script to, in this case the player. When activated, the script checks for any objects with a “Gem” tag, and destroys it from the game completely. So now you can pick up gems. Yay!


This is the GameObject that handles all the gem grabbing.

I have also made a very simple start screen with two buttons, one to enter the game and another to quit the game. This is made with Unity’s built-in GUI creator. In this title screen, you can also walk around with the player, a feature I want to keep in the final version. It looks like this: unity_platformer_4

When you press the “Quit Game” button, the application will simply close. But when you click the “New Game” button, it will enter the game, starting with the hub world. This has had a few minor changes too: unity_platformer_5

The terrain for this world was made with the heightmap above, and it made a level with a couple interesting mountains as well as a large flat land in the middle. The textures are just default textures provided with Unity, but I will change them to something I like a bit more at a later date. I’ve also added a skybox, which is basically an imitation of a sky, but the camera angle doesn’t let you see it very well. There is a portal in this world leading to “Level 1”: unity_platformer_6

This is supposed to be a desert-like level, but I haven’t had much time to work on it so the textures aren’t complete. The heightmap for this one was entirely made by me though. I’m very happy with the progress I’ve made here, and I hope you will all have fun playing around with this, and if you find any problems or anything you would like added, please don’t hesitate to comment below. Thanks for all the support.