Monday, 9 November 2015

UI Card Game

Over the next 3 weeks I'm going to be taught how to use the UI system in Unity to it's full capabilities. The game is a simple copy of a card matching game where you flip the cards to try and find the pairs. This first week covered the basics of the new Unity canvas system and how to make a menu from it. The first step was to add the background for our menu that everything else will be laid on top of. I needed to play around with the anchoring to make sure the background covered the whole screen upon playing the game.

The next focus was adding buttons so the player can navigate from the main menu to the actual game.
Buttons in Unity 5 are far easier to use because they come with a preset OnClick() section. All I had to do in order to make a working button was create a script containing no more than:

public void LoadLevel(int _levelIndex)
    {
        Application.LoadLevel (_levelIndex);
    }

This is all that is needed to create a loading button. I checked the build settings so I new which scene had which number, then added the script and game number into the button script. When I started up the game and pressed play, it took me straight into the game scene. I then just needed to position the button using anchors again then add a title and I had finished the main menu.
Finished menu screen

Saturday, 7 November 2015

Figure and Launchpad

In the sound session this week we also played with an app called Figure, which is available on the iPad. I would have added both tracks I created to the other sound post I made this week however I wanted to play around with them a bit more before putting them up. Figure is also a very easy tool to use in the sense that you can personally play around with and record 3 separate pieces and stick them together. You're limited to using drums, bass and synth but there are a lot of different types to choose from for these instruments. The app also allows you to set the rhythm, scale steps and range of both the bass and synth, whilst choosing which parts of the drum kit do what. There is also a tweaks section where you get to modify and distort sounds in case you wanted something slightly different from what you recorded.

The first track I recorded made use of the Studio drum-kit, 'Scream At Me' bass and the Coffee synth set. It was mostly the result of me playing with each instrument to see what I could get rather than planning out a tune and replicating it.



The second tune I created in Figure was much more structured than the first and had a far better beat to it in my opinion. This one used the Elektro drum-kit, Multipass bass and Unpredictalead synth.



The other app we were briefly shown was called Launchpad. We were only given a quick demonstration and rather than practice it in session we were told to try it out in our spare time. This app was possibly the most fun as it takes care of all the timing for you, not initiating the pad you press until the next bar starts. This makes it sound far more rounded than the music I could produce in Figure and far more detailed than Bosca Ceoil. All you have to do is tap the pad you want to play and the app will leave it going until you press it again, which makes it very easy to have an underlying beat whilst you focus on developing the track.

My first recording in Lauchpad used the 'House 2' pad set. I played around to see which pads I liked best and when I had a small plan in my head of which would work well together, I hit record and did what I could.


I then looked at what other sets were available and the 'Drum&Bass' set caught my eye. After exploring the pad I found a lot that I felt I could weave together to make something pretty decent. So I messed around finding good combinations then hit record and was pretty happy with with I had afterwards.

Thursday, 5 November 2015

Sound Design: Bosca Ceoil

Having used Audacity last week to produce sound effects, today we moved onto something we can create music in. We were introduced to a program called Bosca Ceoil which is incredibly easy to learn but difficult to master. To make a song you simply choose your instrument from the wide selection, then click on the page to play a note. Each 'page' of notes is 8 beats so you set up your song in small chunks, with a massive choice of how each note sounds. Making a little tune is very easy but recreating 8-bit music proved much harder than I anticipated.

My first practice tune was simply adding more sound to each section as the song progressed. I tried a few different instruments to mix things up and try out a variety of sounds. In the end I used velohigh guitar, SiON drum-kit, chopper bass, Dis.guitar3- and voice o3-o5.


The second track was similar to the first in the way that more was added over time, but I dragged it out a little more and made more of a build up by having the start slower than later parts. This tune made use of the SiON drum-kit again, Polysynth pad and a special item called Digital 2.


The third and final track I produced was a more upbeat happy tune using a mix of the Aco piano, Midi drum-kit, clarinet and Dis.guitar3-.

Wednesday, 4 November 2015

Dark arts 1: Generics

This week we had the first of our ‘Dark Arts’ sessions with Richard Weeks. Richard is head of a company called Total Monkery that operates from Plymouth and we’ve been lucky enough for him to come in and teach us some industry standard programming methods. Having somebody who runs his own company and has experienced the games industry first hand come in to teach us is an excellent opportunity. While what I’ve learnt so far at University has been essential, Richard is going through ways to make Unity work in ways it normally wouldn’t, hence why these are called ‘Dark Arts’ sessions.


The first session covered generics. This allows us to make custom types for classes, methods and variables which has lots of uses. When used for a class, it allows the user to get the variables and constructors, meaning you can create objects in the generic class from another. When using a generic method, the type of object you want to pass in must be specified before the parameter, this way a single generic method can perform an operation on many varying data types. One example (shown below) is a method to create entities where a list of different entities can all be passed in. Dictionaries can use generics to form lists with a variety of different types by having a generic key with a corresponding value.

In an example we were shown, one method assigned class types and names, while the other passed in a large variety of different types of entities.This is something I could use in my game to make it less prone to errors and easier to work with as a whole.
Entity inheritance example

