Tikmin

 

Trailer

 

Description

Deserted on a tropical island, solve puzzles with the help of the indigenous creatures who inhabit it. Your only hope for escape is to find the hidden treasure.

Project Details

  • Genre: Top-Down, Puzzle Solving
  • 10 weeks development (Half Time)
  • Created in our own engine
  • Written in C++
  • Scripts written in Lua
  • Levels created in Unity
  • 5 Programmers
  • 2 Level Designers
  • 3 Graphical Artists
  • 3 Technical Artists

Contribution

 

Quadtree

  • Templeted quadtree to maximize flexibility
    • In order to make an easily reusable quadtree, I decided to make it a template. Avoid making it explicitly for this project would minimize the work of any future implementation.
  • Optimized pathfinding
    • Implemented a quadtree to optimize the performance of pathfinding on a navigation mesh

    Pathfinding

    • Navigation mesh
      • Use data received from Unity to construct a navigation mesh built with unique triangles and sorted them into a quadtree.
    • A-Star
      • The pathfinding uses the current player position as a start point and the new input as an end point (if it is on the nav-mesh). Then, using the triangles of the nav-mesh, finds the closest path with the help of the A-Star algorithm. 
    • Optimizing A-Star
      • In order to exclude unnecessary waypoints returned from A* the path needed to be optimized.
    • Pathfinding edge-cases
      • If the player were to click outside the nav-mesh the player character will find and pathfind to the closest point inside the nav-mesh.
    • Threaded pathfinding calculation using a tripplebuffer
      • In order to further increase performance I threaded the pathfinding algorithm and updated the path in runtime when a new path has been calculated. This way the player character won't stand still until the calculation is complete but instead continue to walk the current path until the new path is optimized.

    Collision

    • Implemented OBB collision
      • Implemented collision detection between OBB's from unity and game objects. Used when the player kicks a game object into a wall or piece of terrain to make it bounce back.

    In-Game Console

    • Various debug commands
      • Added commands for the in-game console to assist the debugging process. The user can now draw the navigation mesh of the entire map or just in the local quadtree node.

    Pathfinding!

     

    Meet The Team

     

    ScreenShots