Thursday, 20 October 2016

Portfolio Mockup and Background Video

    I started off today by creating mockups of what I want my portfolio website to look like. This is following on from last week when I planned my layout on paper, to today where I made a digital layout in Photoshop.
The Photoshop document of my portfolio mockup
    This gives me a better idea of the website I am going to be creating, even more so than the paper layout drafts, so that when it comes to developing the website I will have a good idea of what I need to be doing, and not wasting time making decisions that could be made previously. Designing in Photoshop means that the project is very flexible, and I can play around with different colours, layouts, fonts to experiment with my website's appearance.

    We then moved on to implementing a background video using HTML in our webpage.
The blurry image in the center of the screen is the background video
    Using the HTML

Tuesday, 18 October 2016

Weapon Pickups, Shotgun Spread and Reloading

Weapon Pickups 
    Currently I have just two guns in my game, a revolver and a shotgun. The task for the first part of today was to make these weapons into pickups, so that the player could change weapon from one to the other. To do this I created two new objects, 'objShotgunPickup' and 'objRevolverPickup'. These are the objects that will lay on the floor, and which will spawn when an enemy drops a weapon or the player opens a chest. When the player collides with these pickup objects, they will be able to press 'E' to change weapon. This destroys both the player's current weapon and the pickup they just interacted with, and creates a new weapon on the player that corresponds with the pickup (eg. objShotgunPickup' will be destroyed and the player will spawn a new 'objShotgun' that they can shoot). This weapon pickup code has been stored in a script, so that when it comes to adding the other weapons I want to incorporate into my game, it will be a simple task.
The script for weapon pickups - 'argument0' is a variable stored in each weapon object's Create event
Shotgun Spread  
    The next task was to make the shotgun into a proper shotgun, and give it bullet spread. My first port of call for this was to use the random_range function on the direction on each bullet. I found this spread the bullets well, but that it wasn't consistent (obviously, it's random) and the bullets would often clump together in direction. Whilst real shotguns may have an element of unpredictability in the spread of the shot, this makes for frustrating use of the shotgun in a game, as the player doesn't feel that they can trust the weapon and line up their shots properly, and as a result they just won't use it. The solution I settled on was to use a while loop.
Shotgun firing code, using 'spreadAngle' variable in conjunction with the while loop to create bullet spread
    The while loop will check the expression at the top (whileNumberOfBullets...) and will run the code inside the curly braces for every step that that statement is true. In this case, our shotgun can shoot 5 bullets each shot, so the loop is checking every frame whether all 5 shots have been fired. If not, the loop will run, and will create a new bullet. It is important with loops to make sure they have break statements, or they will 'hang' your game and it will crash. The break statement in this case is the 'numberOfBulletsFired' variable, which every time a bullet is fired has +1 added to it. Then, the if statement below the loop is waiting for all of the bullets to have been fired, breaking the loop, and stopping any more bullets being fired. This loop allowed for multiple shots to be fired out almost simultaneously.
 
    To make the bullets spread evenly, that is where the 'spreadAngle' variable is used with the loop. In the shotgun object, the 'spreadAngle' variable is created with a value of -5. When the first bullet is fired, it's direction is the gun's direction -5 degrees. Then, 2.5 is added to 'spreadAngle', so when the loop runs next time the direction of that bullet is the gun's direction - 2.5 degrees. This continues, and the effect is that each bullet is fired slightly to the right of the last, creating a bullet spread effect. The values can be tweaked so that the spread is even if necessary. When the alarm[0] is triggered, the 'spreadAngle' is reset to it's original value, so that next time you fire the same spread will occur. This gives consistent bullet spread that is fair and predictable for the player, making the shotgun a viable choice.

Reloading
    At this point, each weapon had a fire rate alarm, meaning a shotgun can only be fired once every second, or a revolver three times a second, however these guns can shoot indefinitely without the need for reloading. I implemented a reload system,
