Coding is a Text Adventure 122
Wired News is running a story about a new approach to crossover working and gaming turning your coding into a MUD-style adventure. Playsh is a "narrative-driven 'object navigation' client, operating primarily on the semantic level, casting your hacking environment as a high-level, shell-based, social prototyping laboratory, a playground for recombinant network toys." Great, now they are combining two of the most horrible addictions in my life.
Usability and Games: 17 Excellent References (Score:1, Offtopic)
Re:Usability and Games: 17 Excellent References (Score:1, Offtopic)
Mea culpa. And yes, I feel the (current) -1 Offtopic is deserved.
The 17 game and UX references are still useful, despite my faux pas.
Re:Usability and Games: 17 Excellent References (Score:3, Interesting)
Restart? (Score:5, Funny)
Re:Restart? (Score:5, Funny)
Re:Restart? (Score:2)
Re:Restart? (Score:2)
Re:Restart? (Score:3, Informative)
Bah. I'll kill him with my bare hands!
Chris Mattern
Re:Restart? (Score:2, Funny)
Oh, THAT definition of "eaten." Nevermind.
I can just see it now... (Score:5, Funny)
Re:I can just see it now... (Score:5, Funny)
"INSERT INTO Door (Keyhole) VALUES ('KEY') WHERE Door.Locked = 1"
"UPDATE Monster SET Monster.Dead = 1"
"INSERT INTO Inventory (SELECT Loots FROM Monster WHERE Monster.IsDead = 1)"
"UPDATE Princess SET Princess.Saved = 1"
I win! That means...
"SELECT Baby FROM Hero INNER JOIN Princess"
Re:I can just see it now... (Score:5, Funny)
Am I the only one here that has never seen SQL porn before?
Re:I can just see it now... (Score:1, Funny)
Re:I can just see it now... (Score:5, Funny)
Just don't do a Cartesian Join, or else you better buy a diaper company.
Re:I can just see it now... (Score:1)
Re:I can just see it now... (Score:5, Funny)
(the following contains pornographic material, viewer discretion is advised)
SELECT Baby FROM Hero INNER JOIN Princess ON Hero.Sausage = Princess.Taco
I suppose that wouldn't quite be right, since we all know that sausages do not equal tacos. Well... I suppose some people might be confused.
Maybe it would be better written as
INSERT INTO Princess (Taco) SELECT Sausage FROM Hero WHERE Hero.id = 'me'
This also has the advantage of not producing a Baby result.
Additionally, for those of you who don't have a Princess, you can create one by using the SELECT...INTO statement. But this method suggests transvestite/transgender properties, as explained below.
SELECT Sausage INTO Princess FROM Hero WHERE Hero.id = 'me' (results in Princess having a Sausage, transvestite results)
or
SELECT Sausage AS Taco INTO Princess FROM Hero WHERE Hero.id = 'me' (results in Princess having a Taco, but you're calling your Sausage a Taco, transgender indications)
Re:I can just see it now... (Score:1)
Re:I can just see it now... (Score:1)
SELECT Baby FROM Hero INNER JOIN Princess ON Hero.Sausage = Princess.Taco
SELECT Princesses.Baby FROM (Heroes INNER JOIN Sausages ON Heroes.oid = Sausages.HeroID) INNER JOIN (Princesses INNER JOIN Tacos ON Princesses.oid = Tacos.PrincessID) ON Sausages.Location = Tacos.Location WHERE Princesses.Saved = 1 AND Heroes.oid = 'me'
Of course, this still tends to result in at least one row containing a Baby. To fix this, you should probably run this prior
Re:I can just see it now... (Score:3, Funny)
Thank you!
Re:I can just see it now... (Score:1)
Re:I can just see it now... (Score:1)
Re:I can just see it now... (Score:5, Funny)
Sounds familiar (Score:3, Funny)
Re:Sounds familiar (Score:5, Interesting)
From a practical standpoint, it makes a lot of coding intuitive and makes "plugins" nearly automatic. For example, objects can look at what is in their "environment" (i.e., what is holding them). If you have an object that calls "insert_foobar()" on every object sitting inside a message board object when someone tries to foobar the board, if you were to take it out of the message board and stick it in a player's inventory, it would try and foobar their inventory when someone foobars the player.
The fact that you can simply pick up and move objects around makes visualizing your tasks so simple. You can even have fun with how people interact with your objects; if you want an object that will perform some actions on someone's player object, for example, you could make it be a bread that they eat. You could have an object that displays information be a firework that you light and launch into the sky. The possibilities are endless.
Re:Sounds familiar (Score:1)
I still remember the unwelcome sunrise and amber glow of monochrome Hercules terminal... "Plugh"...
The only game I play is "vi" ... (Score:5, Funny)
Re:The only game I play is "vi" ... (Score:5, Funny)
Re:The only game I play is "vi" ... (Score:2)
Re:The only game I play is "vi" ... (Score:2)
Re:The only game I play is "vi" ... (Score:1)
Wonderful (Score:5, Funny)
Later, our hero Person signs up for a banking account and pays his credit card bills using the AutoBillPay spell. Person is then kiilled by the surcharge monster.
Was it so difficult? (Score:2)
I'd much rather navigate to my function with:
North
North
East
North
Look
Re:Was it so difficult? (Score:3, Funny)
Obvious exits are:
formatData(scroll),
writeData(scroll),
deleteData(scroll).
You see:
a scroll with writing on it.
Email Man, Printer Guy and Browser Boy are here.
Re:Was it so difficult? (Score:3, Funny)
addictions? (Score:5, Funny)
Hate to break it to you, but heroin and hookers were combined a loooong time ago...
What fun! (Score:5, Funny)
I always knew my job would turn out like this (Score:5, Funny)
Re:I always knew my job would turn out like this (Score:5, Funny)
Code Maze
You are in a maze of twisty little subroutines, all alike.
> N
Conference Hall
You see a pointy haired manager here.
Your torch has been extinguished!
>look
It is dark. You are likely to be eaten by a deadline.
Uh oh (Score:3, Funny)
1. Write futuristic novel
2. Patent every concept in the book
3. Wait for people to make it happen
4. Blind-side them with your 1337 patent!
5. Profit!!!!
One Small Step (Score:5, Funny)
"Great, now they are combining two of the most horrible addictions in my life."
Now imagine how the productivity numbers would skyrocket if they managed to mix programming and pr0n.
(Granted, I've already written plenty of obscene code in the past...)
Re:One Small Step (Score:5, Funny)
Well, it's not exactly programming, but there's always:
talk, date, cd, mv, unzip, strip, look, touch, touch, condom, fsck, fsck, more, yes, yes, fcsk, uncondom, condom, more, yes, yes, uptime, gasp, more, more, yes, unmount, make clean, shutdown now
Re:One Small Step (Score:3, Funny)
Fixed that for you.
Re:One Small Step (Score:1)
Re:One Small Step (Score:2)
How about a simple shell? (Score:3, Interesting)
> move all files from c:\wherever\ and below that end with
That shouldn't be too hard, actually, we have systems that can speak Turing-able English so long as you restrict the subject domain...and once you had that, it should be trivial-ish to get the right speech recongnition component in place, if you wanted to go that route...
Re:How about a simple shell? (Score:2)
Re:How about a simple shell? (Score:2)
Re:How about a simple shell? (Score:4, Insightful)
*insert examples here*
Re:How about a simple shell? (Score:2, Funny)
I think if you remove the asterisks that already is a valid AppleScript example...
Re:How about a simple shell? (Score:2)
Re:How about a simple shell? (Score:2)
Of course not all shells are created equal...I heard in some you can do something like "move *.log *.log.bak" and it knows you mean. (Admittedly I'm playing fast and loose with she
Re:How about a simple shell? (Score:2)
"C-colon-backslash, enter"
"delete star-dot-star, enter, yes"
This was, of course, in the Windows 3.1 days. Securit
Slightly OT... (Score:2, Interesting)
Prior art (of a sort) (Score:2, Informative)
MUDdy adventure (Score:3, Funny)
Go North
Find Door
Open Door
Leave Work
Find Home
Go Home
Find Bed
Go to Sleep
END
Did I win?
Re:MUDdy adventure (Score:2)
Drop cellphone in toilet
Give crackberry to homeless man
Very obscure, but that just helps out the Hint Guide department make more sales.
Re:MUDdy adventure (Score:2)
Novel enhancement to an old idea (Score:5, Informative)
(Mud Shell [everything2.com], now defunct, was featured on Slashdot in 2001.
There's also the New Adventure Shell, based on Doug Gwyn's Advshell [ifarchive.org], and John Cocker's Advsh [ifarchive.org], both written in 1984.
The basic concept also shows up in the adventure game found in Emacs.
But, playsh looks like it includes a special enhancement which I think is pretty cool. According to the article,
Now, that's pretty cool.
Reminds me of an old story.. (Score:5, Funny)
About someone who wrote a Zork styled system for configuring linux, here on slashdot many years ago. One of the comments that came back was this:
>Take SCSI
Cannot do that
>Take SCSI
SCSI did not budge
>Take SCSI
You got SCSI
Re:Reminds me of an old story.. (Score:2)
I was waiting for someone to bring this one up.
Kernel configuration. It's not just a job, it's an adventure! [iu.edu]
Re:Reminds me of an old story.. (link) (Score:2)
laughed my socks of at it first time round
Bad design... (Score:4, Interesting)
In fact, I would read years later in "Hackers" by Steven Levy that the original Adventure text game would put the player in the similar position and that typing YES was the answer. I was kicking myself for not doing the obvious. Was this bad game design or was I being too literal in following the instruction manual?
Re:Bad design... (Score:2)
Yes
The entire game trained you to interact with the world in a specific way, then required you to completely break with the convention, end your suspension of disbelief, and "think outside the box" in order to beat it.
I think it's just as bad as a prose author lying to the reader. What if you got to the end of a mystery novel and then found out on the very last page that something given to you as fact earlier
Re:Bad design... (Score:2)
Don't RTFM (Score:2)
Nobody ever reads the manual.
(And I'm a tech writer... *sigh!*)
Re:Bad design... (Score:1, Interesting)
So there I was... (Score:1)
Great... (Score:1)
Productive (Score:2, Informative)
Brilliant! (Score:2)
A Cow Says "MOO!" (Score:5, Interesting)
For example, you might instantiate a class, and the object created then becomes an in-game object that you can manipulate like any other. It inherits its data and behaviors from its parent. But, that object is also a class that you can extend, and others can be instantiated from it.
In MOO, when you type a command, the game engine matches your command against "verbs" (methods ) found on the object representing you in the game world. The first word of the line you typed becomes the command to match, with the rest of the words being parameters. (You can also specify that verbs not be matchable, only allowing them to be called from within code). It's possible to have verbs that work either as commands or are callable from within other verbs.
If you want to add a new command to yourself, you just add the verb and program it. If it's something to be shared, you copy it to an appropriate ancestor, then delete your own copy; you and everyone else inheriting from that ancestor gains the command. (There's security in place; if you're an administrator you can do anything but if not then you need the cooperation of the owner of that ancestor object or an administrator.)
Ultimately, a MOO is just a scripting language and virtual machine, with a network interface and some security features to allow collaboration without granting all programmers full read or write access to each others' code and data. Implementation of the player / room / carryable object paradigm is done in the scripting language, not the engine itself. It's flexible enough to write Web servers in, and pretty damn fast for a language where everything is late-bound and weakly typed.
Interestingly, while most MOOs used internal mail and public forums, and would send email for various purposes (coded right in the scripting language), and many of them listened for HTTP connections and translated part (or all) of the game world into HTML, none of the efforts to create large MOO networks (a la IRC) ever got very far.
Re:A Cow Says "MOO!" (Score:2, Interesting)
Re:A Cow Says "MOO!"... 3D OpenCroquet (Score:1)
www.opencroquet.org
A hollow voice says "plugh" (Score:4, Funny)
Colossal Cave Adventure [wikipedia.org]
So....... (Score:1, Funny)
Re:So....... (Score:2)
(It was a joke right? I think it's text based no?)
Random rewards (Score:5, Insightful)
The thing people need to understand is that the reason games are fun is because of the random reward structure in them. You don't get random rewards when you code...only random problems with sometimes unlikely solutions.
Re:Random rewards (Score:2)
Re:Random rewards (Score:1)
First, you make an estimate that to code this you would need about a week. Out of your lifetime of experience you know that it would be prudent to say 4 weeks to the customer. Then, in 4 weeks you figured about 4 problems. But, shit, you got one left. It should take about a week. In a week you solved that problem, but, shit, you got one left. It should take about a week. In a week you solved that problem, but, shit, you got one left.... Repeat previous 2 sentences
I saw a presentation of Playsh (Score:4, Informative)
http://ptufts.blogspot.com/2006/03/playsh-playful
Matt coded 90% of the Playsh environment in-game. Pretty cool.
--Pat
You are sitting at a desk... (Score:5, Funny)
A coworker, Jeff, comes by and mentions that there's a bug in the program you wrote for the company. Seeing as how it's been six months since the last bug report, you eye him cautiously and ask him what he does before the bug appears. "Click a button, or something" is his resposne. You're suddenly reminded that you have a doctor's appointment to check your blood pressure on Monday.
You have:
-a headache
-pencils
-potential high blood pressure
-a nagging coworker
-a deadline
Action:> Attack co-worker
Jeff, who moves around the office as opposed to sitting in a chair for eight hours like yourself, nimbly dodges as you attempt to fling a pencil into his eye. "Uh, sorry," you say. Jeff shrugs.
Action:> Look at Jeff's computer
You follow Jeff over to his computer, where he sits down and violently moves the mouse to wake it up. "Why didn't you leave the screen as is when you came to get me?" you ask. "Oh, this problem is from last Tuesday," he answers. You wonder if you can move the Doctor's appointment up. "Okay," he says, as he opens Acrobat Reader. He presses some buttons, not caring if you're able to see what he's doing, and suddenly gets a blue screen of death. "See?" You realize that all he did was somehow hard crash Acrobat Reader- a program completely unrelated to your work.
Action:> Ponder homicide
There's not a jury in the world.
Jeff is looking at you expectantly.
Action:> give up
As Jeff stares at you expectantly, you suddenly burst into tears. Leaning against the wall of his cubicle, it cracks and sags backwards as you slow sink to the floor and assume the fetal position. The men in white suits arrive a half hour later.
Total score: -2
Play Again? y/n: n
Re:You are sitting at a desk... (Score:1)
too much NetHack, too much NetHack... (Score:4, Funny)
What do you want to read? [ijk or ?*]
>?
Variables
i - tmp
j - tmp2
k - tmp3
(to self): "Wait, what were the variable types for each? hmmm... how about "
>j
As you read the variable, they ALL disappear. Your fun weekend plans crumble into tiny threads and fall apart! Debug this five-year-old garbage you wrote instead - oh look, you didn't use comments or naming conventions!
(to screen): "ARRGGHH!! I KNEW I should have dropped everything on the Simulated Altar when I passed it!"
No, the cat does not "got my tongue." (Score:1)
> Great, now they are combining two of the most horrible addictions in my life.
And if, by coding, you gain access to an object room and open the chest, and there's pr0n goldpieces in there, you'll really be in for it!
Great! (Score:4, Funny)
Re:Great! (Score:1)
Lions and Tigers and Bears, Oh My... (Score:1)
why just coding in a MUD style? how about running? (Score:1)
multiply two matrices?
LOOK:
- you're on the row 12, column 32, the diagonal is under.
GO LEFT:
- you're on the row 12, column 33... aaa, sorry, 31.
ADD PREV:
- prev who?
Dungeons and Managers (Score:2)
Nonsense (Score:2)
All the jokes are funny, etc, but, come on guys, you do realize that this is complete nonsense, right ? RIGHT ????
Programming is hard enough without adding absurd layers of abstraction and indirection. This reminds me of the ridiculous 3D "programming environments" in movies like Swordfish (which I though was a very enjoyable movie, btw).
Does anyone remember INFORM? (Score:1)
Re:Does anyone remember INFORM? (Score:2)
Re:Does anyone remember INFORM? (Score:2)
Z Snake (Score:2)
Now combine that with coding/testing Zope 3 [zope.org] from a command line... and you've got some serious grue.
Adventure - Coding & Hacking (Score:1)
OpenCroquet (Score:2)
a mud for coding... whats next? (Score:1)