JJobsMoi
Roblox

Design a Multi-Resource Resource Loader

System Design

Problem

Problem Statement

Design a multi-resource resource loader for a game engine or client runtime. The loader should support multiple resource types such as textures, meshes, audio clips, scripts, animation data, and configuration files. Callers should be able to request resources by ID or path, avoid duplicate loads, handle dependencies, and release memory when resources are no longer needed.

This prompt is often more local-memory and engine-system focused than a traditional distributed-system interview. You are designing an in-process subsystem with concurrency, caching, scheduling, and lifecycle management.

Common variants of this prompt include:

  • Design a resource loader that supports multiple resource types
  • Design an asset loader for a game client
  • Design a local memory resource manager
  • Design an async loader with dependencies and cache eviction

This walkthrough follows the System Design interview framework and adapts it to a local system design interview.

Do not start with load balancers, databases, and Kafka. For this prompt, the interesting architecture is inside one client or engine process: APIs, in-memory state, worker queues, dependency resolution, cache policy, and thread safety.

Self-assessment rubric

0/19

Scope & Requirements

Data Model & API

Core Architecture

Deep Dives & Trade-offs

Communication

Solution

Loading canvas…

Sign in to get AI feedback on your answer. Your work is saved while you do.

Sign in to evaluate