Reload system flow through different actions and events
    The first box, the 'objShotgun Create' event, establishes the variables for how much ammo the gun has and how long it takes to reload. The second box is the 'Step' event for the shotgun, and this is checking firstly that the player is pressing the reload key, and then if there are any empty slots that need reloading. If this is true, then the 'scrReload' script is run, the next box down. This script takes the 'reloadTimeInSeconds' variable from the create event, and multiplies this by room_speed to set the alarm time. Then, when the alarm is triggered after two seconds, the gun is reloaded by setting the current ammo to the maximum allowed for that gun.

    The aim is to have an 'active reload' system in Gun Smoke, a system made popular by the Gears of War franchise. This is where you hit reload once to start the reload, and there is a point during the reload where if you hit the button again you will reload quicker and also gain a damage boost for the next clip of bullets, however if you screw up and hit the button too early or too late, then your gun jams and it takes even longer to reload than usual. It is a risk/reward decision, but importantly it adds a skill element to reloading, an otherwise frustrating and boring formality of shooters, whereby if you master the active reload you can mow down enemies more efficiently than ever. My game is going to be simple in terms of scope, so I think it's important to have elements like this in there in order to increase the skill ceiling wherever I can.
A diagram of the active reload system in Gears Of War
Tidying Up
    The last thing I did today was tidy up my code. I tried to eliminate breaks and blank spaces between code lines, I indented the nested elements of if statements to make it clear which part of the statement was the outcome and which was the trigger, and I commented everywhere I could. Commenting is important for working on projects such as this, where you will be coming and going between different areas of your code. For example if I came back to my room generation code in four weeks time, I might look at it and not be able to make sense of it, whereas if every line is commented, explaining what it is doing and why, then it'll make it much easier to pick up where I left off and find the areas I am looking for specifically.
A GIF showing weapon pickups, from revolver to shotgun. The long pause between shots is the reloading

 

Monday, 17 October 2016

End of Production Week One - Random Generation

First week of production is over, and I’ve made some decent progress. From starting at square one, I’ve now got a player character (placeholder, admittedly) who can run and sprint around to his heart’s content, and no game is complete without guns, so I gave this little guy a ‘revolver’ so he can shoot. It’s very basic, but it’s a start. I’ve got another five weeks of production then one of post, so I have plenty of time to tweak and fine tune the player movement and shooting.

The majority of my time and effort this week went towards random level generation. Gun Smoke has a pre-determined level layout, with 8 ‘room slots’ which are randomly filled from a list of around 15 different rooms. Getting the slots filled is easy, it’s tuning the composition of these rooms that proved difficult. Early tests resulted in three or four of the same room being thrown up on a level, which was undesirable. I’m no programmer, and after tussling with GameMaker for a few days, it became clear that programming wasn’t a natural talent of mine.

That being said, come the end of the week I now have a system in place that consistently throws up 8 different rooms in the slots. Mission accomplished! The number crunching is done on the loading screen, the room layout is then locked in as a variable, and loaded up into the level. The result is a randomly level composed of randomly selected rooms, that the player can run, sprint and shoot their way around (albeit for no real reason at the moment).

All in all, it’s been a successful week. Like I’ve said previously, I have no experience of making a game or any real programming other than HTML, so to have created a level generation system for my game is quite a cool accomplishment. I am sure in a couple of years time I’ll look back at the code I used to hash together this system and laugh at past me, but for now it works, and that’s all that matters.

Custom Brush and Concept Art

    In Photoshop we used custom brushes to stamp together some concept art images. By downloading an image and using the magic wand tool to create a selection of a certain element of that image, we can then define a custom brush from this selection. This could be trees, foliage, mountains, buildings etc. By downloading multiple images we can grab from multiple different sources an bring them together to form a complete concept scene.

    Today we were tasked with creating two scenes using this technique, and using different shading, tone and values to represent foreground, background, and middle.



    I'm still getting to grips with this technique, but with more practice I will become more comfortable using this to create concept art for my games.

