Metravo.pro logo MTRA

Editorial Exploration

The craft is in the constraints. We don't just build games; we architect player emotion.

Our process starts where most studios stop. We map code to catharsis, turning performance budgets into narrative beats and accessibility into the foundation of immersion. This is how we build.

View Portfolio →
0.016ms

The 'First Frame' protocol: our non-negotiable budget for the initial 16ms of a game's launch. Sets tone, performance, and trust in a single blink.

40%

The 'Negative Space' rule. Minimum screen real estate must remain empty. Prevents cognitive overload and makes the action breathe.

ONE

Our 'One-Button' challenge. Designing full narrative arcs with a single input. Forces clarity of context and reward.

core/physics/engine.ts // First Draft vs. Optimized
// BEFORE: Readable but heavy

function calculateSpring(a, b) {

  const k = 0.5;

  const delta = b - a;

  return k * delta; // Simplified spring model

}

// AFTER: Optimized for 60fps

const SPRING_PRESET = 0x1.4p-1; // Hex float for speed

const spring = (d) => SPRING_PRESET * d // 12 CPU cycles

Post-Mortem Insight

The optimized version sacrifices some readability for raw performance. It uses hexadecimal float literals, a technique favored in embedded systems, to avoid floating-point parsing overhead. This is the kind of trade-off our 'Frame-Time Ledger' forces us to document.

Technical trade-off diagram

Decision Lens: Performance vs. Accessibility

Criteria

  • API Latency < 50ms
  • 60fps on Mid-Tier Devices
  • WCAG AA Compliance
  • Input Remapping

What It Optimizes

When we optimize for pure performance (e.g., using GPU-based shaders for all UI), we secure a buttery-smooth frame rate. This is critical for fast-paced action games where player reaction is tied to visual clarity.

However, this approach can limit flexibility for users who need custom contrast or larger hit targets, as those often require CPU-side UI rendering.

What It Sacrifices

Our current hybrid model—a GPU pipeline for standard UI with a lightweight, accessible fallback layer—accepts a minor performance hit (average 1.2ms per frame) on older hardware. The trade-off is non-negotiable: we can't ship a game that excludes players based on motor or visual ability. The 'cost' is a frame buffer we budget for from day one.

Glossary: Our Terms

Physics as Narrative

The weight of a jump must tell you about the character. Heaviness implies burden; floatiness implies hope. Our physics systems are taggable for narrative state.

Cognitive Load

A hard metric we track. Measured via eye-tracking heatmaps during playtests. We aim to reduce non-essential UI elements by 15% per sprint.

Input Remapping

Not an afterthought. A core architecture layer. Our input system treats every action as a queryable string, making context-aware remapping a compile-time option.

Frame-Time Ledger

An internal dev-log. Every major commit is benchmarked. If a new visual effect costs more than 1ms of CPU, it requires a documented justification for the creative trade-off.

Procedural Audio

Our answer to tight audio budgets. Algorithms generate context-aware soundscapes (e.g., footsteps change on mud vs. stone), reducing asset size by ~70% while increasing immersion.

The 'Pause' Principle

A design ethos. Games should respect real-life interruptions. We build checkpoint systems that are non-intrusive but always reliable, acknowledging the player's context.

The Constraint Canvas

We don't fear limits; we seek them out. Our best work emerges from questions like "What if we only have one button?" or "How do we ship on three platforms with two engineers?" These aren't obstacles—they are the brief.

Method Note

Every project begins with a "Constraints Document." We list technical, temporal, and budgetary limits. We then run a "Constraint Stress Test"—can our core mechanic still deliver its core emotion within these boundaries? If yes, it's viable. If no, it's scrapped early, saving months of rework.

A metaphorical visual of constraints forging focus

Evidence From the Field

Case Study

Platform Parity: Touch vs. Mouse

A strategy game needed to feel native on iPad and PC. We built an "Input Abstraction Layer." The same code for "select unit" works for a tap, a mouse click, or a controller button. The real challenge was visual feedback: we used different animation curves for touch (faster, "snap") versus mouse (smoother, "precision").

Tech: Input Abstraction Layer, Varying Ease Functions
Case Study

Ethical Monetization Design

For a live-service title, we refused "predatory" currency conversion. Instead, we implemented a "Time-to-Value" guarantee. Any purchase must be directly tied to gameplay hours earned, and the store is hidden during high-stress gameplay moments. Player churn decreased by 18% after implementation.

Principle: Respect Player Time, Transparent Value

Pitfall: The Over-Engineered Engine

We once built a custom physics engine from scratch for a single project. It was architecturally pristine but consumed 40% of our dev time. Lesson: Use proven middleware (like Box2D) for core systems, and reserve custom code for your unique "special sauce." Our "Play-Block" library is the distillation of that lesson.

Ready to see the code?

Our technology stack makes this craft scalable.

Explore the tools and frameworks that power our pipeline—from our custom asset manager to our real-time multiplayer backbone.

Visit Technology Page