Our team had strong JavaScript backgrounds, so React Native seemed practical for our mobile RTS. We assumed UI expertise would translate directly to game development efficiency.
Animation Performance Breakdown
JavaScript bridge communication introduced 16-32ms delays for rapid state updates. Our unit animations required 60fps consistency with 200+ entities on screen. The JavaScript-to-native bridge became a bottleneck we could not eliminate. Games demanding real-time precision need direct hardware access that JavaScript frameworks fundamentally cannot provide.
Memory Constraints Ignored
React Native's memory overhead consumed 180-220MB before our game logic even loaded. Budget Android devices with 2GB RAM crashed during complex battles. Native development in Kotlin or Swift would have given us 90-130MB baseline memory usage, leaving headroom for actual game content.
Where JavaScript Works
Turn-based games, visual novels, and puzzle games run acceptably in React Native. Our RTS needed pathfinding calculations, collision detection, and simultaneous animation updates. These requirements demanded native code. We eventually rewrote critical systems in C++ through native modules, negating the original simplicity advantage we sought from JavaScript.