Friday, 14 October 2016

Navigation and Portfolio Planning

    A website is nothing without navigation and buttons. In today's session I added links to my navigation bar, and added some styling to make them pop a bit more.
My lovely navigation buttons in all their glory
    I already had the navigation in my website from last week, using un-ordered lists and the "display:inline-block" CSS styling to get the buttons horizontal, rather than vertical. From here, I added in links to external sites, and also added an internal link. The internal link is found on the final nav button 'Contact', but it just links to the bottom of the page. This is done by giving the destination of the link " tags, and then the link text on the contact button looks like this: "". The # symbol is the key to linking internally on a single page.

    When you make something a link, the browser gives it default styling, usually a purple colour and an underline. I didn't like this, so I changed it. I removed the underline, changed the colour, and also gave the text a drop shadow. The drop shadow really makes the text stand out, and makes it look like a button, which communicates to the user that it's a clickable link. To make this effect even better, I added an "a:hover" style, where the drop shadow inverts when the user hovers the cursor over the text. This gives an effect of the text being pressed in to the page, and again emphasizes that it's a button.

    This site is my portfolio. In it's current state, I don't like it. Luckily, today we were tasked with creating a proper plan for our portfolio. I sketched out a template, and annotated the sections with what they will include and some key features of each section. I am going to have a big image or video on my landing page, which will take up the full width of the screen, and this section will cycle through a number of images, dependent on how many projects I have completed. When scrolling down, each project will have a bit more time and space dedicated to it specifically, followed by sections such as About Me, or Contact/Social. These sections will all contain links to full pages, which will have images, text, videos, just more content for each area of the site. I think this will give a good overview of my work at a glance whilst scrolling, but also gives the option for any user to click onto a page if something in particular catches their eye.
A revised layout sketch of my portfolio website
    I would like to include interactive elements in my site, I even thought of presenting the entire thing as an old school text adventure using Javascript, but the main problem I saw this creating is that my site wouldn't be easy to navigate. I don't want prospective employers to get turned off from my site because they cannot find what they want. If I can design the text adventure in a way that makes it easy to figure out, then I'd love to implement that idea. The other solution would be to have the text adventure alongside the regular site, so that if people just wanted to get to the information then they could do, but this would essentially mean developing two sites, and I think it would be better to absolutely nail one site rather than get two sites kind of right.

Wednesday, 12 October 2016

Random Level Generation v.1

    In my game, each level is made up of rooms. The rooms are hand designed, but the combination of rooms that spawn is chosen at random. The level has 'room spawner' objects at pre-determined locations, which use the 'choose' function in GameMaker to pick a room from the list. At the location of each of the 'spawner' objects, a random room will appear in the level.
The code is ugly, and it's inefficient, but it work's for now. I'll find a better way at a later date.
GIF of me restarting the room over and over, seeing the random levels that pop in
    The problem with this code as it stands, is that it throws up completely random results. This seems desirable, but this can throw up results where half of the rooms in the level are the same, which is a) not great for freshness and b) not very good in terms of creating believable environments (what kind of wild west town has half of their buildings being post offices?!). The easy solution that I am implementing now is to include certain rooms multiple times in the 'choose' function. This is an easy way to make the results lean towards a certain result, or away from another. I am going to keep looking at other solutions, to limit certain rooms to once per level and such.

Tuesday, 11 October 2016

Start of Production - Player Movement and Shooting

 Movement

The first task in my production schedule is to code the player movement and shooting. In my game there will be a basic run and a sprint.
Basic movement code
    I set up 'xDirection' and 'yDirection' variables. The value assigned to these variables is dependant on the user input into the equation. The 'keyboard_check' function returns 1 if the user is holding the key, and 0 if they are not. This equation will return either 1, 0 or -1, which is then added to the x or y value, and multiplied by the 'playerWalkingSpeed' variable.

If the player is holding D, but not holding A, then the equation would look like this:

xDirection = 1 - 0;

