GDD Lite Reflective Journal

When creating the Game Design Document, I feel like I did well. However, I am not particularly sure how I personally could create one as well as a developer could currently. I feel like I have managed to condense it and create it to a specific design that I was envisioning. It wasn’t too hard to create to begin with as I had a specific plan I wanted to create. It is just the creation of the game that will become the problem now and if I can develop it within the certain time I have to make it through both Iteration 1 and Iteration 2. When I was creating the GDD it wasn’t too hard with the research as I had already done that previously during the formative research and the idea had already been set when I created the presentation to show everyone. I did have to create some extra content for the GDD however, such as the wireframe as I had that sort of imagery in my head, and the game would be similar to turn-based games like pokemon but have it with ship combat and upgrades. All other considerations were already in my head beforehand which allowed the different aspects of the GDD to be ordered as I wanted it to be.

Industry Folder Reflective Journal

When creating the industry folder, I originally didn’t talk about the different job roles that I could get with my degree and what I could do at the end of the degree and I only showed the different jobs that had entry level positions for graduates or the potential to have entry level developers apply to their company. This is when I decided to explore different job roles showing that I could either be a games programmer/developer, a web designer or a software engineer. This is because I was looking through the AI programmer and found out it was not an entry level job but something that I could strive for if I am still interested in the future. The one thing that links all of these jobs tends to be that you need a degree to first get into the job as the employers then know that you are serious about getting into the development industry and will know that you have the knowledge to back it up. Furthermore, I also felt that it was interesting finding different courses or game jams that you could do or sign up to. I feel in the future I will try to boost my portfolio through working with other people or creating a games jam so that I can get experience for a short timespan and a fast deadline to meet straight away and forcing myself to learn code in a games engine I may not have used before.

Both of these professional skills and industry awareness subjects are very interesting as it allows me to explore the games industry more in-depth and truly understand what I must do to be a good game developer.

Week 1 – 25th March 2019 – 29th March 2019

I started off this week struggling through trying to use phaser. I first created a plan trying to make some sense on how I would create stuff that would be useful in Phaser and I was quite stressed as I was unable to create the game I wanted to create and thought I might create a different game such as a platformer and change the structure as I thought it would be easier for me. However, I decided to stick with the turn-based game as I wanted to prove to myself that I could do more and I could make the turn-based game. This is because you do not get to choose what you get to make in a real job as you make what your boss would like you to make. I knew that I wanted to get rid of the health issue I was having with the game and tried to start off with that, but I was finding this too difficult. I then decided to meet my tutor Aaron and he told me not to focus too much on making a fully fledged game and try to neaten the code to make it easier to understand for myself. This is when I looked through my code from iteration 1 and the game I was trying to create and realised how much of a mess the code was and I had forgotten what everything had meant in the code. So if it wasn’t going to be easy for myself to read then how could anyone else read the code that I had written. This is when I decided to spend a day looking at HTML5, CSS and JavaScript as a form of programming and how I could code a turn-based game from the ground up. This turned out to be a better idea as I was able to storm through work and create a game that I was able to feel I would complete with the single scene. Obviously it wouldn’t be an amazing game but none-the less I was confident that I would be able to complete it rather than feeling down that I couldn’t do anything. I feel this has allowed me to develop as a programmer as I was able to take a step back and understand that what I was doing wasn’t helping myself out as I was trying to code something that I didn’t understand and I was able to problem solve through learning something and creating it the way it should have been. I also have realised that I have abstracted my idea througout the process of creating the game and realised I took on too much to create.

Week 2 – 1st April 2019 – 5th April 2019

At the end of this week I have been able to complete my game through following my plan and matching it correctly, actually getting ahead of my scheduled timetable, this is because I thought I would have more trouble with the enemy as I did with Phaser and thought that it would be hard to do. However, I find that pure JavaScript doesn’t overcomplicate things as you only have to understand JavaScript and not a game engine too. Also everything is function based and follows the same pattern, so it was easy to correct and mistakes if there were any. I also found that when creating the test plan I was able to make different choices on what I could place into the test, and I wanted to show an enjoyability scale on how fun it was for the player. As if the player is having fun then it would be a good game for them and gives quite an accurate measure on who would like to play the game. Along with this I decided to create a qualitative data scale that asked important questions which would allow me to repair the game, such as if they understand what they are doing and asking them what they thought of the User interface etc. This is because the user interface is how the player interacts as they are playing on Mobile Devices, and if the interface is not working correctly on a mobile phone, it really hurts the gameplay as everything is touch based. I also created different art works that could be placed into the game. However, I do not feel like they were needed as they were quite ugly and it was easy for the player and enemy to tell who they were from the names above their heads.

Week 3 – Testing and Repairs

When it came to the testing week, I added a few minor changes before the testing, this was a game that had an end turn button and one which had a timer and allowed the players to choose which game they preferred. Overall when I decided to test, most people chose the button and through the body language of the users, I felt this was because the players who were testing liked having something to press on the screen as it allowed for the game to have more momentum as they were able to read everything on the screen within their given time instead of trying to read and then the test disappears of the screen as I set an interval for the game to countdown and it was five seconds which is a long time for someone to read. However, I understand that people read at different paces and play at different paces and that is why the end turn button is better overall too. Along with this I was able to use the testing results to repair different sections of my game. For example, a lot of people didn’t understand how much damage each ability did, this was because I had critical hits in my game so different values will appear if you have critically hit. Also because the game is touchscreen, it is hard to give a description of what everything does before hand as once you tap the button, the function triggers and therefore I have placed feedback into the game in a form of text saying “you have hit for X amount of damage” and also telling players when they have critically hit which should be more thrilling for the player too. A lot of people tended to like my Pirate’s Wager ability too as they said it was a nice “high risk, high reward” attack which people were used a lot and sometimes died to a lot. Overall I feel like through testing and repairing my game I was able to make a game that I could be proud of and a game people have found enjoyable.

Overall in iteration 2 I have been able to develop myself a whole lot more and allowed myself to increase my confidence as a programmer.

When creating the game with web analytics, I created different gtags to track what happened through google analytics. I feel that if I create a game in the future which is fully functioning, then I will use google analytics to make sure that I am able to track what has happened in the game and tracking certain movements that the player makes, to see if the game is too easy or too hard. For example, if the player wins 100% of the time and doesnt get killed at all, then I know that I would need to place more difficulty into the game. This would also be the case if the opposite was happening and the enemy was killing the player too much. Along with this, it is easy to place the gtags into the game, along with this I created a function for it and therefore made it a whole lot easier to understand and place it around without taking up too much code through doing so.

I feel that I would like to use with different types of programming languages as then I would like to see how it is structured and how I may do it for a game with an executable file such as Unreal Engine 4 and see where different people have failed or done particularly well within a game. However, I feel when it comes to testing stuff statistically with people, it is best to do it whilst also being able to see them, as you will be able to get that extra sense through their body language too. Statistical data can go so far, you also need qualitative opinionated data to show what people actually think about your game and using both you can improve. Web Analytics has been very easy to understand and how I may get a range of statistical data so will always be useful for me at a later date.

Question Planning

Firstly I started by planning out what questions I wanted to answer. This was done on word through writing down every question that I thought of which would be interesting and something that I feel would be a good research topic which would have a range of resources and opinions which can form an underst.

An aspect of Game Development?

Inner workings of a game engine?

HTML/JavaScript and how it can be used for games?

Mobile Game Development?

Free to play games and micro transactions?

How mobile games effect mostly the Chinese market?

A few of the principles of games development?

Specific games formats used on mobile gaming and why they are popular/how?

PC/Console Games and how they are ported to Mobile Devices?

Why mobile games are successful and the underlying reasons they became successful?

PC/Console games and the complexity of translating them to mobile over time?

These are the multiple different questions that I decided that I thought of. Along with this I feel that I wanted to do the questions PC/Console Games and how they are ported to mobile but I wanted to reword the question to be more inclusive. The first draft title will be called “Due to technological advances in mobile phones, to what extent have PC/Console games moved, re-released or adapted to work on mobile?

 

Research

Then I decided that I wanted to research some different statistics that I could use in the essay through looking at the different PC/Console and Mobile statistics showing the player bases which would allow me to show some evidence of why something has happened. Such as the market being stronger in a certain region rather than another why it was/wasn’t successful on mobile.

http://ukie.org.uk/research#Market UK’s games and interactive entertainment industry/UKIE research for the games industry in the UK. – Accessed 15/04/2019

https://newzoo.com/insights/articles/global-games-market-reaches-137-9-billion-in-2018-mobile-games-take-half/ April 30th Newzoo Quarterly update showing the mobile games industry compared to console and PC –  Accessed 15/04/2019

https://newzoo.com/insights/infographics/us-games-market-2018/  United States Games market info graphics, will help lead to conclusions on the amount of mobile gamers – Accessed 15/04/2019

https://newzoo.com/insights/infographics/china-games-market-2018/ China Games market info graphics – Accessed 15/04/2019

https://newzoo.com/insights/infographics/uk-games-market-2018/ United Kingdom Games market info graphics – Accessed 15/04/2019

https://newzoo.com/insights/rankings/top-100-countries-by-game-revenues/ Top 100 countries ranked by revenue of games sales. Accessed 15/04/2019

https://newzoo.com/insights/articles/newzoo-2017-report-insights-into-the-108-9-billion-global-games-market/ 2017 report by NewZoo showing the rankings in each device. This will allow me to create a informative decision to the growth and why or how the industry has grown. Along with this I can show the trends – Accessed 15/04/2019

https://newzoo.com/insights/articles/newzoo-cuts-global-games-forecast-for-2018-to-134-9-billion/ Games forecast didn’t grow as well as thought but still had significant growth – Accessed 15/04/2019

https://www.statista.com/outlook/211/100/mobile-games/worldwide#market-revenue Statista Mobile Games worldwide revenue and the different countries. This allows for different results to compare and have a broader scientific understanding – Accessed 15/04/2019

https://www.statista.com/statistics/324352/consumer-spending-on-mobile-gaming-united-kingdom-uk/ Statista mobile game revenue between 2011 and 2017, this shows the sharp increase of mobile games gaining revenue from – Accessed 15/04/2019

http://misplaceditems.com/rs_tools/graph/?display=avg&interval=month&total=1 Old school Runescape player count monthly and the rise from October and only now there is a decline in players. Accessed on the 20/04/2019

https://www.gamesindustry.biz/articles/2019-01-04-old-school-runescape-mobile-downloads-hit-5m Shows a five million downloads for Old School RuneScape Showing that they have gained more users after Old School Runescape was released and able to be played cross-platform for both PC and mobile. Accessed on 20/04/19

https://www.theverge.com/2018/12/18/18146774/pubg-mobile-players-fortnite Successes of Fortnite and PlayerUnknowns Battlegrounds when moved to mobile and the popularity of the Chinese audience. Accessed on the 20/04/2019

https://gamerant.com/fortnite-mobile-revenue-record/ Fortnite Mobile games revenue broken the record on mobile – Accessed on 20/04/2019

https://www.vg247.com/2019/04/23/pubg-pc-platform-dominate-asia-biggest-market/ PlayerUnknown’s Battlegrounds mobile revenue and the comparison from PC /Console to Mobile. Accessed on 20/04/2019

https://mspoweruser.com/minecraft-pocket-edition-smashes-record-revenue-for-2018/ Minecraft Mobile Revenue highest it’s been in 2018. Accessed on 20/04/2019

