In this section I will describe some of the modules and functionalities that I have developed to be reused in different projects, this part will not have images or videos since most of the work is basically code.


Ads

System to manage the handling of the ads, both the launching of these and the processing of the responses and errors handling.
Currently it works with Unity advertisements but the system is ready so that other services can be injected.


Analytics

System to analyze the application data and update it based on the results.
With this system I can improve user retention, detect bottlenecks, bugs...
The system currently works with the Unity analytics service but another external service can be used if necessary.


Audio system

System for the management of the sounds of the application, it works with a pool of audiosources to optimize the use of resources and a list of data for the sounds that allow to examine the state of the audio clip as well as configure various playback options and subscribe to several events for the beginning and end of the reproduction among other functionalities.


Connectivity system

This system allows you to check if the user has an internet connection, a basic requirement that is needed for some functionalities such as advertisements, analytics, purchases...
The system makes a first verification of whether the device is connected to a network and later checks that this network has an internet connection through a web request to the selected url.


Localization

This system allows importing a .csv, for example from google sheets, and converting it into a dictionary in which the keys are part of a dynamically created enumeration of the document and the values ​​are distributed in different files according to the language.
The system allows defining a language and modifying it at runtime, it also has a series of scripts that work with all kinds of text components within the Unity engine.


Native(push) notifications

Native push notification system with support for timer notifications, different types of notifications, support for colored texts, support for emoticons ...


Ingame notifications

Ingame notification system that allows to show title and description of any length thanks to the ui with dynamic rescaling, support for choosing options, support for dynamic positioning, option to show the notification with automatic hiding ...


Save/Load (Player prefs)

System for saving and recovering data that allows configuring user preferences, currently it works with the unity prefs player but another service could be injected since it works with a generic interface.


Pooling

System for the recycling of elements that allows a much more efficient use of resources.
The system rescales the list of its elements in case it needs more elements than there are stored, it also has list cleaning functionalities.
The system works with generic types so it is possible to store any type of elements.


Scenes loading

Manager for loading and unloading scenes that allows managing them synchronously or asynchronously and managing the loading times and percentages for a correct execution of the application flow.


Time management

System for obtaining the current date to avoid possible hacks in the elements of the game that work for time, such as daily rewards.
The system works by making a request to pool.ntp.org, a virtual farm of servers that offer an NTP service.


Transitions

This system works in parallel with the loading of scenes, the system allows loading the scenes in the background and avoiding bottlenecks in rendering by loading resources while an ovelay smooths the transition.


Utilities

Collection of scripts that allow making generic functionalities that are usually reused in most projects.
This module contains extension methods, specific code for certain platforms such as Android and static methods accessible at any time.