Coder Social home page Coder Social logo

xoxor4d / iw3xo-dev Goto Github PK

View Code? Open in Web Editor NEW
97.0 16.0 15.0 118.79 MB

iw3xo - a call of duty 4 modification - rtx remix compatibility

Home Page: https://xoxor4d.github.io/projects/iw3xo/

Batchfile 0.01% Lua 0.37% C++ 67.27% GSC 32.36%
cod4 iw3 radiant rtx modernwarfare rtx-remix

iw3xo-dev's Introduction

iw3xo/rtx - a Call of Duty 4 modification

This client mod brings various modifications and additions to the base game
and also includes support for nvidia's RTX Remix.

[ Most noteworthy features of iw3xo ]
map exporting -- live link between the game and radiant -- sp map loading in mp --
collision visualization -- day and night cycle with custom sky shader --
custom movement options and much more

[ Remix compatibility ]
This client mod does not come with a 'rtx mod' -> that means:
no custom models, no normal-maps, no fancy pbr materials or lights.


GitHub release (latest by date)build-releaseGitHub commits since latest release (by date)DownloadsDiscord


img

> Features / Guides / In-Depth <

https://xoxor4d.github.io/projects/iw3xo/

Usage

Mandatory but might not feature the latest and greatest:

  1. Download the latest iw3xo release - the _rtx build comes with all files required for rtx remix
  • Extract the contents into your cod4 root directory.
  • Skip to Step 5 if you are not interested in nightly builds

Nightly (always up-to-date):

  1. [rtx only] Install the latest full rtx-remix release (0.4.1 at this time)
    https://github.com/NVIDIAGameWorks/rtx-remix/tags

  1. [rtx only] [optional] Install the latest github action builds of:
    remix bridge - https://github.com/NVIDIAGameWorks/bridge-remix/actions
    remix runtime - https://github.com/NVIDIAGameWorks/dxvk-remix/actions

  1. Download the latest iw3xo (develop branch) github actions build:
    Build-Release - https://github.com/xoxor4d/iw3xo-dev/actions
  • Drop iw3x.dll and the contents of the assets-remix folder [rtx only] into your cod4 root directory

  1. Run run_remix.bat to start the game with rtx-remix features enabled
    or directly run iw3xo.exe

iw3xo.exe (modified to load iw3x.dll instead of d3d9.dll)
| -> iw3x.dll is a proxy d3d9.dll


  1. Read the Dvars / Console Commands and Current issues sections


Remix section

🔸 sun, skybox and fog settings can be tweaked by using map_settings.ini :: iw3xo/rtx folder 🔸

  • use console command /devgui to open a developer gui -> RTX tab
    • I suggest binding the /devgui command to a key, eg: bind F5 devgui

  • A. Commandline Arguments:

    • -rtx :: enable rtx modules (⚠️ required for rtx-remix)
    • -no_default_sky :: disable sky spawning (map settings)
    • -no_sun :: disable sun spawning (map settings)
    • -no_fog :: disable fog (map settings)
    • -stock_effects :: render effects using shaders
    • -old_anti_culling :: use the old anti culling system
    • -no_forced_lod :: do not set r_forceLod to high by default
    • -load_normal_spec :: enable loading of specular and normal maps (if you need to for some reason)
    • -no_playershadow :: disable player shadow casting (required to get thirdperson to work)
  • commandline example:  c:\path\iw3xo.exe -rtx -no_default_sky -stock_effects

  • B. Dvars (I recommend tweaking these via the /devgui) :

    🟩 encouraged to be tweaked
    🟦 can be useful in edge case scenarios
    🟧 shouldn't be touched

    Culling dvars:

    🟩 rtx_culling_tweak_mins :: prevents a bit of culling
    🟩 rtx_culling_tweak_maxs :: prevents a lot of culling
    🟩 rtx_culling_tweak_frustum :: disables frustum culling
    🟩 rtx_culling_tweak_smodel :: disables static model culling
    🟩 rtx_culling_plane_dist :: distance of frustum culling planes

    General dvars:

    🟩 r_forceLod :: force all models to a specific LOD
    🟩 r_forceLod_second_lowest :: prevent game from using the lowest LOD (sometimes used to hide the model)
    🟩 r_lodScaleRigid :: adjust static model draw distances (lower values increase draw distance)
    🟩 r_showTess :: draws material info (incl. all image names) of surfaces (geometry / models)
    🟩 r_showTessDist :: adjust draw distance of ^ info text
    🟩 r_showCellIndex :: show portal index info (useful for manual culling overrides via map settings)
    🟩 r_showModelNames :: draw names of static models around the player
    🟦 rtx_sky_hacks :: allows manually declaring textures as sky (maps w. multiple skies)
    🟦 rtx_sky_materials :: materials iw3xo flags as 'sky' materials (logic that replaces the default sky)

    Dvars that should only be changed if you know what you are doing:

    🟧 rtx_warm_smodels :: build model buffers on map load (enabled by default)
    🟧 rtx_hacks :: replace the skybox with a blue-gray texture
    🟧 rtx_extend_smodel_drawing :: disable static model draw limit (max amount of static models drawn at once)
    🟧 rtx_sky_follow_player :: sky will follow the player (might help with culling in some cases)

    Culling dvars when old_anti_culling flag is set:

    🟩 rtx_disable_world_culling :: tweak overall culling
    🟩 rtx_disable_entity_culling :: tweak culling of script objects (entities)


  • C. Console Commands :
    • mapsettings_update :: reload map settings
    • mapsettings_get_defaults :: prints sun direction, color and intensity in map_settings format based on the stock map settings to the consle

