Audio Programmer

Game development tools

A little showcase of some tool for game development

 

Decal System

Quick preview of a small decal system

Quick preview of a small decal system

Overview

The system was made with game designers in mind first and foremost. It can handle any number of game objects, meshes, materials and so on, pool them for later instantiating during runtime to save on runtime cycles and increase performance.

How does it work?

The tool creates a dictionary that takes a key and a associated game object. During the start up of the scene it loads in the game objects requested and when the key is called, the dictionary will return and instantiate the game object in question with the given transform, continuing down the list to the next one.
If it’s run with the Unity3D engine, it can also draw instanced meshes from the graphics memory. This is however specific for decals only, but saves even more power during runtime.

Link to Git


AI Perception

Overview

The AI perception tool is an easy-to-use tool for designers when tweaking the perception radius of an AI game object inside the Unity editor.

How does it work?

The green area indicate where the AI will be able to “see” any other specified game object, while the red represent what is unseen. By simply dragging the red nodes on the outer parts of the circle, the perception area can be increased/decreased to match the desired size by the designer. Since it’s just a drawn Gizmo inside the engine the graphics of the tool will be disregarded during the building of the game and won’t be part of the final product.

This specific tool was made with the designers in mind during the development of the game Owlchemist: Mire of Malice at Futuregames, Stockholm, and was directly bound to the state machine of the AI and it’s behaviour.

Link to Gist


Sort / Search tool

Snippet of search

Snippet of search

Overview

This project was about creating diverse and effective ways to search for data in arrays. The whole project is in C/C++ and utilize a multitude of different and diverse ways of searching for any type of data in a array.

Link to Gist

Goal

My personal goal was to build something that can easily be used for creating an optimized search and sort framework that could be utilized for AI development and loot systems in games. All of the code is done with data oriented programming in mind for easier deployment during any future work.

 
Snippet of sort

Snippet of sort

Sort

The sorting can be done via the popular methods of heap sort, bubble sort, merge sort, select sort, insert sort and finally quick sort. All the necessary components are also included such as heapifying, swapping, merging and partitioning the different data types that needs to be handled.

Searching

Just like the sorting, the searching is also done with the popular methods in mind. Binary search, jump search, interpolation search and exponential search are all included. The whole point of including different methods of both sorting and searching is so that the developer who uses this in the future can take the different methods’ pros and cons, and give said developer the option to choose whichever he/she might prefer.


Platformer tool

A tool for level designers making platformers. Work in progress!

A tool for level designers making platformers. Work in progress!

Overview

This tool is made specificly for Unity3D and is a work in progress. It will help level designers make more interesting levels for platformers or adventure games where moving platforms will be a part of levels. It will help predict the final result before even running the scene, making it easier to achieve the desired design of the level.

How does it work?

The tool takes transforms for a specificly assigned game object and it’s mesh. It will then draw the path of which the platform will take between the set of navigation points assigned and show the mesh of the platform game object at the destinations. This is to make it easier to visualize how it will look as a final product before even running the scene. The drawn mesh can even be colour coded as well as numbered to make it easier for the user to orient what point represents what destination in the hierarchy.

Link to Git