FileDetectionRuleSets icon indicating copy to clipboard operation
FileDetectionRuleSets copied to clipboard

IW (Call of Duty) Engine

Open Impossible opened this issue 3 years ago • 7 comments

Some reference to the engine, such as the developer site or a wikipedia article.

https://en.wikipedia.org/wiki/IW_(game_engine)

SteamDB links

https://steamdb.info/app/2630/ https://steamdb.info/app/7940/ https://steamdb.info/app/209650/ https://steamdb.info/app/393080/ https://steamdb.info/app/209160/

Possible way to detect it

Call of Duty uses "fast files" to store game data, so a regex looking for 'ff' is useful, so is 'iwd'. All games seem to also have a "main" and "zone" folder at root level. I don't have all COD games and my regex is not great but I'm guessing something like this will capture most of them

iwengine[] = .ff$ iwengine[] = .iwd$ iwengine[] = (?:^|/)main. iwengine[] = (?:^|/)zone.

Impossible avatar Sep 02 '21 17:09 Impossible

Wanna make a pull request?

On Thu, Sep 2, 2021 at 12:29 PM Scott Anderson @.***> wrote:

Some reference to the engine, such as the developer site or a wikipedia article.

https://en.wikipedia.org/wiki/IW_(game_engine) SteamDB links

https://steamdb.info/app/2630/ https://steamdb.info/app/7940/ https://steamdb.info/app/209650/ https://steamdb.info/app/393080/ https://steamdb.info/app/209160/ Possible way to detect it

Call of Duty uses "fast files" to store game data, so a regex looking for 'ff' is useful, so is 'iwd'. All games seem to also have a "main" and "zone" folder at root level. I don't have all COD games and my regex is not great but I'm guessing something like this will capture most of them

iwengine[] = .ff$ iwengine[] = .iwd$ iwengine[] = (?:^|/)main. iwengine[] = (?:^|/)zone.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/SteamDatabase/FileDetectionRuleSets/issues/92, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFUN6D6GB7V7GQRKJ2RZXDT76X7HANCNFSM5DJTIF5Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

-- www.fortressofdoors.com -- My design & business of game development blog

larsiusprime avatar Sep 02 '21 18:09 larsiusprime

Will \.iwd$ alone be enough?

xPaw avatar Sep 03 '21 09:09 xPaw

Checking for \.iwd$ is probably enough, but I'd check for \.ff$ at the very least to avoid false positives. I believe these files exist in consistent directories (main for iwd and zone for ff). There is fancier matching like looking for "sp_" and "mp_" prefixes on fast files and the presence of Bink SDK, which all IW engine Call of Duty games on Steam use. One important thing to remember is IW Engine doesn't exist until Call of Duty 2, and Call of Duty and United Offensive are (correctly) tagged as idtech3 games. I might make a PR later if time permits. For a first pass it is probably ok to match only iwd or even ff and see if you get false positives.

Impossible avatar Sep 03 '21 21:09 Impossible

Actually these rules don't fully cover some newer games. Black Ops III has no fast files, and replaces them with xpak. It looks like other file types (sabs, sabl in BLOPS3 and COD IW, fd in COD WWII) have replaced iwd. So ff and xpak seem to be common denominators. Black Ops III also does not use bink and instead uses mkv for video, so bink alone isn't enough to cover all games.

Impossible avatar Sep 04 '21 02:09 Impossible

Checking for bink is pointless because a lot of games use it.

xPaw avatar Sep 04 '21 07:09 xPaw

Just find ghost

Alien2one1two avatar Jan 21 '22 00:01 Alien2one1two

X

Alien2one1two avatar Jan 21 '22 00:01 Alien2one1two

Fixed in https://github.com/SteamDatabase/FileDetectionRuleSets/pull/801. I planned on doing a PR myself one day, but if you wait enough years someone else will get it done :)

Impossible avatar Jun 17 '24 22:06 Impossible