Saturday, 20 May 2017

Final Evaluation

We identified our target market during the early stages of production as a PEGI 7+, since due to our research into similar games we found most fast-paced racing games like F-Zero and Fast RMX had 7+ as their target audience, wheres are cartoony racers like Mario Kart and Garfield Kart hovered around the 3+ range. We decided upon this limitation as it would give us more creative freedom with our gritty and futuristic visual style for the Fastolpolis map, without having to conform to more strict limitations and guidelines. Throughout development we adhered to the quality plan in order to ensure that these restrictions were met, making sure to not include any adult themes or references to things like drugs or alcohol.

To lead on from this, if Zer0 Fr1ction were to have a full production schedule in order to be launched as a AAA title, there would be various games we'd have to compete with, and some more than others. Franchises like Mario Kart, whilst similar, aren't direct competitors since that series goes for a more casual and family-friendly vibe, however the Sonic and Sega Racing games will be compared to us a lot. This is because those haves have various similarities to ours, like having a 7+ age rating, being fast-paced and utilising a randomised item system. However our game will be able to differentiate itself in the market due to its unique anti-gravity mechanic, allowing players to drive up vertical walls leading to a lot more varied and interesting track design.

Our group overall collaborated very efficiently, and like every team we went from various different stages, to norming, storming, performing, etc. Fortunately, though we did have various instances of storming throughout development as noticed in the group meetings, in the last few weeks we were placed mostly in the performing stage, where we were able to consistently churn out quality content with a good overhead into time management, allowing us to also make up for the lost time of any group members.

Throughout the duration of the project I found myself having to stand in for team members who were lacking and/or behind on their time management, and took roles I wasn't planning on doing quite so extensively. This collaboration from me affected me and my own sprint plans in a number of ways, as well as those of others. For example a 3d modeller giving me some models late had the effect that I had to redesign and rebuild the lighting in all of the maps, meaning I was delayed in sending the levels off to the programmers for testing, which had a knock-on impact on them too. Fortunately to mitigate this to the best of our abilities we made the most of our varied Belbin and Tuckman roles, and as plant/ protagonist I could inspire and motivate others to work during tough times while being able to act as a productive role-model to the rest of the group.

I finished the project on-target and on-time, as referenced by the musts and shoulds in the task board and sprint plan. This was greatly assisted by our group's time management, as also supported by our weekly sprint meetings where we could update everyone with our progress. The task board in particular was very useful as a visually appealing indicator of where everyone in the group was at at all times, with it being very easy to change on the fly and tick off when individual tasks are completed, with individual percentage bars for each sprint to boot. This enforced our group's very effective collaboration, for example allowing a 3d modeller who was slightly ahead to assist another one who was behind, ensuring our group as a whole was never a week or more behind as a result. These time management materials meant that I could also use them myself to manage my own tasks for each week as I just focused on the game design and level design panels, as I planned out days where I'd tackle certain objectives and then mark them off for all to see afterwards when done, allowing me to record my own progress for my blog and keep track of where I am at all times as to ensure I don't fall behind.

An example from our Trello board showcasing the individual tasks making up one of my level design sprints, and how now they're all ticked off the progress bar shows 100% completion in an easily digestible manner


For the group's risk management a huge factor of this and ensuring no substantial loss of work was keeping regular backups of project files, especially before a merge. As you can see from the picture below of some of my personal backups, I ensured I created a copy before and after every working session to minimise any losses, and if I didn't backup my files before a project merge with the programmers in particular during lessons, it could be catastrophic if some errors were to occur and we potentially lose weeks worth of progress. The group Google Drive and GitHub were also other professional resources we could use to minimise any risks, as we could upload any updated script or map files to be directly merged into someone else's project file online without having to wait until the three days a week we're in uni together to do so. Likewise all of my produced assets followed our strict risk management guidelines outlined at the start of the project, such as certain 3d models being constrained to certain poly-budgets and texture sizes, as without these our game could become too bloated over time and begin to have severe performance issues as more and more unoptimised assets get added to the game.


