Houtamelo

Game Development Services
Contact
About
I started my game-developing career in 2019, using the Unity game engine. I branched out to Godot in the 2nd half of 2023, primarily using Rust.Although I can handle 3D projects, I specialize in 2D games, such as Turn-based RPG, Platformer, Dungeon Crawler, Arcade, Rhythms, Fightning, Hack & Slash.My primary skill is game programming, but I am familiarized with other areas, such as:
->Scene scripting
->World building
->SFX mixing/editing
->Game design & balancing
->Drawing textures
->Drawing UI
->Editing sprite/pixel artAlthough I don't usually fill these roles, my experience helps me understand and communicate with professionals in those areas.
Summary
-Unity Engine
-C#
-Rust
-Godot
-Math
Skills - Unity Engine
I worked with Unity through 2019 - 2023, on a 30~50 hours/week basis. In this engine, I'm experienced with the topics bellow:
The fundamentals
Scenes: managing, combining multiples, loading/unloading - both single & additive.
Game Objects: hierarchy, parenting, prefabs, positioning and rotating, both world & local.
Components: scripting, messaging, their relationships with other parts of the engine - important for UI/rendering/physics.
Scriptable Objects: scripting, automating data creation.
Layers: Game Object Layers, Sorting Layers and how they behave under multiple cameras and/or post-processing.
Cameras: render modes, sizing, view ports, ordering, ray casting, combining multiples - even when mixing different render modes.
UnityEngine.UI Package
Canvas: combining, nesting, render modes (Overlay/Screen Space/World Space).
Selectables: Buttons, Dropdowns, Input Fields, Scroll Rects, Scroll Bars, Sliders, Toggles (and Toggle Groups); transitions and how to animate them.
Layout Groups: vertical, horizontal, grid.
Content Size Fitters
Text Mesh Pro: rich text, sizing, editing fonts, sprites inside text.
Graphic Ray Casting
Clipping/Masking: including nested masks.
Raw Images: using render textures to simulate in-game world cameras.
Interfaces: IPointer Handlers and how they interact with the Input system, using them to script custom UI components.
2D
Sprites: sorting (groups too), making custom materials (both through shader code & graphs), atlasing, editing, masking, tiling.
Physics: update processing, RigidBodies, Colliders - both triggers and collisions, materials, force & torque.
Lighting (Universal Render Pipeline): light sources, blending, shadows, custom shaders.
Audio
Audio Sources: spatializing, effects, queuing, looping.
Mixers: used for splitting audio channels in categories (often Music/SFX/Voice).
Filters & Effects
Animation
Unity's built-in editor: lerping properties (fades, movement, coloring), sprites, messaging.
Animator: clips, state machines, properties (triggers, bools, floats).
Rigging: Unity's built-in bone system, SpinePro, Live2D.
Asset Management
Importing: I'm experienced with the importing settings of all the assets mentioned above (such as images & audio). Import settings affect how the assets are bundled, compressed and rendered. For example, proper usage of those settings allowed me to reduce build file sizes by 5x, with negligible visual/audio difference.
Asset bundles: setup, creating, loading (both sync & async).
Addressables: creating, loading (both sync & async), groups, building, validating.
Shaders & materials
Shaders are very useful for generating custom textures/effects at runtime. In Unity, they are managed by the materials system.
Coding shaders in Unity's HLSL: Example: I can replicate any of the shaders on ShaderToy, they are not written in HLSL but I know how to convert them. I can also code my own effects from scratch.
Creating shaders using URP's Shader Graph: although more limited, Shader Graph offers a more intuitive interface for making shaders. Shader Graph also provides real-time feedback, which speeds up the process of trying new effects/bug-fixing.
Tooling
Coding custom inspectors/property drawers: These facilitate editing properties/variables, they are very useful when there are non-programmers working in the Unity Editor.
Coding scripts to automate tasks: some projects require frequently downloading files from external servers (such as: downloading translations from GoogleSheets, generating MTL through DeepL), these tasks can often be automated with a small amount of code, which saves the developers a lot of time (and sanity).
Coding scripts to validate assets: on many instances, it's worthwhile writing scripts that verify your project files, searching for inconsistencies/mistakes (such as: missing data, invalid data - e.g.: combat NPC with negative attack damage).
3rd-party packages
Popular packages among Unity Developers, due to their usefulness and reliability.
DOTween: very useful for creating simple animations/animation sequences through code, which is often more productive than using Unity's Animation Editor. I use DOTween extensively on my projects.
Odin Inspector: it's more powerful than Unity's built-in Object inspector. This package also speeds up the process of creating custom inspectors/property drawers.
YarnSpinner: although I have made a custom dialogue system (VN style) in the past, nowadays I prefer using YarnSpinner as it's simpler and easier for non-programmers to write dialogue in.