HP Curiocity: Building Lightweight Games for Low-End Devices
Commercial project for Hewlett Packard, built at Channel Assist Inc. (2023–2024).
In short: How Eduardo Martinelli optimized HP Curiocity, a Unity city builder for Hewlett Packard: 47% less RAM, +30 FPS, 59% smaller build, 82% faster loading. Built by Eduardo Martinelli, a Unity systems & performance engineer in Vancouver, Canada.
HP Curiocity is a performance-driven revitalization of a legacy codebase, developed in partnership with Hewlett Packard. The project focused on re-architecting the game into a centralized, data-oriented system to drastically improve resource efficiency and cross-platform scalability.
Key technical achievements include:
- Data-Oriented Rearchitecting: Transitioned the legacy system to a centralized data-oriented approach, leveraging memory locality and temporality. This structural overhaul resulted in a 47% reduction in RAM usage and a 30 FPS increase in baseline performance.
- Extreme Build Optimization: Implemented advanced culling, object pooling, and procedural generation techniques. These optimizations achieved a 59% reduction in total build size, significantly lowering the deployment barrier for web and mobile users.
- Cross-Platform Profiling: Conducted extensive benchmarking across WebGL, Android, and React Native. By identifying and resolving platform-specific bottlenecks, I achieved an 82% reduction in loading times, ensuring near-instant access across all supported devices.
- Ultralightweight AI System: Replaced inefficient legacy pathfinding with a custom-built urban-environment AI. This system provides responsive agent behavior with minimal CPU overhead, contributing to the overall fluidity of the simulation.
The project demonstrates the impact of strategic technical intervention, transforming a resource-heavy legacy application into a highly optimized, production-ready experience for HP stakeholders.
Related articles
- CPU Caches And Memory Access: We'll explore why pointer dereferencing and pointer chasing can slow your code down, how CPU caches and RAM latency affect execution, and why memory layout is so important.
- CPU Cache Locality: We'll discuss how cache lines, spatial and temporal locality, and bulk data processing can improve CPU performance, and why organizing data around how it is accessed is fundamental to cache-friendly and data-oriented programming.