A selection of some of our project file backups, which are all individually dated allowing us to view which is the latest one and how old previous editions are

The Windows 10 Creators Update majorly halted my progress with Unreal Engine 4 within the last few weeks of the project, which is a massive risk which struck during the project's crunchtime. As it's a universally known error that affects version 12.5 of Unreal as seen by research online, which prevents the user from opening up any of the toolbars or right click menu prompts quickly, forcing the user to wait anywhere from 15 seconds to a minute each time. And it also affected other members of our group such as Gus, since this Unreal version is the one installed onto the university computers and we must follow professional working practises by using that specific edition. This plagued us for around a couple of weeks, majorly hindering our effective time management. Fortunately due to effective group collaboration and communication we managed to finally find an online fix, involving putting '-opengl' inside the properties of the Unreal shortcut, allowing the software to thus work properly again. This setback costed us some time, but we were at least able to continue production and it wasn't halted entirely, it was just a risk we had to make note of in our Trello task board and sprint management plan.


Research was another important factor which came into play for the duration of the project to support our development. As previously mentioned we conducted research into similar racing games as a form of market research, but I also browsed a plethora of Unreal 4 tutorials and documentation online in order to assist me in my engine-work. I wouldn't have been able to produce the quality work that I did without these tutorials, as I'd hardly ever created materials in Unreal before this project, and never touched the particle system before. I was able to gain a lot of new experiences and knowledge from it to take forward, and this research very much helped increase the graphical fidelity of our game.

A screenshot showing some of the particle effects in one of the levels, with things like the hex bubble effect being impossible for me to create without developer research!


Early plans and designs were yet another crucial element during the early stages of production! For example, as shown in one of the very first development log entries, I drafted out 3 different potential track designs for the first track, and we as a group held a vote to see what the general consensus was on the best layout. Afterward I laid out the track in-engine using BSP to determine the scale of everything and where models would go once finished and imported, and then created a draft anti-gravity version in 3ds Max using the same scale. The reason the track went through all these stages of development and I didn't just instantly start making the final piece, is because many smaller changes were made throughout each iteration, as more time and care is put into the track's overall design. It allows for the track to end up being of a much higher quality meeting the standards set in the quality plan, as without all this precise planning it would have ended up as a much less enjoyable experience to play through since there would be much lest testing and thought involved in the development process overall.

Likewise testing plays into this very well, with all sorts of different types and methods used throughout the creation of our game, all changing depending on what's best on the situation. White box testing was very useful from a developer standpoint, block box testing greatly assisted from a gameplay perspective and user testing near the end of development was a great resource coming from people who don't know much about our game and what it even is, giving us a fresh outlook on things we as developers may have missed. All of these and their applied scenarios allowed us to perform certain stress-tests to determine whether or not our game meets certain outcomes, and from the perspective of a game and level designer this comes a lot from the design of the track. From seeing if there are any bugs or glitches that tie into the programmers' code (like falling through the floor), to determining if the level contains as many game design techniques as possible (such as semiotics with the track standing out from the environment, and the endogenous value with the placement of pickups within it). All of this comes together to create a cohesive and fun experience that just wouldn't be possible without the small but various tweaks testing provides.


We were overall very successful at meeting the group project's success criteria as a whole, managing to reach all of the musts and vast majority of the shoulds, even dipping into the coulds here and there (with us managing to make four tracks for example!) However we managed to meet as many outcomes as we could, we have functioning mechanics with anti-gravity, items and AI, we have four working and highly-polished tracks, and we also have a huge assortment of 3d models and graphics developed for them too. We also met the target audience requirements to great success, and I feel the theme of the game and its visual style really nail down that PEGI 7+ target audience, with the cartoon violence and gritty realism being the two main factors which secure that rating which we were aiming for all along.

