Currently work in progress, check back later
- Renderer
- BSP
- Face
- Texture
- Lightmap
- Weird math lightmap in the case of older compiled HL maps
- Light styles (unplanned)
- Transparency
- Alpha test ("rendermode" = 4)
- Beter alpha test
- "rendermode"
- general entity brush transparency
- very correct transparency for according rendermode, aka everything else beside 4 or 0
- "renderamt"
- Named entities. Some entities aren't properly displaced
- Samey shader as the game
-
"rendermode"(duplicated) - Water and futurely moving sprites
- MDL
- Face
- Texture
- Model view projection
- Bone based vertex transformation
- Shading
- Skybox
- SPRites
- Texture Filtering
- Linear. Comes with the graphic API. Looks bad.
- Bilinear. Heh?
- Nearest neighbor with AA. Looks pretty good.
- Fast cubic.
- Hotswap between texture filtering. This needs some egui integration, soon
- Optimization
- Lightmap atlas
- Batch rendering based on texture
- Array of texture
- Transparency sorting. Order independent transparency. Need to get WBOIT at the very least.
- Implemented WBOIT
- Visibility. At the moment it renders everything. Or does it? It does render everything when there is some PVS tricks map like kz_hb_hopez or arte_drift.
- Mipmapping
- Z Pre Pass to eliminate overdraw for complicated maps like surf_cyberwave
- "FBO" rendering. There is a render surface and a swapchain surface.
- Post Processing (for fun)
- Bloom
- HDR
-
AnisotropicKuwahara Filtering - Some random other shader effects just to prove that it is easy to add.
- MSAA. Doesn't seem like a lot of work but not the priority.
- BSP
- Navigation
- Noclip movement
- Pitch and Yaw
- GoldSrc movement (unplanned)
- Mouse view. Similar to bspguy
- Demo Player
- Demo. Easy to do because this is the same code I have in other two projects
- Ghost. Same thing. Very easy to implement
- Demo player UI. This needs to be compatible in both native and web. egui is the best bet. This needs some refactor to separate the "app" logic so that it is platform agnostic.
- Demo Renderer
- Framebuffer
- Remux
- Gstream or ffmpeg built-in. Gstream if everything contained but ffmpeg external binary seems nicer to work with.
- BSP viewer. It is implicitly one.
- Demo checker. Seems like a cool addition. If I add the normal UI on top, should be easy to have demo checker UI similar to demo.unique-kz.net. That UI should be for scrubbing through the demo?
- Integration
- Native
- Vulkan. This is the definitive backend
- OpenGL. This is the backup backend to test with WebGL2. So far, all of the weird kinks are ironed out
- Config files. Somehow have a config files so that resource provider is correct. Like how bspguy does
- Web
- WebGL2. Clear color is different than native OpenGL for some reasons.
- Minimal web example. This uses simple HTML script block. Basically no javascript or node project to help people bootstrap this
- Less minimal web example. A nodejs module example because most people don't roll pure html.
- REST API server. There is one now but I guess it is too minimal. It works great though. It uses the game folder so that is very standard
- Final version of gchimp ResMake. To help the server distribute maps faster, gchimp ResMake zip option pre-processess all the files so that the server only needs to distribute the archive instead of searchign for files in the game install.
- BSP Loads:
- BSP self
- BSP another
- MDL
- SPR
- User interface.
egui
probably works- usable interface
- seek bar for demo
- demo checker ui?
- Native
- Sound
- On screen text
- Chat message
- Timer? Health? Armor?
- TeTextMessage?