GameJam

Hello! How you been? I can’t believe it’s been another month.

So this month has been a bit of a mess. I started out making a game and, well, got caught up with a GameJam. At the start of this month, GameJolt start a GameJam from the 1st to the 11th, so as a studio we thought this would be a fun thing to take part in.

The theme for the jam was chaos. We played around with multiple ideas but end up going with a first person Unity game about causing chaos at work. The main goal of the game was to basically kill your boss. There was going to be multiple ways of doing this and typical office stereotypes to help/intervene with you achieving your goal.

I current don’t have a link to the game but most of the jam was recorded on our studio Twitch channel

Anyway I’m sorry about the late post and the lack of content but next month, well this current month, I’m moving up from ActionScript 2 to ActionScript 3. I’ve been putting it off for a long time but I’m manning up and just jumping into the deep end.

Thanks again for reading and I’ll see you in just under a month :]

ASTEROIDS!

Game Number 2! So this month I have somewhat stuck with the “in space” theme and have remade Asteroids. I haven’t had as much time this month to work on the game, due to the fact that I got a programming apprenticeship. First 9 – 5 job (Well 8:30 – 5:30) so finding enough time to keep up with everything I used to do has been a bit of a struggle but I JUST managed to finish this month’s game. :D

Get Adobe Flash player

Source code

I haven’t really got much time to write an epic summary like I did last time but I can break it down a little.

Doing things as I usually do, I planned out what the core gameplay would require. This was Player, Bullets, Asteroids, Asteroids manager and a HUD to display score, lives and the current level.

I started off by copying Player.as and HUD.as from the last game. Obviously these classes are going to be very similar in Asteroids as they were in Lunar Lander, so there’s no point in completely recoding them. (The lists bellow are in no real order)

From Player.as I:
    - Removed Gravity and added friction
    - Changed appling thrust from space bar to W or Forward Arrow
    - Removed the Thruster Image
    - Made space bar now fire bullets when pressed

From HUD.as I:
    - Removed all fuel related functions
    - Removed end of level screens and effects
    - Adjusted the game over function to deal with outputting the level at the end
    - Added an effect for the level text on the HUD

I did all the changes to the player class first and then created a parent class for the bullets and asteroids (They have basically the same functionality so there’s no reason to duplicate code). This handled movement, flying off screen, seting properties and just basic functions to get variable values.

Asteroid manager was created next. This class creates and destroys asteroids and levels. It also handle collisions between objects and all asteroids on stage.

Once I had the manager and the parent class, it was time to make the asteroids. The asteroids class really doesn’t do much. It just looks after the size of the object a calls back to manager if it needs to be destoryed.

Last up, as per usual, I created the menu screens (and adjusted the HUD). I seem to leave these two things to last due there simplicity (Well the menu at least) and becuase gamplay mechanics are kind of key to a game.

Sorry that this months artical doesn’t contain much detail, I have really been short on time! Anyway, for now, thanks for reading and I shall see you next month :]

2013

HELLO! Its been awhile, nice to see you again. Sorry about the lack of posts but I’m back and bringing some content with me!

It’s 2013 and what comes with a new year is new projects. I want to keep myself productive this year so I’m planning to program and post an arcade game once a month. I will also be posting an article to go with the game that will cover how I developed it and the source code for the game. Seeing as these are going to be remakes of already existing and addictive games, the theme I’m running with is “Just another … game”.

Today is the 14th so from now until next year, the 14th will be the day that I post these games. The first game is in the post below.

One last thing before I go; I teamed up with some super awesome guys last year to create a freelance games studio, if you could check out our site that would be awesome! http://DecoyStudios.com

 Bye :]

Just Another… Lunar Lander Game

First month, first game. For this month I’ve decided to remake Lunar Lander.  Why did I chose this? Well, because it’s simple and addictive game. I think the fact that I’ve wasted hours/days of my childhood playing it (Just like all the other games I’m planning to do this year) may have helped towards choosing this game.

Get Adobe Flash player

Source code

 I started, as I usually do, with programming the most important object, the player’s ship. I first created a simple movie clip with a basic image of space ship and attached a new class file to it. In the new class file I programmed in a simple key listener for allowing the player to rotate and thrust the ship.  After flying the ship around I decided the next step was to add in the collision checks. These first checks were simple ones; if the player flies off either the left or right side of the screen they should reappear on the opposite side with the same velocity and if the player tries to go off the bottom or top of the screen they simply just get pushed back.  Now I’m left with a ship that can fly endlessly around the screen. Seeing as lunar lander is based on the moon and not in space, this just simply wouldn’t happen. I sorted this issue by adding resistance to the ships position update, a max velocity and obviously gravity to the ship.

With the basics of the ship done I next moved on to setting up the landscape for the ship to crash and land on. I first thought about having separate movie clips for each level but the collision checking would become far too complex so instead I opted for drawing the level using an array of coordinates. This works by drawing a line between two coords and placing it in an empty movie clip. When the loop is setting up the level there’s a check to see if a landing pad needs to be drawn. The positions of the landing zones for each level are stored in another array. LevelManager.as handles all these function for creating and destroying the level.