I applied a lot of the feedback from previous units into this final project, especially in regards to the Game Design and Environment Design modules, with those being my specialist subjects. In regards to the level design unit I tried to make the maps feel a lot more cohesive, as if they're one big living space, rather than disjointed areas which don't transition well to each other in order for the player to truly be able to get immersed in the world. Likewise for game design, as main game designer I tried to ensure as many game design techniques got implemented as possible: endogenous value with your player's position and the item pickups, semiotics in order to make the HUD and environment understandable (you can't go through red barriers for example), having a good flow channel with the game's track design using an avatar-based interaction model, etc. All of these different elements I previously researched all come together to form a substantial package, and the inclusion of these different elements is evidence that I've taken what I've learned from the first year of uni and applied it this year into my work.

Our prototype game will as be professionally presented at our end of year exhibition, with an entire cornered section of the room dedicated to Zero Fr1ction. How this is going to be presented is the work will be mounted up onto white cards on the wall. We plan to also mount the best art assets and 3d models around the two set-up PCs to show-off the best work of our game in a professional manner, as it will allow our work to be spaced-out and not too cluttered, while still exhibiting the skills and techniques we've learned from our time on the course with the evidence of us applying them being our exhibited exhibition work.

Overall though to conclude things, I'm very happy with how the project turned out and feel it went very well. We ended up producing a very fun and solid game, as evidenced by the positive user testing results and us hitting all of the points on the quality plan. If we were given a few more months to work on Zer0 Fr1ction the concept could have been taken even further with more maps, vehicles and polished gameplay mechanics. But as it stands I'm very proud of myself and everyone who worked on this game, and it makes for a fine exhibition and portfolio peace as physical evidence of how much we've grown over the two years on this course.

Development Week 9 (15/05/17 - 21/05/17)

I started winding down this last week as I finalised my workload and content production, completing the tasks set on the task board and project backlog. With me producing two extra levels (Space and Fastopolis 2 set at dawn, pictured below) whilst continuing my usual level of polish by incorporating any produced models and creating animations/particle effects for them (such as the new animated Tram vehicle). Likewise, I also modelled, textured, rigged and skinned a cute bird to be put into the game, with both an idle animation on the ground and flying animation, to be moved in-engine with the Unreal Level Sequencer. All of these went incredibly well which I'm pleased about, we collaborated well as a cohesive unit and very few issues arose. One big issue I did encounter was when animated the bird, as I didn't link the two wing bones to the main body before animating it, so when it came to importing the mesh in the engine it couldn't, and I had to recreate the 110 frames of animation again. Luckily I learned from this risk and will mitigate it in the future to avoid any more loss of time, and ensure I have a correct bone hierarchy in the future when animating, following professional working practises while sticking to the fitness for purpose (having said character animating as intended in the game).
The Space Level

Fastopolis Track 2
This last group meeting was incredibly useful for me to gauge where every group member is at with their progress, and we are definitely back on-track for the deadline next as the last few parts of the game fall into place. The space level I created this week was quite impulsive, but was agreed upon by all members of the group for me to pursue. As rather than have me create a third city track, which during development seemed to get rather tedious and monotonous for players as they see and drive past all the same things for a third time, the concept of a space level from the point of view of an environment designer is much easier due to there being no ground or foliage. Gus and Ty had already produced assets ready for a space level, and I was able to complete it in just under two days, which works out well in the long-run for meeting our target audience requirements, as it adds some much-needed level variety in our game, with only a few assets crossing over into both (like the neon arrow signs and birds, but even then I retextured them to make them feel fresh again).

My animated birds imported into the engine


Whitebox testing- I conducted some more whitebox testing for the two additional tracks, in order to see if they had a good standard of fitness for purpose.


Date 

Test No 
Class  

Function  
Test purpose 
Input 

Expected output 

Actual output 

Additional comments 

16/05/17 
W3.1 
Barberland Track
SpawnTrack
To see if the car and its anti-gravity allow it to drive all the way around the course 
W 
The car can stay on the track while driving on all angles
The car was able to stay on the track unless intentionally driven off! During testing there were some rough bumps and angles which I was able to iron-out and remove