This means that the 'xDirection' will be 1, so then the outcome of this input is:

x = x + (1 * playerWalkingSpeed);

This will make the player move right across the x axis at the speed set in the 'Create' event. If the player wanted to move left, then they would hold the A key:

xDirection = 0 - 1;

This would return -1, so the player would move left along the x axis. The same equation is used for the y axis to move the player up and down.

The first if statement is checking that the shift key is not being held ('!' before a function means 'not'), which means the player will walk, whereas the second if statement is checking that the shift key is being held down, meaning that the player wants to sprint, thus the movement speed multiplier is changed to the 'playerSprintSpeed' variable.

The bottom line of code is simply changing the 'image_angle' so that the character faces the mouse, the way they will be shooting. 

This is the movement that this code returns.
My basic game movement... How fun!
Shooting

The player shooting code is applied to 'objGun'. 
Shooting code
In the gun's 'Create' event, I set the variable 'firing=false'. The code checks that the player is holding the left mouse button, and that they're not currently firing, and then runs the code, firstly setting 'firing=true' so that the gun won't fire any more bullets until we say so. The next line is setting the alarm, so that the gun only fires twice per second. Then, we create a bullet and assign it the 'myBullet' variable, and proceed to give the bullet a speed, direction and angle. When the alarm triggers, 'firing' is changed back to false, so that we can shoot another bullet.
Pow, pow, pow!

Sunday, 9 October 2016

End of Pre-Production, Finished Production Schedule

Pre-production has wrapped. It has been a good two weeks, I feel like I have got a lot of good work done, and have a solid foundation to start production next week. I had my schedule for pre-production and whilst I largely stuck to it, there were some changes I had to make. Some of these changes were unavoidable, such as being called into work and thus not being able to work on the game for some of the hours I had allotted. Others were errors that I made in the order in which I placed tasks. For example, it wasn't the best idea to put 'Create core gameplay loop' before I had figured out the main mechanics of my game. This is the main lesson I have learnt from my first pre-production, that I need to carefully consider the order in which I am placing things on the schedule. Also I have generally learnt some of the things that take more or less time than I originally thought.

I have filled in the six weeks of production in the schedule, and I have included milestones in there such as 'Level Generation' or 'Story Complete'. I expect that some things will move around and some things will take more or less time that I allotted, as is par for the course on my first production. However I have covered all of the bases, everything I need to do is in there, and I have left post-production free so that I can assess which areas of the game need polish at that time.

In my production schedule I have also included weekly progress reviews. These will come in the form of blog posts where I will detail the tasks I have done that week, and how I fared in sticking to the schedule. This will help me to understand how my game is developing, by taking a step back out of the minutia each week to look at the overall project's progress, and also will make it easier for me to see how the production schedule is going: do I need to work over the weekend to catch up? Do I need to move things around to give certain tasks more time to complete? Am I ahead of schedule and if so how can I maximise the use of my spare time? These progress reviews are very important to the process in making sure I am using my time efficiently.

Here is a link to my production schedule.

Saturday, 8 October 2016

Gun Smoke Presentation

    I have created a presentation for my first project, now given the working title 'Gun Smoke'. The presentation has four slides:
  • Introduction
  • Key Features
  • Influences
  • Audience
    The intro is simply a title slide, with the name of the project and a little blurb. The second slide, key features, has five key elements of the game. I have prepared notes on my phone for each of these features, to elaborate on them. On the influences slide, I have four pictures of four influences on my game, and I will explain how each has influenced my game. The last slide, audience, has the PEGI rating I am aiming for with my game, and details why I think this rating is what my game would be given.

    I have timed myself on presenting the presentation, and it takes around 7 minutes, if I can keep my elaborations concise. I think this is a good length of time, as it gives me time to get all my points across without taking too much time and losing people's interest.

    Here is the link to the presentation. 

Thursday, 6 October 2016

