Unity Development

Gamedev, VR simulators, e−learning

I've been working as a Unity developer, creating advanced, interactive experiences using the Unity Engine since 2014. During this time, I was entrusted with organizing and leading the newly established VR department at Tomorrow, where I remained until 2019. Following my departure, I ventured into starting my own business.

The types of projects I specialize in encompass:

  • VR applications supporting medical therapy
  • VR/AR educational applications
  • Railway simulators (VR/desktop)
  • VR simulators for devices and processes
  • VR Occupational Health and Safety (OHS) simulators
  • VR Basic Life Support (BLS) simulators
  • Virtual walks
  • Mini-games.

Within each project, my focus is on implementing a user-engaging gamification system — structured around scoring, rankings, and achievements — transforming the learning process into an enjoyable experience.

My background comprises a decade of experience as a team leader in Unity development and over 20 years in the IT industry, encompassing web, flash, and e−learning.

Unity Physics Engine

Vehicles, character controllers, interactions with physical objects

Throughout my years of experience, I've crafted diverse physics systems utilizing the Unity Physics Engine. Specifically, I specialize in developing physical character and vehicle controllers, as well as devising unique interactions with objects in VR environments, among other areas.

I excel in tackling challenges that may have proven difficult for fellow Unity developers. Rigidbody dynamics, vector mathematics, and physics formulas are integral components of my daily work.

My passion extends beyond the realms of Newtonian physics, which forms the foundation of the Unity physics engine. I am deeply fascinated by astrophysics, orbital navigation, and relativistic concepts.

Procedural Terrain Generation

Real time terrain generation based on provided seed or geographical data

Gone are the days when games and applications were confined to limited spaces of just a few kilometers. Today, we possess innovative techniques that surpass conventional boundaries, giving rise to projects that continually present new and complex challenges. Presently, our capabilities extend far beyond merely simulating small-scale environments. We now have the capability to simulate extensive railway routes spanning tens of kilometers, traverse entire continents by truck, and even simulate entire planets, as evidenced by the latest Microsoft Flight Simulator and various space simulators.

My expertise in this field stems from my involvement in a commercial railway simulator tailored for train engineers, coupled with my creation of a procedural planet generation algorithm.

Shaders and Materials

Animated shaders, great visuals, materials optimized for VR and mobile

Drawing from my artistic background, shader programming and material creation stand as one of my cherished specializations. A well-crafted shader serves multiple purposes. Primarily, it elevates visual aesthetics, enabling the utilization of cost-effective special effects that might otherwise be unattainable. Moreover, it plays a pivotal role in project optimization by offloading computational responsibilities from the main thread to the GPU.

The integration of Shader Graph has not only provided Unity developers but also designers with a user-friendly and efficient platform for shader programming, a tool that I thoroughly enjoy utilizing. However, if required, my experience as a Unity developer also extends to using HLSL, including Compute Shaders responsible for tasks such as procedural terrain generation or neural network calculations.

I seamlessly collaborate with graphic design departments. My comprehension of workflow intricacies, principles governing PBR (Physically Based Rendering) materials, and a nuanced awareness of Unity's limitations positions me as a reliable source for achieving optimal final results. I stand as an excellent candidate for a Tech Lead role within an interdisciplinary team.

Unity Editor Tools

Enhancing Unity's capabilities

Throughout my career as a Unity developer, I've primarily focused on designing system architecture and crafting custom tools that significantly expanded the functionalities of the Unity engine.

These tools serve to expedite the creative process during project development and are often indispensable for project completion. They facilitate the clear segregation of data from the logical layer, enable the import of data from various external sources such as XML and JSON, and streamline project management, especially when confronted with evolving requirements specifications.

My repertoire includes diverse tools, including but not limited to: a system for creating real-world train infrastructure based on KML data, a gamification system complete with scoring and player logs, a sophisticated quest system driven by Excel spreadsheet data, an integrated dialog system with a user-friendly graphical interface, a neural network designed for hand pose detection, among various others.

Creating Assets

3d models and textures

In the past, my tool of choice for 3D modeling was 3D Studio Max. However, upon discovering Blender, I wholeheartedly dedicated myself to it. Blender, an open-source Swiss knife, became my go-to tool. While it may not be the ultimate solution for every task, much like me, it boasts an incredibly versatile application range.

Although my current role doesn't focus primarily on 3D modeling, my proficient 3D skills remain intact. This proficiency enables me to effectively communicate with graphic design teams, lead interdisciplinary teams, and troubleshoot minor issues independently without the need for escalation. Moreover, I possess an astute ability to quickly identify errors and mistakes, drawing from deep technical knowledge and years of experience. Whether it's identifying issues with topology, bit depth, flipped normals, or any missing elements, I can promptly pinpoint the source of the problem in most cases.

In situations requiring immediate action, I can serve as a backup 3D modeler as well.