18/05/17 
W4.1 
Space Track
SpawnTrack
To see if the car and its anti-gravity allow it to drive all the way around the course 
N 
The car will be able to perform a full look around the track
The car was able to stay on the track unless intentionally driven off for the most part, with a few areas where the car would fall through the track facing certain angles. However during testing it was also found that the track was too short in a loop and doesn't properly match the quality requirements.
The track was too short and simple being a long loop.

W4.2 
Space Track

To test if an updated track fits the quality plan

The longer and more complicated track will take longer to traverse while still having no game play bugs
This updated track works as intended, fixing the previous clipping through the floor bug while being much longer and complicated, that allows for a smooth gameplay experience while also matching the risk and quality requirements of mitigating any bugs.


What I got from this/ how it helped- This testing was incredibly critical for me to perform if the project were to be a success, as having a track which has many glitches like falling off will determent the game's overall quality and leave a bad impression on the player. Also this testing allowed me to identify and mitigate a few risks with the space track, and in turn fixing these risks by making the track longer and more complicated has allowed me to produce a much greater environmental asset to use in my personal portfolio.


User testing- I got a few friends and family members who had no prior experience with the game to playthrough my three levels (Fastopolis, Barberland and Cosmic Torus) and write their thoughts on the map design and environment.

Joe Hayes: "The game has very interesting maps they look cool and unique. The level is missing a lot of key points such as a goal, score or position. The level does implement some form of AI however there is no collision. A lot of bugs persist through the levels. Pick ups will be a nice option or even some form of movement other than W,A,S,D. The level at the beginning is enjoyable with the exploration of a new world however the 2nd or 3rd time around becomes boring. More is needed or even a simple score board and unlocks will brighten up the levels. More physics could be implemented rather than a "Fall off simulator". Overall its a very cool map with issues. "

Jon Woodbridge: "I like the fact that there were different areas, it helped me know where I was on the track. I would see the background had too much which took my focus off the race. The tracks themselves where hard to drive on (maybe because of the out-dated mechanics) I would think about spitting the track into parts like Top Gear's track. The Gambon corner, the hammerhead etc.  Make sure that the player knows where they are. Use land marks, waypoint/mile stones to let the player understand how far they were on the track. Overall it has character (over the top, perhaps) but it's not boring or dull."

My mum: "As someone who doesn't play games at all I very-much enjoyed Adam's game. I kept falling off the road when going really fast, so I had to slow down a lot and drive around at a more sensible road-safe 30 mph! But I really loved the landscapes and backgrounds that you made, my favourite is the space level as it was very pretty with the stars and planets. You put a lot of hard work into it and it really shows, I'm proud!"

Observations- As I casually sat behind those testing, I jotted down a few notes for myself that players may or may not have done, without letting them know I was observing them to allow for them to play the game more naturally. Firstly a same people got frustrated with the mechanics as they sometimes struggled to react with the fast speed, but it's a lot more positive overall to previous testing with the needed changes (such as respawning now when you fall off the track). I noticed nobody seemed to take any shortcuts on the first lap round which is good, as it meant they were following the designed path and the shortcuts are a feature for players with more experience with the level to use.

Players did smile a lot whilst playing too, so they were clearly having fun with the game more than being frustrated with them having overall genuinely positive and upbeat body language. And all of them at one point or another complimented how pretty the visuals were, and as someone who both 3d modelled assets and environment designed, that made me proud to hear. And it works as evidence of collaboration as to just how hard our group worked together to create a quality product.


This feedback relates to me as the main game and environment designer, and is incredibly useful for me to take on-board. Jon's suggestions of having different landmarks for the player to know where they are on the track was very-much taken on board, and alongside the included minimap is something I added moreso into the game (so for example, the space level now has an inside the blue planet section, inside the red planet section, the anti-gravity hospital section, the upside-down tower section and the asteroid belt section before looping back onto itself, meaning that the player is always seeing something new to keep their mind more occupied with things. Likewise this ties in with Joe's suggestions of repeated loops of the track becoming boring, as the increased visual flare not only enhances the game's visual style, but also gives the player endogenous value in the sense of progressing and recognising the placed landmarks to know how far they are along the course. So overall this testing was incrediblly useful for me as the environment designer, as it allowed me to add some needed changes to the tracks to add more variety to it.