Typography and Colour

    Today I looked at how to implement different fonts into my website, how to add colour schemes, and how to add background images. Firstly, I looked at a styleguide, a web page that documents the font, colours, layout and more for a certain company. Here, the company detailed all the different colours that they use throughout all of their presence, and the use of each individual colour (eg. green is positive, yellow is warning). They also detailed the different areas where different font sizes are used, such as which one is used for headings, which for paragraphs etc.
A style guide for Marvel, displaying the different colours they use throughout their brand
    I looked at implementing my own consistent style on my website, beginning with fonts. I used Google Fonts, a resource that hosts hundreds of different fonts that are completely free to use on your own site. Simply select the fonts that you like, and Google provides you with the HTML link to add inside the tags. This will link these fonts to your website, and you can then add the CSS style 'font-family: ****' to individual elements to give specific fonts to specific areas of a site. It is important to have a font that looks good and fits with the style of your site, but it is equally important that your text is readable and accessible. Having elaborate hand drawn fonts may look nice, but if it makes your text hard to read then users will struggle to see all of the great content you have.  tags, and the CSS rule for adding this font to specific elements. This is a simple way to get different and unique fonts on your webpage.
Google Fonts gives you the code, ready to be copied and pasted into your own HTML and CSS files
    The next thing I looked at was colour, and a tool called Adobe Kuler. This tool presents you with a colour wheel and some colour rules. When selecting a colour on the wheel, dependant on the colour rule you have selected, Kuler will select four additional colours that combine to give you a colour scheme. This rule could be 'analogous', where Kuler will pick four additional colours that are in a similar area on the wheel, or it could be 'complementary', and give four additional colours that are completely opposite on the wheel, or it could be a number of other rules that provide other results. This tool is a simple way to find a colour scheme without having to have an extensive knowledge of colour theory or spend to long finding complementary colours, as Kuler does all of the work for you. You can even create a colour scheme from an image, where Kuler will analyse the colours in the image and return a scheme that contains similar colours to those in the image. Colour, like font also plays a big role in the style of your site, but also the functionality. Having big, bold colours will make your site pop and will draw people in, but you still need to ensure that your content is clear and legible.
The Kuler colour wheel, a great tool for finding cohesive colour schemes
    I also learnt how to add a background image to a div, and how to do this from a file as opposed to a URL. I added some images to the background areas where I want my project images to be, across the page. Having the files load from your local area will help with load times, something that can become an issue if you have several large images that are sourced from links. Local files also means that your content won't ever go missing if a webpage deletes the image from the link you're sourcing from.
My portfolio site in it's current state, work in progress
    I have created a GitHub repository for my portfolio site, and have created a gh-pages branch in order to get my site visible in a browser. There is a link to this site on my blog homepage, just under the homepage header, to make it easy for anyone viewing my blog to jump quickly over to the portfolio.
The link to my portfolio on my blog homepage

Wednesday, 5 October 2016