https://sensortower.com/blog/hearthstone-mobile-revenue-2018 Hearthstone Mobile Revenue, crossplay showing that you can play on both PC and Mobile. This creates a game that can be played whilst sharing account progression. Accessed on 20/04/2019

https://www.pocketgamer.biz/feature/10619/a-brief-history-of-mobile-games-in-the-beginning-there-was-snake/ First mobile games were snake and tetris. Block based games minimal pixels showing the technological growth allowing there to be higher polygon games with higher battery life and allowing PC/Console games to be played on the mobile device. Accessed on 20/04/2019

https://medium.com/monetizr/mobile-game-lifespan-is-shortening-but-theres-a-way-to-extend-it-d7e96561b008 Mobile Gaming Lifespan, allowing me to show the quick decline of games and why people spend money on free to play mobile games. This can be due to a number of factors such as, time gates or the difficulty to play stuff for free. Accessed on 20/04/2019

https://www.gamesindustry.biz/articles/2013-09-24-game-devs-ditching-mobile-in-favor-of-pc-console Mobile Games Development and why people are developing on PC. A reason why people would not favour designing on mobile because of the competitive industry while making it hard to get noticed. Accessed on 20/04/19

https://medium.com/swlh/10-interesting-2018-video-game-industry-statistics-trends-data-499050f976b3 Mobile Games statistics and trends of mobile gamers. Accessed on 20/04/19

https://www.pcgamer.com/uk/blizzard-faces-huge-backlash-for-diablo-mobile-game-fans-call-it-a-slap-in-the-face/ Diablo Immortals backlash – Accessed on 20/04/19

https://www.dualshockers.com/command-and-conquer-rivals-below-growth-expectations/ Command and Conquer Rivals Spinoff game didn’t do well in the west – However, the chinese audience played it a lot. Shows the chinese audience play mobile games more + will have more as they have a larger population – Accessed on 20/04/19

https://www.pocketgamer.biz/asia/interview/69288/netmarble-on-lineage-2-revolution-success-and-finding-next-hit/ Lineage 2 Revolution – PC game to mobile spin-off, very high pay off and still quite popular. Accessed on 20/04/19

https://www.polygon.com/2014/11/12/7202159/xcom-enemy-within-for-mobile-closes-the-gap-between-smartphone-and-pc XCOM: Enemy Within and successful port to mobile which retained the whole game inside except from making the game buttons more accessible for mobile devices. Accessed on 20/04/19

https://www.pcgamer.com/uk/ark-survival-evolved-mobile/ Ark: Survival Evolved is a high-power game that was developed to be played on Mobile. However, microtransactions are placed into the game to stop ads being played every so often. Also ads are played every so often. This may also be to appeal to a Chinese audience as they play ark on PC too. Accessed 20/04/19

https://www.digitalspy.com/videogames/a559524/terraria-passes-13-million-downloads-on-ios-android/ This was in 2014 but original release of terraria was in 2013 and terraria has stopped having updates since 2016. Overall 1.3 million downloads are good for a buy to play games as most are free to play games. Accessed on 20/04/19

https://www.gamesindustry.biz/articles/2018-08-08-fallout-shelter-surpasses-usd90m-lifetime-revenue Fallout Shelter was a spin off game created before the release of Fallout 4 in 2015 to create hype for Fallout 4. However, it was so popular that people wanted to play it on PC who didn’t have a phone. Not only this but the majority of the revenue comes from the United States. Accessed on 20/04/19

https://www.gamerefinery.com/licensed-ip-mobile-game-effect/ existing IP’s are more likely to be more successful due to the name of the brand as people have something to relate to. For example, Fallout being used for Fallout Shelter. Different type of fallout game but adaptation to promote it. There is a higher chance that it would not be as successful without the name tying it to fallout. Accessed on 20/04/19

https://www.polygon.com/2013/10/14/4838348/sega-mobile-games-connected-experiences-nycc-2013  Sega releasing games to a mobile audience and they want to diversify the range of different platforms the games can be on. Accessed on 20/04/19

 

Plan and structure of the essay

Title Due to technological advances in mobile phones, to what extent have PC/Console games moved, re-released or adapted to work on mobile?
Introduction What the report will include and the different pieces of evidence that I will include to present my point with both successes and failures and understanding whether this is a good or bad thing for the industry.
Definitions I will define certain keywords that people might not understand in the essay as people who read it may not understand what the definitions of certain words are. These will be added when I find a word that needs to be pre-defined to help a person read through my work.
Context Setting the scene showing the important details such as mobile gaming numbers and how it has become more popular over the years and numbers of mobile gamers in different countries to show where they are popular and if this may be a reason why some re-releases or games were unpopular. History of mobile games and games that are able to be played now as a result of technological advances
Main Body Use the different research cases/case studies that I have studied and place them into the essay while showing what their significance is. These will be split into different paragraphs to allow people to understand I have moved onto a new type of case study and help the structure of the essay flow. Start with original mobile device with a the game sonic and how it has been re-released onto iOS and Android. Also mention sega interview and how it is used as a testing ground. Then will talk about the different games that have been released now and the potential of the mobile games market and how it has released newer games such as Fortnite and PUBG.
Analysis Compare the differences or similarities between the different research cases that were presented and show why they are so important to understand this question and the point they make with this question.
Conclusion Evaluate what I have said within the essay and reflect on the question, showing that I have understood what my main thoughts and opinions are on it and if there is enough space what else I may talk about next.

 

Essay Writing

On the 25th of April I have decided to create the first draft of my essay, I have currently completed over 600 words worth of the essay, the problem I have currently is that I have only done a introduction and a summary, this is because I wanted to give a good understanding of what the mobile games industry is like, and how it was previously so that I can show the development of mobile games and how a 2d 8bit game snake was popular and over time, different games have been created to show the advances within the mobile device sector and how it has become popular. I feel this understanding is needed as then it allows me to illustrate my point of games which are originally on PC/Console being rereleased, adapted or moved to mobile devices. This is because I would like to incorporate my research, which I know all of the research cannot be placed into the essay. But I must select important research that is meaningful and helps people understand the points that I am laying out.

On the 5th of May I have been able to complete the rest of my essay, this was because I was able to focus on what I wanted to write. I decided to use 9 differnt pieces of research into my game and using side facts that I have understood or know already about the games. Along with this, I feel that I have been able to do quite well as I have been able to understand why the games have been placed onto mobile. A main reason being monetary gain. I have changed from my plan slightly as I had used a lot of words that were neeeded within my essay and as I have described what certain things are in the main body which were relevant on for a few lines, I have described them there. Along with this I have also had to combine my analysis of the question with the conclusion showing that I have understood the task, the question and the research I have placed into the essay.

25th March 2019 – 25/03/19

I started off the day through creating a plan for the week as through having a plan, I can structure my week and try to create the game and manage my time correctly, I understand that I must start research and also try to restructure the game to make it more understandable for myself, as I understand that I have lost track of what I need within my game and it has made the game harder to create overall. Below shows my plan.

I decided that I would try and debug the health issue to begin with as if that doesn’t work then the player will not understand what to do after they have attacked and have no basis on how they would do more damage to the enemy or the amount of damage they would do. Along with this I would like to create the turn manager and allow the player to be attacked or its a tutorial where the player can only attack the enemy. I wanted to try and make the different types of status effects through different cannonballs, but that can be done later after I have completed the turn manager and allowing both the AI and the player to attack each other. Then I thought it would be good to clean up the code and allow it to be easier to understand to myself and everyone who would look at it.

To debug the current health issue I tried to make sure that I got a lot of research done as I wanted to try and change my game so that it would be more functional through changing my code and this is where I started to try and look at different Phaser games that are created as Turn-Based combat, but none of these would help me in what I would like to do as they were also an RPG placed into the game, also they were placed in ES5 classes, which look different to ES6 Classes and therefore I found them quite hard to read and because I wanted to be more productive with my time, I decided to try and research more on other websites to try and see if I could change my game to allow it to function. This day I feel like I did not get much done as I tried to research the game a lot more and tried to look at other examples of turn-based combat games which would never turn out as I would like them to and this stopped me from finding viable information that I could use or understand to allow me to adapt my game.

26th March 2019 – 26/03/19

Today, I re-wrote my plan to make the game through Phaser, this was to see if I could change the game through streamlining it. This would include multiple different javascript files that would do specific functions. So I decided to write it out on a piece of paper. I decided that I would keep the ship class with what it would do normally creating the ships through their different classes and having the constructor based off a main ship that I have already created and this will remain stationary. I have also decided to keep the scenes I have already created such as UIScene and BattleScene which would make the game function along with my skillList and GlobalVariables as these will help with the creation of the game. But I also would like to create a BattleManager class that would allow me to manage the  player and the enemy turns. This is where I was questioning whether I should try and create a game through pure javascript, HTML5 and CSS to create it as I am not sure if the Phaser game engine would be helpful.

When I was trying this I did not get very far. This is where I was questioning whether I should try and create a game through pure javascript, HTML5 and CSS to create it as I am not sure if the Phaser game engine would be helpful. This would obviously mean that I would have to change my game and start from scratch, but this would be better overall as I would have learnt from my shortfalls and then create the game which would be more functional and cleaner, but I was seeing my tutor Aaron the next day and hopefully I will understand what I must do after seeing him tomorrow.

27th March 2019 – 27/03/19

Today I went to see my tutor in the morning and he told me how to create a battle manager through pseudo code allowing me to create a turn manager for my game. I personally feel that I need to restructure my game from scratch though, as I feel like I have overcomplicated my code to the point where I felt I had little functionality in my game as it was getting difficult to change different bits of code. Meaning that it would be hard to replicate in the future and I realise as a coder, its about problem solving and because I made too many files that had different classes in them, it made it really hard to keep track of what I was doing. Now I realise that this was due to a lack of planning. Therefore today, I am going to create a plan on how I will create my game. This I feel would be the best use of my time as then I have an idea of what I will create and have a plan that can be followed. This will be done with pure Javascipt, HTML5 and CSS as I feel it will be simpler for the game I am making as I feel I have over-complicated this task as I didn’t understand phaser for creating a turn-based game. Below I have shown the plan I had created to make the game and what I would like from the game when I have finished with it. I was able to learn CSS through using https://www.w3schools.com/css/default.asp as it was helpful into using classes from HTML5 and how they should be used to style the HTML5 I will be using.

I have also found this image which I will place in the background of the canvas:   https://opengameart.org/content/ocean-background

This asset will be used so that I can create the background of an ocean that my ships will battle. It will be stationary, however, I do want to make either it or the players move later on in the project if I have extra time. I will try to create the basics of the game. I have also decided through the restructure that I will not place damage over time abilities such as fireballs or venomballs.

28th March 2019 – 28/03/19

Firstly, the most important thing I must do is create my HTML file, CSS file and my JavaScript File as these will be the three things that I use first. This will allow me to create the project. I have also linked the Css and HTML in the HTML to make sure that when I do test my file, all of my code will be shown visually on the browser. I called my html file Index still as it will automatically direct to the html file if you call it index.html. As you can see there is a link rel to my CSS stylesheet and “rel” means relation and this means I am linking the CSS to the HTML and allowing the html to refer to the CSS when creating the style of each HTML element.

Below is the strucute of my main body of the html file. It contains different divisions of codes within the class known as game, this is the main bulk of the game and is based upon the enemy and the player characters. Implementing the placeholder ship sprites on each ship as it will allow me to know where each character is placed in the game. They all have their own base classes that can be referred to and this will be important for creating the game through CSS and give values to the widths, heights etc. which will be completed later on.

