Thursday 27 September 2012

Eurogamer Expo 2012 Roundup

I am currently on the train back from having a day out at the 2012 Eurogamer Expo in Earl's Court. The event seems to have become the big UK gaming convention and I have enjoyed going every year since its inception. Each time it is a good look around at the current state of the games industry and get a good glimpse at the games that are coming out soon.

All of the usual suspects were out in force and there is plenty out there already on most of these games. Here I will just give a bit of my own thoughts on what I saw and found interesting.

Monday 27 August 2012

Ludum Dare #24 - Life Stream

This past weekend I took part in the 24th Ludum Dare game competition and it was a lot of fun! The theme of the competition was Evolution and I took it upon myself to make something a bit of a different approach with my game.

Take a look at my game Life Stream, which is available online here!:)

I will probably post a bit of a mini post-mortem at some point, as I learnt a lot from it. But for now, play it and the other Ludum Dare entries, as they are pretty good!

Monday 13 August 2012

Astro Junk Release!

Today I am happy to announce that I have made a thing that I can release onto the Internet. Even better, this is a thing that you can play right now by clicking here!

Introducing... Astro Junk!

This is a game that I started working on about a month ago and I have been working on it for about half of that time. I did all of the programming and Clarissa provided a lot of the artwork for the game. The game is now in a state that I am happy to release and is something that can be played! Astro Junk is a more expanded version of the classic game Asteroids with the controls designed to invoke the classic Asteroids feel. However the main difference is that the asteroids drop resources when destroyed, which allow the player to purchase new upgrades when the player returns the base.

Tuesday 31 July 2012

This LEGO Thing

Over the past few months I've rather gotten into this whole Lego thing. Somehow it never got it's claws into me when I was a kid, my brother seemed to be the one who was into the engineering aspect of it and he was the one who ended up with a lot. Apparently this love finally arrived for me about 15 years later and now I am officially an adult fan of Lego. I have been drawn to Technic, mostly due to the fact that I really enjoy piecing mechanical components together and seeing how it all works. It might not be pure Lego, but it sure is still a lot of fun.

Keep on truckin'!
This monster has fully functioning battery powered crane. The gearbox required to make it work is Lego wizardry.

Wednesday 11 July 2012

Gaming Archive: Ballistics

Here's something different for you and most likely something you have never head of before. When people come up to me and say "Hey, F-Zero / Wipeout / Some other sci-fi racing game is super fast" (a surprisingly uncommon occurrence if I do say so myself) I say "clearly you haven't seen Ballistics!"

It is at this point I receive a blank stare, to which I respond with:
"Read my blog, I will tell you all about it!"

Saturday 30 June 2012

2D Tile World: Part 2

This whole blog thing is going terribly! I haven't updated in like two weeks! This may have been because I have technically been working the past two weeks, but that's not the point. The point is, it's time for a new blog post!

Today I have taken it upon myself to get some stuff back on track with the tile project and the results are good! This morning I started with something not far off the program mentioned in my original post, however I have since added a lot of features.

A lot of these are hard to show off, so instead I will provide a list:

  • Mouse support
    • It is now possible to move the camera around by holding the mouse near the edges of the screen
    • Right-click scroll/dragging the view is also in.
    • Zooming with mouse wheel
    • Click to place blocks
    • Middle-click to remove blocks
  • Weather
    • Clear
    • Rain
    • Storms
    • Snow
    • Lava Rain!!!
This mouse support is a pretty big deal, this program now feels really nice to move around in, compared to before where I had to use a keyboard setup that just functional and not hugely pleasant to use. Also as part of this it is now possible to modify the generated world. To make things like this:

The ability to modify the generated world brings us things like... this? The bridge breathing dinosaur rock castle!
 I feel so proud of my bridge breathing dinosaur. Also note, water is currently falling from the sky in a rain-like fashion. Currently elements like water, lava and snow still do not react with each other, which is next on my list of things to change.

Zoom levels! Higher detail dinosaur!
I am pretty happy with this thing, apart from the fact that I still haven't managed to turn it into anything that even remotely resembles a game. That's also one of my next steps that I need to work out... maybe in the next post I will have worked out something!?!?*

*seems unlikely

Saturday 16 June 2012

2D Tile World: Part 1