Next up, the collision checks between the land and the player. This for me was a big deal. I haven’t done collision for single lines before, only simple rectangle and circular collision checks. I tackled this problem by first getting a piece of paper and drawing/working out how I know if the line and the player had collided. After a few minutes I simply worked out that the line had to create a tangent or a segment to be colliding with the player. My first assumption was that I needed to check if the collision circle of the player and the line had similar coordinates. This system was flawed because of the number of calculation that would have to be done. My next idea was using the three coordinates I have (the start and end of the line and the player’s centre) to create a triangle. The height of this triangle would then be compared against the radius of the player’s collision circle. If the height was less than or equal to the radius, the two object had collided. To work out the height of the triangle I rearranged the cosine rule (a² = b² + c² – 2bccos[Θ] to Θ = arcos[(a² + c² - b²)/(2ab)] ) to find the angle between the top coord of the line and the centre of the player. I then rearranged sin(Θ) = opposite side / hypotenuse to opposite side = hypotenuse / sin(Θ). Putting these two together with all the values I have provides the height of the triangle. The only problem with this is when the player’s coordinates create an obtuse triangle. This means a right angle triangle can’t be made inside and thus breaks the previous formulas. I solved this by putting checks on the angles created making sure that they are less than 90 degrees. This does however create a blind spot which is corrected with simple distance checks from both the top and bottom of the line to the player. Below is my working which should help explain everything a bit more. Sorry that it’s a mess and for the random doodles by my sister. It’s my own fault for leaving it out on the desk -.- .

Now I had the basics and a playable version of the game set up, I moved onto creating the HUD. The HUD handles the start and finish of the game as well as keeping track of score, fuel and lives. I started off making a movie clip with a score counter, a fuel bar and little images of lives. Next I attached a new class to the movie clip and set up variables and functions to deal with the score counter, fuel bar and lives. I then realised I needed a score counter at the end of each level to show what the player had achieved. This was just another simple movie clip with text fields in that gets attached. I later added an effect to make it look as if the score was counting up. After setting the game over screen I wasn’t happy with everything just suddenly being on stage. This lead to making things fade in and out. Adding this in after I had completed the bulk of the code made everything a bit messier and I really should have thought about doing it in the beginning.

The last thing I didn’t was create the main menu, not really much code used for this I just set up movie clips with buttons in that called functions from the HUD. And, well, yeah, that’s about it.

Thanks for reading and sorry about any poor grammar. I shall hopefully see you in a months’ time :]

New Flash Games & General Site Clean Up

Over the past few weeks I’ve been cleaning out my computer and stumbled across some of my unfinished Flash games. Out of all the crap I’ve created over the years the only thing close to completion is my Tower Defence Game. So I uploaded it :DI also uploaded my zombie game which i’m making for A2 Computer Science coursework (At this current time it’s still unfinished)

I really do want to finish all my Flash projects but I don’t have time these days, heck, I don’t even have enough time to put up UDK videos.

It’s sad.

But hey I’m almost out of education so I can take on games development full time and hopefully start earning money. Wooo!

Anyway, I’ve also cleaned up the site a bit by adding a page that all my Flash games derive from, a page that all my UDK posts can be found under and an about page.

With all the Flash games on my site I’ve added some more in-depth info about each game because of their lack of completion I believe they needed some context.

 

UDK Development Diary Number 4

Time, where does it keep going?! :/

In the last few days I’ve been working on more of the background code which is relevant to the game mode itself.

Probably the most obvious change I have made is allowing a level designer to set-up waves from within the UDK without touching any code. They are able to change the number of waves and enemies as well as enimies health, speed, spawn time and the reward for killing them. Multiple spawners can be placed and can be set-up completely different from one-another.

I’ve  finally added a mesh to the tower spawning gun so you can see what you’re aiming at! For some reason the mesh is positioned awkwardly on screen but hey it’s better than nothing. To go with the mesh I have created a credits system which dictates the amount of ammo you have. You can gain more credits from killing enemies.

Finally, and probably the least important thing, I have add a ten second delay before the game starts to allow the player to pick up weapons and place towers.

UDK Development Diary Number 3

I’ve done a fair few changes since my last video. Most of these being done on the enemies and the enemy spawners.

Here’s a list of things off the top of head:

- Changed the enemies so they follow you no matter how far away you are
- Enemies change colour, to blue, when they’re attacking you
- Changed the enemy spawner so it puts out enemies at random intervals
- Spawner follow preset waves when spawning enemies; waiting for them all to be killed before spawning another wave
- Gave enemies fixed speed

I also added a tempery HUD to display info about the wave’s health and how many kills the user has got from the wave total

I’ve also got a few bug floating around which i need to sort:

- Enemies go through and don’t damage towers
- You can attach towers to the Enemies causing them to spaz out and move with the enemy
- No weapon mesh
- Enemies spawn in ground
- You have a range on how far away you can spawn a tower from you but yet you can shoot at the edge of the map and it’ll spawn a tower -.-

UDK Development Diary Number 2

I ended up having a few hours free this evening which I spent in the UDK.

I only sorted out a two things since yesterday, these being:
The floating towers – which I found out was the skeletal mesh having it’s spawn orign set to 0 when it should be minus its height
Spawners pushing out Red blocks – they’re just simple actor which take damage and move towards the player when they get close.

The video also shows the tower shooting but it still has a few targeting bugs which I will need to sort.

New Year, New Projects!

So what’s been going on, you haven’t update your mods for ages?!

Well, yeah, I’m sorry about that I’ve been busy working on my Flash games as well as doing school work/Exams!

So what I’ve decided to do is leave Minecraft and Flash alone, for now, and start work on producing higher quality games, using the UDK. I have met a group of talented individuals who I am now working with to produces these games.

Currently being the only developer on the team I have decided to put out “UDK Development Diaries” to document my work as well as to show the rest of the team what I am doing. I’m not sure how often I am going to post these videos but I will try to get at least one every fortnight.

This first video is just showing off how I am able to spawn a tower through a gun and current bugs I can see with it. I should have most of these sorted by next video.

Google+

I feel like leaving this here http://www.gplus.to/AlexKnowles