Reflection for mini-game Cycle 2

Student Name: Wai Man Ho

Student Number: n9659340

What did you learn about professional development by going through the design process?

From the professional development point of view, sometime it occurs that certain game design concepts are pretty good, but the actual implementation may be very hard. For example, our initial thinking is putting a video game on the mobile phone, but it is too hard to implement when going through the design process.

A more feasible solution is just using the normal mobile phone ringing and answering as the challenge and is easier to implement. The player need to answer the phone when it is ringing, the phone will block the view and will be gone from the screen (after finished talking to the phone) for a random duration time.

What did you learn about the other majors in the degree by working in mixed teams?

We have studied the “AI for game” subject in another course and hence able to write codes in using Waypoint Graph and A* pathfinder for the game, rather than using the Unity built-in Navigation Mesh which is for more general purpose and less suitable for the specific settings of the game.

The code is much simpler as the result of using our own AI routines. In addition, the cars look very realistic in spawning to the scene and when they are moving around the road.

With the major in Animation in the degree also allows me able to make the Game Objects are more realistic in moving around the scene. Please see the “Rotation Analysis” in the later document for details.

What did you implement in your own individual work that you found the most satisfying?

The Free Assets that are used in the game are original designed for Unity 4, so when porting it to Unity 5, it is found that the lighting is not correctly display and the scene looks like day time rather than at night! Hence we are forced to use the Unity 4 which does not support Render Texture unless it is Pro Version.

We have tried to implement a “Street Map” for the game which is pretty straight forwards if using a second camera to do the Top View of the scene. However it is required to use the Render Texture as the output of the camera which is not available in the free version of Unity 4.

A good problem solving is we create the Street Map from scratch by just using 2D pixel images, personal handmade the pixels using Photoshop for the Cross Cursor and the destination label on the Street Map. Then we need to fine tune the scaling between the position in the scene and the corresponding position on the Street Map.

Do you think that there are any ethical issues attached to designing a First Person Experience inspired by recent events?

It adds Education Value to the game as people are more aware of the attached ethical issues after the game play. For example, after playing through our game about Mobile Addiction Disorder sickness, people will now more caution crossing the roads while they are using the mobile phone.

Analysis: Rotation of car and people

It is hard to make the rotation movement looks real, as the rotation movement of car and people is different due to their different mass and mechanic.

People tends to rotate faster as they just need to change the legs direction and no forwards movement is required, but a car needs to steer the front wheels in order to make a turn which is much slower in action and a forwards movement is required. Hence special consideration is needed to determine the rotating speed as well as the forwards speed during the rotation.

After a number of experiments tried to make the animations looking more realistic, we come up with the following code:

Vector3 Old_pos = transform.position;

Quaternion Old_rot = transform.rotation;

// move to next waypoint

transform.position = Vector3.MoveTowards (transform.position, graphNodes.graphNodes [currentPath [currentPathIndex]].transform.position, moveSpeed * Time.deltaTime);                               

transform.rotation = Quaternion.LookRotation(Vector3.RotateTowards(transform.forward, transform.position - Old_pos, (moveSpeed/4) * Time.deltaTime, 0.0f));

// detect if rotation takes place

if (Old_rot != transform.rotation)


                Old_rot = transform.rotation; // update new rotation


                // slow down forwards movement when rotating

                transform.position = Old_pos; //restore back to last movement

                transform.position = Vector3.MoveTowards (transform.position, graphNodes.graphNodes [currentPath [currentPathIndex]].transform.position, (moveSpeed/2) * Time.deltaTime);


As can be seen in the above code, the rotation speed is a quarter of the normal forwards speed while the forwards speed during rotation is just half.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s