Well, it's hard to explain everything I want to say, so I decided I give it a try myself and set up a little proof of concept on how to do 'high fidelity' in AC v1.3 using the cube engine as intended. Get the download and extract it into your personal AC-folder. It contains a map called poc_container and all assets required.
Download: packages.zip (1.8 MB)
Note that this is only 1.8 MB! Not even close to your 30 MB and it has basically everything you wanted and appears to perform just the same.
Admittedly the container model skin is somewhat sanitized (using only the door face on either end), which helps a lot in optimization. But it's exactly those trade offs you have to find in order to keep things within reasonable file sizes. However and more importantly, my skins are properly optimized in terms of space usage, that is, no black areas and no doubling of the same parts, which allows me to keep the size down to 2046 x 2046, while maintaining almost the same effective resolution like your 4092 x 4092 version.
There are two skin variations missing (grey and light red), which would only add around 400 kB each to the package size.
Hints and findings:
My conclusion:
There is no use in 'baking' everything into one gigantic model. From a mapper's perspective it is always better to be able to work in the engine's native editor, so one can change around positions on the fly, make use of geometry (collision, occlusion, ...) and so on. From a performance perspective I see no benefit. To me it looks like you're assuming a lot of stuff, which simply does not work like that in cube's rendering pipeline (e.g. number of draw calls, amounts of vertices change when solids are added).
Finally, please don't get this wrong. I really don't want to stop your enthusiasm and I don't want to be the old smartass neither. After all you inspired me to do this POC and I'm actually thankful for that.
But, frankly you seem to lack quite some understanding and experience for what you are trying to achieve. For one and you said this yourself, you have no idea how the cube engine works, which is the core issue in my opinion. Secondly, the container textures have a lot of flaws, like overlapping, obvious mirror fill ups, wrong orientations, visible copy/paste-seems and poor colour and contrast adjustments. You really got to step up your Photoshop skills and be a lot more disciplined, when you are aiming for 4k quality.
Download: packages.zip (1.8 MB)
Note that this is only 1.8 MB! Not even close to your 30 MB and it has basically everything you wanted and appears to perform just the same.
Admittedly the container model skin is somewhat sanitized (using only the door face on either end), which helps a lot in optimization. But it's exactly those trade offs you have to find in order to keep things within reasonable file sizes. However and more importantly, my skins are properly optimized in terms of space usage, that is, no black areas and no doubling of the same parts, which allows me to keep the size down to 2046 x 2046, while maintaining almost the same effective resolution like your 4092 x 4092 version.
There are two skin variations missing (grey and light red), which would only add around 400 kB each to the package size.
Hints and findings:
- Bullets are being stopped for human players only. What you experienced is only happening with bots. Maybe a bug that should be fixed, but nothing to worry about too much. You can use clips (/newent clip) or clip-tags (/edittagclip) if an area can be blocked from ground to ceiling.
- Stencil shadows seem to be broken, or were implemented only to work for small models intentionally (key word: simplicity). I wouldn't enable those (see: md3.cfg > mdlshadowdist 0) for most models actually.
- Huge models should have vertex lighting mode enabled (see: md3.fg > mdlvertexlight 1). This way the model will be lit per vertex, rather than uniformly per the light value which is found on the cube where the model is put.
My conclusion:
There is no use in 'baking' everything into one gigantic model. From a mapper's perspective it is always better to be able to work in the engine's native editor, so one can change around positions on the fly, make use of geometry (collision, occlusion, ...) and so on. From a performance perspective I see no benefit. To me it looks like you're assuming a lot of stuff, which simply does not work like that in cube's rendering pipeline (e.g. number of draw calls, amounts of vertices change when solids are added).
Finally, please don't get this wrong. I really don't want to stop your enthusiasm and I don't want to be the old smartass neither. After all you inspired me to do this POC and I'm actually thankful for that.
But, frankly you seem to lack quite some understanding and experience for what you are trying to achieve. For one and you said this yourself, you have no idea how the cube engine works, which is the core issue in my opinion. Secondly, the container textures have a lot of flaws, like overlapping, obvious mirror fill ups, wrong orientations, visible copy/paste-seems and poor colour and contrast adjustments. You really got to step up your Photoshop skills and be a lot more disciplined, when you are aiming for 4k quality.