nmdist-log

Progress report: Week of 2024-11-10

This week I started using the new text renderer in more places. I’ve also spent time cleaning parts of the code in preparation for the big entity refactor. Some highlights:

The main menu now has a primitive layout that responds to menu resizing. The main menu items from Half-Life, this time slightly better laid out.

The main menu items now glow on mouse hover. Additionally, selecting “New game” will load the startup map, and selecting “Quit” exits the game. The other menu items haven’t been implemented yet.

There’s now an FPS counter in the top left corner. The level c1a0 with an FPS counter.

When I ripped out imgui, there was no way to access some of the debug tools/views. ‘T’ cycles through the spawn points for the current map. ‘G’ cycles through the different draw modes (Texture, Lighting, Lit Textures). The level c1a0 with the lighting only draw mode enabled.

Another consequence of ripping out imgui is losing the ability to inspect the properties of entities. Now when you click entities in cursor mode, an outline is rendered around the entity. The next step is to display the entity’s properties. You’ll also notice some more debug text in this screenshot, showing the map name, the player’s position, and the player’s direction. An outline around a chair entity on c1a0.

EDIT: A late night addition to document. I now display the raw entity data when an entity is selected. Debug information for an entity on c1a0e

There were some other changes that don’t have easy screenshots. I removed tank controls, which mainly existed to make the game navigable when played over RDP. This is because direct mouse events aren’t supported over RDP, so mouse-look doesn’t work. But at this stage, it just got in the way as it took too many keys. Additionally, I added a fullscreen toggle via ALT+TAB.