⚠️ Current Issues

  • Swift changes in geometry (eg. teleporting) can crash the game.

    • Decrease geometry drawing by increasing culling or play with r_lodScaleRigid
  • Remix might try to use your onboard gpu (that is a general CoD issue), so its best to disable it in the bios or within the device manager

  • Some effects will slow down the game (really depends on the effect and the amount)


img img


Questions?



Requirements:

  1. CoD4 1.7
  2. English localization (other languages work when renamed)
  • root/localization.txt   -> change first line to "english"
  • root/main/   -> rename "localized_yourlanguage_iw**.iwd" files to "localized_english_iw**.iwd"
  • root/zone/   -> rename folder "yourlanguage" to "english"


Build / Compile

> How to build / compile the project using Visual Studio

  1. Clone the repo! (zip does not include deps!)
  2. Setup a COD4_ROOT environment variable with a path to your cod4 directory (optional)
  3. Use generate-buildfiles.bat to build project files with premake
  4. Open (build/iw3xo-dev.sln) and setup paths for the iw3x project (not needed if Step #2)
  • General       output directory path -> path-to-cod4-root\
  • Debugging   command -> path-to-cod4-root\iw3xo.exe
  • Debugging   working directory -> path-to-cod4-root
  1. Build -> Build Solution or run with debugger

Optional (Fastfile sources)

  1. https://github.com/xoxor4d/xcommon_iw3xo (compiled, placed into root/zone/english/)
  2. https://github.com/xoxor4d/xcommon_iw3xo_menu (compiled, placed into root/zone/english/)



Optional:
https://github.com/xoxor4d/iw3xo-radiant

Project Page:
https://xoxor4d.github.io/projects/iw3xo/

Discord:
https://discord.gg/t5jRGbj


Credits



Disclaimer

This software has been created purely for the purposes of academic research. Project maintainers are not responsible or liable for misuse of the software. Use responsibly.

iw3xo-dev's People

Contributors

lierrmm avatar sheepwizard avatar shkerzy avatar xoxor4d avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iw3xo-dev's Issues

R_DrawCollision / Map Export

DrawCollision

  • Implement unlit fake-lighting (just like radiant debug brushes)
  • Fix brush generation for weird angled brushes
  • Fix brushmodel/entity brushes accumulating at origin (0, 0, 0)

Map Export

  • Export Brush contents
  • DrawCollision Issue 2
  • DrawCollision Issue 3 (brushmodel/trigger/brush entity exporting)
  • Fix brushes that crash radiant upon selecting them (partly fixed by excluding small complex brushes on export)
    (Check brush with "isValidBrush" function from radiant before actually writing them to the map file?)
  • Implement a way to only export a selected part of a map (e.g. select by drawing a bounding box)
  • Find a way to map collision triangles with gfxworld triangles to get correct material settings for brushes and "patches"
  • Find a better way to reconstruct patches from triangles.
  • Theres no information of static light entities left in the gfxworld, as they are baked into the lightmap texture. (Ideas?)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.