Below you can see the message box that I created at the bottom, this was originally called skillsList, but I though it would be better to refer to it as skills as it can all be lower cased and I would not need to type out as many characters to create it. Also it was simple enough being called skills as if people were to read the code they would understand what they are used for. These are buttons that will be clickable currently, later I will allow the buttons to be used as a mobile tap. Currently it does not function as I have planned but I have added images and buttons that can be used without an functions. This is a good place to start as I have created a UI for the game as a bare minimum abstracting it to its most basic of forms. The buttons have different functions that I will create in the Javascript in the future, so it is essential that I remember these so that they will work properly.

Now I have finished the HTML so far to my plan, I have decided to start using the external CSS file, this is automatically loaded with a body, which is perfect as I am able to create the type of text that I would like to use, I am using Arial as it works with mobile development too, or else I would try and use Papyrus as it is a pirate type font. The Ocean image has previously been referenced to from where I found it on OpenGameArt.org. As it was perfect for a ship combat based game. Underneath I referred to the game class by placing a dot before it in the CSS file which is known as a class selector, whereas if i wanted to select an id I would use a # to select it. When creating the game, I made the position as relative so it will be relative to the original values it is given, this is good when using a property such as left or right, where it will always be the value from the left or right. Overall this allows me to create the base of the game, through giving me the background to place the different images and text in the game. I have made it relative to the background too, stretching the image but not too much.

Below you can see me creating the classes of both the player and the enemy, I have also positioned the players/enemies HP and names. When placing the .enemy and adding another value of the enemy class which is the stats class, you just show them placed as one after another. This was tricky to understand to begin with but started to make sense the more I used it. When creating the position as absolute it refers to the position of the previous class that it is linked to, therefore the enemy’s stats are shown being left and up from the ships original location. The height of the enemy shows the position of the height that it is placed in the game, this is the right ship. It will not be as easy to understand where the enemy is for people looking at it to begin with, however, as I am working with the ship I understand where its location is, but as it is just a placeholder currently, it is good as it will be changed in the future. The ship class of the enemy and player allows me to refer to the size of the ship and how big it will be on the canvas and how many pixels in the right of the screen it will be. These will be similar for both of the ships as they are both going to be similar other than one being player controlled.

After this I decided that I would create the bottom of the screen as the User Interface and how the User will interact with the game, as you can see down below, I use the box class to create the bottom part of the screen that will be used for the player to attack the enemy with the buttons being stylised and a message showing the player what is there course of action. This was set up similarly as the game class was. I did have to change the game class so that I would create the game to be usable on a Samsung Galaxy S6/S7, and this is good enough for the time, hopefully I will be able to allow this game to fit to the screens of different mobile devices, but if it fits some, that will be good for me as it will be able to be played on the larger phones but the screen will be slighlty smaller. I also show the skills and how they are created as a button. I used the colours that I did to highlight the buttons to the palyer and showing them what they will want to be interacting with. I also used some maths to calculate the buttons size through showing it as 50% and showing the – negative pixels of the parent through parsing the percentage followed by a negative length, the whitespace in the middle between the subtraction is important otherwise it would come up as an invalid function. This is a good function to use, especially for creating multiple buttons as it allows to create a box that will be created specifically to be calculated based on the .box class. This is starting to be shown as an idea of what I would like the game to look like before it becomes functional and is satisfying so far for the eyes of the player in my opinion.

I decided to create a hover and active function which will change the colour of the button dependent on if it is hovered over for a PC user, showing they can click the button on the screen. Whereas the active method allows the class to change the button to a different colour showing that the player has selected it. This will work on mobile as a click and touch will both count as the button becoming active.

For each of the stats I wanted to show them clearly to the player, therefore I made a dark background and white text, this is good for the eyes and suits the sea look with a dark blue colour. The stats here also create a hp-count to be before the stats which is good to allow the player to see their HP, this should change when I start creating the functions in JavaScript too. Overall I feel that I can start coding the attacks for both the player and the enemy and hopefully create the turn-manager that I normally find so hard.

I feel overall on this day, I have created a nice looking game on the surface and I feel it will be simple to understand for the user, now it just has to be functional through using the Javascript. If I manage to create the JavaScript correctly and allow the buttons to work I will be on track, However, if it manage to get the enemy working too then that would be a bonus.

29th March 2019 – 29/03/19

Today I started creating the JavaScript code for the player and enemy skills and setting their health as a variable, this will allow me to change it and make it lower on the screen giving feedback to the player. This is particularly useful as I wasn’t able to do this on Phaser, but I have overcome it with pure JavaScript and HTML5. The variable called enemyAttack will not work until the enemy attacks are created below as functions. I have also set the playerMove as zero as it is counted as an array where 0 would equal the players turn, and I will make sure that when I set the players ability as being activated, then I will then add the playerMove to be one, meaning it would go to the enemies turn.

Belwo you can see the function for the cannonball, all of the abilities will be similar where there will be text confirming the enemy has been hit or if I have missed, the miss rate will be quite low for the basic attack and therefore easier for the player to actually hit the enemy. Each ability will be different including an ability I would like to include later which is a gamble on whether it will kill the player instantly or the enemy instantly. When I created this I must comment out the player move = 1 and enemy abilties to make sure that it worked or else it would come up with an error and not change the enemies HP. Below where I show the players attack, I have created that critical value so that I can change it dependent on if I want a critical hit multiplier in the for loop and will use it for every ability so far to see if i would like to change it, if i made the second variable < 3 then I would do 3 times the damage of the enemyHP = enemyHP – 20. However, I feel later I will just set the critical hit value to be a simple value to make processing the game easier.

Here I have created the ability to kill the enemy or player instantly, there is no critical hit rating on this ability as there is no need to have one, I also understand that I have redundant code with the missRate as it shouldn’t really be called missRate. However, this doesn’t matter too much as it doesn’t lag out the game at all when running it. Also it works as intended either killing theplayer instantly or player instantly. I have also removed the playerMove = 1 as it is an end game feature. I want to improve this in the future for a player to use this ability only when they are below 30% HP. This isn’t too important however, as this is not core to the gameplay, this will be changed if I have the time to do so.

Below I started to create the enemy functions and I based these upon the players abilities. However, they do not need to have the first if statement because the player will go first all the time in my game allowing them to have an advantage. However, I understand there is still more that needs to be done, tihs allows me to have a good template of what I would like to create tomorrow.

Overall, I was happy with today, as I had exceeded my expectations and managed to create one enemy function. I feel that using pure javascript has been a lot more useful with the type of project I have been doing. I must further create the rest of the enemy abilities as well as create the turn manager which will allow the enemy to attack the player character. This will allow me to create a simple battle that people can play. Then I will try and create some sprites which will be able to make the game look  better. Along with this I hope to get either another battle scene or create a longer lasting battle in order to make it more fun for the player and work as a proper tech demo.

1st April 2019 – 01/04/19

Firstly, I started off by creating a plan of what I will be doing for the week. As you can see .

below is the most powerful shot that the enemy can do, they also have the same functionality as the previous abilties, there are four abilities for the enemy to use, two weak and two strong, but they will choose the abilities at random, and might end up killing the player first when playing against them.

Here I created the enemy move function which will allow the enemy turn to start, as one the player has used their ability the playerMove = 1 therefore will change to the enemy turn as in the if function the playerMove must be 1 and the enemyHP must not equal zero, this will mean that it will function as the enemy is alive. Along with this I also created a movePicker variable which will give me a random number between 1 and 4, I realise though I must change this so that it is between 0 to 3 as that willbe the array of movs as the enemyAttack is the array that runs the functions.

Here I have repaired the enemyMove function which will allow the enemy to hit back, currently I have made it so that the enemy does attack the player, however, as the message shows up but there is no damage that is done to the enemy and sometimes the enemy health goes back up. This will need to be fixed the next day as it will allow me to allow the game to work. I added .call as it calls the function itself to work.

I have also come across a few problems on the loops as I have not put the right numbers into each loop as I was rushing through the creation of the abilities and messages that will give you feedback to which move they have used through the wording of the message, this allows the player to work out the ability instead of being directly told it. There will be many tweeks to make sure that I am able to create a good battle for the player.

2nd April 2019 – 02/04/19

I was planning on creating a timer to give the player the interactivity and making it a game rahter than the enemy just being hit over and over again. However, I felt that this would be one of the worst ways of doing it as I could just create a button similar to card games such as HearthStone or YuGiOh where you can end your turn. However, unlike card games where it is multiplayer and there is a timer counting down when a player willl end their turn. As when the player attacks the playerMove will = 1 meaning they can no longer attack so it will become the enemies turn. So by adding this button the player would not be able to pass their turn and it will allow for a linear game design that wont automatically kill the player.

I decided to change the box class to ui as i thought it was a more appropriate name for it as it is functioning as UI.

When I was trying to fix the enemyMove to do damage, I placed enemyMove() in each player ability to call it at the end of the skill’s use. However, this would automatically make the enemy attack the player and the values would be increased on the enemy player. This is becasue I was making the abilities in a similar way to the players, and because of this I mistyped the enemyHP will be lost from the players main health. This can be seen below.

the images above show that when i was creating the code to attack the player, I was into the typing of destroying the enemy and I managed to keep it as the enemyHP that would be minused from the original playerHP which would create a loop where the enemy would lose its HP then it would reset to the players maximum health and it would take a while to kill the enemy and not do any damage to the player. Through fixing this, I have been able to create a turn-based attack system that would cycle between both the player and the enemy. I used the code below to create a turn-based system but I did not create a timer that could be used so the enemy would fire back instantly.

playerMove = 1; // updates player move to create the enemy turn.

enemyMove();

I decided to change this and went for a button that would end the turn and the image below shows that it has been reverted back to its normal state where the player move = 1. This is because I have linked the enemyMove() to a button up above and this would create a button that would allow the player to end the turn.

Currently the game has the end game underneath the main screen where it will be played on a mobile phone. This is because I am still deciding whether I should place the end turn in the UI box underneath the messages that are being shown with a pirate theme. Or if i should place it underneath the enemy ship so that it is shown as a different part of the UI and make it so that the player knows that it is not an ability.

I have used CSS to move the End Turn around the game to show where it should be in particular and I feel that it has a good place above the skill bar as it is clear enough to show that the turn has there is an end turn button and it will be simple for the player to understand that they need to use an ability before actually attacking the enemy. Here I have moved the CSS and added values to make it appear at that position which has also been shown below to show how it reaches that position.

Overall, I have done quite a lot of debugging today and allowed myself to complete the game working with only PC website functionality, I will have to add the mobile phone controls the next day in order to create a mobile phone experience that a player can enjoy. I also feel that the game is still casual even though there are multiple buttons on the screen. This is because the game is easy to figure out and has basic values that can be learnt through attacking the enemy. I may also add a restart button so that when the player either kills the enemy or wants to restart, they do not need to refresh the page and there will be a button that can automatically do this.

3rd April 2019 – 03/04/19

When I decided to start coding today, I found a bug with the end turn button, as the height would not be able to equal what I wanted it to be as it was determined by the font and the font size as well as the width of the the button. This meant that when I declared a height the button would not be pressable outside of the button but it would obstruct the heavy shot ability. As when I hovered over the heavy shot button it would not turn an off-white colour showing I have hovered over it. However, to change this all I needed to do was change the height value to 100% of its value as then it would just cover the end turn button. This is what the code looks like now in the CSS down below.

