Print Story Paranoid
By squigs (Fri Feb 24, 2006 at 03:48:18 AM EST) Board games, Computer Games, Movies, News, Money (all tags)
Serenity is an overrated pile of reasonably goodness.

You're a traitor, dammit!

Money laundering

Physics, physics physics...

People want to watch Serenity instead of board gaming next week.  Not really sure I can be bothered watching the film again.  I mean I liked it, but I just can't get obsessed about it.

Joss Whedon has a large band of worshippers.  This is why Serenity was voted film of the year.  They could televise Joss's shopping list and a load of Buffy and firefly fans would watch it if they know Joss wrote it. 

And Serenity was a pretty okay film, despite the usual failing that TV to movie conversions have (too many main characters, need to introduce characters without boring the established fans.  But I really can't be bothered watching it again. 

But anyway - This week it was actual gaming.  We played the Paranoia card game.  Lots of treacherous goodness, except everyone was way too nice about it.  They wanted to complete the missions.  Completing the missions is easy if we all cooperate.  But then other people will win.  The game only works if played mercilessly.  I decided to start picking on the nicest players. 

The BBC talks about laundering the money from the robbery on Tonbridge.  How can you clear up that amount of money?  Seems some of it is non-sequential and untracable, so that's okay, but the rest of it was coming from the bank of England.  You can't take it to the bank.  They know where it came from.  You have to find a way to spend it, and there's a limit to how much you can spend in cash without raising eybrows.  Probably portable consumer electronics, sucgh as iPods and digital cameras is a good start since it's compact for its price, and can be easily disposed of on ebay. 

But still, using this method, you need to spend a lot of time just shopping and selling. You might be able to dispose of say £50 000 in a day, but you can't do this every day, and you'll need to move around a lot because the money will eventually be noticed when it's paid into banks (There's got to be some tracking going on somewhere). 

My game's collision engine has got way too complicated.  The idea I initially had was that all collision volumes can handle distance from points, and hoitting planes and lines, then each volume is a class that has methods for dealing with these and a means of representing itself in terms of points, planes, and lines. 

That means there's quite a lot of work to do each time I want to add a new mesh type, and if I want to change something, I need to change all of them.  Just treating them as arbitrary meshes is too slow when you have a complex mesh.  I could always simply do unions of sub meshes, but is there a better way of doing this?  And do I need to know how hard I've hit an object?

< Is it because I is fallen on my arse, AYE!!!!!!!! | BBC White season: 'Rivers of Blood' >
Paranoid | 16 comments (16 topical, 0 hidden)
collisions by tps12 (2.00 / 0) #1 Fri Feb 24, 2006 at 04:11:24 AM EST
Are you doing the usual trick of checking for near collisions with bounding boxes or bounding spheres? Using arbitrary meshes shouldn't be too slow once you've narrowed down the list to objects that are actually close to one another.

Yes, but... by squigs (2.00 / 0) #2 Fri Feb 24, 2006 at 04:25:23 AM EST
It's checking against the terrain. 

The Terrain is made up of about 5000 polygons.  Simply testing against each one really isn't going to work...  In the case of a simple grid mesh I can make this a lot quicker, quite easily, and there are ways of doing this for more complicated meshes.  Speed is fine, but implementation time is slow, which negates the point of having a nce OO architecture in the first place. Each time I add a new one I need to reimplement it for points, planes, lines and generic objects. 

Which now I mention it I think I know where I'm going wrong.  Perhaps all of these types should implement the CollisionVolume interface as well.  Then I can generalise a lot.

[ Parent ]
divide the terrain up into cuboids by DesiredUsername (2.00 / 0) #4 Fri Feb 24, 2006 at 04:27:44 AM EST
Then only check those polygons of the cuboid the object is in.

Now accepting suggestions for a new sigline
[ Parent ]
You're optimising the wrong part by squigs (2.00 / 0) #7 Fri Feb 24, 2006 at 04:56:32 AM EST
I want to reduce programmer effort. 

My requirements:
Add new collision volumes easily as subclass of CollisionVolume.
Be able to test any collision volume against any other without having to write n*(n-1)/2 collision routines.
Not spend a week writing one of these.

[ Parent ]
terrain by tps12 (2.00 / 0) #6 Fri Feb 24, 2006 at 04:34:49 AM EST
When I did something like that, the engine I was using let me shoot out a ray directly downward and tell me at what distance it hit the terrain. If that's shorter than the radius of the bounding sphere, you handle the collision. Doesn't work for very steep terrain, though.

[ Parent ]
How hard by DesiredUsername (2.00 / 0) #3 Fri Feb 24, 2006 at 04:26:04 AM EST
If you want to rebound realistically, yes.