Non-Combat Interactions and NPCs

    To make sure my game doesn't become too much of a gun fest, I am adding non-combat interaction rooms. These rooms will be home to NPCs that will offer a bit of respite from the combat, and will help slow the action of the game, giving me some nice peaks and troughs in the pacing. These are the NPCs I have decided on, for the time being at least. They are all subject to change and could have the effects change, or name changed, or could be removed completely.
  • Trader - Player can purchase weapons, items, health, keys etc. The traders' stock will be randomised, so there is a chance that the player won't be able to find the item they want or need.
  • Doctor - For a price, the doctor will heal one HP. 
  • Gunsmith - Player can exchange two of their guns for one from the gunsmith, however the gun they receive is random and they won't know what it will be until they have committed to it.
  • Shaman - Player can purchase 'blessings', which will give them buffs for the rest of the run. This could be higher maximum health, bigger ammo clips etc.
  • Bounty Hunter - Gives the player challenges, such as 'Kill X amount of This certain enemy'. Will reward the player with cash or items on completion.
  • Riddlers - Presents the player with a riddle, if the player correctly guesses, they win money. If they get it wrong however they will lose money.
  • Train Conductor - Player can pay the conductor to skip a level. 
  • Farmhand - Player can help round up the escaped cattle, will be rewarded with cash or items.
  • Sheriff - Same function as bounty hunter, but with different challenges.
  • Black Market Trader - Players can trade unwanted items in exchange for cash.
    These NPCs will be found mid-level, however they provide a long term strategy option for the player. Between levels and between runs, the player will be at the 'safehouse'. At the start of the game, they will not be able to do much from here other than start a run. However, when meeting certain NPCs in the levels, they will be presented with the option to ask the NPC to join them at the safehouse, for a hefty price. From then on, say if for example they purchased the doctor, they would be able to purchase healing between levels, or if they purchased the Shaman, they could purchase a blessing before they even start the run. This isn't available for all of the NPCs. 

    This option to purchase NPCs adds a choice for the player. Do they use their money to purchase items or blessings for that run, that will give them a better chance of succeeding on that run but will be lost once they're dead? Or do they save their money throughout a run, until they have enough to purchase an NPC that will make life easier for them for every future run. Can they afford to pass up the chance to purchase an NPC when they may never have enough money at the right time to purchase them in the future? The player must decide whether they want short term or long term gain, a decision that many players will differ on. Lots of games present choice in terms of morals, whether they want to be a good guy or a bad guy, but I think presenting this kind of choice to the player, a strategic choice, is one that really impacts how the game unfolds for them and as a result has real consequence. 
   

 

Game Feel and Juice

    Game feel is the art of turning a plain and boring game into an exciting and tangible experience. Good game feel design is something that mostly goes unnoticed, however if a game has bad game feel design, it is immediately noticeable and will turn most players off the game completely. Good game feel design is about little tricks that will improve the player feedback, and gives the world weight, permanence, and character. Games that are great examples of game feel are Vlambeer titles such as Nuclear Throne and Luftrausers, and other games such as Super Time Force or Hotline Miami.
A game with no feel
    As I said previously, game feel is often about subtle little tricks, which when all combined together bring a whole new feeling to the game. Some of the most common tricks are simple things such as bass boosting sound effects such as gunshots or explosions, enemies flashing white for a single frame when they're hit, and recoil pushing the player back when shooting. These tricks will all be found in any action game worth it's salt, and are incredibly easy to implement. Other tricks are perhaps not so obvious, but will add to the experience just as much as those that are readily apparent. This could be something such as 'sleeping' the game when the player hits something, whereby the game pauses for milliseconds. This is found in countless games and is one of the oldest tricks in the game feel book, everything from The Legend of Zelda to Streetfighter uses this technique to add weight to the player's actions.
The same game as above, with 'feel' tricks implemented
    I have researched game feel, listening to GDC talks from Vlambeer co-founder Jan Willem Nijman and Jonaton Soderstrom, creator of Hotline Miami, and have produced a list of around twenty to thirty tricks that I feel I could implement in my game that would all add a little bit of something to the overall feel of the game. Game feel is one of the aspects of game design that often goes missing in poor indie titles, a mistake I aim not to make myself.


Tuesday, 4 October 2016

Game Play Loop Flowchart

    The main hook of any game is the core game play loop. This loop consists of the actions and reactions that the player will be carrying out frequently in the game and makes up the majority of game play. I created a list of the core mechanics and systems that my game is comprised of, and then used these to sketch a rough flow chart of the game play loop. This exercise helped me to clearly lay out all the elements of the game and as a result, better understand the game play loop. I was able to create this diagram.
