engine written in odin using opengl, glfw, ufbx, imgui, tracy
name is lait + moteur (milk + engine) -> laiteur (like later)
- game ui
- text
- port the text rendering code
- batched rendering
- graphics
- transparency
- OIT ?
- graphic effects
- ambient occlusion
- gbuffer for pos & normal
- works without msaa
- works with msaa (outputs the same image in all buffers)
- ssao
- gbuffer for pos & normal
- shadows
- bloom
- subsurface scattering
- ambient occlusion
- special stuff
- current player-char outline
- water shader
- leaves / bushes / vegetation
- vertex color material blending
- transparency
- core
- custom asset formats
- texture
- mesh
- spir-v shaders
- batched / instanced rendering
- particle system
- proper asset streaming / loading
- serialization
- different hdri for reflections and bg
- make scene save in save_sys.odin
- write to file
- load from file
- redo with entity_templates in mind
- make parent child relations
- add sound using raylib audio
- custom asset formats
- editor
- get gizmos working again
- get them rendering properly
- get undo & redo working again
- get gizmos working again
- upkeep & organisation
- hot-reloading
- factor out code into packages ???
- assetm
- data ?
- util
- figure out how to exclude external/ from telescope findings
- get laiteur to compile on linux
- optimization
- pass data using context or as proc args to avoid cache misses
- make game_a_star_pathfind() use temp_allocator
- find all allocations and check if context.temp_allocator could be used instead
- bindless textures ones i have vulkan renderer
- game_update takes way too long, use tracy to see
- make debug_draw_path/curve() also be abled to use gl.LINE_STRIP
- text
-
booted up blank screen and infinite loop or some on laptop [23.12.24|00:50]
-
after sleep deprivation
- laptop no longer 160-220 fps now 15-30 fps, PS: dafuck did i do ???
- added text_draw_string() which is unbatched
- add batched text draw call proc
- screen output buffer wrong size on startup -> prob. gl.Viewport()
- laptop no longer 160-220 fps now 15-30 fps, PS: dafuck did i do ???
-
-sanitize:address buggy on laptop, f.e. in input.odin:input_key_callback() C:/Workspace/odin/03_games/xcom/src/input.odin(239:20) Index 4294967296 is out of range 0..<350 ================================================================= ==15112==ERROR: AddressSanitizer: array-bounds-exceeded on unknown address 0x7ffb95deb699 (pc 0x7ffb95de b699 bp 0x125b1f237780 sp 0x0054df4fc320 T0) ==15112==*** WARNING: Failed to initialize DbgHelp! *** ==15112==*** Most likely this means that the app is already *** ==15112==*** using DbgHelp, possibly with incompatible flags. *** ==15112==*** Due to technical reasons, symbolization might crash *** ==15112==*** or produce wrong results. *** #0 0x7ffb95deb698 in RaiseException+0x68 (C:\WINDOWS\System32\KERNELBASE.dll+0x18003b698) #1 0x7ff660fe2aca in runtime.windows_trap_array_bounds-662 C:#terminal_extensions\odin\base\runtime \procs_windows_amd64.odin:16 #2 0x7ff660fe1bda in runtime.bounds_trap C:#terminal_extensions\odin\base\runtime\error_checks.odin :6 #3 0x7ff660ff13ab in runtime.bounds_check_error.handle_error-0 C:#terminal_extensions\odin\base\run time\error_checks.odin:39 #4 0x7ff660fe2bea in runtime.bounds_check_error C:#terminal_extensions\odin\base\runtime\error_chec ks.odin:41 #5 0x7ff6610472df in core.input_key_callback C:\Workspace\odin\03_games\xcom\src\input.odin:239
#6 0x7ff661175da0 in ImGui_ImplGlfw_KeyCallback+0xa0 (C:\Workspace\odin\03_games\xcom\bin\game.exe+0 x1401c5da0) #7 0x7ff661156af5 in glfwGetWin32Window+0xc35 (C:\Workspace\odin\03_games\xcom\bin\game.exe+0x1401a6 af5) #8 0x7ffb9725ef5b in CallWindowProcW+0x60b (C:\WINDOWS\System32\USER32.dll+0x18000ef5b) #9 0x7ffb9725e9dd in CallWindowProcW+0x8d (C:\WINDOWS\System32\USER32.dll+0x18000e9dd) #10 0x7ffb5b75f1ef in glPushClientAttrib+0x1508f (C:\WINDOWS\SYSTEM32\opengl32.dll+0x18003f1ef)
#11 0x7ffb9725ef5b in CallWindowProcW+0x60b (C:\WINDOWS\System32\USER32.dll+0x18000ef5b) #12 0x7ffb9725e9dd in CallWindowProcW+0x8d (C:\WINDOWS\System32\USER32.dll+0x18000e9dd) #13 0x7ff661175989 in ImGui_UpdatePlatformWindows+0x1b59 (C:\Workspace\odin\03_games\xcom\bin\game.e xe+0x1401c5989) #14 0x7ffb9725ef5b in CallWindowProcW+0x60b (C:\WINDOWS\System32\USER32.dll+0x18000ef5b) #15 0x7ffb9725e683 in DispatchMessageW+0x4a3 (C:\WINDOWS\System32\USER32.dll+0x18000e683) #16 0x7ff661153c27 in glfwPollEventsWin32+0x77 (C:\Workspace\odin\03_games\xcom\bin\game.exe+0x1401a 3c27) #17 0x7ff66104b00b in core.main C:\Workspace\odin\03_games\xcom\src\main.odin:451 #18 0x7ff660fe376e in main C:#terminal_extensions\odin\base\runtime\entry_windows.odin:46 #19 0x7ff6612a6cd3 in __scrt_common_main_seh D:\a01_work\26\s\src\vctools\crt\vcstartup\src\startup \exe_common.inl:288 #20 0x7ffb96b07373 in BaseThreadInitThunk+0x13 (C:\WINDOWS\System32\KERNEL32.DLL+0x180017373)
#21 0x7ffb9875cc90 in RtlUserThreadStart+0x20 (C:\WINDOWS\SYSTEM32\ntdll.dll+0x18004cc90)AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: array-bounds-exceeded (C:\WINDOWS\System32\KERNELBASE.dll+0x18003b698) in Rai seException+0x68 ==15112==ABORTING
- variables: snake_case
- bools: has_XXX, is_XXX
- ...
- functions: snake_case
- structs: snake_case_t
- constants: SCREAM_CASE
- enums: Camel_Snake_Case.SCREAM_CASE (XXX_Type, XXX_Flag)