OK, so I was thinking about an old episode of the Justice League cartoon, where Superman and Wonder Woman are trying to recover an ancient artifact that is part of the key to Hades because... you know what? Never mind. The point is, the artifact is protected by a curse that makes each one see the other as a demon, so they start fighting. There's a similar idea in an old episode of the Street Fighter animated series (I believe it predates the Justice League episode) where Ryu and Ken enter a cave which makes each see the other as a living statue, and of course they fight each other. For a better idea of what I mean, check out the Contract - the Cretcher cyborg is a perfect example.
So then I thought: bloody hell, why can't you do that in a game? Basically, a split-screen game where each player sees the same terrain and other players in a completely different way. Picture: you're running down a steel corridor in a high-tech cyborg part production factory, and you run into a combat cyborg with a chainsaw for a hand. You raise your machine-gun and take aim... meanwhile, your friend is exploring an ancient and cursed castle, when he rounds a corner and comes face to face with a hideous demon, all fire and brimstone. As the creature takes a deep breath and prepares to spew demonic fire at his face, he raises his sword and prepares to attack... cool enough online, but even better in split screen where you can see yourself through your opponent's eyes.
I believe there is something a little similar in Demon's Souls, where online players appear as ghosts or something (never played it), but you still see the same landscape. Of course games like Area 51 and Haze, which had special vision modes, allowed people to get different views, but that's not quite the same as entirely different realities that overlap.
Clearly this is related to my existing plan for the "spirit world" in which you see different things overlapping, but in this case the focus is not on you seeing different views, but rather on different people seeing the same thing in different ways (I'm sure there's a metaphor for life in there somewhere...).
I'm actually thinking a third person game would work better for this, so in split screen you can step alongside your friend and see the same scene (including your characters) and see the differences. Using headsets or when online you could even hear different sounds - imagine you talk to your friend online and the sound of you voice is modified to make you sound like a robot, while he sounds like a monster or ghost. Every player could decide separately what they are - robot, samurai, space marine, knight, cop etc. and the whole world and everything in it reflects that reality, perhaps you would never know what they were seeing. This could have game play implications if characters of different "realities" had different stats and abilities - for example, a knight or samurai has a 1-hit-kill melee attack but only very slow firing projectile weapons, so the decision about whether to close in or firefight from a distance is critical. Alternately, you could see everything as it would be in your reality except human players, who would appear to you as they see themselves, creating some interesting visual scenarios. For example picture a co-op game where you're a space marine battling aliens alongside a samurai.
Now I realise that there are serious issues with the idea, namely loading two completely separate sets of textures and models for everything (even animations and perhaps even sounds) will damn near double the memory requirements, so everything will have to be downsized to compensate for that. But the fact is there's plenty of stylized games which don't push system limits yet are still enjoyable and visually pleasing. Portal wasn't graphically amazing, but the graphics were perfectly suitable for the setting and it was a great game. When playing online there won't be any problem at all of course.
So the question now is, is it worth trying to actually do something with this idea? Of course I can't be too ambitious, but if it seems feasable later on in the project I would like to try.