Quality and risk monitoring- As I've approached the tail-end of the project's development, all of my work conforms to the usual constraints like clockwork. My bird model is well within poly-budget and texture resolution constraints, only having around 300 polys with a 16 x 16 texture file for the blocked out colours. This means that I can have plenty of them spread around the environment wither their idle/flying animations, without worrying that too many system resources are being drained for these background processes, which is evidence to me conforming to professional working practises as I've managed to mitigate the risk of the game dropping to low framerates, which thus increases the game's playability with less stutter and overall increases its quality. This design philosophy is something I've taken forward into my two extra levels, not having a huge amount of clutter, every model, blueprint, light, etc has a purpose and exists for a reason. Whether that be graphically (to make the environment and its visual style more visually appealing) or from a gameplay-perspective. Such as having a neon red hex barrier near the track at one stage to symbolise danger to the player, using the colour red which has common associations to danger in our western society.
A screenshot of the Trello task board as evidence showing that I'm on-target. As I have completed all of my sprint tasks this entire project as of 20/05/17 for the May 22nd dead (with an exception to the 15 minute presentation, which is due on June 1st)

Sunday, 14 May 2017

Development Week 8 (08/05/17 - 14/05/17)

This week I completely finished the first Fastopolis track, including many particle effects, 3d models and in-engine animations, aligning with the set time management plan and bringing the overall level to a finished and polished state.

Whitebox testing- Up to this point, I decided to test if my current level and models have a good level of fitness for purpose. For example, I compiled a test log as seen below:

Date 

Test No 
Class  

Function  
Test purpose 
Input 

Expected output 

Actual output 

Additional comments 

08/05/17 
W1.1 
SplineTrack
SpawnTrack
To see if the car and its anti-gravity allow it to drive all the way around the course 
W 
The car can stay on the track while driving on all angles
The car was able to stay on the track unless intentionally driven off!

09/05/17 
W2.1 
SplineTrack
SpawnModel 
To test if an updated track model works as intended
N 
The shorter track piece will reduce the jagged edges in the track
Having a new, shorter track piece with less edges actually made the track even worse. It stretched the texture and had even more jagged edges.


W2.2 
SplineTrack SpawnModel 
To test if an updated track model works as intended

The shorter track piece will reduce the jagged edges in the track
This next model worked much better, having more edges on it allows the track to curve and flow much more smoothly along the turns.


What I got from this/ how it helped- This testing was incredibly useful for me when it came to understanding which of my assets work as intended for the base gameplay. And knowing that the player vehicle and AI cars can generally drive around the track, whilst also looking a lot smoother in doing so, is very useful knowledge for me to test for in order to give the project a higher level of polish, as a key part of our game which is outlined in our quality management plan.


Collaboration- I paired up with and collaborated with the three different modellers especially much this week, as it's the final main week of implementation. I imported, implemented and created materials for well over a dozen models in the game alongside my created and sourced particle effects, giving it a drastically better visual flair to the previous stages of the level just exclusively using BSP (as shown in the image comparison of before and after below).

The 'roundabout' section of the game during the BSP blockout stages


A much more finalised version of that section, almost being unrecognisable!


Research- I looked into various particle effect tutorials for Unreal 4, such as one by (The Unrealist, 2017) for a bubble-shield in Unreal 4. This material I coded in blueprints to put around the stadium area and entire level in general, however I created it entirely in the material editor within Unreal 4, with a screenshot of the bubble in action below, with it wrapping around any object meshes it collides with:




Professional working practices- With the deadline quickly looming overhead we as a group decided as a method of time efficiency to reuse some assets members of our group have created before. Such as me recycling Gus' space scene, Ty's sword and stone rock and also all of the city assets for a second city track set at a different time of day. All of this is good for time management following our strict trello board sprints, in order to maximise the content we can have within our game.