Now accepting suggestions for a new sigline
Clarification by squigs (2.00 / 0) #5 Fri Feb 24, 2006 at 04:30:22 AM EST
I mean how deeply into the other object I travel in a single engine tick.  If 2 spheres of radius 1 are 1.5 units apart, do I need to know that, or is it okay just to know they're touching?

[ Parent ]
Laundry by Vulch (2.00 / 0) #8 Fri Feb 24, 2006 at 05:05:31 AM EST

You sell the money. Find some large scale fences who'll buy a million for 100K clean cash, they sell it on 10000 at a time for 3000, eventually it lands up in pubs at 100 for 50. By the time any of the traceable notes reaches a bank there's no hope of getting back to the source.

Risky though... by squigs (4.00 / 1) #9 Fri Feb 24, 2006 at 05:14:56 AM EST
Okay.  This was well organised.  We can assume they have a fence.

But considering the fence's ROI is going to be similar if they shop the criminals, there's always a risk of being turned in.

[ Parent ]
If they are looking by Vulch (2.00 / 0) #11 Fri Feb 24, 2006 at 05:45:55 AM EST

...To retire abroad almost immediately, and can avoid prosecution for their fencing activities, then shopping them is an option. Anyone able to deal with the size of transaction is likely to get their income from the drugs trade though, which makes cooperating iffy.

[ Parent ]
Laundry by duxup (2.00 / 0) #10 Fri Feb 24, 2006 at 05:25:37 AM EST
Somehow the traceable cash needs to be disposed of.  I don’t see many ways to use that cash. 

As for the untraceable cash with the serial numbers that aren’t known here’s what I’d do:

Sit on it.  With that much $ I suppose some people will want to start living it up but I think that’s a bad idea, someone is going to spot you.  Maybe not finger you for a bank heist but being “that suspicious guy who is buying lots of stuff” isn’t something people forget quickly. 

I’d start by adding a bit of the cash to my wallet.  I’d buy some stuff here or there but I don’t see much of a rush.  It could just be your sort of safety net or mad money you’d spend or deposit over time.  Spending a bit less on food, or other things and having a job (yeah still working) will build up some ligit cash in the bank over time.

Granted having that cash stored somewhere would be a risk as well, but laundering it with other people is a big risk too IMO.

Mobile tanning salons by Rogerborg (2.00 / 0) #12 Fri Feb 24, 2006 at 10:27:58 AM EST
It's the new Ice Cream Van racket.  You buy a big van and some cancer-beds, then bank an extra £10K+ a month cash income from it (on top of anything that you make if you can be bothered actually running it as a business), making sure that you pay all your bank fees and taxes so that it's in nobody's best interests to look too closely at where the money is coming from.  This is according to a cow-orker who claims that who wife was running one of these legitimately, and had a run-in with the local mob.

Is your terrain regular or irregular?  If it's a regular height field, then the problem becomes simpler by an order of magnitude.

Metus amatores matrum compescit, non clementia.

It's not an algorithm problem by squigs (4.00 / 1) #13 Sat Feb 25, 2006 at 12:23:38 AM EST
It's an architecture problem.   It is a regular height map.  But lets suppose I want to add a new type - an arbitrary mesh.  I can probably carve it up with a BSP tree or something.  This then has to be something we can test against a sphere, a box, or an arbitrary mesh. 

If I then decide I have a lot of long cylindrical objects, I might want to make a cylinder collision volume.  This has to work with collisions against a spher, box, mesh, and both types of landscape as well as another cylinder.  How do I add a new type without having to handle every case? 

[ Parent ]
Let's suppose that you don't. by Rogerborg (2.00 / 0) #14 Sat Feb 25, 2006 at 02:05:17 AM EST
Honest to TISG, the biggest cause of garage games not getting finished must be developers who switch from writing a game to writing a generic engine.  Does your game design need cylinders?  Then add them from the start.  If it doesn't, stop dicking around and get on with implementing what you designed.

Metus amatores matrum compescit, non clementia.
[ Parent ]
Well, okay... by squigs (4.00 / 1) #15 Sun Feb 26, 2006 at 12:15:15 AM EST
But I'm writing a generic engine.  The actual game design is only a recent thing since this engine needs to go somewhere.  I have no illusions about actually finishing anything.

The collisions mechanism already is generic.  The problem being that it's a hell of a lot more complicated to maintain than I was expecting.  I need a simpler way of doing this.

I'm a bit reluctant to have the entire collision handler only work for cars driving around a track.

[ Parent ]
In that case by Rogerborg (2.00 / 0) #16 Sun Feb 26, 2006 at 04:55:43 AM EST
Do it however Crystal Space, Ogre or Tokamak does it, as you're just duping them anyway.  Duping all the time.

Metus amatores matrum compescit, non clementia.
[ Parent ]
Paranoid | 16 comments (16 topical, 0 hidden)