A psychic bodyguard FPS

#13 Same source used for simutaneous sounds

~cnx filed ticket on blackshades todo

3 days ago

023f455 Fix untested positional sounds

~cnx pushed to ~cnx/blackshades git

4 days ago

#Black Shades

Black Shades was one of the winners of the uDevGame 2002 contest, out of about 40 contestants. David Rosen aimed for a much simpler graphical style than in GLFighters and Lugaru in order to complete the game within the deadline. In Black Shades you control a psychic bodyguard, and try to protect the VIP (dressed in white) from a horde of zombies, snipers and other assorted would-be assassins.


#Unique Features

  • Infinite randomly generated city
  • Rag-doll skeletal animation
  • Soul release mode
  • Fluid aiming system
  • Stop assassins by shooting them, knocking them unconscious, disarming them, tackling the VIP out of the line of fire, or any combination of the above


Try to keep your VIP (the guy in white) alive as long as possible. The assassins will all try to shoot or stab him to death. You must do all you can to prevent this. Your reputation has preceded you, so the VIP has absolute confidence in your abilities and will completely ignore all the assassins. When an assassin is aiming at your VIP with a gun, you will psychicly see a line of sight extending from him to your VIP. This line will narrow and redden until it disappears and the assassin fires. Depending on the situation it may be best just to shoot the assassin(s), or to dive and tackle the VIP to the ground to avoid the bullet. Unfortunately your psychic powers do not show the line of sight of knife-wielding assassins.

If you are feeling overwhelmed you can use psychic aiming to temporarily speed up your thought processes and aim your shots better. If there are no visible enemies you may want to release your soul and look for nearby enemies. When your soul is released your VIP pulsates between blue and red, civilians between black and red, and assassins are solid red.

If you die or your VIP is killed, the level restarts. If you are interested in the theory behind this: you are a psychic bodyguard, so you can see small distances into the future. The failure only occured in a possible future which you are now going to try and avoid.


  • wasd = walk
  • shift = run
  • mouse = look
  • control = crouch/zoom
  • click = fire (while aiming) or smash (while running) or pick up gun (while crouching over a body and not aiming) or disarm (while not aiming)
  • q = aim or un-aim (important for picking up guns)
  • r = reload
  • e = psychic aim
  • z = toggle soul release
  • space = dive (while running forwards)
  • ctrl+g to grab/ungrab the cursor
  • alt+enter to switch to fullscreen and back again

Keys for debug mode:

  • tab = 3rdperson toggle
  • f = force push :)
  • shift-x = switch weapons

#Scoring System

  • 150 points for a successful disarm
  • 300 points for destroying a zombie (by blowing its head off)
  • 100+50x points for completing a mission where x is the mission number (i.e. 450 points for completing mission 3)
  • 75 points for incapacitating an assassin, +50 if he had a knife
  • -300 points for hurting a civilian
  • -200 points for allowing the VIP to die

The penalty for failing to protect the VIP is halved if you kill the assassin.

You can edit levels by setting Custom levels to 1 in the config and editing the customlevels.txt file in the data folder.


#Bare Hands

Smack people with them. Or if you want to be nice, walk or stand (don't run) near somebody with a gun and take it away.


Like bare hands, but deadly and with longer range. Look out for knife-wielding assassins, they are the most dangerous.


One shot with this should be enough to incapacitate any human target, but they may remain conscious for a second (this can be bad if they are about to stab your VIP, aim for the head).


Not as much ammo as the vanilla handgun, but one shot is an instantenous kill.

#Assault Rifle

This weapon has quite a kick and is bigger and more unwieldy than the handguns, but it has a large magazine and can fire quickly if necessary.

#Sniper Rifle

A bit more powerful than the magnum, with a scope. Very difficult to aim unless you are zoomed in (zoom by holding the control key).


Aim and shoot. Very powerful but somewhat inaccurate.


Hold down the mouse button to take out the pin, release the button to throw it. Crouch to change your mind and put the pin back in. You can knock people out if you hit them in the head, or of course you can just blow them to pieces.


Right now it's all compiling...

If you want fullscreen at startup, currently you have to -DFULLSCREEN. It is not recommended on OS X however as it seems to have a problem keeping the mouse properly grabbed, thus requiring some key combination.

The only known bugs are:

  • It doesn't work too well under classic emulation
  • Occasional collision detection issues
  • Turning virtual memory off can cause speed issues

#License and Credits

Black Shades was originally developed by David Rosen for a Macintosh game programming contest called uDevGame held by iDevGames.com in 2002 and released under the freeware uDevGame License. In 2021, David Rosen relicensed the game under the terms of the GNU General Public License version 3 or later.

Main menu music is included with permission from musician John Graham, Copyright 2002. Due to legal difficulties all other music is composed by David Rosen at the last minute based on some nice loops made by Carlos Camacho, hence the programmer music.

Artist David Drew modelled the assault rifle, sniper rifle, handgun, shotgun and grenade.

David Rosen's other friends and beta testers also helped during the early phases of development.

Black Shades was ported to other operating systems by Steven "relnev" Fuller, Dan "theoddone33" Olson, Ryan "icculus" Gordon and Zachary "zakk" Jack Slater. The Bug was fixed by Toby Haynes.