I decided that I would like to upgrade my code and place some touchstart code into the buttons on each of the skills in the html file. This is shown in the image below where I have the onclicks which will perform the code as well as the touchstarts that will perform the code after the player has touched the screen. There is no need to place a comma after the onclick function in the html as that is how it works in HTML.

Then I decided to test it out through using the toggle device toolbar which allows me test for the mobile devices that I am using. I can set different resolutions for different devices, its based off a samsung galaxy S6 Screen which I will test as a mobile test device as it is easy to test on the phone I own. This shows the different abilities working and the hover effect over the last thing that has been tapped as you can see on the end turn. I feel this is a good unexpected touch that I have in the game as it allows the player to know what skill they have previously used in the game.

Along with this I decided to upload it to my website it order to test it on a mobile device, this was shown through a screenshot below that I have taken with me on my mobile device playing the game. This shows that the game works and it has not crashed at any point when the player or the enemy dies.

This means that the game is complete and fulfils all that I wanted from the game. I will add more to the game however, as there is a restart button that I would like to add if the player instantly dies through using Pirate’s Wager, and I would also like to know what else I would have to change through the testing that I will get from other people.

I decided to create the restart button and this basically just refreshes the page and allows the player to play again once they have destroyed the enemy or themself. It is a simple javascript:history(0) to make it as if the page was at its original state and is a quick way to refresh the page. This is how it is placed into my code below. I decided to put it in the top left of the screen as it was not obstructing the players view whatsoever and not a place where they accidently would click it. I will talk about this in the questionnaire however, as I feel it is best to ask what they like about the UI and how I could change it to become better for the player.

I then discovered the onclick works for both mobile devices and PC’s which was good as I could take out the code touchstart as it was taking up unneccesary processing power. Along with this I decided it would be a good time to updated my code and change every loop to values of the abilities to flat critical values, I also feel that it might be better to make the player and enemies health increased to prolong the fight and allow for more turn based action within the game, rather than having an instant fight that is finished within a few seconds. Below you can see the changes I have made to the exploding shot critical, this will allow it to run faster instead of looping through each critical for a 2x attack, I have also scaled down crit damage to make it a more fun game against the AI.

I have changed the Pirates wager ability and made it do a significant amount of damage, and this means that it doesn’t feel like a gimmick ability. It would be good to have an ability like that in a larger game as it would be used as a joke ability. Whereas now it has more of an impact as it can either really damage yourself as a player or damage the enemy with a large shot on the enemy. The only problem is, people will probably reset the game when they lose a wager. This would happen either way as instinctively players do not like losing. Hopefully when I test this, I will let the player have free roam of the game and see what they do and through observation I will see what they choose to do. Below shows the changes to the pirates wager with a new variable I have created specifically for it, I also had to add the player move = 1 as its now a useful ability rather than one that kills them instantly. This also shows the different variables for the player and enemy HP. I also had the change the original values within the HTML file too.

This is a good finishing point for this day as I have allowed the game to be more fun for the player by changing a few values for the player and enemy abilities. Along with this I have created a game that is functional on both PC and Mobile fulfilling what I would like to do, as I have decided placing a burn ability would take some time to understand. This is still knowledge that is grey to me, and will probably create a whole restructure of the game.

4th April 2019 – 04/04/19

As I was ahead of schedule today, I decided to focus some of my time on creating some of the assets for the game and this includes the creation of both the ships, I will keep the placeholder as it has a good design on it. However, I will spend some time trying to make the game look better and entice the player into playing, this is because most of the time, the player is enticed to the game through the graphics, they will not be high quality. But it will help in showing off the game.

I feel I could have done better today as I have tried to make different pixel art designs, but none of them are feeling any better. I think the best course of action will be to keep the placeholders as they are plain and dont have too many different visuals. I feel the pirate ships look perfect as they were and anything I have tried to change will probably ruin the look of the game in my opibio I only have to create a questionnaire that will allow me to test the game out to different people. Then I can see what people think about the game. This will then allow me to change the game to make it more user friendly or interesting for the player. I will see on the day that I get feedback if they would like a different design, as then I could probably make the ships a bit bigger, but I feel the original ships should be fine.

5th April 2019 – 05/04/19

Today I have created the questionnaire, this has a mixture of quantitative data and qualitative data and I will use it to get a varying amount of results. These results will allow me to restructure my game to be created towards player. I understand that they are similar to the previous questionnaires that I have done. I have added a few more questions on the qualitative research as it allows me to get into the mind of the player. Also this time my game is complete and therefore the feedback will be a lot more useful as then I could change certain aspects of the game if the testing group decide it is a good idea. I did not add much more to the quantitative data survey as it was a good set of questions and will hopefully show me that I have improved the game and made it suitable for a turn-based game that people will enjoy and find responsive.

Overall, I feel that I have done quite well during this iteration, as when I have been having problems, either I have fixed the problem through finding stuff online or just been able to create it through my own knowledge and over the past two weeks I feel that it was the best idea to change the game to make it the same game, but with minimal changes. Creating a turn-based game the way I was trying to on phaser without the knowledge was not a good idea and through understanding where my weaknesses were, I was able to strengthen my game and simplify it to the point of completely solving my problem. This was a great learning experience as I have understood that as a programmer, when a problem appears a lot, then there is a problem with the way the code is structured as it hasn’t been planned out properly. This is why the game was a lot easier to create the second time around.

25th April 2019 – 25/04/19

I decided that I would make my questionnaire slighlty different now as I decided to do a bit of work to my game as I think I will put a timer in the game through setInterval() and I will ask if the player prefers the button to end their turn or if they would prefer the button to end their turn. Below is the code showing the set interval. This also meant that I had to take the end turn button out.

The amendments to the questionnaire are placed below. I feel that this is important to place in, then I can see what the user prefers and if the player would prefer the setInterval then I would use that instead. I have the code for both currently and will update the github when necessary if the player prefers setInterval. I felt it was important to also add whether the game was too easy as I wanted to make it for a challenge to the player if it felt too easy. This means that the game wouldn’t always result in a win and would feel like a challenge.

Now I have both versions of the game, I feel more confident about the game I have created as I can tell what the best version would be to use as the main game. Now I will only have to get answers to the questionnaire and then I can make changes to the game if they are possible and able to be done within a reasonable timeframe.

Monday 29th April – 29/04/19

Today I have tested my game with 10 different people, I feel this allows me to get a good insight into the opinions and have a large statistical base on where I should take my game next, this is through using my previous testing plan. There were a large range of varying results of what people enjoyed about the game and what I can change to make it better. Firstly, I will analyse the statistics and make conclusions on each of the results.

From the data that was collected in the quantitative part of the questionnaire, I have understood that multiple people feel tha the game is responsive to their touchs on the mobile phone screen, more notibly when they were playing the game using the button rather than the timer, as people were trying to spam the buttons when using the timer. It is also a very good sign that most people know how to navigate the game really well as they understand how to navigate the UI on the screen, this is because there is a very simplistic and minimal buttons so I feel this allows the player to know exactly what to do on the screen. Then there was the third question asking the player how easy it was to understand the damage that was done while playing the game. This is because I tried to make the damage values show only when an enemy attacked the player. But this also confused the player as they would not know the damage values that well. Along with this I feel that I am not completely targetting fully towards a casual audience as they would want to know the damage. But I was taking on feedback from the previous testing from Sam where he told me to keep it simple but allow the hardcore players to understand what is going on deeper. So I decided to make the damage only be seen through the HP text and let them figure out the best abilities. This may also be used through the descriptions of the ability such as Pirates Wager, where I should allow it to have a description telling the player its high risk, high reward. This would be easier to do for PC, however as there is no way to allow the player to hover over an ability on mobile which is one of the bigger constraints. A lot of the players enjoyed the graphics of the game too, this is suprising as I still had the placeholder ships, I would have like to have seen the results if I had used the other ships in the game and if the players might have liked them better or got an overall lower mark if I used them. One of the most important questions I feel in my opinionis the how fun was the game, as most people thoroughly enjoyed the game, I understand i placed it as very good, but it was more of a scale of 1 – 5. If the game is fun for the player, then this allows there to be more faults in the game that arent game breaking as the player is enjoying themselves and that is one of the key points of a game, to allow the player base to have fun. I feel this quantitative data was very useful to allow me to understand what is at fault with the game. There is also Qualitative data which will allow people to elaborate on the faults of the game and then I will decide what I can change through time constraints and if I will have the time to implement the changes in the game and the high demand of the change as if people feel that it is most needed then I will try to place it into the game to the best of my abilties.

The qualitative data has a lot more opinionated information and can be taken as quantitative in certain circumstances, I will only be showing the main answers that either stuck out or were said often enough to either justify changes or why I would not be able to do the changes, such as timeframe and not being able to do it within the time I have, as well as not having the knowledge of javascript that would help me create these changes. However, I will try to make the most changes I can whilst I have the time to act on the questionnaires feedback. Below are the different questions in order and the different answers.

1. When playing through the two versions of the game, did you prefer the button to end your turn or did you prefer the timer to be shot back at?

With this question it was similar to a quantitative. However, most people were split on this decision as there were 6 people who preferred the button and 4 people who preferred the timer. So, it is mostly preference, I feel that most people liked the end turn button as people then have an extra button to tap on and allows for more interactivity for a fast fight. I decided to give one more player the test to see if it resolved my problem, as if it is only 60% of the people who liked it then I am not catering fully to the audience. The last result was that they preferred the button. This allowed me to decide that the button version of the game would be the best course of action to take.

2. When playing through the game, do you have a great understanding of what you are doing?

This question was a 100% answer of yes and that everyone understood exactly what to do, I also tested 2 people who do not play games often and they thought it was very straight forward. One person said that they did not understand what pirates wager did fully. I maybe should give an updated version that says they have done damage to themselves to show it and hopefully they will understand by the name that it is high risk, high reward.

3. Is there anything that you would change in order to let the player understand what they are doing?

The result most commonly given back when people played this game was give a description of what each ability does, this is quite hard for the version as when you tap, it automatically shoots the enemy and there is no way to show a hover over the attack. My biggest concern would also be the pirate speak and if it would be able to work properly if I changed the game to allow the text to come up when the person touches the skill. I feel I could make it work with javascript touchstart, touch end and touch cancel but I feel it would take to long with the other work I have to do. I will probably implement some damage that the player has done with the pirate language and show when the player gets a critical too as not many players knew that there were critical hits as they didn’t say anything about it. I feel this could be added to the game, as it is simple text changes and would allow for the player to understand what damage they have done. As there is a restart button allowing the player to play again with an understanding of the game the next time.

4. Through playing the game, did you enjoy the battle?

Everyone said they enjoyed the game and that they liked the back and forth gameplay and how shots would sometimes miss as they were able to have close matches and werent always winning really easily. One person enjoyed the end turn button as the skills werent easily spammed/used quickly to end the battle fast and it would allow for a fun battle.

5. Is there anything that you would like to be added that would increase the enjoyability of the battle?

The most common answer to this was using animations in some way to make the battle more interesting, I will try to add cannonballs if possible so that it will be shot at the enemy/players ship and maybe if i find a way to make a GIF I could make the boats go up and down so that they look like they are moving in the sea.

6. Is there anything that you liked/disliked about the skills? If so, what?

Most people liked the skills in the game and nobody found it too easy, two people didn’t understand pirate’s wager too much. They did like the variety in the skills and enjoy them, once again it was just that people did not understand what the skills did, and therefore I will make this work better as I have stated previously in question 3.

7. What is your overall opinion on the User Interface of this game?

