FileDetectionRuleSets
FileDetectionRuleSets copied to clipboard
IW (Call of Duty) Engine
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.
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
Will \.iwd$
alone be enough?
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.
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.
Checking for bink is pointless because a lot of games use it.
Just find ghost
X
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 :)