Tuesday, 3 November 2015

Brand New Game Idea

Following on from my demo session on Monday, the last person to go over my game was my module instructor. When he played through my game he started talking about an entirely different game concept to the one I'd planned and constructed. Rather than talking about my original idea of the western themed target based shooter, he brought up the idea of an anti-aircraft style shooter. My characters are locked in place so can't move, yet can still look around and shoot from those positions. He said this reminded him of an AA turret style and that idea would probably be far more interesting and immersive. Originally I was skeptical of this idea but the more I thought about it and went over it in my mind, the better it was sounding and I've now decided to take this concept forward as my new game.

The new idea revolves around each player being in command of a turret and trying to defend a generator from swarms of enemies. Player 1 will control a machine gun turret which fires very fast but doesn't do a huge amount of damage. Player 2 will control a cannon like turret which fires slower than player 1 but packs a much bigger punch with it's shots. Both players must defend the generator from oncoming waves of both ground infantry and air forces. Infantry will be easier to kill, therefore there will be a lot more of them rushing the player, whilst aircraft are far tougher and in fewer numbers. If the enemy destroys the generator it's game over.
AA gun appearance I want to recreate

For extra mechanics I thought about airdrops every now and again to buff the players or hinder the enemy in some way shape or form. These will float down from the sky and players must shoot them before they land in order to activate it. On top of these, players will level up based on how many enemies they've killed. Leveling up allows players to add extra weapons, increase their fire rate/damage and increase the generators strength for example. I will be going through the entire design process for this game shortly in order to come up with a more refined and complete plan.
Airdrop that players can receive 

I think this game concept will be more successful because it's far more immersive for players compared to my original idea. I liked the Western game but I could see how people could become bored very easily, especially since I made it quite slow and the need for precision is necessary. This new idea is much faster paced and has far more explosions, which everybody loves in games. I was sold by what little my instructor suggested and feel what I've built on top of this is nothing but an improvement.

Monday, 2 November 2015

Demo Results

So Monday marked the first presentation of our games for the development module so far. For the past 2 weeks or so I've been working on a variation of the Western themed shooter that I've been designing. The mechanic of target shooting has stayed the same however I've chosen to lock the player in place and situate both players next to each other. I made this change because if both players could see each other then I would need to spend a lot of time making character models and animations. Locking the players in place together meant I could have a nice looking game without the need to make character models.

In preparation for the game demo I made a google form with some questions on it to record peoples feedback for my game. I asked questions about everything I'd currently implemented such as the characters shooting ability, the targets and the dual wield power-up.

Character Shooting - Overall the feedback for the shooting was that to firing was too slow, even   though it was meant to represent a revolver, and that the aim sensitivity was far too high. Changing each of these is very simple and just involves adjusting a few variables in the inspector. Other feedback around the character was that UI elements were too small to notice.

Targets - The size of the targets was commended however many people said adding a variety of sizes worth different points would be a good idea, which is something I was planning to do. Moving targets was also something that was suggested that I'd planned to do meaning I'm along the right track in terms of targets for the game. The only suggestion I hadn't planned was to vary the spawn rate throughout the game. Either a random time generator or perhaps more spawning as time goes up to ramp up the pressure of hitting them.
Re-sized targets

Dual Wielding - A common comment about this idea is that the controls are confusing. I'd set it up so that LMB fires the right hand weapon, like in most games but then RMB fires the left gun when active. This was a bad move because it confused most people, even myself at times. A few comments suggested sticking to LMB alternating the shots rather than 2 separate buttons which I agree with. One person suggested adding tougher targets to make use of the extra fire power which I quite liked the idea of.

Enjoyed - People seemed to enjoy the whole concept of shooting targets in a shooting range style.

Disliked - The things that cropped up the most were the using alternate mouse buttons to fire, the sensitivity and the small UI messages.


Taking everything into account I have plenty to work on to make the game smoother and more enjoyable as a whole a few of which I've already started on. Refining the shooting is the feature because it is the main element of my game.

Re-sized UI text

Saturday, 31 October 2015

Story and Production Line

With every plan and idea coming together, only one thing remains to do: develop a story. Now my game is designed to be a quick, arcade-like game so from the start I never really considered introducing a story to it. Saying that, I think there should be some form of context to what the players are doing somewhere in the game but not one that’s too in depth else it will slow down the fast pace of the game.

My short and quick concept is that each player is one of two brothers who are arguing about which one of them is the best shooter in the West. Eventually they decide to resolve the issue with a target shooting contest. At the end of the game, the player who did best is crowned the winner and that brother is the best shooter of the two.

Coming up with a short story didn’t take very long and adds a little bit extra to the game in terms of some context. Finishing that allowed me to go onto the final stage of the design process: the production line. This isn’t the same as in a factory where items are created, instead it’s a timeline of the projects design, showing when criteria were accomplished and when deadlines are approaching. My production line starts at the end of October, with the first marker being the creation of my specification, and ends approximately halfway through December when I’ll hand in my GDD containing all the details and plans of my game. Production lines are good for monitoring the progress of a project and assessing what areas may have needed more time put into them.
Production Line