Monday, 16 September 2013

New Game: Sand Lab

Hello there, those who are interested in my game creating experiments! I have not blogged since before Easter because revision took priority and I soon forgot about Java (Antidote, top down zombie shooter no. 1) and moved onto a graphical game creation tool called GameMaker. If you're thinking about making a game but don't want (or need!) the complexities of programming, this is a good one to try. It does come with it's own programming language for doing anything you like within the game sandbox. I, for one, used the language to cast shadows on the map as you run away from body-less zombies! The result was Zombuild.

However, the game that I'm really excited about making at the moment is "Sand Lab". This game will involve a very interesting way to play with tiny particles that fall down and behave generally like sand or liquid or gas or fire or any other similar material. This has been done before, but what hasn't been done is to use one of these types of sand as a currency. The currency sand, say gold, will be a reference point and the value of any other sand type is calculated using the amount of gold currently in the bank. The bank is a bank of sand (or a sandbank if you will) that simply contains an amount for every sand type. There won't be much gold, say 1000 pixels worth, so it is very valuable when compared to sand types like water or sand, which probably make up most of the bank's contents.
Sodium reacting with hydrochloric acid to form hydrogen and salt.
Now it wouldn't be very interesting if the different types of sand just spread themselves about the lab into a pile and stayed there for all eternity. Certain sand types react with one-another. This is the key feature of my game. It enables you, the player, to react sodium with hydrochloric acid to form salt and hydrogen. You can then potentially sell the salt and the hydrogen for a higher price, giving you that all-important profit. Other reactions will yield higher profits but they may also have higher costs. Selling couldn't be easier: you simply pour the sand to be sold out the bottom of the screen and your bank balance is adjusted according to the current price of that sand.
The bunsen burner!
The objective is simple: get as much money as you can in order to buy more useful sand types such as oil and plutonium and tools that might include a heater, cooler or input types. The heater tool would simply provide lots of heat for those reactions that need it (for example hydrogen doesn't react with oxygen at room temperature.) The cooler would condense anything to a cooler state on contact. Steam would condense into water and it might even freeze. The input types are an idea at the moment just like the cooler. They would just act as a place where pixels are spawned for use in reactions.

On the left, you can see what happens when you super heat wood so that it reacts with the oxygen in the air to form carbon dioxide and smoke. Understand that not all the elements are real. Oil is not an element and neither are wood, leaves, sand and air for that matter.

At the moment, I'm trying to advance the game play from a tutorial-like form of play to the user owning several factories which can be switched to by pressing the arrow keys or something similar. In each factory, users will hope to achieve a factory set-up where inputs give the reactants, the reactants react to produce more valuable sand types and then they fall out of the bottom (or possibly float out of the top) of the window. Each factory will eventually have a indication of profit per hour or minute. When the player closes the program and plays the game later, the profit will be extrapolated over time so that they earn without having to play the game. All they have to do is to make sure they always have enough money to supply the factories.

So here it is, my next game creation adventure. I hope you enjoyed this post, be sure to check back later for more. At the moment, the game is only available for Mac OS X and can be found at my website

Thanks for reading!

Thursday, 21 February 2013

Antidote 0.2 - Maps + Ammo

Hello everybody, it's been a long time since I last made an appearance. I thought, in light of the recent efforts of the crew behind Minecraft (Mojang) raising charity for money by programming, that I would program my game too! So whilst they're making a game in which you must defend your flying pizza through space, I'll be making a couple(?) of update(s).

So, onto Antidote version 0.2. I spent last night making the last changes and now I'm happy that you can have a go too. This update includes:

  • Maps
    • Walls
    • Barricades
    • Zombie spawners
  • Proper ammo and reloading (finally)
    • Remaining ammo in the gun displayed
    • Ammo picked up also displayed
    • Reloading sound
    • Out of ammo sound (that's right, it's not infinite anymore)
  • Temporary removal of squads because they're rubbish
    • "Sometimes you have to backwards to go forwards" - Luke Barnard 2013


  • Movement: WASD = up down left right
  • Shooting: aim with mouse, hold left mouse button to fire
  • Reloading: space
  • Antidotes: right click at a zombie to turn them into a human. Requires antidotes!

Friday, 1 February 2013

Antidote0.1 Download

Hello again, I've uploaded downloadable versions of the game for anyone who wants to test them out.

Antidote Update No.4 - Squads

Hello all! This update features a new font for the game as well as a heads-up-display or HUD to show the score, the number of remaining antidotes and the multiplier for the score.

The main new feature is squads! You can now press the Enter key to call for help. When you do, the surrounding humans will circle you wherever you go. I find that about 3 or 4 is a suitable size because they can get in the way of you getting a good score but there is no limit (so long as you can get yourself in the middle of them all).

When you shoot a zombie, you score a number of points equal to the number of health points you hit off a zombie. One bullet (currently) scores 5 health points of damage on the zombie. Each zombie has 100 health points, so killing a zombie on your own gets you 100 points but getting a multiplier on your own is very difficult.

Also, when you are turned into a zombie, you must collect an antidote to turn back into a human. So there still isn't a way to lose... I'm still working on that.

Here's a game-play video to wrap things up. If you can, please "like and subscribe" me on YouTube on my video here. If not, here's the video anyway:

Thanks everyone for reading and watching, see you next time.

Monday, 28 January 2013

Game Update No.3 - Antidote

Big changes this time everyone. The game is really moving fast and ideas are being thrown at me from all angles. Here's a change list:

  • Health bars for all characters.
  • Antidotes that can be collected from the ground and used when close to zombies to turn them back into humans.
  • More zombies spawn when there are more humans present.
  • Each zombie killed by you (not other humans) gives you a score and if you kill multiple zombies within a small amount of time, the score you gain multiplies. You can see your score in the top left of the screen.
  • The screen shakes when you shoot.
  • Sounds are played when a character is hit or when a gun is fired.
  • The game will now be called "Antidote"
I think that's all the changes. If you have any bright ideas, please tell me because limited antidotes and the screen shaking were both partly thought of by my friends! Here is a video to give you a much more visual idea of what the game is like currently:

The sound seems to be a bit glitchy at the moment, with random glitchy sounds appearing now and then so I will work on that. Thank you everyone for reading/watching, please use the icons below this post to share my blog on Facebook and Twitter.

Thursday, 24 January 2013

Giant Zombies?...

Yep, so this happened...
I think I'll reconsider giant zombies...

Game Update No.2

OK, so there have been some large updates to the game. Once the game begins, zombies randomly spawn and walk towards you whilst you try to shoot them. When the zombie runs out of health, it turns into a human. The human will then help you to convert more zombies. At the moment, the way to convert a zombie to a human is to shoot it with your gun! This is a bit confusing and not how I'd like the game to work.

So what I think should happen is that humans have a number of antidotes that can cure zombies and turn them back into humans. They only work close range which puts you at risk of getting hit by a zombie and being turned into one.

Here is a video I took showing the current game play (I forgot to enable animation on the AI humans!):

More updates to come, and eventually, I will release the game!

Tuesday, 22 January 2013

Game Update No.1

Hello everyone, I just wanted to give a quick update on the new game. I've continued working on the game engine alongside the game to make sure that everything I want to implement in the future is possible. So I've set up a basic area where the player can run around and do not a lot apart from point towards the mouse cursor.
I would like to know how the human that you control looks. Is he too square? Wrong colours? Is it a bit weird that his nose and eyebrows are exceedingly long/thick? Let me know by posting here or on Facebook, I don't mind.
With this news, I'm sure you would all love a nice video of the game at this stage. I don't have the software for that because it costs money so here's an old-fashioned screenshot!...
I also need YOUR input as to what to call the game so please let me know your ideas, no matter how ridiculous like "run escape" or "minec raft" ;). That's all from me, see you soon.

Sunday, 20 January 2013

The Blog Begins

Welcome to my blog! This is my first Java development blog post. Currently, I am working on my own, personal game engine, which will be used in all of my future games.
The first stages have been setup a Game class which will be able to house all of the basic game capabilities such as the tick, draw loop and that includes the same loop for all sprites in the game instance.
The hierarchy for the types of sprites is mainly through abstract classes going from Sprite all the way AnimatedSprite at the moment. The idea is, I can inherit those classes to make various interactions between sprites.
The first game that I will test this engine on will be a "run away from the zombies" game!