Kingpin: Life of Crime Client Engine

DirectX 11 Test   Sunday 11th September 2016 - 13:51:13
 
Engine has had a major upgrade to DirectX 11. The minimum capabilities level has been set at 10, which means DirectX 10 compliant hardware is required. This means minimum texture dimensions, instancing, etc are guaranteed to exist so the code can be optimised without having to code different paths for different hardware.

Screenshots show SR1 map played via COOP mod. Lighting is rendered using style 0 (static) lightmaps packed into a single texture. Simple packing was used for testing but Kingpin texture scaling storage in the texture info means that lightmaps can have dimensions greater than the expected maximum of 16x16, so I will add my BSP lightmap packer later.

Entities are rendered at 100% brightness as no other lights are being rendered yet.

Frustum culling is not active so everything in the current leaf PVS is being rendered.

Lightmap Render Test Screenshot
Lightmap Render Test
Lightmap Render Test Screenshot
Lightmap Render Test

Engine update   23rd July 2013
 
No new screenshots this time either but a bit of work has been done since the last post.

Crash fixes - It no longer crashes after playing a few maps.
Mod handling - It now correctly handles mod changes and downloads under mod directories same as KP and each mod can have a separate config. This also means it can read directly from the KP folder structure.

Downloader - It can download ANY file on the server, including custom skies without needing the hidden texture workaround as long as there is a configstring for it, and it also shows a nice status screen showing what its doing while connecting with a progress bar as well. No more staring at the loading picture until it times out.

Command line launch options are almost finished so you can connect directly via gamespy or your favourite game browser.

I put in a couple of test shaders so now it can render in black and white, sepia, negative, and normal if you really want it.

Next tasks are to write a sound engine, finish up the GUI for options, key programming etc, then continue with the major coding mentioned in the last post

Engine update   8th April 2013
 
No new screenshots this time as the engine is currently getting a hefty overhaul with many new features to be added as well as optimising some of the existing code.

New features include:

New hybrid primary renderer - This will use the existing lightmaps for some rendering, but also use the deferred renderer for some of the real-time lighting and shadows. This solves the problem of emissive skies and other emissive surfaces which resulted in some maps being really dark.

New forward renderer - This will handle the transparent textures (glass, water, etc) that cannot be rendered in a deferred renderer.

Add specular maps - This will determine how 'shiny' a surface is. For this version, will probably just use the surface parameters as it takes a lot of time to generate specular textures. This feels like a good compromise between quality and effort.

New shadowmapping using one of the Variance algorithms.

New shaders for the new rendering functions.

Add some missing items such as light flares, temporary lights for gun firing and explosions, and some of the particle/gib systems.

This is going to take a bit of time to do so don't expect any new screenshots for a few weeks at least...

NPC rendering test   7th March 2013
 
Testing new model rendering queue system with POWER mod to have some NPCs to render. Bit of a pain this bit as they are handled slightly differently from the prop models and if a skin is not found in the actors directory it defaults to the thug or bitch folder, depending on the character.

New dedicated Kingpin HUD is almost finished as well. Just need to find a mod that shows self and enemy talking heads, and the hired icons. POWER does not appear to do this :(

Here are some new screenshots showing HUD and NPCs. Entities are shown at 2x brightness for clarity as I still need to rewrite the model shader to use the nearest juniors (or lights, whatever looks better) for illumination. Packet data has this info so its small work to add it.

NPC rendering test screen
NPC rendering test
NPC rendering test screen
NPC rendering test

First playtest   22nd February 2013
 
Play testing screen
Play testing on live server
Playing KIT mod with Zod on Saturday morning on my Kingpin client. And it only crashed once in about 4 hours....

Shadows were switched off for this test, but all models were rendered and all entity-based lighting was active. This means there were no emissive surfaces (area lights) active so some areas of the map were dark.

Player is still stuck in 3rd person view as the view state to determine 1st or 3rd person view has not yet been found.

Model rendering test   20th February 2013
 
Here are a couple of screenshots showing progress so far.

What you cannot see is all of the major coding changes to manage all of the resources and some new shaders. Its coming along nicely I think.

Player models dont have the correct textures applied yet as I need to put in some code to track any changes, such as when you join a mod and it forces team skins etc so its just showing a default texture I use to highlight problems.

Thanks to Shock and VitaChick for posing for screenshots.

Model rendering test screen
Model rendering test
Model rendering test screen
Model rendering test

Server connection test   12th February 2013
 
After languishing on my hard drive for a while I have returned to coding my engine. Much work has went on under the hood and many hours were spent extracting the Kingpin CRC code that was significantly changed from Quake 2 - phew - it was a lot of work, but I managed it.

I could play on a server if I was rendering the models, but the model rendering code is currently disabled as there are a couple of bugs needing fixed.

Server connect test screen
Server connect & rendering test
Server connect test screen
Server connect & rendering test
Server connect test screen
Server connect & rendering test
Server connect test screen
Server connect & rendering test

Server connection test   12th February 2010
 
After much dissassember action with a lot more to go by the looks of it, I have made some decent progress. Here are some screenshots showing the renderer connecting to a kingpin server. Shadows are off.
All MD2 and MDX entities are rendered correctly. Player entities are getting rendered with whatever skin is stored in the MDX file. I'll need to override this so the actual player skins get used. New code for this is all in place, its my model renderer that needs updated. Map models (bmodels) are not getting rendered as I dont have a path to call the map renderer from the entity processing yet. Temporary entities have been updated as far as I can gather with a first pass through the disassembled code but do not get rendered yet. HUD display is being mapped to my internal core HUD so it doesnt look correct. I'll need to do a KP specific routine that calculates using the virtual coordinates that Kingpin uses.

The screenshots were taken while speccing one of the two player characters. All spectator modes work OK, but there is no movement without being attached to an active player.

It can also download maps and the rest using one of the download methods. Kingpin has the old Quake 2 slow system but it also has a push download system that downloads much faster but I have not been able to fully work this one out yet from the disassembly - its low priority so it can wait. I tried to connect to a couple of internet servers during the week but the send rate from the engine is too fast. It looks like someone detected my attempts and has banned my IP from all of the KP4Ever servers. Monkey mod was detecting my engine as a bot. The first major goal has been reached early though as I can join a game and spec

In short, still a bit of work to do...
Model rendering test screen
Server connect & model rendering test
Model rendering test screen
Server connect & model rendering test

<< < 1 > >>