top of page

PROGRAMMING PHYSICS

Assignment 2

Lessons Learned:

  • Force & Impulse

    • Shooting the Caram disc adds a force to it that changes the momentum which changes the velocity of the game object. Impulse checks when the disc collides with another game object to check for that object's change in momentum.

  • Acceleration & Retardation of a game object

    • The velocity changes the position of the game object. A constant force causes acceleration. Friction subtracts from velocity over delta time to cause Retardation.

  • Collision Detection

    • 3 different types of collision detection, ball to ball(distance-check collision), ball to wall and ball to pillar collisions. The ball will reflect off an angled surface at a calculated angle.

    • Predictive Collision checking(Ray Tracing)

      • for if the game object is moving at such fast speed, that its position never touches another game object's position it just passes through​

      • Checks based on time, if collision time happens lesser than delta time(1/ fps), the objects are assumed to have collided.

title.png
ScreenShot_01.jpg
ScreenShot_02.jpg
ScreenShot_03.jpg
Year 2: Gallery
Year 2: Gallery

ADVANCED GAME DEVELOPMENT & TECHNIQUES

Assignments 1 & 2

Lessons Learned:

  • Scene Graph

    • Categorizing game objects in the scene to improve performance during runtime. Also allows Easier manipulation of Child and parent nodes. Such as, shooting off both legs of the enemy and causing them to fall to the ground as seen in the pictures below.

  • Spatial Partitioning

    • Only search collision for gameObjects within the same grid space. Saves computation load during run time.

  • Level of Detail

    • Objects at a further distance can be rendered with/at a lower poly rate. This also improves performance when rendering.

  •   Waypoints for AI

    • Creating specific waypoints for enemies to move around instead of just charging towards the player will make the game feel more realistic.

  • Lua Scripting

    • Lua scripting allows the editing of codes during runtime, creates lesser bugs, allows level designers to work with changing game object data without touching the programmers' codes.

​

Level Of Detail + Spatial Partitioning.p
Scene Graph.png
Scene Graph 2.png
Year 2: Gallery

GAME DEVELOPMENT & TECHNOLOGY

Assignment 2

Lessons Learned:

  • Proper 1st person Camera Controls

  • Weapon Manager (Inventory)

    • able to store data of multiple weapons​. Like shooting speed, range,  explosive, bullet speed, etc...

  • Hardware abstraction

    • able to bind controller inputs into a game​ that has keyboard inputs

  • Frame-Independent movements

    • more accurate movements from different hardware types (Faster computer = move lesser between frames, Slower computer = move more between frames)

  • Minimap

Screenshot_01.jpg
Screeshot_02.png
Year 2: Gallery

Assignment 1

Lessons Learned:

  • Singleton Instance

    • Ability to transfer player data from one scene to another​

  • Parallax scrolling with Constrain (Does not move the camera when at the edge of the map)

  • Saving & Loading into a text file

  • Animated Sprites

  • In Game Audio (Irrklang)

  • Map editing from a .csv file

A1_01.png
A1_02.png
A1_03.png

ADVANCED DATA STRUCTURE & ALGORITHM

Year 2: Projects
Screenshot1_edited_edited.png

ASSIGNMENT 2

Lessons learned:

  • Searching Algorithms (Listing from fastest to slowest searching speed)

    • Binary Search - divides search range by half then half, until it finds the target. (only possible if the list is sorted)

    • Linear Search - incremental/decremental loop until it finds the target​

  • Sorting Algorithms (Listing from fastest to slowest sorting speed)

    • Quick Sort​ - (Incremental Ver.) Quicksort chooses a pivot and has two indexes that are marked. For example, one called small index and another called temp index. Small index will only increment if temp index is smaller than a pivot, then swaps the value in small index with the value in temp index, finally swaps the pivot with the new small index value and repeats the check again. otherwise, temp index increments and checks with pivot once again.

    • Insertion Sort - Marks the first index and compares it to the next index and next and so forth till a value bigger/smaller (Incremental/decremental) is shown. Then the value is marked and will be placed in the index of the previously marked, while the rest of the index between gets pushed back by +1.

    • Bubble Sort - Compares between the current index and next index on the list and swaps the two depending on sorting by incremental or decremental

Screenshot.png

ASSIGNMENT 1

Lessons learned:​

  • Overloading

    • Unary Operators (+, -, =, etc...), to allow  classes to: Vector3() + Vector3().​

  • Using Templates for functions to support multiple data types

  • Exception Handling for error checking

    • Using Try, throw and Catch blocks​

    • Usage of C++ Exception classes (Out_of_range, runtime_error, etc...)

  • C++ Preprocessors

    • #Define​

    • #Pragma​

MULTIPLAYER GAME PROGRAMMING

Assignment 1

  • TCP/IP​

    • Server Side: WSAStartup()​ -> sock() -> bind() ->listen() -> acept() -> send() or recv() -> closesocket() -> WSACleanup()

    • Client Side: WSAStartup() -> socket() -> connect() -> send() or recv() -> closesocket() -> WSACleanup()

  • UDP/IP

    • Server: WSAStartup() -> socket() ->bind() -> send() or recv() -> closesocket() -> WSACleanup()​

    • Client: WSAStartup() -> socket() -> sendto() or recvfrom() -> closesocket() -> WSACleanup()

  • Packet Transmission

    • messages/data is sent via packets to the server then back to other clients

  • Multi-threading

    • server is able to accept multiple connections while receiving data from a client with multithreading​

Assignemnt1.png
Year 2: Image

MOBILE GAME PROGRAMMING (ANDROID STUDIOS)

Assignments

Lessons Learned:

  • Programming in Java. Android studios recommend that developers program in Java

  • Touch Events

    • Java uses an onClickListener​() that runs whenever an input on the screen is detected

  • Custom assets & Vibrations

    • custom assets enable the use of custom made fonts​

  • Audio & Pop up alert notifications

  • Facebook access from in game

    • enables sharing of scores​

    • setting up developer's facebook

Screenshot_1.png
Screenshot_2.png
Screenshot_3.png
Screenshot_4.png
Year 2: Gallery

©2019 by Darius Maximus Chan. Proudly created with Wix.com

bottom of page