I have been a bit quiet on here recently, but this doesn't mean that I haven't been hard at work. I have spent some amount of time creating a projects page on this blog which I will attempt to keep updated with the notable projects I have worked on. I have also spent some time tidying up one of my older projects, Anaconda, which I will probably talk about in another blog post at some point.

However, most of my recent time has been spent with a new project. This one is making use of my previous work on value noise (the technique that was used to calculate the 3D terrain in Project Alpha) but implementing it in a 2D environment.

I decided to do this as I wanted to see how versatile this technique truly is, also a 2D world will be easier to turn into an actual game. So far I feel like I have had a lot of success in producing an interesting looking world and I have a very basic feature set in place.

As a picture paints a thousand words and I can't be bothered to write thousands of words, here are a few pictures that show what the project currently looks like:

Wednesday 13 June 2012

Gaming Archive: World in Conflict

This wasn't originally going to be my next post in this series, but the sudden popularity of this game at the most recent BUNCS LAN made me decide to write about World in Conflict. The game itself is pretty hard to explain, however I will try to do my best.

World in Conflict isn't really the snappiest of names, but at least it escapes the trappings of the X of Y formula (just).

World in Conflict is a team-based real-time tactical strategy game set in an alternate history 1989 where the Soviets have decided to invade Europe and the US (A very different take on a cold war alternate history compared to Battlezone). The game has a large focus on competitive team-based multiplayer. Compared to other strategy games, World in Conflict has a much greater focus on unit control and special commander abilities and does not feature any base building. In the game, players buy units by spending points from a constantly replenishing resource pool and then these units are dropped by air into the game. Players use these units to engage the enemy and compete to hold as many capture points as possible.

Monday 11 June 2012

Unreal Engine 4 Tech Demos

If you have any interest in games will be looking like on the next generation of consoles and what the development tools are going to look like, you should watch these two videos.

Watching these videos makes me very excited for the next generation of games which will be coming in the next few years. The updates they have added to the Unreal Editor look like a major step forward, notably the real-time script debugging and hot-swapping are very impressive. Hopefully these tools will be coming to hobbyists in the form of the Unreal Development Kit at some point, like Epic have done with Unreal Engine 3.

Tuesday 5 June 2012

OpenGL: Terrain Project First Finale

It has been a while since I last posted about my progress, however I am glad to say that things have improved by quite a bit since then. A lot of time has been spent trying to get my head around how to dynamically generate new terrain segments, thankfully I did finally manage to come up with a solution that I am fairly happy with. This is a bit hard to show off in screenshots, but what this essentially means is that you can now keep travelling and the program will keep generating new terrain to explore. Originally I had hoped this could happen indefinetly, but due to the way I finally ended up implementing this, there is a limit to how much terrain the program will generate. The world is still vast though, and you will probably have gotten bored long before reaching this point.

Implementing a dynamically and procedurally generated terrain system was the main goal of this project, so I am very happy to have been able to reach this point.

Sunday 3 June 2012

Gaming Archive: Descent

Descent is another game that I feel does not get anywhere near as much recognition as it deserves, even though personally it is one of my favourite games. The original game was a fast-paced 3D action game classic released in 1995, just over a year after the first Doom game. I mention this because there are many comparisons to be made with the two titles, as Descent comes from an era where the genre of first-person-shooter was more commonly known as a "doom clone." Out of the games that were released in this this time period, Descent is one of the few games that really tried to stand out from the crowd and do something very different.
While most of the games that were coming out were essentially 2D games played from a different perspective (Doom was very much like this, originally there was no jumping, and as far as the game mechanics are concerned the game might as well be played from a top-down perspective) Descent provided true freedom to go in which ever direction you wanted. This makes the game a very different breed even compared to modern games, there are few that do what Descent originally did 17 years ago. In Descent, things came at you from any and all directions...

Thursday 31 May 2012

OpenGL: Terrain Colouring, Fog and more Terrain

Managed to make some good progress over the past day or two. I shall start off by showing what I am currently rendering with the latest version of my code:
Larger terrain! Now with multiple colours! Fog!
This features a lot of major improvements over the previous version, most of which should be immediately obvious. I am now using fog to slowly blend the far away terrain into the background colour, which is useful for culling distant polygons discreetly. 

Wednesday 30 May 2012

