ENGINE→640×360 FRAME→SCALE→DISPLAY00UNIVERSAL BASELINE
Your engine.
N96 rules.
N96 is engine-agnostic. Start with the same visual and timing constraints, then use the native controls your engine already provides.
Setting names can change between engine versions. Treat these as baseline recipes and verify the final rendered result against the N96 standard.
01640 × 360 internal framebuffer, scaled to output
0216:9 with letterboxing when needed
03Nearest or bilinear upscale; no temporal or AI upscaling
0460 FPS minimum, no artificial ceiling, frame-independent gameplay
0564² textures standard; ~1K triangles for major characters
0675 m normal visibility, fog from 35–50 m, simple lights and materials
01ENGINE STARTING POINTS
Godot 4
- Viewport base 640 × 360; stretch aspect keep.
- Nearest or Linear texture filter; Compatibility or Mobile renderer.
- Simple materials, fog 35–75 m, far plane 75, physics ticks 60+.
Back to baseline ↑Unity 6 / URP
- Render to a fixed 640 × 360 Render Texture and letterbox output.
- Point or Bilinear filtering; use URP, not HDRP.
- Unlit/Lambert materials; disable TAA, HDR, SSAO, SSR, bloom and soft shadows.
Back to baseline ↑Unreal Engine 5
- Verify a fixed 640 × 360 internal buffer; do not treat Screen Percentage as universal.
- Use spatial nearest/bilinear upscale; disable TSR, Lumen, Nanite and ray tracing.
- Unlit/custom simple materials; fog 3,500–7,500 uu; keep 60+ FPS.
Back to baseline ↑GameMaker
- Room camera/view and application surface at 640 × 360.
- Keep 16:9 scaling; nearest or bilinear texture interpolation.
- Game speed 60 baseline; keep Draw separate from delta-time gameplay.
Back to baseline ↑Construct 3
- Project viewport 640 × 360; Letterbox integer scale.
- Nearest or Linear sampling; pixel rounding is optional.
- V-synced framerate mode; avoid anisotropic filtering and heavy effects.
Back to baseline ↑GDevelop
- Game resolution 640 × 360; preserve 16:9 without changing logical detail.
- Scale mode nearest or linear; antialiasing none baseline.
- VSync on, 60+ target, TimeDelta-driven behavior.
Back to baseline ↑Phaser 3
- Game config width 640, height 360; Scale FIT and CENTER_BOTH.
- pixelArt true and antialias false for nearest; linear remains allowed.
- Use update delta; ideal for 2D or pseudo-3D N96 projects.
Back to baseline ↑raylib
- LoadRenderTexture(640, 360) for the internal frame.
- DrawTexturePro with 16:9 letterboxing; Point or Bilinear filter.
- SetTargetFPS(60) for baseline, then keep timing independent of render.
Back to baseline ↑The engine does not make a game N96.
The choices do.