Announcement

Collapse
No announcement yet.

How come there are no good detective games?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • vovan
    replied
    Originally posted by MattH
    It's difficult to keep limited for a 'proof of concept'.
    Indeed.

    Originally posted by MattH
    Along the same lines, it's hard to even make one crime "fork" (i.e. burgulary without assault/murder) because of the number of possible twists that have to be recconed with individually.
    Well now, I spent a bit of time thinking about how I would start with such a project, and here's what I came up with.

    First of all, I think that for this to be successful, one needs a strong information-sharing system. Basically, my idea was that every NPC would have a memoery of their own, represented by a semantic tree. At the root of it would be the most generic, almost useless information, and as you go deeper, more and more details are contained, so in the end the leaves have the most specific info - the one you are after. Basically, the "memory" of a witness of the crime right after the occurrence would look something like this:

    Code:
                       Saw Burglary
               /            |          \
        [Participants]  [Location] [Environment]
           /    \           |            \
    Saw Victim Saw Burglar ...           ...
        |          |
      Victim    Burglar
       was        was   _____________
      female      male      \        +-Was unshaven
        |          |         \
     She had   Had a scar  Had dark hair
    long hair      |
               Scar was on
               left cheek
    Now, the deeper down the tree you go, the more details you discover right? So, my idea was that each NPC's memory would slowly decay. And the deeper into the tree you go, the larger the decay rate. After the function reaches a certain threshold, the piece of information is forgotten. So, basically, as time goes on, the NPCs start forgetting stuff. Back to the witness from the above example. If you ask her about what she saw the day after the event, she might tell you the exact looks of the burglar. A week from then, on the other hand, she might only remember that he had a scar on his face, but forget the exact location, or even that the man was not cleanly shaven. Thus, you would have to be fast about getting information from the witnesses, though inevitably something will be lost from your sight - there are only so many people you can interrogate in the given time, so by the time you get to others, they will have forgotten some stuff.

    Alright, so my thinking was that I would start with this knowledge representation system. Then, once that works, the first thing I would do is try to simulate the crime. I'd start simple: just one type of crime, say theft. I'd then generate, say 10 NPCs. Each would have, say 3 characteristics. Let's say I chose: gender, race, and length of har - them being the most conspicuous characteristics of a person. So, then, I'd randomly give these attributes to the NPCs. Next, I'd pick two NPCs - the victim and the burglar, and five witnesses. To two of those witnesses I would give full and correct memory of the crime; to two of them, I'd give the memory of two of the characteristics of the burglar correctly and one made up; and the last witness would only remember one characteristic of the burglar correctly, and the other two - incorrectly. Finally, I'd put the player in and say: find the burglar in 10 turns. (The victim is assumed to have been hit over the head with something heavy and thus does not remember anything.)

    Okay, example time. Say I have the following possible characteristics:

    Gender: {male, female}
    Race: {Black, White, Asian}
    Hair Length: {Bald, Short, Long}

    Then, I could generate the following ten characters:

    1. male, black, long
    2. female, white, bald
    3. male, asian, short
    4. female, black, long
    5. male, white, short
    6. female, asian, long
    7. male, black, short
    8. female, white, long
    9. male, asian, bald
    10. female, white, short

    Now, pick two of them. Say, I pick the first two: the black man with long hair has stolen something from the white female with a shaven head.

    Now, say I pick the next five people to be the witnesses. Then, two of them remember all three characteristics of the burglar correctly. Next two: one of them may only remember that the burglar was a male with long hair, but happens to think he was white; the other person may remember the person was black and had dark hair, but happens to think it was a female. The final witness knows the person had long hair, but thinks it was an asian female! ( ) The remaining three people just heard the screams, and can't really say anything useful about the burgar.

    Okay, now the player's taks is to pin-point the burglar within 10 turns. This is tricky because:

    a. Interrogating four of the available NPCs doesn't yield any information (victim was unconscious for the most part, and the three witnesses only heard stuff), but still counts against your turns.

    b. The real burglar will lie.

    c. Some witnesses don't have full information but want to seem important, so they still give you all three characteristics of the burglar to the best of their knowledge, without conceding the fact memory may not be serving them right.

    d. The witnesses that do know everything correctly, may forget stuff by the time you get to them.

    This system would be fairly easy to code, but if you make it extensible, it would then be also easy to build upon and add further details to the crime you generate - additional details of appearance of the burglar, more varying types of crimes, etc.



    Originally posted by MattH
    Hopefully I'll have something basic to show soon (tomorrow? Friday?).
    How's it coming along then?

    Leave a comment:


  • MattH
    replied
    An update:
    It's slow going for me on this project for several reasons. One is a lot of the beginning is just arrays and lists and lists and lists of possible factors. It's difficult to keep limited for a 'proof of concept'. Along the same lines, it's hard to even make one crime "fork" (i.e. burgulary without assault/murder) because of the number of possible twists that have to be recconed with individually. Hopefully I'll have something basic to show soon (tomorrow? Friday?).

    Leave a comment:


  • okblacke
    replied
    Originally posted by vovan
    Hehe. The whole "a function can return multiple values" thing had my jaw on the floor for a while.
    Eminently sensible. There's a distinct benefit in being able to keep parameters static and only return values. More languages should do it.

    Leave a comment:


  • MattH
    replied
    Okay, I've started working on a prototype in python. Maybe I'll be able to get somewhere...

    Leave a comment:


  • vovan
    replied
    Originally posted by MattH
    I'm reading up on Lua now, looks interesting. Just wonder if I can wrap it around my brain, let alone my programs.
    Hehe. The whole "a function can return multiple values" thing had my jaw on the floor for a while.

    Leave a comment:


  • vovan
    replied
    Originally posted by Boris Godunov
    221B Baker Street was made into a computer game. A fairly old one, at that.
    Ah, yes, I actually remember that one. The thing about it though was that it was a rather close "port" of the board game, and so it was only mostly fun to play with several people. If you played alone, the whole "Press key to roll" thing that limited the number of your moves untill you next rolled was quite annoying. It's a cool resource of starting material though.


    I seem to remember some old detective games that were pretty engrossing, though I can't think of the names of them. One had several mysteries, and you went to various locations around a town finding clues and piecing it all together.


    Yeah, I looked around mobygames for old detective games to check out, and found this one called "Deaths by the Dozen" or some such. Basically, you have 12 murder cases to solve and you go around the different locations in town, talking to people, and searching locations for clues. Thing is, it again comes down to being fun when played in "multiplayer" mode - since there is no challenge in getting the clues themselves, but rather - only in trying to piece the murder together from as few as possible in order to beat the other players to the solution.


    The problem was the limited replay value. Once you solve a mystery, it's done. So Matt's idea for a randomly generated one would be awesome.


    Precisely.

    Leave a comment:


  • DinoDoc
    replied
    PC Gamer trashed the first one so I haven't bothered looking for info on the second. If they improved, I might check it out.

    Leave a comment:


  • Boris Godunov
    replied
    I played a Demo for the second L&O game, it wasn't too bad. Gamespot gave it a 7.6, which is decent.

    Leave a comment:


  • DinoDoc
    replied
    Originally posted by Boris Godunov
    Anyone actually played the Law & Order games?
    They suck according to reviews. The CSI games too.

    Leave a comment:


  • Boris Godunov
    replied
    Originally posted by Sava
    seriously... being a detective might be fun to watch on TV, like Law and Order , but it would be boring and monotanous for a game.
    I'll be sure to tell the detectives I know that they should find their job boring and "monotanous."

    Is there any BAM you won't make?

    Leave a comment:


  • Boris Godunov
    replied
    221B Baker Street was made into a computer game. A fairly old one, at that. You can find it at the site that shall not be named.

    I seem to remember some old detective games that were pretty engrossing, though I can't think of the names of them. One had several mysteries, and you went to various locations around a town finding clues and piecing it all together.

    The problem was the limited replay value. Once you solve a mystery, it's done. So Matt's idea for a randomly generated one would be awesome. I would certainly check it out.

    Then you have those ones which relied on questioning witnesses a certain way to unlock the right path. Murder in the First is a prime example. The problem was you could just practice hit-and-miss questioning until you got it right.

    Anyone actually played the Law & Order games?

    Leave a comment:


  • MattH
    replied
    Well, our breaks are spread out. We have one week for Christmas (excuse me- 'holiday break'), one week somewhere in late Feburary ('Mid-Winter Break') and one week for Easter (otherwise known as 'Spring Break').

    I'm reading up on Lua now, looks interesting. Just wonder if I can wrap it around my brain, let alone my programs

    Leave a comment:


  • vovan
    replied
    Originally posted by MattH
    Now that it's spring break I'll be able to get started.
    Ohmigawd! My finals week is two weeks from the coming monday, and you are just having the Spring Break? Then, again, college starts in the beginning of august.

    Any ways, I recently discovered Lua and how it can be bound with C/C++ apps, and now my head is swimming with ideas. You could do so many sweet things in relation to a game like this when you got a powerful scripting engine... Maybe I'll give this a stab as well, after the finals. I hope to see something from you by then, though.

    Leave a comment:


  • MattH
    replied
    Oh, yes yes. Bumping the whatnot- I haven't been getting e-mails about this thread .

    Now that it's spring break I'll be able to get started.

    Leave a comment:


  • Zopperoni
    replied
    The second CSI-game ("Dark Motives") is a large improvement over the first game, but as pointed out, it offers no replayability.

    If you do...acquire... the game, set the difficulty to maximum at the start for at least a bit of a challenge.

    Leave a comment:

Working...
X