OpenGL Terrain: Now with Vertex Normals

Just a quick update on the progress I have made today. This morning I added some much more useful camera controls, which support keyboard and mouse, making it much easier to navigate the small piece of world I am currently generating. The second major change has been the inclusion of vertex normals. Previously, the lighting looked like this:

Here you can clearly see the individual quads that make up the terrain. This is due to the fact that the normals (which are used in lighting calculations) are made on per surface basis. To improve the lighting, these can be calculated for each vertex, e.g. for each of the four corners of the quad. This is a pretty simple operation which takes the average of the surface normals from the quads that share a vertex. To write the code for this took far longer than I expected, but that was mostly because I also ended up tidying up and refactoring previous work as well. The end result is that the terrain now looks like this:

Much nicer, don't you think?

Monday 28 May 2012

OpenGL First Steps: Terrain

Good news! I have finally managed to get around to producing something with my noise function that I discussed last week. I have wanted to play around with some graphics programming after doing my final year graphics coursework, so I decided to learn the basics of OpenGL, as well as refresh my memory on C++. This has also been somewhat inspired by Shamus Young's various similar projects which he has posted many updates on.

I'm not planning to be anywhere near as ambitious as these projects, nor do I have any specific goals for what I want to achieve, but I did want to do some procedural terrain generation, hence why I started by creating 2D height-maps procedurally. This was then followed up with large amounts of shouting at the Internet while trying to understand the basics of OpenGL. Most of the resources with regards to OpenGL are pretty undecipherable at first, but I found that looking at some small open source examples (most notably the SDL implementation of the OpenGL gears) and reading through this helped a lot.

This is where I am currently at:

Almost looks like some kind of terrain I guess?
Currently my program can generate a single segment of terrain of arbitrary size, using terrain quads of arbitrary size as well. There are also some very rudimentary controls for controlling the camera. I am planning to expand this to allow the dynamic creation of new terrain sections while moving around the world, textured terrain,  improved lighting and anything else I think of as I go along.

Saturday 26 May 2012

Gaming Archives: Battlezone (1998)

Today I will be delving into a historic video game, which many people may have missed out on back in its day. I am planning to do a fair number of these, as there are plenty of forgotten gems out there. For our first look into gaming past, I will be taking a look at Activision's 1998 title Battlezone.

The game itself did not have a huge amount in common with the classic arcade game Battlezone, but it did feature a nice homage in this box art as well as the introductory sequence.
This game blew my mind back when it came out. This is one my very early gaming memories, and it featured one of my favourite high-concepts that I have ever seen. In this alternate history, the race to the moon in the 1960's resulted in the discovery of a new "bio-metal," which has lead to huge advances in technology. In this universe, the Cold War became very hot, but it also moved from the Earth to the rest of the solar system. Any game which has me fighting the Soviets on the friggin moon gets my vote.

Sunday 20 May 2012

Playing around with Brownian Noise

Now that I have acquired large amounts of free time, I am going to be spending my time developing all sorts of things. As part of this, I decided to create this blog as an outlet to write about what I am doing, as well as to show things off which are pretty neat. Some of this will be fairly technical, as I discuss some of the more grognardy parts of what I am currently working on. Hopefully this might be interesting to some of you, and someone might even learn something. First time for everything!

Today I have been looking at techniques for creating natural looking randomness. This comes in the form of various kinds of procedural noise. There are various techniques for procedurally generating noise available and I eventually ended up implementing Fractional Brownian Motion (fBm).
A Brownian Surface. From Wikipedia 

Upsetting the Balance: Diablo III Auction House

Yesterday I completed Diablo III and the entire last two acts were completely trivially easy. While I was not expecting the game to be particularly challenging until reaching the higher difficulty levels, this was a bit much. Boss fights lasted an average of about ten seconds, and there was nothing resembling a challenge at all. Dramatic moments such as the final boss fights were ruined by the fact they were so trivially easy.

The cause of this is Blizzard's decision to introduce an auction house to the game. When Blizzard first announced that they were introducing an auction house to the game, I thought it was probably a good idea. This sort of trading goes on all of the time outside of the game, this just legitimises it and makes it more convenient for users. However the way it is currently implemented, what it really means is that items are consistently available for cheap that will overpower your character almost instantly.