In this question everyone thought that the interface was simple, easy to use and understandable. This is the type of feedback that I wanted as people could get into the game simply and be able to get into the fight straight away. Once again people said that it would be better to have animations on the UI such as cannonballs for the feedback on the UI and add descriptions to the skills. The common theme was to try and add something to allow the player to understand the damage they have done through showing the damage through text.

8. Was the game too easy? If yes, what would you change?

Not a lot of people said it was too easy, as they had a challenging fight and had fun through the battle scene. The thing that people liked about the fight was pirates wager, as it had a high risk, high reward factor if you were about you lose, you could sway the course of the game in your favour. Along with this, people wanted the enemy damage to go up slightly, I feel that I will make their basic attack a little stronger so that people will be able to have an extra challenge to the game. Also one review said that they stronger shots such as explosive shot could get a cooldown, so that they cannot be fired again straight away. I could do this through creating a variable where they had to use it, the variable would change to 1 and when another ability has been used, then they could use the shot again. I will obviously have to test this and get a few players to test this and see if it gets too hard. If so, I will revert the changes to the game.

 

I feel that the testing went well compared to last time. This is because I had a fully functioning game. It also allowed me to make certain decisions about my game, such as using a button now instead of a timer due to a majority of people preferring the button. Also I will add some text when the different shots are fired showing the damage they have done to the enemy and allowing the player to know how much damage has been done. I tried to make it casual but hardcore with the different shots showing the damage on the enemy and having text lines showing feedback of the shot the player has been hit with. However, it probably was a better idea just to tell people they have been hit and the damage they have taken. I will also try to get an image made for the ship being destroyed and hopefully that will improve my game. I would like to get all of this done, but it will might be difficult to do, whilst doing other work currently.

Changes based on testing results

I had time for a few minor changes, and I thought the best changes to make would be the feedback so people understand exactly how much damage they take and how much they are doing to the enemy as they can read the UI above the players and enemies heads. But its that bit easier when people understand when they have got a critical and the base damage values. It also helps reach out to the more casual audience as then they can make the best use of each skill through knowing how much damage each ability does. As I have depicted below, the code has changed slightly to take the innerHTML of the class message by ID and I will change it dependent on if a skill gets a critical hit or if it gets a normal hit. Its obvious to the player when they miss as it says it within the text and therefore I do not need to change that.

Obviously when I changed this, there were problems that arose as the original font size was larger, and therefore I had to go back to the CSS and tweak the font size until it was large, but not too large that it pushes the end button and restart button to the right on the screen. This is testing that I have had to do throughout to check that everything has been working as CSS can unexpectedly do something you don’t want it to do.  Below I show that the UI Font Size has changed.

Here is the changed text and I feel it looks slightly better smaller. When I tested this on my phone, the text size was easy to see for the user and still functions perfectly for the mobile version. This means that I have been able to take the user feedback and apply it to make it a lot easier for the player to understand.

Evaluation

I feel overall throughout iteration 2 I have completely managed to turn around the project and make it look and function correctly. I just had to take a different approach to creating the game. Through using HTML5, CSS and pure JavaScript, I have managed to make the task a lot easier for myself as I was overcomplicating the problem and by taking a step back and creating something which did not need Phaser, I have understood where it was necessary to use a game engine and where it is necessary to create something purely through using code and a few assets. If I was making a full scale game, I may use phaser as it has scenes which would be easier to create and change between. I also found that I had to scale back a lot of the expectations I had for the project to, as I thought too large scale for the time period I wanted to make the game in as a solo programmer. It has allowed me to learn how to plan more effeciently and scale down projects to make them more manageable. I only had to research a bit harder to make sure that I have the skills to do what I wanted to use for the project that I was doing.

I have also exceeded my expectations of what I would get done throughout creating the game as I managed to create extra things into the game scene through testing myself and having people test throughout development. I thought that a restart battle button would be useful then people did not need to restart the game and it was more of a quality of life change but it allowed the player to jump straight back into the battle. Along with this I was definitely happy with the way testing went as it focsued more on what the player thought of everything on the screen and the values and I went into more detail allowing the player to give me more feedback and how I gave them two versions to play either with the timer or end turn and how people reacted well to both of the tests that I gave them. The testing was not perfect however and in the future I could still make my questions more refined by making them either clearer or giving a place where they can expand further at the end by asking them if they have comments on the game that were not in the questions. However, I feel throughout doing both iteration 1 and iteration 2 I have clearly allowed myself develop through understanding where I was going wrong and what I had to change. As a programmer it is important to have problem solving skills and instead of getting invested into the code too much, you need to take a step back and see it from a different point of view.

Week 1 – 04/03/19 – 08/03/19

This week I feel that I have not done as much as I could have when completing this turn-based combat game about Pirates. This is because I have limited knowledge on what a turn-based game would entitle when creating it in JavaScript using Phaser. This has led to me having to find different tutorials and sources that I can use to understand the problem. This in turn has made me behind on creating the game, this is why in the second week I have given myself more time to create the second level as I thought that I may encounter a problem. I have decided that it would be best to try and find something that will help me understand the game more over the weekend. Along with this I feel that some days I have had a really good day as I have been able to do most of the tasks that I have set myself for that day. Wednesday is one of the best days I feel as I got a lot done throughout, creating the player and enemy’s which were not functional but allowed me to place them into the scene. It also allowed me to create graphics in the game which would be used as a table in which the player used their abilities. However, due to not having the knowledge as I wanted to challenge myself as we did not do any of these types of game previously, I feel that it has been going well. Just in the future, I will need to reschedule the timetable to allow myself more time as I knew that I had these knowledge gaps and this would allow me to research without putting pressure on myself and learning more in the process. I should also be more forward in asking for help from people when I need it as I also don’t do that often.

Week 2 – 11/03/19 – 17/03/19

I haven’t had the best week this week when creating the game. As previously stated I havent had the greatest workflow when I have been trying to spend a lot of time on creating the game. I have gone in many times to try and increase my knowledge. However, I just havent been able to retain the knowledge and I have been trying to make the game work through looking up the Phaser document online, but it is quite hard to understand. As much as I have used trial and error, I have not been able to solve the problem. I feel that I will need to either change the scope of the project to make it more simpler or change the type of game I am creating to be easier to create. I feel like I will need to try and learn some more JavaScript and Phaser in order to create the game. The biggest problem I have however, is that Phaser is quite hard to learn as there are not a great deal of tutorials to learn Phaser for what I would like to do and the documentation for Phaser 3 isn’t the easiest thing to understand. However, I do understand some of the Phaser game engine. Overall I will see the feedback that I have got from the questionnaire and create a statistical survey to see what people rate the game and how I could change it. Also who would like the type of game I am trying to make through the statistics, so there is a statistical understanding on what people think of the game from an unbiased point of view.

04/03/19 – Monday 4th March 2019

Today I managed to create multiple JavaScript Files, these being the BattleScene and UIScene, and multiple class JavaScript Files, I have not added any properties or methods to these yet other than the configuration which was added in corsairGame.js to keep it separate from the game. This will allow me to create a preload, create and update function in a different Javascript file and allowing that file to do all these functions. I have decided that I must get a few placeholder assets before the coding of the game and therefore have decided to find some placeholder sprites that I can place into the game and use in my classes. I would say that I have not done specifically what I would like to have done which is get a base for my game, but i have decided to do some research in order to get the knowledge I need so I can create my turn-based ship battle game.

05/03/19 – Tuesday 5th March 2019

I have managed to create a game screen through Phaser now, through connecting multiple scenes together on Phaser. I have also managed to find a tutorial online that allowed me to understand what I needed to do more now. I have not created any classes now but progressing through the work at a slower pace than I had thought out. I thought I would have more trouble in the first week. However, now that I have coded some of the game together and overlayed the scenes partially it means that I can start working on how I would like the game to be layed out. I have filled both the background in and the foreground through the UI. I have noted that it may be useful to create a tilemap for the background scene where the battle is happening to make it look nice and will have to find a tileset to create it. Whereas the foreground I can create some buttons and through pixel measurements can place those into the game and try to make them touch compatible. However, I will now be able to move onto classes for the player and enemy. This will be a success as long as I create a player that can hit the enemy. Unfortunately I have not been able to find any placeholder sprites or create any sprites that I can use. However, I will most likely use rectangles and messages console logs to show me that the player is functional and hitting the enemy. The images below reference how the files are linking to each other. Firstly, the image showing the config of Phaser show the different scenes keys that are being referred to. Along with this you can see the keys I have created for the different classes with the constructor supering the key. Then in the create function I would load the Corsair Battle Scene. It is different in the Corsair Battle Scene file however, as I launch the UI instead which allows it to overlay the battle scene which is the background and allowing the UI to be the foreground. LoadGame will be used to manage all sprites and assets.

06/03/19 – Wednesday 6th March 2019

Today I managed to create the battle scene and the UI in there own respective files, this being the corsairBattleScene and the CorsairUIScene. This was done through creating multiple boxes that had a fill to make the colour wood brown on the inside of the box and white on the outside. This was done through the creation of graphics on the UIScene, this will have to be changed to an image further in the future but is working as a placeholder so far. Along with this I created the background to be blue which is in the battle scene as it will be sea when the graphics are made for it. Along with this I had created a placeholder sprite for the ship which was created for the player and enemy classes which were also created today. Below are the screenshots showing the different graphics that I have created as well as the player and enemy classes.

As you can see there are multiple rectangles I had created on the left image showing where the top row of the abilities will go and the bottom row of abilities. This is shown as a placeholder as I would code the interactivity on Thursday. The right image shows the different ships with the different properties which I want as statistics for the ships to have including the health points (hp), damage, name and defence. I have also set the scale to be 2 on the player so that I can show the enemy ship in the distance whereas the player ship is closer and will be shown closer when I set the scale as 2. I have also created the methods in the classes for the players attack, here I want to take the attack and minus the defence to take away HP from the enemy or player and why i have placed it in the parent class. I then placed them into the battle scene.

The first line in create shows that the background colour has been set to blue. Along with this i have created the players by declaring them as variables and placed them into the game, this will be static throughout the game as i will only want to show a cannonball firing, which will only fire when the button is pressed through the “pointer”. Then adding an existing player. In the future I would like to add the enemy ship through a switch statement which will allow a random ship be placed from different tiers. Currently I want to make sure the player and enemy will work before creating different ship tiers. I would like to be able to destroy ships with my next day of work and that will allow me to think about implementing turn-based combat as i want to make sure that the combat works before making it turn based. below is the image of what it looks like

07/03/19 – Thursday 7th March 2019

Today I did not be as succesful as yesterday and found problems with creating the abilities the way I would have liked to, however, I may need to create two sets of abilities one for the player and one for the enemies to use. When trying to make the game interactive, I had created an abilityclasses file which I used to create the interactivity. I placed the graphics box into its own class called the ability master which will allow me to create a box individually for each ability, which will be added in the UI. Below is the class that i have created for the skills.

I originally was having a lot of trouble when i set it to interactive as when you create it with a graphic, you need to add a hit zone. When the hit zone was first created, it had some problems as the origin was not set to zero meaning that when i clicked on the button only the left half of the button worked when using a console log. However, the way I fixed this was by placing the origin at 0 so that it would be clickable at any point on the button and when i used the console log it was successful. Below is the code that I used creating the different buttons which arent all fully functional with different abilities but are interactive on the whole button.

So with this completed, I feel that I have some base which I can create the abilities with and destroy the enemy so in the next week I can have a full battle scene with proper turn based combat.

08/03/19 – Friday 8th March 2019

