Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
freem
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Openai/69676758-d944-8003-a3d4-835e33b4e372
(section)
Add languages
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=== Assistant: Good β this is where many designs get vague, and where disciplined engines differ from hobby ones. === Good β this is where many designs get vague, and where disciplined engines differ from hobby ones. βSpaceβ constraints mean memory footprint and bandwidth, not disk size. You handle them with the same budgeting mindset as time. ==== Do this early, even if approximate. ==== Example PC targets: * Minimum: - System RAM usable by game: 6β8 GB - VRAM usable by game: 3β4 GB * Recommended: - RAM: 12β16 GB - VRAM: 6β8 GB You never assume you own all memory. OS + drivers take a fixed cut. ==== ### ==== Typical buckets: * World data (level geometry, navmesh) * Gameplay state (entities, components) * AI data * Physics data * Streaming buffers * Audio buffers * Scratch / transient allocations Example (8 GB target): | | | | --- | --- | | | | | | | | | | | | | | | | | | | | | | ===== Buckets must be explicit: ===== | | | | --- | --- | | | | | | | | | | | | | | | | | | | | | | If you donβt reserve headroom, you will stutter or crash. ==== Now mechanics get space budgets, not just time budgets. ==== ===== You define: ===== * Bytes per entity * Maximum active entities Example: * NPC state: 2 KB * Animation state: 8 KB * AI blackboard: 4 KB β 14 KB per NPC At 1,000 NPCs: β ~14 MB RAM (acceptable) ===== Define per-asset limits: ===== * Character texture set: - Albedo 2k - Normal 2k - ORM 2k β ~48 MB uncompressed, ~12β16 MB compressed * Environment prop: - β€ 10 MB VRAM * Hero character: - β€ 64 MB VRAM Write these limits into the design. ==== Streaming trades space for bandwidth + complexity. ==== Design rules: * Maximum streamed-in assets at once * Maximum streaming IO per second * Maximum latency tolerance Example: * World tiles: β€ 256 MB each * Max 3 tiles resident * Streaming buffer: 1 GB RAM * IO budget: β€ 100 MB/s sustained ==== Memory size is useless without bandwidth. ==== You must budget: * CPU cache pressure * RAM β GPU transfers * VRAM read/write per frame Examples: * Avoid per-frame full-buffer uploads * Prefer persistent mapped buffers * Cap particle buffer rewrites On paper: : ==== You should not attempt to: ==== * Predict cache line utilization * Predict exact compression ratios * Predict residency behavior Those are profiling-stage concerns. ==== Bad: ==== : Good: : Bad: : Good: : ==== Space constraints are budgets, caps, and per-unit costs. ==== If every mechanic has: * a per-unit memory cost * a hard cap * a scaling rule Then the game is designable, testable, and shippable. If you want, I can help you turn one of your mechanics into a concrete time + space budget as an example.
Summary:
Please note that all contributions to freem are considered to be released under the Creative Commons Attribution-ShareAlike 4.0 (see
Freem:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)