Wednesday, 20 November 2019

Real-life References

Recreating the main stage for the game, I've been using the original as a 1:1 reference. however, today it dawned on me that the course is loosely modelled on real-world locations i.e. San Francisco!

Obviously the level aims to capture points of interest and recreate them in-game. Incorporating this alongside staying faithful to the original I am able to increase the quality of the level.

For example, I am currently in the process or remaking a street with curves and flower banks. I know I've seen it in movies before and decided to Google it. Turns out the location in question is called Lombard Street.

(Left: Re-model - Right: Original)

With this new reference I can now increase the quality by a lot.

More references to look at: https://www.touropia.com/tourist-attractions-in-san-francisco/

Friday, 15 November 2019

Initial Impressions

Brought in the latest build of my game and a number of people wanted test play it (not in any official capacity). The feedback was appreciated and I hope to please and surprise everyone more by the end of this project!

The general consensus was positive, more vehicle tweaking is required though as most people felt the car dips, spins out, flips too much.
That and finishing the stage so boundaries are in place to prevent falling out from the world.

*Edited:
After tweaking for a few hours, the car now seems more stable!
It now lands and doesn't always bounce off spiraling out of control, whilst still rolling if the angle of contact is steep enough or at just the right position. 
This was achieved by moving the centre of mass, changing the cars weight and dampening the springs governing the suspension. More tweaking needs to be done, as these changes have impacted the vehicles acceleration and top speed. so I now need to increase these whilst still ensuring control is still optimal.



Thursday, 14 November 2019

Scripting Gameplay

When it comes to game development animation and programming are what I consider my shortfalls. I can script, given enough time I can script some complex mechanics. But I'm no programmer.
If I don't programme for a long time I tend to forget how their relavant syntax works, which is annoying. And because I havn't used Unity for a good long while I'm having to learn the ropes again.

Last time I used Unity, they were using their own mono editor with Java, which I was quite proficient in. Since then, they have shifted entirely to C#.

At any rate, I'm gradually getting better with C#, I've managed to create 2 important scripts and even UI elements:


Coins:

I've had coin placeholders in the game for a while now, but that's all they were. I have now made them fully functional and can now be collected and even update the UI to reflect this.


The rational behind this was to create a collection script on a global object, this script tracks what coins have been collected and since the object is persistant in the stage, theres no way the information can be lost.
For each coin, I had them check when a collision happens, if it has collided with the player, if so then check what coin colour it is and then add to the players coin collection script. At the same time, the code that governs the UI checks every frame the state of the players coin script and updates this on-screen.



Buttons:

In the original game there are a couple of buttons that open up new pathways. I obivously needed to recreate this mechanic. Originally they change from green to red during any cooldown.


I created the same but added more functionality. Because Unity's editor allows for on the fly variable editing via the inspector I coded the option to change the colour via a dropdown box. So any buttons that are placed within the world can have their colour changed immediately without hassle.
I'm particularly proud of this because it uses an enum list coupled with a switch case and finds any child objects and changes their colours too!

The button's trigger code also takes advantage of this new feature!


When the player collides with the trigger, it checks to see which trigger it has collided with and checks to see if it's not already triggered. If these conditions have been met, it changes it's colour and then will move anything (I need to add this later), the button will then wait for however long I've set it's individual timer for. After which it will reset it's colour, status and any object that needs returning to it's original place.


That's about it so far for mechanics, I'm enjoying scripting and look forward to implementing more!

Wednesday, 13 November 2019

Learning more in Unity

I decided to take a step back from modelling with my project while I focus on the literature-side of things.
During this time I thought I would read more into what Unity is capable of. Since the last time I made anything major in this editor a lot of features it has now were not present.


Lighting:

The most noticable is better lighting; such as ambient occulsion and emissive lights and better baking. The image below is the result of a little experimentation, the lightmap resolution needs increasing a lot for the final bake. But for testing purposes its quick to see what effects can be made.


Eventually when surfaces have textures I'll be able to play with specular highlights and reflections to create some really nice areas.


Foliage:

Also because this level has a lot of trees (I think 150+), I decided to look into SpeedTree, which is widely used in many commmercial games. Resources are limited due to it being a paid service, but there are a handful that can be found, and they look amazing.



This is just a few trees but already it makes a huge difference in the scene. Behind these in the distance is a simple tree backdrop, which is a method used in a lot of games create better looking distances. Coupled with more trees to blur the line, this will eventually look good.

For now though, all this is just polish / later-stage things. It's nice to see how good the project can look, especially at such an early stage.

*On a side note, it turns out Unity doesn't play well with .png transparencies, took me a good while to figure out why some of my textures wouldnt display properly. Targa files with an added alpha channel work much better, but are also typically double in filesize.

Learning Agreement


L E A R N I N G    A G R E E M E N T
Project Proposal                      
Name
Vernon Wroe
MA Course
Games Design
Date
30/10/19
Version Number
1
Project Title / Research Question
How are re-releases affecting the industry regarding design & creativity?
Proposed study / What?                                                                                                          (100 word limit)
I want to delve into game re-releases (in their many forms) and their effect on the industry in both a positive and negative way. I want to address and discuss this to find out; why, if its acceptable, what are its affects, how to improve this and study the outcome.
Rationale / Why?                                                                                                                    (100 word limit)
I want to bring attention to such a huge-yet fairly hushed-part of the industry; annual releases are dominated by such titles yet there is no discussion to this practise. Like for example: why do companies believe that a simple repackage of their software justifies the attention and the price tag associated with it?
Remasters are typically just a cash-grab, whereas remakes take on the challenge of recreating a game. Both affect design and progression in an industry becoming saturated by these types of releases.
I want to study and research the subject and bring light to situation impacting the industry.
Aim & Objectives                                                                                                                   (200 word limit)
The aim of my project is to shame effortless re-releases dubbed “remasters” by companies solely focused on financial returns. And instead demonstrate that with more time and effort a remake can be far more influential for the game / franchise and create better industry practises.