I started off today through creating two basic screen drawings to understand what I would like to do with the game. This will allow me to make a game that will be simpler and easier to play for the user playing the game. This shows that I have different positions that I may include the enemies health points. Along with this I have the places I already placed the enemy and player as they are good positions. However, I thought that I only wanted 4 abilities for the player to use, streamlining the abilities and making them easier to balance as I wanted different abilities to pick and choose from. This may be too much work for me to do, so I have decided to have 4 dedicated skills that only the player can have and maybe different unique abilities for different enemy ship classes. The two other skills on the right side will be support skills that I could use for the player to use in the fight. These abilities will be defensive and increase the armour rating or allow the player to just heal and flee from a fight if they are unable to defeat the opponent. Along with this I have created a selection menu for the player to use giving different missions a player can do, having a natural progression from easy, medium and hard. Whilst allowing there to be some side missions which can be done throughout. I am still undecided on whether I can increase the power of the ship through levelling, and therefore when the player levels they get natural upgrades or whether I should allow the player to have something clickable through.

Other than this. I have not done much today other than structure what I would like from the main game at the end, as I feel that the plan may need to be changed a little bit more to make it a game that is playable and will be functional and fun for the user.

11/03/19 – Monday 11th March 2019

To start off the monday, I realised I have to restart my plan compared to my original as I have not achieved all of my targets that I wanted to in the first week. This is a more realistic expectation that I can work towards as I am having problems with my player getting buttons that can include text and be clickable with different values, such as different abilities and effects that will apply against the enemy. I also decided to plan out what I wanted to do to create a ability effect that will be able to be usable by both the enemy and player character. This meant that I would want to create an array which can be referred to when creating the game. Adding different attack damage states, effects which damages enemies such as “fire”, “poison” and “frozen”, as this is my unique feature for a pirate game which is 2D. Below shows my plan that I have created in this day and shows what I would like to complete and how much time would be ideal for completion. Obviously I have to create a questionnaire and get it ready for testing. But I would like to do this Friday as I will understand what stage I will be at. I did not do much work other than this today as I did not know what I would do to create extra’s in my class and how to make it appear as part of the graphics.

This meant I researched most of the day to try and find information for Tuesday. However, I did not find much research that I did useful today, as I think I may have either not searched specifically enough or researched using the wrong keywords.

12/03/19 – Tuesday 12th March 2019

This day was not as eventful either. I have researched more into how I can add text to the graphics box, but I have had no luck. Instead I have decided to create the array for the skills that I wanted to place into the game, I only created 10 altogether as I did not want to complicate any of the abilities so far. Therefore decided to keep it small before I can create multiple battles with more skills. This can be seen down below showing the different abilities that have been created. They try to have a range of abilities so that when I create another ability it can follow these types of rules, through adding a negative effect that will either cause damage per two turns if counting both the player and the enemy.

I also added a hit rating as it will give a suspense feel when powerful attacks are used and giving risk and reward to the player. This may also mean that the player character will not need to have a base attack damage value as these values are strong values which will be able to do a lot of damage to other characters. Also it would be scaling up health points just to account for this. Arrays start at zero and this is why I have labelled them down the side. Along with this I need to create a hit rating mathematical value as it will give some randomness to battles to make them different.

13/03/19 – Wednesday 13th March 2019

Today I have decided to research how to create the text into the graphics and it took me a good amount of the day. Which now when i look back on it was not the wisest idea as it made me waste a day on finding out how to do this. However, I have been making my code more effecient to use, as I have made the skillsArray into a SkillList class which allowed me to make the skills replicatible and reusable, this is necessary if I would like to create a larger variety of skills in the future to keep it entertaining for the player and as a casual game, give some sort of collection to keep the player into playing the game. Also it is a lot neater and will be easy to understand for other people looking at the code. As you can see they are all variables and because they are global, they will be accessed on any part of the code with ease.

Then changing the ability master into the button master and a buttonclass.js file, this allows me to understand it more, as they weren’t for abilities specifically but more of a button controller, and therefore I changed it to be more appropriate making it easier for me to understand and look back on. Not only this but I managed to make the text be added into the box, this was a simple mistake of me putting this.add.text instead of scene.add.text which really held me back for a while and stopped me from progressing as I was fixated on fixing this problem instead of moving onto another problem, which I will do in the future.

Then there was changing the AbilityMaster’s in the UI scene to ButtonMaster and adding the skill, I added cannonball to all just so I could make sure that it worked on all of the buttons in the game. I know that tomorrow I will need to implement the health of the enemy and the player and make sure that they are able to be displayed as well as getting the combat done fully to complete a successful day, this means that I can add sprites in the next day which will be relatively simple compared to the combat. I realise that I am behind slighlty on the time but I feel that I can make up this lost time by focusing on getting different parts of the gameplay done which should be easier for me.

14/03/19 – Thursday 14th March 2019

On Thursday I managed to create the HP on the screen for the player and the enemy, this was done simply through using the phaser function for adding in text. This is shown in the image down below. This was done similarly to the creation of the text on the graphics for the button. Currently I am using text, but I am planning on changing the text to either graphics or images that change as a slider to decrease or increase the health dependent on what the player or enemy does through either receiving damage or healing.

Along with this I created a way to cause damage to the enemy ship. However, it does not destroy the enemy yet as there is no function for the battle to be won or lost yet when the enemy has gone to zero hp. Below shows the different functions that I have compiled together from the SkillArray.js, the ButtonMaster class on ButtonClass.js and the CorsairUIScene.js, they are all tied together to create a damage function but i feel that it can be compiled down to a certain area hopefully to create a function so that I am using less processing power on the html so it will load quicker.

I did have problems with this to begin with though, as most of the variables I was creating in different scenes were not being accessed as GlobalVariables, this then allowed me to access variables from different parts of the code and made it a whole lot easier to run the code and do the damage. However, it was not working once everything was linked because it said there was an error for phaser. But when I restarted visual studio and the web server for chrome, the error had gone.

15/03/19 – Friday 15th March 2019

On Friday I had gotten stuck on my work and therefore I went into the University to see James Van Roose, which helped to give me advice on how I could direct my code into turn based combat. The combat works now as the function of attack and takeDamage were placed to show the damage in the console log. However, I have not been able to implement a turn-based strategy yet. I am having doubts that I will be able to finish the turn based combat by the time I get to Monday for testing as I do not feel like I have the skills to complete it. I will take the weekend to try and learn some more JavaScript and Phaser in order to try and create the game the best I can through creating the turn-based combat and then trying to make a queue order for my enemies and main player character. Down below shows the different functions that were created within the game as well as a almost finished version of the text changing when an enemy has been damaged. Currently it deletes the player’s HP bar from the screen when the damaging ability hits the enemy AI but that means that it is almost fixed. The problem that I keep getting with this piece of code run on the if statement is that the function that takes of HP is NaN or Not a Number and therefore will not change by all abilities.

I was hoping to get more done, but I feel I have been a bit too ambitious with this project as I do not have the greatest expertise over JavaScript. However, I may make changes to try and either complete this or make it a different form from its original idea. This is because I strayed too far from the Phaser I have learned originally. I may try and find some tutorials on Phaser to make a good Phaser game and spend a lot of time to get a good result.

16 and 17/03/19 Saturday 16th and Sunday 17th March 2019

I tried to make changes to the game to make it available to use on the Monday for testing. However, I did not change much in the game as my knowledge is weak and I have tried to do some researhc in order to make the game better. With tight deadlines I am having difficulties keeping up and trying to finish the game in time and realise I cannot finish the game and will have to get it tested in an unfinished state. Which is not ideal but it is in a good enough state to show the player attacking and not the enemy. I have also rescaled the game screen size to be played on a Samsung Galaxy S6 or S7 as they have the same CSS resolution. So I made sure that they would be usable in time so that the questionnaire that I am creating will be easily understandable and the people testing can at least destroy the enemy player. Here is where I have changed the items in the config file. Also I have shown how it has changed in the web browser as I needed to move a lot of the buttons and the ships to make the be placed in the right position. I found the resolution of the mobile phone on a website called https://www.mydevice.io/ which shows all mobile and tablet device resolutions and their CSS resolutions.

Testing

When testing there were two tests that I placed in front of the testers, These were a questionnaire which allowed me to collect qualitative data and a survey which allowed me to collect Quantitative data. I structured them both very simply so the players of the game could answer honestly and allow me to collect as much information metrically and information through the opinions of my testers. Down below are the tests that I had created.

Firstly, I would like to go over the quantitative data results as I had seven people do the survey so that I could try and formulate an opinion as most people leaned towards the same answer and therefore could probably be replicated on a larger scale on what most people would put down as their answer to the question. Below shows a table of all the results collated into a tally of what is the most popular answer. As you can see most people thought that the gameplay was responsive as you would tap on the screen and the ship fired a cannonball. People also thought that the UI on the screen was easy to navigate which means I wont need to change it much too this. A lot of people did not understand how much the ability did, this was because the HP of the enemy would not go down but disappear when someone hit the enemy. Which made it hard to show how much damage that would do. Not only this but I did not place any text showing what the ability would do next to it, so it would be hard for a player to understand this. Some people figured out some sort of damage though, I assume this would be through shooting multiple times and guessing the damage of an ability. Most people also tended to like the graphics that were used, even though most of it was phaser based graphics that I added in myself. This is good as I do not need to focus on this as much.

Then I have the results of the qualitative data, there was little difference between what people would say about the game. The First question was “When playing through the game, do you have a great understanding of what you are doing?” and most people said that they were killing a ship, which is the core part of the gameplay, so people understand what the game is about. On the second question “Is there anything you would change to allow the player to understand how the gameplay works?” most people also told me that it would be best to show the health bar of the enemy character to know how much damage they are doing to the enemy player, this could be done through damaging the enemy through different states to show the ships are breaking or through telling them through a hp value or graphic and I will try to do this to allow the player to understand the health of the enemy ship. The third question I asked was “Is there anything you would add (other than there being turn-based combat) to make this battle interesting?” and this had varying answers, there were some similar answers such as add varying abilities such as super attacks that will do a powerful attack which has a cooldown where the player cannot use that skill for some time afterwards, adding an ammunition feature so that players are only able to use certain abilities and some defensive skills as well as animations as this would have some graphical implementation that would help the players get more involved, I will try to place as many features in to make a battle interesting, I was thinking hit chances so there is a risk and reward as I wanted earlier. Along with this I want to have some defensive abilities to protect yourselfs through protecting from enemy attacks. The next question I asked on the questionnaire was “If you play a turn-based game, what would you say is a key feature or features that should be implemented?” and this also had similar answers to the previous question, one in particular stood out to me which said “simple on the surface, complex beneath the surface” which is good when you look at games such as Pokemon which has many different stats that you level to make one good. Other answers were generic repeats such as the defence mechanics and hit chance etc. The final question I asked on the questionnaire is “Do you feel the skills are too similar? If so, what could I do to change them?” Have interchangable abilities that can be used in different situations such as different cannonball abilities being able to destroy certain parts of the ship. I feel that I would not be able to implement this however, as I would have to add a specific targetting system for each part of the ship, which I am sure I probably dont have the skills to do. Another thing that people said altogether was showing the damage value of each skill and how much they would do as well as a hit chance that they would have so there is an aspect of choice which would change the gameplay a lot. Overall I feel that I have got a very good amount of results in my qualitative data which has allowed me to understand what people want from my game and hopefully when I change it during iteration 2, people will enjoy the game more.

Evaluation

