this one is going to be quite a boring one - mostly text 🤔
there were several major bugs found during and after testing
one thing is sure: the fight against os problems and gpu driver shenanigans will never end 🤔
- one of the major new things I added to the engine is to make it run on two thread: one for update and one for rendering
but the game still stutters on some pretty powerful hardware - in the end no matter what you do this cannot be perfect
- because the window is using the render thread I attempted to use the windows function GetKeyboardState to read keyboard input
this randomly fails on some machines 🤔
there is fallback to use the regular keyboard input when it fails - so far nobody noticed a difference 🤔
- hiding the cursor is also hard - I had to use both WM_SETCURSOR and ShowCursor 🤔
there were several bugs that were caused by me and my poor coding though:
- you could fall through the floor by crouching in the wrong place
this was because I didn't use velocity to move the player when it gets into a crouch position
and it's important to move the position otherwise you hit your head in the wall during a quick slide
- not all guns were saved - I only saved the first 16 of the possible 32 slots - having defines for it didn't help
- grabbing onto ladders was broken when you looked up or down:
I didn't cancel out the y axis and normalise the vectorused for checking
if you are facing the ladder
- I simply forgot to implement reaction time changes for higher difficulty making things too easy
- there were some race condition shenanigans with changing music
music runs yet on other thread and even minimal race conditions cause trouble
the good thing about multi threaded coding is that it's difficult to debug and causes exotic bugs all over the place
there were a few things that went well though
- now that I discovered dxt1 textures I use them everywhere
the lightmaps now use 4096x4096 resolution and still just use 16mb ram
(1 big lightmap for render (4096) and 1 smaller one (1024) for software lookup 12mb + 4mb)
- the menu navigation with gamepad works well - at least there were no complaints
the whole menu had to be rewritten - turns out an immediate gui doesn't do well with keyboard navigation
and turns out neither with gamepad one
- there were no major complaints about driving the forklift - but that may be because many people dismissed it as decoration 🤔
overall it's nice that so many bugs got fixed long before release time
but I was surprised by how many were there 🤔