# Unity

Certified developer. Working with Unity since 2010.

**Technologies:** Unity

I started shipping with Unity in 2010. Certified Developer since 2016. I've shipped games, collaborated in large teams, done a handful of workshops and taught it on the University of Málaga's Master's in Videogames.

### [WISE Surveys](https://jfcampos.dev/projects/wise-surveys.md) (2013)

For this survey platform, I created my own UI system (this was before Unity had any tool for it), which gave authors fine-grained control over every field in a survey. Surveys were encoded as JSON, so teams could collaborate on authoring through a shared server-side datastore, run studies offline, and sync once they had a connection.

**I also created libraries** for right-to-left language display,
client-server communication and synchronisation, deferred asset loading,
multi-device support, audio recording, tracking and localisation.

The platform reached thousands of concurrent users in many studies across the world, which was a big scaling problem on its own (more about it in [Backend & infrastructure](https://jfcampos.dev/expertise/backend-infrastructure.md)). But it also required the platform and its games to run reliably on low-end devices and old computers. We had iOS, Android, Windows, Mac and WebGL builds. Anyone with enough Unity experience knows everything that's involved in maintaining all of them.

**I automated builds and publishing** — Fastlane for iOS distribution, and my
own pipelines for desktop and WebGL. Sentry handled error tracking, with Google
Analytics and Unity Analytics for usage.

### [Spirit Fencer Arena](https://jfcampos.dev/projects/spirit-fencer-arena.md) (2013)

This game was a long lesson in optimisation and asset handling.

**It had a full roster of 3D characters**, 50+ visual and sound effects, 2D
UI mixed with 3D scenes, very complex skill-tree logic, proper enemy AI, and
client-server real-time communication.

I built a complex behavioural enemy AI system where skills and capabilities would be matched to the player's level in every combat. The system used observers, conditions and triggers so each enemy would have its behaviour perfectly defined and consistent with its design.

**The game had cross-platform multiplayer**, back when Unity didn't have any
library for it. I built my own protocol over WebSockets with one server acting
as coordinator. It shipped with real-time battles, tournaments and leaderboards.
All custom-made by me.

### [HistoPad](https://jfcampos.dev/projects/histopad.md) (2013)

An AR app for visitors to museums and historic sites, built in Unity and C# against the constraints of 2013 tablet hardware — the reconstructions had to be detailed enough to be worth looking at and light enough to run all day on a device a museum could afford to buy a hundred of. More about the AR side in [VR, AR & spatial](https://jfcampos.dev/expertise/vr-ar-spatial.md).

### [Tu Casa Es La Mía](https://jfcampos.dev/projects/tu-casa-es-la-mia.md) (2016)

A game jam entry where I took the audio, driving Wwise from Unity so the sound
effects varied and the score added and dropped layers in response to game state.
The audio side is in [Audio & speech](https://jfcampos.dev/expertise/audio-speech.md).

### [Glue](https://jfcampos.dev/projects/glue.md) (2024)

We acquired Glue (a Finnish VR company) in 2024. They had a large Unity platform for VR collaboration. I supervised maintenance and support, keeping their VR components running, reviewing their asset pipelines and integrating their scenes into our WebGL platform.

## Where I've used it

- [Glue](https://jfcampos.dev/projects/glue.md) (2024)
- [Tu Casa Es La Mía](https://jfcampos.dev/projects/tu-casa-es-la-mia.md) (2016)
- [HistoPad](https://jfcampos.dev/projects/histopad.md) (2013)
- [Spirit Fencer Arena](https://jfcampos.dev/projects/spirit-fencer-arena.md) (2013)
- [WISE Surveys](https://jfcampos.dev/projects/wise-surveys.md) (2013)

---

Web page: <https://jfcampos.dev/expertise/unity>
