/* Project-wide configurable constants */ #define WRITE_DIR "power_play" /* Window title */ #if RtcIsEnabled # if DeveloperIsEnabled # define WINDOW_TITLE "Debug (Developer Build)" # else # define WINDOW_TITLE "Debug" # endif #else # if DeveloperIsEnabled # define WINDOW_TITLE "Power Play (Developer Build)" # else # define WINDOW_TITLE "Power Play" # endif #endif #define DEFAULT_CAMERA_WIDTH (16) #define DEFAULT_CAMERA_HEIGHT ((f64)DEFAULT_CAMERA_WIDTH / (16.0 / 9.0)) /* Rendered texture size + extra room for off-screen light falloff */ #define RENDER_WIDTH (640 + 250) #define RENDER_HEIGHT (360 + 250) #define PIXELS_PER_UNIT ((f64)640 / (f64)DEFAULT_CAMERA_WIDTH) /* How many ticks back in time should the user thread blend between? * = * * E.g: At 1.5, the user thread will render 75ms back in time if the sim runs at 50tps */ #define USER_INTERP_RATIO 1.2 #define USER_INTERP_ENABLED 1 /* 64^2 = 4096 bins */ #define SPACE_CELL_BINS_SQRT (64) #define SPACE_CELL_SIZE (1) #define SIM_TILES_PER_UNIT_SQRT (4) #define SIM_TILES_PER_CHUNK_SQRT (16) #define SIM_TICKS_PER_SECOND 50 //#define SIM_TIMESCALE 1 /* Like USER_INTERP_RATIO, but applies to snapshots received by the local sim from the * master sim (how far back in time should the client render the server's state) */ #define SIM_CLIENT_INTERP_RATIO 2.0 #define SIM_PHYSICS_SUBSTEPS 4 #define SIM_PHYSICS_ENABLE_WARM_STARTING 1 #define SIM_PHYSICS_ENABLE_RELAXATION 1 #define SIM_PHYSICS_ENABLE_TOI 1 #define SIM_PHYSICS_ENABLE_COLLISION 1 #define SIM_SPAWN_TESTENT 0 #define SIM_PLAYER_AIM 1 #if 0 # define SIM_MAX_LINEAR_VELOCITY 500 # define SIM_MAX_ANGULAR_VELOCITY (Tau * 20) #else # define SIM_MAX_LINEAR_VELOCITY F32Infinity # define SIM_MAX_ANGULAR_VELOCITY F32Infinity #endif #define COLLIDER_DEBUG 0 #define COLLIDER_DEBUG_DETAILED 1 #define COLLIDER_DEBUG_DETAILED_DRAW_MENKOWSKI 1 #define FLOOD_DEBUG 0 #define GPU_DEBUG 0 /* If virtual fibers are enabled, each fiber will get its own OS thread, * and fiber suspend/resume will be emulated using OS thread primitives. * This is slow but allows for easier debugging in tricky cases * since the debugger won't be confused by fiber context switching. */ #define VIRTUAL_FIBERS 0 /* If enabled, bitbuffs will insert/verify magic numbers & length for each read & write */ #define BITBUFF_DEBUG 0 #define BITBUFF_TEST RtcIsEnabled /* If enabled, things like network writes & memory allocations will be tracked in a global statistics struct */ #define GstatIsEnabled 1 #define PROF_THREAD_GROUP_FIBERS -(i64)Gibi(1) #define PROF_THREAD_GROUP_SCHEDULER -(i64)Mebi(3) #define PROF_THREAD_GROUP_WINDOW -(i64)Mebi(2) #define PROF_THREAD_GROUP_MAIN -(i64)Mebi(1) //////////////////////////////// //~ Settings /* TODO: Move these to user-configurable settings */ #define VSYNC 0 #define AUDIO_ENABLED 0 #define FPS_LIMIT 300