When doing iteration 1, there were multiple areas where I have faltered and I have not completely finished exactly what I needed to do when creating my game. However, there is iteration 2 and I will then rectify anything that I have been doing poorly on. Below I have done an evaluation of how well I have done during this project and what I can do to change this in iteration 2.

Assessment Criteria Out of 10 Target Variation
Effort 6 10 4
Making Creative Decision 4 7 3
Use of Planning 5 8 3
Asking for Help 8 10 2
Overcoming technical Challenge 4 10 6
Quality of what was made 4 8 4
Quality of testing process 7 10 3
Documentation 8 10 2
      27/8 = 3.3

this score is rounded down and therefore meants that overall, I must try and improve myself by 3 points on this score per criterion on this chart. I have rated myself fairly low for this because I have not got much done in iteration 1, this mostly is down to the lack of knowledge by myself and I should try to either research more to make the game better or make changes to the game in order to make it more functional. Overall, I feel that the lack of planning and being unable to overcome the technical challenges have hurt me the most whilst doing this iteration and I hope that I can plan better and stop focusing so much on one thing in the game unless it is vital to the functionality of the game.

I also decided to use SWOT or Strengths, Weaknesses, Opportunities and Threats to show what I can improve during Iteration 2. Below is the graph showing the SWOT method.

Strengths

Ability to research.

Works to a simple Level.

Will keep trying to make the game work.

Different type of game than a lot of games on mobile.

Will ask for help if I need it.

 

Weaknesses

Bad Planning.

Spend too much time on one problem.

Don’t fully have the knowledge of JavaScript.

Worrying about the game, rather than checking through to see whats wrong.

 

Opportunities

Many people aren’t making turn-based combat games on mobile.

Being able to learn more JavaScript or JavaScript related activities to help get more experience.

Threat

Unable to complete the game due to time.

Not having the skills or capabilities to create the game.

 

As you can see there are strengths showing what is right about the project and what I can do to create a good game. However, I feel that I need to have better planning and learn JavaScript or something related to it in order to simplify the game in order to make it work for the intended audience. Along with this I feel that I spend too much time on one problem which can be problematic as I am wasting my time creating something that is trivial and not needed. I have also added that I worry about the game rather than checking what is wrong. So I feel that a lot of the time througout the lifespan of this project, I have been worrying about getting the game fully completed instead of looking at my code and trying to figure out exactly what is wrong with the game and not changing the overall structure. If I did this earlier, I feel that I could have had more time to try and create a basic working game and then worked on getting the extra features placed into the game during iteration 2. However, I will either have to restructure or find a way to make the game work through phaser the way it currently is.

Industry Folder

In this Industry Folder, I will be looking at the different types of job that I can do and therefore must explore all job roles, this is because there may not always be an opening for being just a pure gameplay programmer or developer and therefore I must try to look at broadening my qualifications and portfolio. This industry folder will be a guide to what I will look at after I graduate and what I could consider doing.

Job Roles

I first started by researching different jobs and understanding what is required to do the job and what I would need to be suitable for the job and how to outstand from the crowd when applying for the job and going to an interview. These jobs are shown below.

Games Programmer/Developer

A Games programmer works in the creation and production of games for PC’s Consoles, Mobile devices etc and are expected to use programming languages to make the game function. This is an important role within the game development process due to this being the backbone of the game and how the game will function. To be a games developer, I must have a knowledge of a programming language to an advanced standard, I feel the best to learn would be C++ and C#, along with this the code must be written effenciently in order to give the code quality so that it is readable by other people and understandable and make sure that when coding, I understand the exactly what it means. Developers must also know how to find problems with the bugs and be able to debug them when necessary.

Other roles of a Games Programmer must be working as a team with other programmers, desginers, artists etc so the game can be made to the best of their abilities, therefore must be confident to work in a team setting. This also includes working under time pressure in order to meet deadlines as the game needs to be completed on time.

When moving to a more senior position, must be able to manage a programming team with the experience of technical understandings of how the engine/code works and how to plan between the concept of the project until the release and beyond. As well as planning resources and staff to ensure an efficient process.

This role may vary dependent on what type of studio you work for, Indie studios tend to be less critical as they do not have large producers timing you to exact deadlines, whereas AAA companies with large budgets will have harsh deadlines and must be met on time. Work hours will often increase before deadlines known as sprints that will include the whole team working more hours to meet the deadline.

Information found at: https://www.prospects.ac.uk/job-profiles/game-developer

Web Designer

A web designer develops websites through creating the look, layour and features of a website. The job role inclujdes both graphic design and computer programming skills. The designer will help with the maintenance and upkeep of the website working with their development team to keep and up-to-date website. Website developers will usually meet up with client in order to assess their needs and then create a website to their clients specifications. These can include writing and editing content of a website, designing the layout, understanding and determining the technical requirements of the website as well as upkeeping the website through creating back ups and regular updates when needed. Along with this like every other programmer, must be able to solve code problems. This is an entry level job and can be done at a junior level.

Information found at: https://study.com/articles/Web_Designer_Job_Description_Duties_and_Requirements.html

Software Developer/Engineer

A software developer/engineer is a constantly evolving job role, as technology advances, softwares need top be updated to meet specific technological needs. This job role also included writing diagnostic programs and writing code for Operation Systems (OS), and ensuring effeciency in software. The job title isn’t standardised and can be named multiple names such as systems/software/database engineer or programmer.

Tasks that a software developer may need to do dependent on the size of the organisation can range from analysing user requirements, writing and testing code and rewriting it where necessary. They also need to researhc, desing and write new software programmes and evaluating the software and systems that make the hardware work. They are more in depth with what they do compared to other programmers through having to build engines or software from the ground up and making sure that all software is suitable for use on newer hardware. This requires the knowledge of a software developer to be updated continuously to make sure they are able to have and up-to-date understanding of technical systems and how to make it as effecient as possible. This can be through attending in-house or external courses, accessing new applications and reading manuals. They must also create operational documents to allow people to understand what they must do. They work closely with all other staff to ensure they understand how the new systems work.

Qualifications needed to do this would be a bachelor degree in either computer science, computer software, mathematics, physics or information systems. Game Development degrees work too, the applicant must be able to demonstrate they are able to understand the systems and coding behind it though.

https://www.prospects.ac.uk/job-profiles/software-engineer

AI Programmer (Not Entry level position)

An AI programmer works under a lead programmer and most of the time is a tough role to fulfil. thios is because the AI programmer is responsible for determining behaviours within a system. The actions that are taken by non-player characters, algorithms for pathfinding, group movement and cooperation, strategy and camera control. The AI programmer is responsible for all artificial intelligence used throughout the system. They are specifcally needed for creating mechanics that can be used in a game, and also creating a mahine that is able to think and solve problems. They can also create proceeses to make combat possible, creating neural networks. These programmers are similar to games programmers but focus specifically on the task of creating Artificial Intelligence, dependent on the company, they could do more if necessary.

Like gameplay programmers, they will be working closely with the team as all the team must be discussing with each other to understand how the game is going to work for each aspect in the game. Unlike a game developer, some larger AAA companies may want an AI programmer to have a masters degree to work in the industry, however, a games development degree, a computer science or a computer engineering degree will be required. Along with this an AI programmer will be expected to have a clear foundation of using different coding languages such as C++, STL and API’s. Other skills will include being able to draft clear technical documentation and for the individual to have strong written and verbal communication skills.

Information from: http://getinmedia.com/careers/ai-programmer

Qualifications and extra’s

Qualifications, well put together portfolios and work experience will help getting entry level jobs within the games industry. I should be able to get a qualification once I have finished the course at NUA. However, I must try to get a 2:1 or First class to make sure that I stand out from the crowd so that I could get hired to these jobs. Ways to improve a portfolio or show a potential employer that you understand what you are doing is through doing additional research into what is needed to get into the industry. For example, if I would like to be a games developer, I would show an understanding of programming languages such as C++ or JavaScript to show I am the right person for the job.

There are competitions that can be applied to throughout the UK or Globally known as Game Jams, that give you a limited amount of time to create a game and do it towards a certain specification that is quite open. This is a good way to improve any programmers skills, as they can show their skill of creating a game to a timed deadline, this means that the programmer must manage their time effeciently to get the game done of time. Examples of these are the Global Game Jam which is the world largest game jam, this will give you good experience as a developer as you can learn something new and people will be judging your game and giving you honest feedback. Other game jams can be done on a smaller scale and a more regular basis such as Ludum Dare which is help two times a year instead of one time.

Other resources that can be used are online courses to learn advanced programming and using these to help understand coding at a higher level. This is good practice for myself as I will be able to learn new code and have something to focus on. This could also be done with other people from my course or people that are getting into coding as a collaborative process to start working as a team, as there are strict deadlines that need to be met as a team and will allow me to develop my experience as working as part of a team. This is good as when going into the industry, it is important to work as a team as the game is created through multiple people rather than just one person in most cases.

Game Developer Jobs/Entry Level

The first employer I have researched is MojiWorks, which is based in Guildford Surrey, It is unknown how many employees they have, but they have raised 2.1 million pounds in Series A funding and the previous owner of the company created the Wonderland software which was sold to Zynga in 2011 which do a lot of HTML5 and JavaScript Games. There are junior jobs that are available with the knowledge of JavaScript, HTML5 and C++ . But this company specifically creates software for Mobile Gaming for Messaging Apps. This company would be good to do entry level as I have been learning HTML5 and JavaScript also I live quite close to there in Petworth which is a 45 Minute drive away from Guildford.

The Second Employer that I have researched in Dovetail Games, which has a specific office in Godalming Surrey, they are based upon simulation games and have over 120 employees in all of their development offices. They are known for the train simulation games and have been well reviewed. These simulation games would be a good challenge for me as I am not comfortable with this types of games and through challenging myself with a simulation game, I will have new knowledge that I could use and understand a new level of programming to make something as realistic as possible. There are no jobs going currently however, this would be good to apply for work experience and allow me to develop my knowledge. I know that dovetail do

The Third Employer I have researched is Glowmade which are also based in Guildford Surrey, they have specialised in Mobile games with their game called Wonder Worlds which has a unique art style which drew me to the company. They currently are working on a non-mobile game which is intended on being cross-platform for both PC and Console, because of this they are currently hiring people to the company which are able to do C++ coding and want to work as part of a team. This would be an ideal job for me as I would love to code a game in C++ however, I currently do not possess these skills and would be able to do it after completing my university course and doing extra work at home.

The Fourth Employer I have researched is Jagex in Cambridge as they sometimes offer internship/junior level roles and they are close to norwich. This is because they most notibly make the game Runescape which is a successful game and it would be good to learn experience from highly experienced programmers working on MMORPG’s this is because I would like to work on an RPG/MMORPG. To get into these types of roles however, I must be able to write code in a programming language and be a fast learner, it would also be helpful if I knew scripting languages such as Lua or Python.

The Fifth Employer I have researched is Climax Studios in Portsmouth they have graduate games programmer roles which require the applicant to have an advanced understanding of C++, helpful if the applicant also has AI knowledge, excellent communication skills as well as being a logical thinker. It is a graduate position so must hava a degree of 2:1 or higher and strong mathematical skills. They have made a range of games such as silent hill: shattered memories and the Assassins Creed Chronicles mobile games which are rather successful titles. As well as Adventure Time: Pirates of the Enchiridon.