A flowchart displaying the core gameplay loop of my game
    The game play is focused around clearing levels of enemies, collecting loot, and progressing. In the diagram the first split is whether or not the room the player enters is a combat room, a room consisting of enemies, or a non-combat room, where there will most commonly be a variety of NPCs to interact with. These NPCs could be traders, doctors, quest givers, or more depending on how many different NPC interactions I can think of. Having this split so early in the loop will keep the game play fresh, rather than every room just being a shooting gallery there is a chance that the room could contain a previously unseen interaction with some interesting characters.

    If the room is a combat room, then combat proceeds. This consists of shooting, dodging, using power ups and items, and just generally surviving the enemy. Once the enemies have been defeated, there is a chance that they will drop some goodies, such as med-kits, ammo drops, keys, or even weapons and items. The more rare items will only be found in chests. If there is a chest in the room once the enemies have been dealt with, then the player can open this chest with a key. If however, the player doesn't have a key, then they will have to leave the room and come back once they have one. Players can get keys from enemy drops or buying one from a trader.

    Once the player has left the room, they will go back to the level, where they will select another room. This process is repeated until all rooms in the level have been cleared, at which point the player will leave the level, returning to the 'safehouse'. From there they can move onto further levels.

    Creating this diagram has given me a clear instruction about how the levels will work, and from here I can go on to think of the level design principles that will define how I create my levels around this core game play loop.

Monday, 3 October 2016

Researching Westerns

    So I have decided that the theme for my game is going to be a western. Westerns are a classic genre in film, but I believe that they are under served for games, apart from the obvious classic of Red Dead Redemption. This is one of the reasons I chose the genre, because I feel there is a gap in the market, but also I chose a western theme because they are oozing with style. From the classics such as Unforgiven, to more modern takes like Django Unchained, all western films have a distinct style that lends itself perfectly to an action game. In my analysis of Hotline Miami, I talked about how the developers took massive inspiration from movies and the culture that their game was based around, and they fully rolled with all the cliches and tropes that comes along with them. This is what I aim to mimic, but with a western style.
Django Unchained is a pulp-western film with unquestionable style
    I wanted to come up with a story that was faithful to the genre. To do this, I watched a western film and looked online for analysis of western films, books and games. The film I watched was Django Unchained, a Quentin Tarantino film. Whilst Tarantino definitely puts his stamp on this film, with blood, gore and racial slurs aplenty, he has stayed true western films in story and in some elements of the style of the film. Themes of revenge run through the main plot, whilst the common western trope of 'The Stranger' perfectly describes Django, the protagonist. I think this is a great example of someone taking the guidelines of the western genre, but giving it their own twist and elevating the product. I learnt a lot from this film about how to build around the central plot line, with plenty of small stories beginning and wrapping up throughout the film, adding more depth to both the characters and the film as a whole.

    When looking online I found plenty of great resources that detailed what a western was made up of, what defined a film as such. I took a couple of pages of notes and found some great stuff that gave me new ideas about some of the things I need to include in the story of the game.
Western film research notes

    I found plenty of resources that detailed different stories and tales from westerns, but my game isn't going to have a conventionally told story. I want to set up a rich world, with plenty of depth to the characters, however the story of these is going to be told through collectable objects that are found in the game. These collectables could be newspaper articles, wanted posters, diaries, little pieces of backstory and lore that will be found throughout the world. I won't need to be writing lengthy scripts or three act structures, but rather the time I allot to story will be devoted to coming up with these collectables. All this research has given me some great ideas about the backstory and lore I could put in to this game, and I think that this is a great way to tell the story in my game.

Cute Shapes in Illustrator

    Today we looked at how you can use basic shapes to create cute and interesting characters. By manipulating shapes and putting these shapes together, I was able to create the three characters below.

These cute little guys are just simple shapes, manipulated in Adobe Illustrator

    I can see how these techniques could be used for game development, particularly for creating art assets for a 2D game. These techniques allow you to create a very cute and unique art style for a game, and the possibilities are limited only by imagination.

    Some of the tools I used were the various shape tools to create basic shapes that gives a framework for the character, the pathfinder tools to manipulate and combine these shapes into more complex combinations, and snap to grid to put together symmetrical and balanced characters. Also looked at combinations of shapes to create certain effects, such as a 'starry eyed' or a lense flare kind of effect in the middle character.