Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Raap last won the day on August 5

Raap had the most liked content!

Community Reputation

581 Excellent


About Raap

  • Rank
  • Birthday 09/04/1988

Profile Information

  • Ingame Username
  • Gender
  • Location
    The Netherlands
  • Icon

Contact Methods

  • Steam

Recent Profile Visitors

8,734 profile views
  1. Thank you for reminding me to enable gameplay is pending mode for my stuff.
  2. I always updoot on Reddit, and I can plop down some Reddit gold for particularly shiny posts. But I have no social media accounts, so I cannot help there!
  3. There has not yet been a lot of graphical improvement to W3D itself, its mostly just gaining access to beter development tools as well as a growing expertise from the people using them. We very recently gained support for Max 2017, this LOD workflow is just one of many benefits of this. Edit: I made a very slight update to the guide to explain "Export Geometry" should be enabled on the Nullmesh object. I figured it'd go without saying since without this, you cannot enable "Null (LOD)", but now it should not cause any further doubts here. Geometry Options can never ben configured without the exporter set to, you know, export them. And here is a general note: Any object not animated or part of W3D rigging logic should have "Export Transform (Bone)" DISABLED. It is a good practice to apply to all project assets. All these extra bones have a (not measured) negative impact on performance since they exist when they do not need to.
  4. Here is a quick guide on how to properly add LOD to an asset for use in W3D, using the latest available tools. What you need for this guide: 3DS Max 2017 with W3D plugin. The latest version of W3D Viewer. A completed level art asset, for example a rock. In the viewport, enable statistics. (Right click on the [ + ] sign, go to xView and Enable Statistics) Step 1: Understanding How LOD Works Level of Detail (LOD) is a way to scale the detail based on the distance an object is from the player. It is an essential component in optimizing your game for players, and it should be employed frequently, on most art assets not considered part of the "main terrain mesh". For each LOD stage we require, we need a gradually lower detail art asset. Generally speaking we will need 3 versions of the art assets, but you can get away with just 2 for really small objects. Here is how this is supposed to look with 4 LOD stages: LOD 0: This is your main art asset, we will not be touching the art of this one past this point since this is the model players will see in close proximity. LOD 1: This is the next step, here we will tune the art asset with a first pass of ProOptimizer. This initial pass should see a big gain in terms of polygon count reduction while not visibly being too different. LOD 2: Here we continue the gradual quality reduction of the art asset, keep in mind that players should not be seeing these models up close, so you do get a small margin of error worth of breathing space here, since players will not spot the occasional texture seam. LOD 3: This is the null-LOD. This final stage must always exist as a safety-net. This stage does NOT use a clone of your art asset. Ensure you name your assets to something logical, I recommend adding a suffix to each such as "_00" or "_01" to refer to what stage the art object is supposed to be. Step 2: Creating LOD Stages Open your art asset in 3DS Max 2017. Note: If your art asset is made up out of several objects, you should group them before proceeding. Select your art asset, now clone it. This new clone is going to be our LOD 1 art asset. On the Modify tab of your newly cloned art asset, look for and apply the ProOptimizer modifier. This is the modifier we will use to generate LOD assets. For the first optimization pass, we want a result that reduces the polygon count by about 50%, the exact result will vary since it is up to you to determine if the LOD 1 stage looks like not too significant a departure from the original model. In general the main things you should be looking for are whether the outline of your LOD 1 art asset is still looking close to the original (LOD 0) art asset, and making sure no significant texture seams show up. Note: Please be aware that if your art asset uses vertex painting, you will be forced to undo that in order to prevent either really bad results, or barely any results. You will then have to redo the vertex painting on collapsed LOD art stages (never apply vertex paint on an object with an active ProOptimizer modifier in the stack). To get to 50% reduction, you will need to play with these settings (Click to enlarge): As you can see, the visible effect on the model and texture is very minimal. The outcome varies per art asset however, and if you get errors in certain spots, I recommend playing with both the percentage target, as well as the "Tolerance" value. Tip: To assist in comparing before/after, use the display toggle next to ProOptimizer (the eye icon), this will help you spot the differences without having to alter the ProOptimiser values back-and-forth. Next, clone the newly optimized LOD 1 art asset, this will become our LOD 2 asset. Pay attention that you continue to name these logically. Take another look at the ProOptimiser values, for this next asset we will want to hang around 20% budget. Repeat the process as described above and feel free to tweak the values to your liking. For LOD 3, the null-LOD, will will handle this in the next part. Note: If you spotted some smoothing issues in your asset post-optimization, you can collapse the modifier stack (so that the only thing you see on it is Editable Poly), and then apply a traditional Smooth modifier onto it, this will correct a lot of edge weirdness that your model may or may not be having. Step 3: Rigging the LOD Asset - 3DS Max Once your 'artistic' side has been completed, we need to ensure we rig the the asset in a way that W3D can understand what it is. Worry not, as this process is fairly straight forward. Select all your art assets, from all LOD stages. Go to the W3D properties located in the Utilities tab, and uncheck "Export Transform (Bone)". In regards to other W3D properties, please keep this in mind: LOD assets in W3D inherent their collision information from the LOD 0 stage. This means your LOD 0 asset should have the proper collisions applied. It is possible to use a separate collision mesh as well, as long as this is hooked into the LOD 0 stage down below. Other settings such as VAlpha should be applied to all art assets of all stages. For each LOD stage, we will need to create a special bone. Create a small 1m box, and center it in the scene. We will call this box Origin.00. With Origin.00 selected, go to the W3D properties located in the Utilities tab, and uncheck "Export Geometry". Now clone this box 4 times so that you have 5 boxes in total, for LOD stages 0 through 3, and one more for the final null-LOD. Select the 5th box and rename it to Nullmesh, then go to the W3D properties, disable "Export Transform (Bone)" and re-enable "Export Geometry", and below Geometry Options check "Null (LOD)". With all the pieces created in the scene, we will now link them up. Select your art asset, and using the "Select and Link" tool located in the top menu next to the undo and redo buttons, link the art assets to their respective Origin bones. You can most easily do this by selecting them through the "Select by Name" dialog, also located near "Select and Link" at the top menu. So if done correctly, the LOD 0 art will be linked to Origin.00, and the Nullmesh should be linked to Origin.03. If in doubt, your hierarchy tree should look like this: Now be sure you followed these steps correctly, always double-check. Save your scene and export it as Hierarchial Model with both Smooth Vertex and Optimize Collisions enabled. Step 4: Rigging the LOD Asset - W3D Viewer Open your freshly exported W3D file in the latest version of W3D Viewer. Maximize the W3D Viewer window and select your art asset located under H-LOD. This will be the LOD 0 art asset you are looking at. Note: In order to tell the game when to change to a lower LOD stage, we will need to set these stages up. This bit is really dependent on your own human optics. You need to determine yourself at what range, visually, should your art asset be making a LOD transition. The general rule of thumb here is, bigger objects should transition more slowly over long distances, while smaller objects should transition much more quickly. You do not want big rocks to transition into low detail or nullmesh at just 100m, and similarly you do not need a shrubbery to render past 50m. Its up to each individual project to set their own standards here. But for example purposes, we will set each stage transition 50m apart. With the model visible in the viewport, hold down your right mouse button and drag away from you, you will want to push the camera up to about 50m distance, as seen in the top left corner of the viewport. Then you need to press the [ key once. If you observed carefully, you will have spotted the model switching to LOD 1. Next up we need to tell W3D Viewer to 'save this location', we do this by hitting the Space bar once. Drag your mouse another 50m to 100m. Again press the [ key once to switch to the LOD 2 stage, and again hit the Space bar once to save this information. Lastly we need to set up the distance for the LOD 3 stage which contains our Nullmesh. This stage is a backup stage for large objects, so for big rocks we will want to move the camera to something far like 800m. But a small shrubbery, we will want this at 150m for this test. Pick what is relevant for your art asset here. Repeat the same steps, switching to the invisible Nullmesh via the [ key and once again saving that with the Space key. We're almost done now! The final step is exporting this LOD information. This means we have to create a new W3D file. Navigate to File -> Export Select "LOD..." Select the file again you just opened (Yes, I know this makes no sense, unfortunately this is how it works) Then select the destination of the new file to be exported. Note you cannot overwrite the existing file, so save it in a different folder. Delete the old file, and rename your newly exported file to something that isn't all-caps. Verify if the new W3D file properly works, open it, select your H-LOD mesh, and under LOD in the top menu, enable Auto Switching. Once your camera goes beyond the previously assigned distances, you should see the model properly transition, confirming the asset is functional. Note: If the asset appears to be switching LOD stages at different distances, this is because you do not have W3D Viewer maximized. LOD in W3D isn't actually based on distance in meters, but the size of the object based on your display view onto it. Because a non-maximized viewport is smaller, therefore the art asset appear smaller, you will see the LOD stages kick in sooner. You can now create a preset in Mammoth that utilizes this new LOD asset in all the standard ways, no further tinkering is required in Mammoth. Bonus Tip: LODed presets are excellent for usage with proxies. So all the time you spent creating this LOD asset, can be earned back by populating your level with this asset in 3DS Max via proxy. To make a proxy, create a preset in Mammoth containing the LOD W3D file, for example FancyRock1. In Max, open your LOD file and save the LOD 2 art asset as a separate file. Within this new file ensure it is not linked to any Origin bones. Remove all materials and merge all meshes, and ensure the pivot (not the mesh) is located at 0,0,0 of your new singular scene object. Name this object FancyRock1~01. You can now place this object around your level, and once loaded in Mammoth, all objects called FancyRock1~## will be replaced with the preset named FancyRock1, using the position and orientation from the proxy mesh. Once your project has a whole library of LOD assets available, creating new levels will take much less time. Hopefully this will help some people understand how to create LOD assets using the latest tools for W3D. If there are any questions, ask them below.
  5. Some proper object density in that desert map. I hope most of the terrain in maps has that much complexity to it.
  6. While modern-era graphics won't be a thing for TSR 2.0, graphics are still being worked on for W3D. Quite recently CMDBob introduced proper specular highlights which add a 'shine' to metallic objects that reflect light sources. I do not believe any of the TSR screenshots have this enabled (it is a relatively new feature).
  7. Such an unusual-looking vehicle, that MEMP. Keep in mind that APB, Reborn, AR, etc. are partially restricted to the gameplay design present in the RTS games, and some of those RTS mechanics do not always translate to suitable FPS gameplay. This is why sometimes, some representation liberties are taken, and some deviation might occur here as well for the MEMP if FPS gameplay demanded it. As for APB's MAD Tank, I think you should bring that concern to Pushwall. I'm all-in for an improvement pass on niche-gameplay units. W3D as an engine isn't at fault here, it's just design-level decisions/restrictions that can prevent niche-roles from shining. Gameplay-wise there honestly is not a lot W3D can NOT do (it is why I still enjoy working with this engine).
  8. Auto-detect the local language to apply it as default, but allow changing to another language via a configuration menu. This is how most 'launchers' do it.
  9. Turns out I'm one extremely terrible pilot. No more air planes for me!
  10. Mammoth is not compatible with Renegade, it is specific to the 5.x code branch. You can currently test-drive it to create APB content in the APB SDK. A W3D Dev Kit is still in the works, but I do not know what the current plans for that are, as it isn't quite ready yet for public usage.
  11. Good post. That is putting it lightly. I suspect it will be a (very technical) topic of its own at some point. For those curious right now; It is effectively a process of rebuilding a gigantic portion of the codebase to be more optimal to work with for programmers and more closely follow modern game engine standards, and it will ultimately allow for a much more streamlined, modular, development approach. Sadly as Jon said we have no Blender plugin programmers. We also have no one around to test such plugin if it got made, as everyone here uses 3DS Max.
  12. Sorry to hear about your troubles. I guess that is one of the reasons I am still single, I do not think I can handle being told what to do outside of working hours. Typically I also no not appreciate people ripping stuff and calling it their own, but the main usage of W3D importer is not to rip, it is for when your projects lost source files, so you'd have a way of retrieving 3D assets. This is very common for some of the older projects, as files do get lost over time when being handed over from one project manager to another project manager. Or sometimes an artist leaves and forgets to hand over some random files, etc. If file security is a concern (and to me personally, it is because a lot of hours and money goes into art assets these days), the answer lies in data file encryption, so that W3D importing can still be done by people with a claim to those assets. As for W3D importer, it is not pretty but it gets most of the job done. It typically breaks up all triangles so you have to weld everything again, this causes errors that you need to correct via applying a smoothing group. Animations also get imported per-frame, making adjusting them extremely painful. But it is good to have as an absolute backup option if you need to alter an old asset with a lost source file.
  13. Well, that is a convenient choice.
  14. Hello Abjab, nice to see you back in the W3D scene. For a long time we used the RenX and Max8 W3D importers around here, although Max8 has started to become obsolete as well (for some of us more so than others due to technical issues with Max8). As of recently we have W3D tools for Max2017, which is a pretty big leap as Max8 was released in ~2006, while RenX has been obsolete since 1977. If you have not already done so, you should reach out to @jonwil to get up-to-date information of what W3D can do these days. For starters, full source code exists for the game engine, and all tools - minus W3D importer - have been rewritten from scratch or reverse engineered completely, for example we no longer use Level Edit for game logic, but use a completely new tool for this instead (which sadly does NOT support classic Renegade). I think you'd want to make sure you're aware of all those developments over the years, although the W3D format itself is still (mostly?) the same. I am curious though, what brings you back to W3D and motivates you to work on this? For some people here this comes down to being too stubborn to let the engine go.
  15. I suspect we'd have more Linux users if Westwood/EA supported the OS with the C&C franchise. Expanding Linux support might be worth considering if there is evidence of a userbase that would play W3D games on Linux. In the short term thought, I'd argue we're even lacking Windows based users. Certainly a lot of room for improvement at all times in regards to simply speaking of "more players".
  • Create New...