Overall for all of these companies that I have researched, all of them require a degree of some sort in computer science or programming in order to be able to apply to be an intern or as a junior/graduate role in the company. The way to separate yourself from a crowd however, if being able to show that you are a greater coding and therefore I would need to have a high grade in my undergraduate degree or experience in the games industry either through creating games for games jams or getting a work experience placement.

Game Design Document (GDD) Lite

This will be a working document that I will be using throughout the development of the game Coast of Corsairs and this will be the basis of what I would like to include in the game through the different iterations until the game is finally created.

Overview of Final Game

Overview

The game Coast of Corsairs is a pirate adventure game that focuses on turn-based combat fighting different levels of enemies which grant rewards based on the strength of their ship and what type of ship you are fighting. There will also be different attacks that can be performed like that of a Pokémon game where you can select multiple abilities to attack the enemy, such as firing a fiery cannonball will have a chance to set the ship on fire and do extra damage each turn. There will be a range of these abilities in order to create a unique experience for a gamer who enjoys pirate games with a unique twist.

USP/ Unique Selling Points

Sail the Caribbean, raiding the high seas with your crew in search of power, riches and fame. There is a catch though, you have a small ship and you aren’t going to have any of these without plundering and upgrading your ship. Destroy your enemies through turn-based combat with status effects and seize the seas!

Identify the audience

The audience would be PEGI 12 as I would intend it to be a pirate game and making it slightly authentic using bad language and references to gambling can be shown as PEGI 12, this would mean my target audience would be 12+ as it would be played by multiple users of different age ranges. As this is a 2d game which mostly focuses on ship combat there will not be any blood that will be shown throughout the game. As this is also intended for the mobile audience, I have decided it is best to aim at the 12+ as most mobile gamers are between the ages off 16 – 44 and this means it will be marketed towards people who are more likely to own a mobile phone. Not only this but as it is a designed to be a casual game which is the second most popular game type on mobile phone. It is adventure to give the player a motive to play the casual game.

Prototype Iteration 1 Objectives

Throughout the game, the player will be using a level selection screen which gives the player an opportunity to participate in a mission which ascends in levels, with the first level being an easy level to get the player into the game and how they should play to win in the game. This will be self-explanatory through the button layout so there will be no need for a tutorial in the game, because the first level itself acts as a tutorial. I will also be adding upgrades to the game as this is a way for the player to progress and get further into the game. This as an idea is trying to solve the lack of strategic pirate turn-based combat games, this is because I have not seen this idea done before especially on mobile and therefore there is an audience that I can market towards and I can target that market and test that market to see if they are popular. The game will mostly focus on the turn-based combat between the player and the AI ship where they will be attacking each other until one ship sinks. This is core to the gameplay design and will be used throughout the game. With the UI being the turn-based combat and having sprites in the background which will perform what is being pressed in the UI.

Tech Architecture

I will be using Phaser and JavaScript to create this game, as I will be creating classes and it will allow me to create a game simpler through creating multiple ships with different variants and overlay the UI on the screen through two different scenes that can be created in Phaser. I am unsure of what other API’s or Libraries I may use, but if I struggle, I may consider finding one to create it with. The platform I will develop for specifically will be Mobile but also will want to do it for Tablet too through allowing the game to resize to the devices screen.

UI and UX

Control mechanism

The control mechanism will be easy to use for both mouse and keyboard as well as touchscreen. This is because when using Phaser, the “pointer” term acts as both a mouse pointer and someone’s finger for a mobile phone. As this game is targeted specifically towards mobile users it will be controlled specifically with just the pointer and will be simple as you will only need to touch what you would like, So I will be using UI touch controls rather than movement through swiping on the screen.

Wireframe

I created a wireframe to show how the battle scene should be shown with the UI overlayed over the battle. It shows the different abilities that may be included and how I intend the battle scene to look. It shows the attacks of the ship at the bottom of the screen, similar to JRPG’s and Pokemon where the attacks are at the bottom of the screen, which is helpful for the players who normally play these types of games as they will understand what they are doing straight away. I also decided to place a health bar above both players ships to make sure they know their HP. However, I would like to experiment with this and not show a health bar but use trial and error to show damage on ships and therefore allow the player to make the decision of either to attack or repair to provide something less casual in a casual experience.

Feedback

The Feedback of the game will be based on the touch mechanism that I will be using, if the attack ability has been touched then the player will fire cannonballs at the enemy ship and therefore will show positive feedback in the game. Whereas if it does not work, then I will have to fix the bug to allow the attack to work. The feedback will be very minimal due to the game only having to use UI as there will be no collision that moves a player and therefore there will be no reason for any forces to be applied, the only collision that will be applied in game is if the cannonball hits the target in the game causing the sprite to lose health and show damage in some way to the ship. Other than this there will be feedback when the player gets hit with screen shake which is a function that can be set in Phaser. Feedback can also be shown through sounds placed into the game such as sounds of cannonballs smacking into the wood of a ship, but this will not be needed until near the end of development as it is to add to the experience.

 

Visual Design

I will be using placeholder sprites to begin with throughout the development of the game, this is because it will be better to code the game to work first before adding proper artwork into the game. This will be done at the beginning of the project, where I will either draw of find some artwork that will be placed into the game, I will try to create some artwork later into the project if I have time to as I will always prioritise the code to allow the game to function. Also, because there are plenty of assets that have been created through websites such as opengameart.org which have different types of ships that I can use as pixel art. One idea that has been taken into consideration would be creating different artwork pieces for ships as I would like to change the sprites image as feedback showing that either your ship or the enemies ship will be sunk, through flames or damage being shown on the ships.

Audio

The Audio is not important as this current step in the game, as it will mostly be music in the background which will be placed into the game later as it will provide atmosphere for the player. There will also be feedback for the cannonballs hitting the ship and making a bang, or the cannonball hitting the water and making a noise to show it has hit the water. But because there will be visual feedback through the art work, it is not fully necessary to add sound in through this iteration.

Planning

When planning I felt it important to prioritise the game through coding first with the classes and scene creation to make sure the combat works to begin with, and then artwork and creation of customisation of ships and then level selection. This is because it is better to make sure the game functions first, so the game is playable then the artwork to make the game look nice to the player. I was also planning on placing Google Analytics in at certain parts of the game because I could get statistical data of how the player was progressing and what they are doing and how frequently they are using certain abilities when testing certain gameplay mechanics of the game.

Testing

I am planning on testing multiple parts of the game throughout. Firstly, I will be testing different functions of the game throughout the game, such as making sure the cannonballs work when I press the attack button and making sure that the bugs will be stopped as early as possible. I will also have to use compatability testing at one point to make sure that it works on a mobile device, as I will be using the developer tool on Chrome to show the touch works, but I will upload it to the website for testing purposes and see if it works on an actual mobile device. Along with this I will be doing qualitative and quantitative testing to make sure that multiple people have played the game and given feedback on what is working in the game, what they like and what they dislike in the game and allowing them to improve it to be the best possible product it can be for the users. The testing will be in two different stages, the qualitative data will be done in the same room and I will ask the person their opinions on the game, what they feel can be changed and how I can change it to be better or what could be placed into the game to make it easier to understand for the player and this can be expanded upon dependent on my skills and what I feel is the most necessary change that I can make. Then there will be quantitative data which will be done in through google analytics to see how people progress through the game and what buttons they are pressing the most and if one is being used too much, i will try to incentivise other controls to allow the player to do more in the game. Along with this I will get some scoring ratings back and ask people to playthrough the game and answer honestly how much they enjoyed the game with a rating between 1 – 4 so the player has no middle ground and I can tell if they enjoyed it more, or thought negatively about it.

 

Formative Research: Week 15 Task – Reflective Journal

When researching into different topics for the mood board, it was quite simple on what I must create as it would be for a game that was for mobile as this was the brief that we were told about. Therefore I wanted to find research that was specifically targeted towards mobile devices, specifically tablets and Mobile phones, this allowed me to get the mood board showing the different games that have been created and why I started to look at different games that are played on a mobile devices. Along with this I understand the reason why people will want to use a mood board, this is because it allows to create the original idea of a game that you would like to create. This can be a compilation of what you would like the game to visually look like, the type of game that you are researching and the specific layout the game has, this means that you can allow the player to have an easier experience as they will know how to control the game. The one easy thing I find about mood boards, is that they cannot be wrong as they are dependent exactly on what the person creating it is thinking.

Formative Research: Week 16 Task – Reflective Journal

When looking at scientific research for mobile gaming, I wanted to make sure that I got some relevant statistics that were modern which shows the benefits of mobile gaming as it allows for me show why mobile gaming is important now. Along with this I also wanted to see how popular certain mobile games were as through seeing the user penetration rates, I am able to decide what game is the best to create when looking at the research. Obviously as I have the choice, it would be best to create a game that I would enjoy creating whilst it also being a challenge to create. So through this research I wanted to create a game that I haven’t created before, therefore I would not create a platformer game, neither a top down game where I would use the tap to either shoot or move. This was just so i would challenge myself more and get more knowledge too. Overall when using statistical research, it is best to use it either in aide to prove why something is a good idea or why you shouldn’t create it, as it will allow you to justify what you are doing. There are also different ways to interpret scientific research too, an example of this would be seeing the most popular game and then saying that you will make one of those types of game by genre as it is popular. However, you can see it as there is an over saturation of the game and therefore it would be better to make a game that is either the 3rd or 4th most popular as you could get a more dedicated audience.

Formative Research: Week 17 Task – Reflective Journal

When researching different professional research areas, I found multiple game design documents, but it seems like most of the game design documents that are made and available from different companies are older versions of the GDD’s and it always turn out nothing like the end game as they are adapted with the same type of units in mind. The different Game Design Docuemnts that I found included the BioShock and Diablo. These were professionally done and include a lot of details to their specifics, I understand that I need to do one on a much smaller scale so researching how they are conducted is really useful to how I will structure my GDD. Along with this I also researched how it would be created on a game developer website called Gamasutra which shows a good way to structure a Game Design Document and the majority opinion on their reddit also said that GDD’s arent used that often anymore. Yet they are still good to give an overarching structure to the game. I have also researched testing which will be used throoughout my game as I know that I will need to test my game in order to make it fun for the users and make sure that the game is working as intended. In the GDD of Diablo, I also found that gannt charts were used to plan the development of the project and therefore I would be using them to track my progress and try to predict how I manage my days.

Formative Research: Week 18 Task – Reflective Journal

When I was coming up with the idea of my Pirate Game, I wanted to make something that would be a casual game so it would be easy to get into as a player. But also be challenging for me to develop as a programmer and test my knowledge on JavaScript and HTML5. This is where I came up with a few ideas, these being a tap game where you remember a pattern or a whack-a-mole game where you touch the screen and it gets progressively difficult with a high score that you try to beat. Then I came up with an idea to make a platformer similar to that of Mario or Sonic but it would be an endless runner with various jumps with the player getting faster. This I have seen multiple times though and I did not want to create a game that would seem like a clone. I wanted to create a game that was unique for me and something I haven’t seen online or have found on the app store. This is where I came up with the pirate game with turn based fighting and upgrading a ship over time. This is because it would be casual enough for a player to get into easily but also the upgrading would make it challenging for the players who would like to invest their time and get as far as possibly as quickly as they can. This was based on research that I had done previously to the presentation task but I wanted to try and innovate and create an exciting experience that is slightly different to all other mobile games. There was nothing new I particularly discovered other than the older users have increased over the years and 3% of 75+ are playing mobile games in 2017 so that statistic could have gone up or down in 2018 and it shows that mobile gaming is more popular to all ages and I feel it is because it is more accessible for all people and can be easier to use than a PC.