In order to achieve this, I need to:
·         Better create the argument with comparisons as to what poor re-releases are.
o    Then show good examples of remakes; remakes that have taken further steps to create something better than the sum of all its parts.
o    Gather sales statistics are release schedules to show how many are releases over a period of time.
o    Analyse both types by critiquing titles and discussing aspects of them such as design.
o    Detail how I would re-create an old game, my choice and why.
o    How I would test my premise
·         Remake a game of my choice
·         Setup a testing environment
o    Probably have people play the first stage from the original and my remake
o    Gauge responses in some form or another
·         Analyse results
·         Discussion on the whole premise, my journey, outcomes, my expected outcomes and conclusions



Plan / How?                                                                                           (250 word limit)

  • This semester (next 5 weeks)
    • Learning Agreement
    • Find 4-6 references / sources
    • Write Literature Review
      • Get Jim to review it asap
        • Create testing parameters (focus on gameplay only)
    • Finish stage (whitebox at least)
      • Coins need to be collectable
      • AI opponents
    • Test game and get feedback
      • Analyse feedback
  • Next Semester
    • Depending on feedback:
      • Completely Finish Stage
      • Create testing parameters (focus on game & aesthetics)
      • Gather and analyse feedback
      • Compare the two in relation to my Literature Review



Intended Outcomes of Project / What - solution?                                                                     (100 word limit)
I hope that through my research and project I can effectively demonstrate that re-releases are better off with a bit more attention being spent on them, instead of a lacklustre remaster. The industry needs focus being placed on this bad practise.

References                                                                                                                           
Cuff, S. (2017) 'Now You're Playing with Power: Nintendo and the Commodification of Nostalgia', Theses and Dissertations, 1459.
Purnomo, S. et al (2019) 'PROSTHETIC TRANSLATION: RETRANSLATIONS OF VIDEO GAME REMAKES AND REMASTERS REFUTE RETRANSLATION HYPOTHESIS', DOI: 10.24036/humanus.

Student signature
Vernon Wroe

Saturday, 9 November 2019

Another Progress Milestone

I've been working on my project at a steady pace whilst also balancing the theory side of things. Surprisingly I managed to find some academic papers directly related to my question! Took me a while, I think I was looking too much into nostalgia and that's why I didn’t find anything on remakes.

Whilst I need to put more time aside to read them all thoroughly, the abstracts indicate they relate to what I want to research.

Project-wise, the level is now halfway in terms of basic construction:


It's starting to look nice, even though it’s still somewhat crowded the level has better optimisation and cleaner models. Eventually once I've textured everything, it should look really sweet.

Additionally, I've coded coin functionality into the game as well as the corresponding UI components. So the player can now collect the coins, they count towards their totals and the UI reflects this.

Although in hindsight, I wish I'd have picked something a bit more simpler to 'remake' such as a small side-scroller etc. If I do manage to get to the point of attempting another project before the course finished, I think I will look at Tombi. It’s much smaller in scope and still encompasses the same ideologies I associate with this current project.


Tuesday, 5 November 2019

Level Creation Process Explanation

For weeks now I've been recreating the first stage from Rush 2049, I've mentioned the process I've been using but not to any detail. Here is a little more in-depth look at the entire process I'm using for the entire stage, in case anyone looking back at this is curious about my methodologies.

So, it all begins with a piece of software called NinjaRipper, this program has been around for ages and is still used by hobbyists to extract models from modern titles. I've never used it before but have heard of it and figured I would see if it would work for my purposes.




The program works by manipulating the target game's runtime dll, once in game it is then able to take a 'screenshot' and extrapolates any 3D information in the current scene and exports it as an editable object file. While its results are hit and miss, it does work. In my case, it created the models I needed alas without textures and with obscurities.
I mentioned that a screenshot is created from the current scene, this in affect uses the in-game camera to gather information. As a result, any angles or FOV (field of view) is also captured, resulting in obscured models, usually with a slant on everything.




The result is something like in the image above. If you look at the top-right viewport, you can see all the edges are slanted to the right. Not only that, but many objects are duplicated more than once, so each building usually has a few copies on top of one another. Because of this, the model in its current state is unusable as a straight translation into my project and for optimisations purposes too.
However, it does serve as a good reference for re-creating the entire stage, as it shows objects beyond any in-game boundaries that I wouldn't usually be able to see.

With this reference model I can then create a white box stage by creating primitives on top of parts on this reference and gradually delete parts from this rip as I go along, creating a clean version.




This image is taken from the exact same perspective as the previous one, as you can see part of the map has been re-created and is much easier to view / navigate. It is also optimised with hidden faces removed and can be imported into Unity in its entirety without any issues:




By using the emulator for the original game (which I own) I can see what tiny details should look like in-game and recreate them using everything I've done previously. 
For example, the next area I'm working on has a tiny animated model of a tram, using the original rip as a reference I can create little things side-by-side.






Finally, once the entire stage has been white-boxed I can then texture everything! Thankfully a lot of the models are buildings which don’t require any intricate UV unwrapping.

*EDIT:

In addition to this method, another software called 3D Ripper DX also works, however both work in different ways.
Depending on settings, NinjaRipper will rip everything textured but combine the entire scene into one spot making the whole thing useless and it has hundreds of meshes combines.
Ripper DX will give a proper export of the scene in the correct places but without textures, sill skewed though thanks to the games camera.