IdentiThief by PROGRAM_IX

[raw]
made by PROGRAM_IX for LD25 (JAM)
Run with 'python identithief.py' on Linux or (theoretically) Mac. Windows: EXE thanks to Spiridios (apparently needs to be ended by Task Manager), source is also available.


Premise: You are an identity thief, sniffing packets on an unsecured wireless network. Sniffing four unique packets from a single computer will yield that computer's identity, allowing you to impersonate them.
Goal: Isolate any one computer in the network by stealing the identities of all the others.
Caveats:
-The packets are random, so sniffing one may not necessarily get you closer to stealing its owner's identity.
-If a packet containing a part of the owner's identity you have already sniffed reaches its target, that part of the identity is no longer valid to you, and must be sniffed again. Keep track of this by the pips on each computer screen - 3 means you only have one more unique packet to go!
-The users on the network will get suspicious if too many packets disappear without any arriving safely. This is measured by your 'dodginess' number. Keep this number below 5 by allowing some packets to reach their destination. Successfully stealing an identity will also reduce dodginess, as you are now impersonating that node of the network.

Time: 12 hours or so over Saturday night to Sunday night

Sounds: Twenty minutes' work in Bfxr and Nanoloop

Rules bent: I used a Pygame library I've been working on over the last few months for my final project at university. Although I plan to open-source it, it's not really ready for dispersal yet (hence my rulebreaking). The documentation isn't there, and I found a couple of design issues while making this game. However, I am including a one-file version of it here. No promises on usability yet, but if anybody is interested in where I'm going with it, feel free to contact me.

Controls:
(Menu)
Left click - Start game
Right click - Quit game

(Game)
Left click - Capture packet
R (when in game over screen) - Restart
Escape - Quit to menu
P - Pause

Feedback

jtoper
17. Dec 2012 路 03:34 UTC
So why is there no version for windows?
Cy4n1d
17. Dec 2012 路 10:12 UTC
Couldn't play it. Have only Windows and MAC. sorry. Will give you a rating for the screenshots.
馃帳 PROGRAM_IX
17. Dec 2012 路 22:06 UTC
Technically what is there should run on Mac. Not sure about Windows, but certainly nothing very Linux-specific is there. I just wasn't able to test it, so I didn't want to list it as Windows-compatible.
馃帳 PROGRAM_IX
17. Dec 2012 路 22:14 UTC
Sorry you guys couldn't play it. I didn't think I would be able to participate at all this time around, and even though I did get a decently 'full' game, I agree it's a bit lacking in terms of usability.
Spiridios
20. Dec 2012 路 07:34 UTC
I created a Windows exe build at https://dl.dropbox.com/u/19107686/identithief.zip Program_IX, feel free to add the link to your entry, or copy it to your own host if you wish.
Dark Acre Jack
23. Dec 2012 路 03:16 UTC
Ran the EXE above on Win7/64, ran fine but could only be killed by ending the process via the Task Manager.

I didn't really understand the game, I guess I need to know more about how packets work. Also not sure how I'm the villain. The little drum march was nice.
馃帳 PROGRAM_IX
26. Dec 2012 路 17:55 UTC
Thanks a lot, Spiridios! I'm new to LD, appreciate the help with compatibility.

Jack, that's odd. The right-click to quit thing should raise a SystemExit exception, if memory serves. Maybe that doesn't work the same on Windows?

For a start, that's not really how packets work. It's not a great abstraction, I just wanted to use that general idea of sniffing packets to impersonate computers. You're the villain because you're isolating this one person by impersonating all the other computers, i.e., all traffic that this computer thinks is going to its peers, is now going to you.

I agree, though, it's not the best abstraction, and even with its relative simplicity I'm sure I did something wrong. Thanks for playing it anyway!
Spiridios
27. Dec 2012 路 05:40 UTC
You're welcome Program_ix! I had py2exe and pygame2exe installed and setup from a previous LD so it was pretty quick to do.

The Windows exe exits just fine on both mine and Serilyn's Windows 7 x64 boxes, so I'm not sure what problem Dark Acre Jack had. Hitting esc to exit from playing the game and then having to right click to exit the main menu is slightly confusing, maybe that was the problem?

I realized I forgot to include the script that creates the exe - it's included in the zip linked above now if you want to use it in the future. It needs py2exe installed and it's a modification of this script: http://www.pygame.org/wiki/Pygame2exe
馃帳 PROGRAM_IX
29. Dec 2012 路 10:57 UTC
Cool, thanks. :)

Yes, one limitation of the framework I'm using/developing is that different states (like menu and game) share the same event handling engine, so if you pressed Esc to exit the main game, it would exit the menu immediately, as well. Using left-click/right-click in the menu was the solution I came up with to avoid this. Not ideal, but then what is in an LD48 game?
csanyk
02. Jan 2013 路 00:53 UTC
Very interesting and unique mechanic, but it was very hard to understand how to play, based on reading the instructions. It seems that successfully stealing the identity of a computer must entail a good bit of luck, since you can't steal too many packets, you can't let one get through lest you need to re-steal it again, and you can't tell whether a packet is one you've stolen or not already by its appearance. I really didn't care for the music, it hurt my ears.
Cosmologicon
06. Jan 2013 路 21:16 UTC
Not bad. If you're not aware of it, you should consider entering the next PyWeek. It's a python-only contest, so everyone should be able to run your entries.
馃帳 PROGRAM_IX
19. Jan 2013 路 17:52 UTC
csanyk: You're accurate there. The game is mostly about playing the statistics - if you've already captured three of the packets from one computer, it's not worth the risk to jump on the next one you see if the suspicion/dodginess is high. I was going to add in something to show status of the packets, but I kinda liked the mystery of it. <shrug> Apologies for the harsh hi-hat-ish music, I put it together in a very short period and didn't feel like I could make an actual melody work.

Cosmologicon: I definitely will be entering PyWeek this year, if I have time. I knew about it last year but couldn't enter.

Thanks for the feedback everyone, it's been very instructive!