TTLG|Thief|Bioshock|System Shock|Deus Ex|Mobile
Page 4 of 5 FirstFirst 12345 LastLast
Results 76 to 100 of 119

Thread: [Dev Thread] Enhanced Thief Fan Missions Archive (Last update: 2017/12/24)

  1. #76
    Member
    Registered: Apr 2011
    Location: Montpellier, France
    That's not French, that's Latin. Lorem ipsum is a basic, widely used text fill to test stuff.

  2. #77
    Member
    Registered: Jul 2006
    Location: Troyes, France
    Quote Originally Posted by fortuni View Post
    This looks really good Enybola, professional, easy on the eye and attractive.

    When do you expect to launch this archive?

    I also note that you are French and in the above examples have entered all typing in French, will you continue doing that and rely on google to automatically translate the mission details (which sometimes can produce total garbage) or when you launch, will you use English.
    Hey buddy,

    Yeah, that's not French but Latin as skacky said

    This is Lorem Ipsum, a filler text or greeking commonly used to demonstrate the textual elements of a graphic document or visual presentation (Wikipedia).

    I just used this alternative text because I needed to fill generic content in a template. The Fan Missions and our community mainly use English. So, ETFMA will be in English.

    I expect to launch a public Beta the next February. Also, the idea is to test the website with a minimum of content and then invite the community to create each of the Fan Mission Markdown files. I'd like to know if FenPhoenix will work on a possible scanner script...
    Enhanced Thief Fan Missions Archive (ETFMA): [TTLG thread]
    DromEd Level Editor Developer Textures Kit (DLETDK): [TTLG thread]

  3. #78
    Member
    Registered: Oct 2012
    Location: On parole
    Quote Originally Posted by EnYB0La View Post
    Yeah, that's not French but Latin as skacky said
    I thought it looked a bit strange, but I don't speak French and assumed it was French as that is where your from.

    Quote Originally Posted by EnYB0La View Post
    I expect to launch a public Beta the next February. Also, the idea is to test the website with a minimum of content and then invite the community to create each of the Fan Mission Markdown files.
    Sounds good to me, and where I can help out I certainly will.

    ps. I think the 'pick a fan mission' at random is a great idea, it may help promote a number of the less well known missions.
    Last edited by fortuni; 14th Dec 2017 at 11:48.

  4. #79
    Quote Originally Posted by EnYB0La View Post
    I expect to launch a public Beta the next February. Also, the idea is to test the website with a minimum of content and then invite the community to create each of the Fan Mission Markdown files. I'd like to know if FenPhoenix will work on a possible scanner script...
    Started work today. Getting the basics set up took a while. Maybe I should have something to eat. In celebration. Anyway, everything is quick-n-dirty right now and it doesn't pull much data at the moment, but here's the git repo. I'll be updating this regularly.

    https://github.com/FenPhoenix/FMInfoGen

    Edit:
    For clarification on some things:
    I notice the "Books and scrolls", is that to note that a mission has readables? I'm not sure I've ever seen one that didn't. Also, does "Background music" mean actual music only, or any custom ambience, or? And what's "Goal description"?
    Last edited by FenPhoenix; 15th Dec 2017 at 01:14. Reason: Had something to eat

  5. #80
    Member
    Registered: Mar 2014
    Location: Europe
    Quote Originally Posted by FenPhoenix View Post
    Edit:
    For clarification on some things:
    I notice the "Books and scrolls", is that to note that a mission has readables? I'm not sure I've ever seen one that didn't.
    Maybe the system could instead just scan the books folder (English, if it exists) of each FM and get a word count of all the *.str files minus Page_0:; Page_1; etc... Then if it's a campaign, divide the word count by number of missions to get an average word count per mission. Would be interesting to see which FMs have the most text. It might not be super accurate as there are also custom object names in there and some FMs have baked text in images but it would still give a nice rough idea.

  6. #81
    Sure, could do that. It'd be something a bit more of a fun challenge than "does this folder exist". :P

  7. #82
    Member
    Registered: Jul 2006
    Location: Troyes, France
    Quote Originally Posted by FenPhoenix View Post
    Started work today. Getting the basics set up took a while. Maybe I should have something to eat. In celebration. Anyway, everything is quick-n-dirty right now and it doesn't pull much data at the moment, but here's the git repo. I'll be updating this regularly.

    https://github.com/FenPhoenix/FMInfoGen

    Edit:
    For clarification on some things:
    I notice the "Books and scrolls", is that to note that a mission has readables? I'm not sure I've ever seen one that didn't. Also, does "Background music" mean actual music only, or any custom ambience, or? And what's "Goal description"?
    Those YAML keys...

    Code:
    details:
      characteristics:
        hascustommotions: false
        hascustomcreatures: false
        hascustomobjects: false
        hascustomsounds: false
        hascustomtextures: false
        hascustomscripts: false
        hascustomgamesys: false
        hasbgmusic: false
        hasmovies: false
        hasmap: false
        hasautomap: false
        hasbooksandscrolls: false
        hasgoaldescription: false
    ...are based on the DarkLoader content checker:



    As you can see in this image (below) (main.pas from DarkLoader source code, line 1118), is that the app searches for available files in specific folders:



    But, yeah, this checker should be more complex and complete. Do you need help or more details on how we should resolve this issue?
    Last edited by EnYB0La; 15th Dec 2017 at 10:34.
    Enhanced Thief Fan Missions Archive (ETFMA): [TTLG thread]
    DromEd Level Editor Developer Textures Kit (DLETDK): [TTLG thread]

  8. #83
    Oh, whoops, I didn't realize (and/or remember) that DarkLoader had all those fields. Guess I never used them.

    I looked at the DL code to try to find out how it was detecting Thief Gold FMs from Thief 2 FMs (which is broken with NewDark anyway) but I didn't think to look for anything else. I'm not familiar with Object Pascal or whatever it is, but I'll have another look. Thanks for pointing that out to me.

    I was wondering exactly what the difference between the "obj" and "mesh" folders were. It looks like the code is saying mesh is "creatures" while obj is just "objects". I'm not a Dromeder, so am I right in thinking then that "mesh" is AI and "obj" is non-AI objects?

    I'm also thinking, some of this stuff exists already on fan mission sites. Stuff like author, version (on thiefmissions), initial release date / last update date (also thiefmissions), forum links, and which game it's for. That last one would be extremely helpful to get from a fan mission site, because otherwise I'd have to detect it like DL, and that's broken with NewDark as mentioned. But I guess if it's reliable then it would work for OldDark missions which are the bulk of releases. But I could also just parse the HTML for Taffers Paradise for example, and grab it from there (as a one-time thing to get all current mission entries generated).

    EDIT: Or I could just detect T1/T2 by folder, because if you've got a mission you probably have it sorted that way already...

    I'm looking through the code, and it looks like this section that's detecting game type?

    Code:
      missionnames.sort;
      ttype:=darkGameThief;
      if missionnames.count<>0 then
      begin
        ttype:=darkini.readinteger(section,'type',0);
        if not (ttype in [darkGameThief,darkGameThief2,darkGameT2x]) or Refresh then
        begin
          ii:=DBSearch(zip.ExtractFileToStream(missionnames[0]), ['SKYOBJVAR','MAPPARAM']);
          if ii=1 then
          begin
            {Thief2 or T2x?}
            ttype:=darkGameThief2;
            for ii := 0 to (zip.Count-1) do
              if AnsiPos('t2x\', AnsiLowercaseFilename(zip.DirEntry[ii]^.Filename))=1 then
              begin
                ttype:=darkGameT2x;
                break;
              end;
          end else if ii=2 then
          begin
            ttype := darkGameSS2;
          end else
            ttype := darkGameThief;
          darkini.writeinteger(section,'type',ttype);
        end;
      end;
      selmistype:=ttype;
      if ttype<>darkGameSS2 then
      begin
        x:=1;
        for ii:=0 to (missionnames.count-1) do
          if (ansipos('miss',AnsiLowercaseFilename(ExtractFilename(missionnames[ii])))=1) then
          begin
            missionnums[x]:=StrToIntDef(RemSubStr('miss',AnsiLowercaseFilename(ExtractBasename(missionnames[ii]))),0);
            if missionnums[x]<>0 then
            begin
              Inc(x);
              if x>99 then break;
            end;
          end;
      end;
    It's actually looking inside a .mis file for key strings, "SKYOBJVAR" and "MAPPARAM". Interesting. Since this misdetects NewDark TG missions as T2, maybe there's another reliable way, but I don't know what it would be.

    Of course, the readme can also be parsed for info, because a lot of the time (but not all the time) FMs have a standard sort of structure in the readme. Preferably we would check something more concrete, but it's an option if all else fails. We may also be able to get the description / briefing from the readme if it's in roughly the standard format that a lot of readmes are.

    Anyway, I'll study the DL code some more and get back to work...

    Edit:
    Just mentioning out of interest, it looks like "Background music" is being detected by looking for a "song" or "songs" folder, and .snc files. Can't say I've ever seen that either.

    Edit again:
    I just searched through the entire collection of T1/TG FMs (as downloaded from here here) and didn't find a single song folder, songs folder, or .snc file. Haven't got the T2 missions extracted yet but it's looking like this value may not be relevant for Thief. Maybe it's a System Shock 2 thing?

    Edit:
    I'm thinking some of these values definitely must be for SS2, like I've never seen a "cutscenes" folder either, etc. Maybe that's what "goal descriptions" are for, too. I mean I know it's checking for a goals.str which Thief has, but Thief must have that file as far as I know, or else there would be no objectives to complete, yeah? I don't know SS2 very well but maybe it uses that file too but it's optional...?

    And yeah, DL was made before NewDark, so some of these detections are indeed not complete any more, for example detecting only .pcx files for textures, whereas I know that nowadays you can use .png and .dds at least.

    Edit: I'm also thinking we needn't necessarily be so specific for certain folders. For movies and snd, for instance, detecting if those folders exist and contain files would surely be enough (how likely is there to be a movie folder with files that aren't movies in it?), and then it would cover any future new formats that end up being allowed in there. Otherwise I detect a list of possible file extensions, which seems a bit much for movies and snd folders at least.
    Last edited by FenPhoenix; 15th Dec 2017 at 16:58.

  9. #84
    Desperately Dodgy Moderator
    Registered: Nov 2001
    Location: Fields of bluegrass
    1. Yes, /mesh is for AI and /obj is for objects.

    2. The music thing is looking for custom songs, which I believe are T2 only and also are very very rarely used by FM authors. I would just nix all the logic around that and remove that checkbox from the UI entirely. Many missions do have background music, but it's just normal snd files. However, you can't rely on the presence of a /snd folder to mean there is custom ambients, either, since ALL custom sounds go in there.

  10. #85
    Thanks for the help!

    So far, I've got:

    -Title (tries to get it from titles.str, else it tries to get it from the readme)
    -Author name (tries to get it from the readme)
    -Version (tries to get it from the readme)
    -Whether the mission has:
    -Custom motions, movies, custom textures, custom objects, custom creatures, custom gamesys, custom scripts (detects either .osm files in base, or a "scripts" folder in base), a map, and an automap.

    I'm currently only parsing .txt readmes, not .rtf ones, and currently treating every FM as a single mission even if it's a campaign. I'll get that stuff in later.

    Regarding automaps, DL is checking for *ra.bin files in intrface/miss* folders, so that's what I did as well. Is it always and/or still true that automaps have *ra.bin filenames?

  11. #86
    Desperately Dodgy Moderator
    Registered: Nov 2001
    Location: Fields of bluegrass
    I think so, yes, they require specially-named .bin files in the mission's folder inside intrface. Someone more knowledgeable on the subject like R Soul can confirm.

  12. #87
    Member
    Registered: May 2002
    Location: Texas
    I don't know if this is relevant to the discussion, but T1/TG use the Gen script whereas T2 uses both the Gen and Convict scripts.

  13. #88
    Member
    Registered: Jul 2006
    Location: Troyes, France
    2017/12/16

    Just reworked some details of the Fan Mission Single Page Template.



    1. Added a new "Campaign" badge: when a Fan Mission is a Campaign, a badge called "Campaign" appears at the top of the template, below the main Fan Mission title, with the number of included fan missions. Each Fan Mission can be described in the main Description content section. In YAML, a new key should be created called "isCampaign" with a boolean value.



    2. Reworked NewDark badge: Changed colors and "ND" to "NewDark". The minimum required version is indicated too.



    3. Added new "Go to the related TTLG thread" button.



    4. Redefined main colors.



    5. Refactored and added buttons.



    I should now work on a new section which retrieves similar Fan Missions, based on current FM category / tags.

    In this design, I use the Font Awesome 5 icons.
    Last edited by EnYB0La; 17th Dec 2017 at 00:42.
    Enhanced Thief Fan Missions Archive (ETFMA): [TTLG thread]
    DromEd Level Editor Developer Textures Kit (DLETDK): [TTLG thread]

  14. #89
    Member
    Registered: Jul 2006
    Location: Troyes, France
    Reading FenPhoenix and Yandros... I was thinking if this part is really necessary?



    Should we really incorporate this kind of details? Is this relevant to the user/gamer?

    Quote Originally Posted by FenPhoenix
    I'm currently only parsing .txt readmes, not .rtf ones.
    Are we sure there is a README file in each FM Zip? How do you retrieve a value from it? Are you searching for a specific string?

    By the way, nice work Fen
    Last edited by EnYB0La; 16th Dec 2017 at 15:21.
    Enhanced Thief Fan Missions Archive (ETFMA): [TTLG thread]
    DromEd Level Editor Developer Textures Kit (DLETDK): [TTLG thread]

  15. #90
    Quote Originally Posted by EnYB0La View Post
    Reading FenPhoenix and Yandros... I was thinking if this part is really necessary?



    Should we really incorporate this kind of details? Is this relevant to the user/gamer?
    I'd say right off the bat to get rid of "Goal description", "Books and scrolls" (because both of those will almost certainly be present in any case), and "Background music" (see Yandros' post).

    As for the rest, for me personally, I'd say "Custom gamesys" doesn't tell me anything. I only vaguely know what a gamesys is, and I don't know what specific implications a custom one would have. If we know of any specific implications that matter to an average player, maybe we could extract those out and put those in the list instead; otherwise, maybe get rid of that one too. If a custom gamesys would make a mission visibly "non-stock" and if we want to denote that, then maybe we can use it.

    On that topic, I think there may be some argument for keeping custom scripts, textures, sounds, objects, creatures, and motions if we want to denote a mission being "stock-resource" or not (and I don't know if we do, but some people seem to like that maybe?).

    Map, automap, and movies seem like reasonable information to me. Not absolutely necessary perhaps, but sort of nice to know just to give you a taste of what the playing experience might be like.


    Quote Originally Posted by EnYB0La View Post
    Are we sure there is a README file in each FM Zip? How do you retrieve a value from it? Are you searching for a specific string?

    By the way, nice work Fen
    Thanks!

    And there may not be a readme. And if there is, it may not be formatted such that it can feasibly be parsed for info. But often times it will be, for example a lot of readmes have a section like this:

    Code:
    * Playing Information *
    
    Game                    : Thief: The Dark Project
    Mission Title           : Lady Whitman's Disease
    File Name               : miss15.mis
    Difficulty Settings     : Yes
    Equipment Store         : No
    Map                     : Yes
    Auto Map                : No
    New Graphics            : No
    New Sounds              : No
    Multi-Language Support  : Yes
    
    Briefing                : No
         Length             : n/a
         Size               : n/a
    
    Difficulty Level Info   : (Normal, Hard and Expert)
    
    * Construction *
    
    Base                    : No
    Build Time              : Two months
    So I can look for a line like "Title (some amount of spaces) : (some value)". But I check all other places first, before going for the readme. Parsing the readme is just if I can't find info anywhere else, and if I can't parse the readme then oh well, we just have to put that info in manually.

    Incidentally, out of the 378 TDP missions I've tested this with so far, currently only 14 are failing the title detect (and mostly because they're either French versions, or they're campaigns and have multiple mission titles and the code doesn't deal with that yet), and 64 are failing the author detect (and I haven't even got to work tuning the author check yet).

    No doubt a few missions are going to have to have certain fields set manually, but the goal is minimize that work.

    Quote Originally Posted by john9818a View Post
    I don't know if this is relevant to the discussion, but T1/TG use the Gen script whereas T2 uses both the Gen and Convict scripts.
    Hmm! I just did a search inside the .mis files from four different missions:

    The Death of Garrett (Thief 1, OldDark)
    Endless Rain (Thief Gold, NewDark)
    Broken Triad (Thief 2, OldDark)
    Death's Cold Embrace (Mission 1) (Thief 2, NewDark)

    All of them contained the string "convict" but only the Thief 2 .mis files contained the string "gen". So what you said, but the other way around. I'm gonna do some quick scanning to see if this is consistent. Thanks for the info!

    EDIT: Hmm, nope, not consistent. A bunch of these T1/G files contain "gen". Meanwhile I can try to get this info from the readme, that should cover a majority of missions anyway.
    Last edited by FenPhoenix; 16th Dec 2017 at 18:35. Reason: typos

  16. #91
    Desperately Dodgy Moderator
    Registered: Nov 2001
    Location: Fields of bluegrass
    A new feature you might consider doing, which should be easy, is to list all languages supported. You can just look at about any resource folder and enumerate the subfolders and compare them to a known list of languages; I would recommend looking in the /books folder since it pretty much always has language subfolders whenever multiple languages are supported.

  17. #92
    It's on the list. Thanks for the tips.

  18. #93
    Member
    Registered: May 2002
    Location: Texas
    I did get the script references backwards. I also forgot that NewDark missions can have both scripts even for T1/G missions. I wonder if NewDark writes anything to the mis header that is different than OldDark.

  19. #94
    Desperately Dodgy Moderator
    Registered: Nov 2001
    Location: Fields of bluegrass
    Fen, I mean instead of just Yes or No for Multilanguage support, you try to actually enumerate the languages. Just an idea.

  20. #95
    I know, I am enumerating the languages (they go into an array in the YAML there). Just added it in.

    Oh, by "it's on the list" I mean it was on the list of things to do.

  21. #96
    Member
    Registered: Jul 2006
    Location: Troyes, France
    Quote Originally Posted by Yandros View Post
    Fen, I mean instead of just Yes or No for Multilanguage support, you try to actually enumerate the languages. Just an idea.
    Just like here...



    I was also thinking about the Fan Mission Single Page Template... For example, Yandros, your Death's Cold Embrace FM has 10 fan missions. This is categorised as a campaign. So, should we refer this FM as a single "FM" which has 10 Fan Missions or should we refer each of the Death's Cold Embrace FMs as unique?

    Does "Murder Most Foul" should be considered as a single Fan Mission, part of a campaign cold Death's Cold Embrace, or should Death's Cold Embrace should be considered as a Fan Mission which includes 10 Fan Missions?

    I'm not sure you'll understand what I'm trying to say..



    VS

    Last edited by EnYB0La; 17th Dec 2017 at 00:42.
    Enhanced Thief Fan Missions Archive (ETFMA): [TTLG thread]
    DromEd Level Editor Developer Textures Kit (DLETDK): [TTLG thread]

  22. #97
    Member
    Registered: Jul 2012
    Location: Montreal
    This is super cool, and looks very well organized! I'm wondering if you'll be including links to various written reviews for FMs/Campaigns found on the web. I needed a good reason to get back into writing, and would love to support the project the best way I know how. No worries if that's not in the plan, I'm mostly just curious and excited that this is happening

  23. #98
    Desperately Dodgy Moderator
    Registered: Nov 2001
    Location: Fields of bluegrass
    Quote Originally Posted by EnYB0La View Post
    question
    IMHO, the first option is better. A campaign is a release which happens to contain multiple missions, but is still one unit. Having separate pages for each of the 10 missions seems like overkill, especially when a few of those missions are just a series of in-game cutscenes. And also, the missions aren't in most cases available for individual download.
    So I would say that one campaign page which lists the missions in the description is better.

  24. #99
    Member
    Registered: Jul 2006
    Location: Troyes, France
    Quote Originally Posted by Yandros View Post
    IMHO, the first option is better. A campaign is a release which happens to contain multiple missions, but is still one unit. Having separate pages for each of the 10 missions seems like overkill, especially when a few of those missions are just a series of in-game cutscenes. And also, the missions aren't in most cases available for individual download.
    So I would say that one campaign page which lists the missions in the description is better.
    Thanks Yandros. I was thinking the same...

    Quote Originally Posted by FenPhoenix
    I'm currently only parsing .txt readmes, not .rtf ones, and currently treating every FM as a single mission even if it's a campaign. I'll get that stuff in later.
    So Fen, are you considering retrieving each campaign's Fan Mission as single ones? You could just create a counter that retrieve the number of FMs that contains a campaign. The description of each of them should be done manually. Or maybe is it possible to retrieve this information form the README file?
    Enhanced Thief Fan Missions Archive (ETFMA): [TTLG thread]
    DromEd Level Editor Developer Textures Kit (DLETDK): [TTLG thread]

  25. #100
    Quote Originally Posted by EnYB0La View Post
    So Fen, are you considering retrieving each campaign's Fan Mission as single ones? You could just create a counter that retrieve the number of FMs that contains a campaign. The description of each of them should be done manually. Or maybe is it possible to retrieve this information form the README file?
    Actually I was kind of waiting to see what you decided to do with campaigns before starting with detecting them. Detecting a campaign shouldn't be too hard, I can just see if there are multiple .mis files and then check titles.str to see if there are multiple non-stock mission names in there to be sure. Pulling individual descriptions from the readme is an iffier proposition, but I'll still give it a shot cause I'm game.

    Even if I can't do it fully automatically, I may be able to make it quicker to copy-paste manually with maybe some auto-formatting help or something (cause a lot of descriptions have slightly wacky formatting that looks fine when displayed in DarkLoader but needs finagling when you want to paste it elsewhere, I know from pasting a lot of readme text into YouTube video descriptions )

    ------
    EDIT:



    All auto-detected. Never mind the NewDark column, it's not implemented yet.

    For the game type, I'm detecting whether the .mis file was last modified before September 25, 2012 (NewDark's release date), and if so, I detect using DarkLoader's method. If it's newer than that date, then I detect from the readme. Pretty accurate. Version is also detected from the readme, and the results are not bad considering. Blank languages are if there's no explicit language folders. I haven't got around to looking at that yet. Last Updated is currently only being pulled from the fm.ini file which precious few missions have, hence the mostly blank column.
    Last edited by FenPhoenix; 18th Dec 2017 at 09:01.

Page 4 of 5 FirstFirst 12345 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •