client/proc/Snapshot(args) // Args could allow for something like forcing the snapshot to be monochrome, or some sort of color filter
Here's how it would be used.
mob/verb/Take_Picture()
var/image/picture/p=usr.client.Snapshot()
usr << "Let's look at that picture..."
browse(usr,picture) // Probably messed something up here
How would this benefit a variety of people with a variety of games? Let's start!
1.) People who want to make simple programs, like image editors, or image generators, would now have an option to save created pieces of art.
2.) Shooting Games could use it as a 'flashbang' sort of effect, where the screen blurs a bit.
3.) Adventure Games could use it as record-type deal, where a player's events could be visually captured to be seen later on in a picturebook, for instance. Imagine looking up a picturebook with your level 70 character and looking at all the feats you've done, then giving that book to someone else!
4.) Racing Games could use it as a ''Photo Finish'' of the final stretch of the race.
5.) Strategy Games could use it to capture a gameboard image at the beginning of the turn, so the next turn, you can look back and know EXACTLY what moves have been played since last turn, visually.
6.) Action Games could use it as a screenshot feature, where you can share the screenshots with others.
Yes, I know BYOND has a built-in screenshot feature, a macro called .screenshot; however, there's little way to police these images, and developers can't really use those screengrabs in a game, it would be difficult to. Also, .screenshot can't be used in a proc so you can't make a new varaible that of a result of .screenshot, so there's a lot of functionality gone. The above listed features are not possible with the .screenshot command.