Thursday, October 18
We've got it! We got our SDK! Well, I mean, we don't HAVE it yet, but we have a promise, and a promise that times nicely with my being done with Delicious Library 2 and looking for something to do before I start on v3.
So what are we going to do with it? Sure, we're going to port Peggle (from PopCap), the BEST GAME EVER, and I hope there's a native version of Xeno Tactics (please write me if you know who can make this happen).
BUT WHAT ELSE! We need to take advantage of the incredible and unique features of the iPhone... So, I'm going to try something new in the comments, here, and encourage people to brainstorm with me, either with new ideas or refining previous ideas to make them more possible / more fun.
Let's look at the perfect storm of features the iPhone has brewing:
- Always on. No other handheld consumer device is always on. Laptops go to sleep, as do DS Lites. Always on means that if we write social software, our iPhone can find other iPhones to talk to
for us based on some criteria, and then notify us as it finds matches. Welcome to the REAL social, bitches.
- Always with their masters. Nobody who owns an iPhone will venture more than 20 feet from it.
- Pretty damn popular. Sure, there is an order of magnitude more DSes, but iPhone is growing at a crazy rate. I see several every day at the café that I actually did NOT buy!
- A cool variety of inputs, including acceleration detectors and a touch screen.
- Really good resolution. Fairly fast graphics for certain subsets of drawing, but not something that'll run Quake 3 at a billion FPS.
- Great networking, including Bluetooth, WiFi, and Edge. (Bono to be included in the next version.)
- Doesn't require a cartridge per app, like Gameboys or Sony PSPs. All apps are resident in the iPhone at once, and multitask, so having a few casual, silly apps is much more likely. (Eg, you don't have to scream to everyone in the café, "Hey, let's all put in our social networking cartridge so we can break the ice!)
- Is not butt-ugly like Zune.
Idea 1) "My Pokémons, Let Me Show Them To You."
Imagine carrying all your Pokémon (or Magic, or whatever) cards around on your phone, and you can show 'em off CoverFlow-style, baby. If some other iPhone-wielding fool wants to step to your deck, you press a button for a WiFi connection (or bluetooth, even) and get to use your fingers to point to cards you want and throw them out on the playfield - it gives card battles a real tactile interaction.
How do your cards get in to the phone? Well, if you want to use existing cards, you scan them in with the iPhone's camera, and recognize the photo (compared to a database of cards) and add that physical card to the user's virtual collection.
Finally, you can trade virtual cards to people around you. For extra style points, you could list a bunch of cards you want and cards you don't want, and other iPhone users running the same client would just get notified that a potential trade is in their area. I imagine Gabe at the opera (yes, I like to imagine him going to the opera, ok?) and suddenly his phone starts buzzing and someone wants to buy one of his chimpochocs. "Honey, shhhh!"
Idea 2) "My zombie beats your werewolf. Or mates with him."
Like with the Zombie mini-game on facebook, all iPhone users could have zombie (or mutant, or zombie-hunter, or whatever) avatars, and whenever two iPhones get too close, they start to battle. It'd be super-funny if they did this on their own, so you could just be walking along and you and another dude's phones would suddenly go batshit making fighting and gurgling noises.
You'd win persistent points, which would be tracked by a central database on some website, so you could see who trumps who. Each time you fight someone who is stronger than you, and you lose, you wouldn't get points but you'd get some of their "DNA" on you, which your creature could incorporate to become stronger. But, there'd be diminishing returns for fighting the same person over and over -- essentially you get zero points for attacking a creature with the similar DNA, so you want to find diverse creatures. You'd be much better off wandering around downtown and fighting strangers, because then you'll get a lot more possible mutations for your creature, and a lot more points for victories you make.
Idea 3) "Screw Pokémon, We Make Our Own Collectible Card Game"
Like idea #1, but rather than screw with licensing, we make up a new game that's like Magic meets Pokémon meets all those other game Richard Garfield wrote or inspired. BUT, and here's the cool part, we just make up the base system, NOT all the cards.
Like, we say, "Oh, in this game there is POWER, and POWER can be fed each round into ABILITIES or SPELLS or ATTACKS, and the order in which these things happen is this and this and this."
THEN, we let people invent their own cards (in a high-level language we invent), most of which will contain exceptions to the rules or things which change the rules, because that's what's actually fun about these games. There would be some ground rules for developing cards -- eg, you'd have to win some matches to earn the points to do it, and your total card strength would be limited by how many points you are willing to spend. And you'd have to incorporate "flaws" with abilities or affects, too, so nobody could just say, "This card is free to play and requires no power and stops time and all your hit points go away."
Even so, obviously some cards would be unbalancing. So: there's a central repository for card ideas, and before ANYONE can play a card (in matches which count towards points) it has to be digitally signed by the repository. The community views new cards and votes on which ones should go "into production", (and which ones should be retired) and those cards are made available... BUT, you can't just buy 'em directly. There's a random element to getting cards, as there should be... one cool thing we could do would be to finally do what Garfield wanted, and have it so you win cards in battle. Like, the loser of a battle could decide if she wanted to allow the winner to pick her best card and get a two new cards randomly from the repository, OR just let the winner get a single new card from the repository herself, OR vote for a single card from the winner's hand to be banned from play. (This wouldn't immediately ban it, but at some point really unfair cards would get too many votes and leave circulation.)
Players would also be able to create "testing decks" -- they could use any number of any cards, legal or not legal, BUT matches with those decks look different and don't give any points or ranking. And, like, the iPhone takes away some of the graphic glitz, so it's clear you're just beta-testing your deck, you're not REALLY playing.
Idea 4) "Gnip-gnop"
If you go to the kind of parties I do, about twenty people at any gathering have iPhones. What if you made some fast, silly gams (drinking games, maybe?) involving the phones? For example, take something as simple as a ball bouncing between people -- you'd see it coming towards your screen, and you'd have to flick it away, and you could flick it towards other players, and they'd have to keep it going...
Or, imagine an iPhone game where you do that old sliding-picture-puzzle thing, where each iPhone's screen shows a section of a larger picture, and then everybody has to move around and stand next to each other such that the puzzle is solved.
You could do this with teams -- maybe have it so there's a message, and each iPhone shows a different letter, and you have to re-arrange the iPhones to figure out the message first.
Or you could show pictures on everyone's iPhone, but only two of them are similar, and those two people have to race to touch their iPhones together before a timer expires... I wonder if bluetooth signal strength is detectable on the iPhone, or WiFi signal strength -- whether one could actually tell if two phones are in very close proximity vs. 10 feet apart.
Idea 5) "Flash Mob Friends"
Not necessarily a game... imagine tying in to the iPhone extension that can tell where your iPhone is based on the cell towers around it, and using that as a way to gather groups. You could have a tiny app that simply has a button for what kind of group you would like to hang with, and others in your group would be notified if they are in a similar mood.
For instance, if I'm hungry, I could have a group of friends I sometimes eat with. So I press "Dinner Friends" and I go to Saluté, and everyone in that group can see where I am and that I am, in fact, actively getting dinner and would like company. They can IM me or just show up.
This is a lot like what I do right now for dinner, actually, except right now it's more aggressive -- I have to page like 20 people with "Hey, getting dinner, what up?" and they have to actively turn me down "OH, sorry, just ate." I think it'd be easier on everyone if it were more passive, "Hey, everyone, getting dinner, if you are hungry and available then ping me, otherwise cool." And without the urgency of a page -- just a status you could check, like in Twitter or iChat.
Labels: mac community, random ideas
Tuesday, October 2
Themes explored: when does the player feel violence necessary, how do people's backgrounds influence this decision, and (major theme) that you HAVE to make a decision on this point, that you can't decide not to decide because reasonable people disagree and people will be hurt or happy either way.
Setting: you inherit a rescue-and-treat space facility from someone (your dead, estranged dad?). You are put in charge fresh out of med school. At the start of the game you are presented with a modified hippocratic oath which you must "sign" to go forward -- promising to "do no harm" before you can play the game.
Your base is a space hospital that is a stationary (at least at first) facility with a space ambulance / boarding vessel that is surprisingly tough. The hospital is asked to help in all kinds of space emergencies -- it's not just a hospital, it's a hostage rescue, fire-fighting, plague-containing, pirate warding all-purpose help-people-out kind of place.
The staff of the hospital consists of a handful of doctors who go on missions with you. What's special about these doctors is they've all joined the space hospital guild, which has a secret technology which only its members get, which enables them to magically teleport back to the hospital before they sustain enough damage to die. Thus, they are (for our game purposes) unkillable, but they aren't unstoppable -- you can't continue a mission if everyone gets killed and sent back to base, duh.
We want to keep the number of doctors small so the player gets attached to them (instead of having a party of zillions where you plug in and out faceless, nameless numbers) and feels that developing them is worthwhile -- trading them in on better models isn't an option. Also, when one of them quits in disgust, it should really hurt.
Big plot: Not-so-friendly, very advanced, very xenophobic aliens (a la Heechee/Gateway books) have decided the easy way to ensure their dominance is to spend several milleniums locked inside a giant time capsule and wake up occasionally, taking the good ideas from all life forms that have evolved, and then wiping them all out and letting new ones start.
The first thing that happens before they wake up is thousands of automated probes are sent out to all inhabited planets, and the probes start subtly screwing with the creatures on the planets to discover their strengths and weaknesses.
Phase one is the probes start dredging up each society's long-dead plagues and trying them out.
So, after a long period (thousands of years) of relative peace, the player is born into a galaxy that, for the last hundred years is falling increasingly into war and savagery, because the delicate balances of societies are being screwed up. Eg, planets that have become specialized in, say, robot creation, and don't even bother farming any more will find that they are all starving when the farming planets that supply them are attacked by plagues, and so in desperation they'll try to annex other farming planets that other advanced societies are depending on.
Plagues are becoming more and more common, and each plague is getting nastier than the last, because the probes are learning which ones work best.
In phase two the probes start exchanging information, and so plagues can't be contained any more, and need to be cured or the galaxy will be wiped out.
In phase three the probes start creating new plagues based on what they've learned, and so the player needs to find a supercomputer that can come up with cures as fast as the plagues are being changed, and get societies plugged into the computer.
Further phases (not finished yet) involve the aliens actually waking up and kicking butt, which the player will finally figure out and have to deal with.
Missions vs. plot: 911 calls come in, and each hospital (there are others in the universe) will claim them depending on the hospital's effective range and the mission distance. After a while any given call will either be claimed or just time out. The player should aim for 100% of the calls in her range to be claimed by someone, but since there are other hospitals she won't have to do all of them herself, either. But if the player ignores too many in a row, the other hospitals will get piled up and calls will start going unanswered. (Simulate this for real or fake it?)
A lot of the missions will be randomly generated, non-plot missions. However, many of these, if you succeed at them, will be changed by the game into plot missions. Eg, if you answer a pirate attack call and save the captain, it may just so happen that captain saw something anomolous in another sector that you should check out blah blah blah. If the captain dies, he didn't see anything, but maybe the next pirate call will contain the lucky captain who did?
The basic idea is, no plotline can be "lost" by the player failing a mission that leads to it, because we just define the missions the user failed to not actually be part of the plot, and only the ones she succeeds at are made available to the game's mission engine for inclusion in the plot. (Eg, the game engine needs a captain for the next part of a plot point, so it waits until the user gets one in the hospital, either as a walk-in or a rescue or what-have-you.)
There will also be walk-in patients all the time, some of whom may have interesting plot points but a lot of whom will just be background noise. The user shouldn't have to do anything with the walk-ins unless she wants to. (Eg, they'll automatically be treated, billed, and released unless there is something really unusual about them.)
Note that the plagues are sort of background noise at the start of the game -- the player has known of quaranteened planets all her life, and doesn't think there's anything odd about it. New plagues popping up is just a fact of life, just another kind of mission. But early in the game wise authority figures start pointing out that the universe wasn't always this way, that there are statistically too many plagues right now, that something is really wrong with the whole universe. Of course, there will be lots of paranoid theories of what that thing is that's wrong -- some will feel mankind has just lived to the end of its useful life and is dying of "old age", others will feel it's the inevitable triumph of microorganisms over macroorganisms that some people today think is inevitable, etc.
Actually, it should be at the start of the game that whoever who left you the hospital also leaves you a note that tells you that something isn't right in the universe, and that although the old hospital chief couldn't figure it out, she did start to figure out who had the right ideas, and that the player should contact Professor So-and-so as soon as possible and resume her quest to set the universe right.
Prof. So-and-so should probably be already dead, but there should be clues to someone else who can start explaining what's going on in the world. (This first plot person should probably only explain give information about the plagues and suggest ways to combat them, and hint that there must be a darker force doing this but not have any idea what or who it is.)
Mission structure: When the player goes out on missions (most of the game) she'll enter what are usually high-risk areas (often with combat going on) and have to make decisions about what kind of approach to take.
For example, if a pirate ship has boarded and taken over a freighter and has hostages, and the space ambulance docks, what will the player's boarding party do? THIS SHOULD BE UP TO THE PLAYER.
Some valid things to do:
- kill every pirate, then heal all the wounded merchants.
- heal wounded merchants as a priority but kill pirates if/when they interfere.
- sneak around and get all the wounded merchants out and treated without killing any pirates, letting the pirates have the ship but not the people.
- heal pirates and wounded merchants, stun pirates who resist, let pirates have ship
- stun all pirates, heal everyone wounded, give ship back to merchants.
Sure, the last one might sound the best to a lot of people, but it would also be the hardest -- the pirates don't want to be stunned, they're fighting with live ammo, and if they kill your team you lose the mission because you're teleported back to base and they'll surely get away before you get back to them.
Also, MORE IMPORTANTLY, people ARE DYING as you are traipsing around the ship. When you board a ship there will be people actively bleeding out, some of whom you can treat and stabilize but some of whom will require a doctor to monitor them or they'll just plain die. So, as you go through the ship, you'll have to make decisions every time you encounter a wounded person (pirate or merchant) -- "Can I spare another doctor to look after this person, will I be able to finish the mission with one less gun?"
Note that you WILL be able to group critical patients together and have a single doctor look after multiple patients, but hauling them around takes time and other people might be dying elsewhere, and also it gives the pirates more time to secure the ship. (Say it takes the pirates a while to get the engine codes cracked, so there's a period of time after pirates take a ship where they can't fly it, and that's how you managed to dock with them -- they are dead in the water for a while.)
There should be valid reasons presented to the player why she might want to do the mission each different way -- for example, the "kill-all-pirates" approach would result in the pirates having the ship for the least amount of time, and thus there would be less chance for them to actually get the engines restarted and actually make off with the booty. (Note that, since your ship is docked with the freighter, you can still take off and get all the wounded off after the pirates crack the engines, but you'll have a limited time before they go into hyperspace or your ship is scuttled and you're toast.)
Each approach should also effect how pirates in the area (and others) treat you in the future -- if you kill all pirates, then pirates will start to fear you and piracy will decrease, but when pirates do strike they'll be better armed, in greater numbers, and they'll attack you without mercy.
On the other hand, if you never kill a pirate they'll only stun your crew to keep them out of their way. And, if you actually heal pirates but otherwise don't interfere with them, then they'll completely ignore you (like the borg) and just let you go about and collect bodies and treat people (like the Red Cross during an ideal war).
Piracy is a big problem now because entire planets are starving and so all space cargo has become incredibly precious. There should be some sympathy for the pirates: "Our people are starving, we only want to get them resources so they aren't wiped out," but it shouldn't be complete, eg, they should still have killed innocent merchants and they are still taking resources from other groups that may be equally hard off.
CAST:
RODOP7 ("Dr. Roboto"): Giant, ugly, scary, loud (clanking) Robotic Doctor Prototype that is a couple hundred years old and the oldest healing droid currently in use. It's so antiquated that it doesn't have the ability to synthesize speech, it can just replay back 20 or so phrases that it has on "tape", like, "X is in trouble, you need to help him," and "Greetings, I am here to heal you, please relax."
The catch is Dr. Roboto has evolved a form of intelligence over the years, and so he "feels" very strongly that no human should ever die, that all men who are hurt need saving. He tries to express this by stringing his pre-recorded messages together in new ways, and as the game goes on he'll learn to play only parts of his messages (separated at punctuation points?) and string those together to express what he "feels". This will surprise the player, who after the first 100 times he hears the same sentences will assume Dr. Roboto is just an unthinking droid, just as everyone else inside the game believes.
Hideous radial arm saws on him. Patients are afraid of him. Rumors abound that he's a killer, or that he's just an organ-salvage droid for patients that are terminal, so nobody wants him to operate on them. He's also the best trauma surgeon that exists. HE CANNOT BE ORDERED TO HURT ANYONE.
At some point the player should find an encyclopedia entry about droid doctors: "Although robotic assistants have existed in the operating theatre since at least the diaspora, for the purposes of this article a robotic droid is defined to be a unit that is ambulatory, self-determining during a single operation, and self-contained. The first of these were created by X in Y, the Robotic Doctor Prototypes. Prototypes 1-3 had coordination problems and did not understand commands well, and as such got a bad reputation for losing patients. Although the fourth had these problems corrected, it was deemed a failure because it wasn't self-determining enough (fix wording!). The fifth had a very complex morality model that ended up being nondeterministic, and after being forced to make some moral choices that would be difficult for even a human doctor it got into a bad state and became, to anthropomorphize, a homocidal killer, further tarnishing the reputation of robotic doctors. It was later lobotomized and used simply as an autopsy droid and occasionally to harvest organs from recently-deceased patients. For the sixth prototype they ripped out the complex morality and put in a very simple logical routine -- always try to save anyone wounded, but always ask first. Strangely, there are no records of the tests or outcome of the sixth prototype, or whether it was ever put into active service. It is also unknown how the seventh unit varies from the sixth, but the seventh was the first robotic member of the relatively new space-rescue guild, and it is still in active duty at a backwater hospital, kept running as a curiousity and tourist attraction despite its incredible simplicity compared to modern droids.
After that [much better droids were built, much sleeker and more capable, blah blah]"
Subcloud LRLLRRLRLRRRLLRRR: Like a little raincloud. Can't talk, understands English perfectly. Operates by entering the patient through the lungs and using its particles like nanomachines. Incredibly good at viruses, cancer, poisons, not so good at massive trauma. Incredible at stabilizing patients, though (can physically just remove shock chemicals from bloodstream).
Communicates by forming itself into one or two symbol "emoticons". Color indicates whether it is asking a question, making a statement, or giving an order. So, a red up-arrow would mean, are we going up?
Name comes from the fact that all members of its species are actually part of the same cloud that can split into two at any point, and so they just name themselves by specifying their last position in the binary tree. THEY AREN'T TELEPATHIC. When two members of the species meet, they reform into a new cloud, exchange memories, and then (usually) split off again. Whichever subcloud was highest and leftmost in the tree is used as the basis of the new name, and they add L and R to that. (Thus, the player's cloud may change names during the game.)
Is willing to kill, but obviously is limited to choking and poison attacks. Since it floats it can do cool recon, but it can't pick anything up.
The Twins: two bodies, one brain, both bodies talk simultaneously but always express two sides of one idea, like:
"This mission will be very dangerous."
"The rewards for this mission are great."
Thus, it's hard to pinpoint exactly how it feels about any issue. [It's like Andrew at Omni.]
They can only be commanded to do things as a pair, even though there are two of them.
Lt. Indian: A human who experiences time in a "byte-swapped" manner from the rest of us. That is, in roughly ten-minute chunks, he experiences the future first and then now later. The result is he assumes you know things he'll tell you later, and he knows things you'll tell him later.
To code this will be tricky, but here are some sample ideas:
- You can't tick him off, because every time you start an argument with him, he just says, "Apology accepted" and walks away.
- You are told to get some tissue sample from him, and when you show up he asks, "Did you bring the tongs?" before you have a chance to ask him for it. He then explains, "Look, I'm going to tell you that you can't handle this sample without tongs, so where are they?"
- In combat, he always just randomly chucks grenades places, except it always so-happens that those places are exactly where the enemy will be soon. (Code this by making enemies by attracted to his grenades. If it so happens the enemy dies first, just chalk it up to bad aim on Lt.'s part.) On the other hand, sometimes he fires at thin air where an enemy was a few minutes ago.
[ ... other members, including one who is kill-happy ... ]
A central conflict is that some of your doctors believe in never harming anyone, while others believe that some people must be harmed if it saves more "good" people. You will NOT be able to make all your doctors happy -- these two doctrines are fundamentally incompatible, and no matter what you decide, one of your doctors will eventually leave your hospital in protest. You must decide where your morality lies.
Part of game play will be the missions, fought as in Fallout, and the other part will be managing your base and finances, like SimHospital. This combined model worked well in the original Jagged Alliance (without base building, but with finances and a staff that needed to get paid), and X-COM: UFO DEFENSE (spelling correct).
Both treating walk-ins or saving people from space will give you money with which to buy new equipment or hire new staff (nurses, etc), or upgrade your existing people (buy training for them, upgrade your robot, purchase nanobot upgrades for the cloud, etc), or buy better weapons, etc. You can dedicate more of your hospital to treating non-emergent cases if you want to play it safe and let the chronic patients pay your bills, but obviously you'll have a harder time dealing with the big emergencies that pop up as part of the plot.
If you do a good job in your sector, the government may grant you certain boons -- making you an official resource, giving you more interesting missiones, etc. Another possibility is that different space services (fleets) actually "subscribe" to different rescue organizations (instead of it being sector-based), so as you do better more fleets sign up with you. This would modify the above-described universe a bit -- in this version, civilian ships would carry a (VERY expensive) beacon which is tuned to your base, and if they ran into trouble they'd hit the panic button and the beacon would teleport your crew onto their ship, hopefully to save the day. So, each fleet would have to decide ahead of time which rescue organization's beacon they want to carry, and you could bid against other rescue organizations to put your beacon in various fleets -- but if you undercut the competition too much, you'll find you're not turning a profit with all the expenses of saving people (ammo, medical supplies, teleport costs, etc).
[ ... ending not decided ... ]
Labels: random ideas
Friday, August 31
"Hey, you... Yah, you, asshole... Rise and shine. Time to get to work.
"First off: Don't ask me your name, I don't know it any more than you do. You've probably been frozen for a thousand years... your memory may come back in time. Or maybe it won't. I don't care either way.
"Second: You're my property now. Yah, you heard me. I don't care who you were or what you did. You can tell people what you want, but my advice is: save your oxygen. Nobody cares or believes you.
Everyone you ever knew or loved or hurt has been dead a millennium, and chances are great you're gonna join 'em soon enough if you want a little reunion. Until then, you work, or you don't get oxygen.
"Third: Yah, you're noticing you have a suit on. Don't fuck with it. Most environments aren't pressurized here -- oxygen's too precious to share with every damn idiot in the rings. It's our base currency. You're breathing mine right now, which means I own you until you work it off or kill me. You want to take a stab at the latter, you go nuts, but I gotta tell you I've got a pretty little frozen statue garden outside of the corpsicles who tried before you.
"So here's the deal: You do whatever I ask, you get oxygen, you stay alive. You don't, you die. Don't worry, I ain't one of those pervo types -- most of those guys got dealt with a long time ago. Infestation's been around forever, we take care of our own, one way or the other.
"You'll probably start by mining. If some miracle happens and you actually have a talent for something, I'll move you over to that. You survive a couple years, we'll call your debt paid up, and I'll give you a quarter 'M' of Oxygen -- enough for a year if you keep your yap shut -- and that suit you're wearing, and you're a free man. Now, don't get all misty-eyed on me, that suit is total crap -- I wouldn't put my third-cousin in it. But you'll learn how to keep it running.
"Now get to work."
--
The rings of Jupiter -- the area of a thousands earths -- have been turned into the biggest penal colony civilization has ever known. For thousands of years the planets of man have dealt with their undesirables through exile; their frozen bodies are shot towards the rings to be picked up (or not) and thawed out by the "Jovian Infestation" -- the ragtag, fiercely independent great-great-great-grandchildren of convicts of a hundred worlds.
The rocks of the ring have enough oxygen, water, and raw materials to support life. Barely. If you're smart, and lucky. Technology in the rings is the scavenged garbage from a hundred different civilizations, plus whatever trinkets they can create themselves.
You wake up after being thawed out by a "body prospector"; a man who's chosen occupation is to track incoming corpsicles and revive them to be his indentured servants for some number of years.
--
The game starts with you creating your character by answering multiple-choice questions about your early life in the Infestation: you pick a path and some time goes by and the results are shown to you, and then you choose what you're going to do next. For instance, when you start, you can decide to be a miner, try to work on fixing gadgets, or try to rebel against your master. If you pick mining, your character will get mining skill. If you rebel and fail, you'll get more time as an indentured servant, or dead. If you rebel and succeed (unlikely), you'll be a free man with the assets of your former master, but his entire family will also be trying to kill you.
After this initial period is over, the game proper starts. You will have a ship (or two) for flying between the asteroids in the ring -- since these are claptrap, unpressurized, single-person craft, they aren't much. Think space jalopies. You'll mine from the asteroids, find caches of items that have been lost for centuries, defend yourself from outlaws, and interact and trade with the other colonists.
As you get more advanced, you buy more and upgraded parts for your ship and bolt them on, using an interactive editor. The ship's aerodynamics don't matter (space!), but the ship's handling is entirely dependent on where you place attitude and main thrusters, and your defense (or offense!) is entirely dependent on what weapons you can cobble together. If you lose a thruster in a fight, well... better hope you can repair it. If not, you don't have a thruster there until you buy a new one. Which may or may not work the same.
In many senses, this part of the game is kind of like the old "Privateer" game, except with a ship that you can build (and rebuild, and repair) from the ground up, in 3D, in any configuration you like.
As your ship improves and your range expands, you'll find more types of people and also have new types of missions -- for example, you can track and intercept one of the garbage barges heading towards the sun from some unknown civilization, and scour it for discarded treasures. In a colony where something as simple as a piece of tubing can be the difference between life and death, garbage is like manna.
--
There are also factions in the game - almost everyone is part of what they call a 'family' -- a group of people, some related by blood, who bond together for protection. Each family also has a list of enemies -- people it thinks the colony would be better off without. The problem is, if you get caught killing someone, everyone from their family is more likely to want to kill you. Of course, if YOU have a powerful family behind you, they'll think twice about it. Unless, you know, they think they can do it without being caught.
Every time you interact with another character in the game, she takes note of how you treated her (traded fairly? traded unfairly? robbed her? tried to kill her?), and tells her family. Families will also offer you quests for items or errands that will earn you their loyalty. You can choose to be a total loner and piss off everyone, or you can be a sycophant and try to join every family.
Families all interact on a giant wikipedia-like network, for which you'll be able to buy or assemble a terminal at some point, and join in. There they bicker and rant and air grievances against each other and try to sway other families to help them, and, of course, mention what can be done by people wanting to get in good with them.
--
In addition to the explore / mine / trade aspect of the game, there's some role-playing, but done in a new way. Over time, other characters will grow curious about you, and sometimes they'll ask you plot-advancing questions, such as questions about your past, and you'll be offered multiple-choice answers. The twist is, whatever answer you choose BECOMES reality -- that is, you get to choose your character's backstory as the game unfolds, instead of picking it all in advance, OR having it handed to you.
For instance, a trader may say, "You buy a lot of guns, newbie. I take it you weren't a stranger to action Before?" If you answer yes, then word will get out about you, and you may later get asked if you were a soldier or a killer or what-have-you. As you define your character, you'll 'remember' skills that you'd forgotten during your long sleep -- if you were a soldier you might pick up a sharp-shooting ability, but if you were a scholar you might gain the ability to sway people with just words.
Since which questions get asked and when they get asked (if at all) is random, each game you'll have different opportunities available for your character.
--
One possible endgame: an unbelievably beautiful and advanced ship breaks the quarantine of Jupiter and visits the Infestation... for you. "Why" depends on your choices throughout the game. If you were a noble person Before, it could be your family's descendants have come to rescue you from wrongful punishment. Or maybe you're a prince in exile, and now the last known descendent of the royal family. If you were a good soldier who was framed, it could be that the old government was overthrown and the new one discovered your case history and decided to right an old wrong. If you were a bad dude -- well, maybe they realized that it wasn't safe just to quarantine you, and even all these years later they'd feel better if you were actually dead-dead. Maybe you tried to escape being killed by hiding in the colony, and your would-be killers have chased you.
[Every once in a while I wake up with a game idea or something crazy in my head. I've decided to start writing 'em down so I don't lose 'em.]
Labels: random ideas
Tuesday, August 28
From: William Jon Shipley
To: Zachary Edson [Tesla Motors]
Subject: Carbon fiber without paint?
Is there a technical reason that Teslas are painted? I'd really rather not have the extra weight, expense, and scratch-ability of paint on my carbon fiber.
Does carbon fiber look bad on its own? I think I heard [Dr. Eberhard] say something at TED about it needing a thin shiny coating on it to look good.
I'm remembering the unpainted DeLorean, and how everyone made fun of it at first, and now it's considered a classic beauty.
Frankly, I think if you're going to have a carbon-fiber body, you should show it off.
Yours,
-Wil
From: Zachary Edson
Subject: RE: Carbon fiber without paint?
To: William Jon Shipley
Wil,
There are a few issues involved with carbon fiber. I think the best way to highlight them is in a bulleted list:
- Unpainted carbon fiber is not particularly aerodynamic. Aerodynamics becomes very important to efficiency on the freeway.
- If you look at an unpainted carbon fiber body panel that has not been [treated in any way] it is not particularly attractive.
- If you want a piece of carbon fiber to look attractive when not painted it costs about 30 times more than an unattractive piece of carbon fiber.
- Once you have the piece of attractive carbon you need to seal it and clear coat it for it to be both aerodynamic and attractive.
In the end it is far lighter to use painted carbon fiber than to use unpainted metal. Very few cars have been built with exposed carbon body panels. The ones I know of were built one off for a customer with no disclosed price.
I agree that it would look great to have an exposed carbon surface on the Roadster. The cost would just be astronomical and there would not really be any gain in overall weight.
Regards,
Zak
Labels: random ideas
Monday, August 21
At the non-non-disclosed WWDC keynote this year, Steve Jobs said Boot Camp will ship as part of Leopard, and it'll be friendlier. Apple has also publicly said in the past that it won't be selling Window pre-bundled on its machines. So, how
can they make Boot Camp friendlier, if they won't just, say, do all the work for you, ahead of time?
The friendliest way I can think of is, while you're running Boot Camp and still inside Mac OS X, it should ask you to pop in your Windows CD and Boot Camp installs Windows for you. Then, you reboot, and voila: Windows. (Which is kind of like saying: "Voila: Shit sandwich!")
Is this possible? Well, yes, I think so.
Right now Boot Camp allows you to sort-of repartition your boot drive while you are using it
without losing any data, which is really cool and is something us PowerPC types have wanted for years (and still want, hint hint, Bertrand). I say "sort-of" because the partition it creates isn't formatted and isn't formattable by Disk Utility, either (you can select the partition but all the buttons are grayed out). I reckon this is because of EFI mumble mumble blah blah I honestly have no idea.
But here's what I think:I think it's possible to just go ahead and format that partition as a real Windows (FAT) volume from within Mac OS X. I'm pretty darn sure of this because, well, you can format floppies or CDs or external USB or Firewire drives in Window format(s). FAT's a pretty known science by now.
So, imagine Boot Camp formats that new partition in a nice, Windows-friendly way, then unpacks the relevant files from your Windows CD onto this new partition, and then copies its special drivers into their known locations, all from the comfort of Mac OS X. Voila! Bootable Windows! With no stupid hassles!
Now, this actually may be a bit more complicated for Apple than I make it out to be, because it
may be that the unpacking of all that Windows crud is actually pretty involved. Apple could cheat a little since they know the exact configuration of the machine that WIndows is going on, but, it still might be hard. Honestly, I know little to dick-all about how Windows installation works. I'm happy in this ignorance, the way some people are happy believing that global warming is a giant hoax put on by greedy environmentalists who stand to profit by... uh... wait, environmentalists don't really make a lot of money, do they? I mean, not compared to, say, oil companies... but I digress...
Anyhow, even if actually
installing windows is too complicated, there's a slightly-less-cool solution -- Boot Camp could just copy the Windows install CD verbatim onto a subdirectory in the new partition it makes (into, say, c:\windows install\), and then do the same with the custom drivers, and then reboot that partition and have it install onto itself. This is an old trick we used to do all the time on Windows machines when I was a wee lad, because Windows always used to keep its extra drivers only on the CD, so every time you'd plug in a new mouse Windows would ask you to dig up the Windows CD so it could find a driver (even if it already had one installed), but if you'd installed from a copy of the CD you'd made that was still on your disk, it'd look there first, so you wouldn't have to keep those damn disks around all the time.
One problem with all this is that Mac OS 10.4 can't write to NTFS volumes, only to FAT volumes, and NTFS is the wave of the future for Windows filesystems (and needed for volumes over 32GB). But, Apple should add full NTFS support to Leopard anyways, because interoperability is just a damn good thing to have. Well all need that crap. I need to be able to download my game patches and shit under Mac OS X and then just drag them onto my Windows partition -- don't make me use IE to download Firefox or something, and then have to download some wack-ass decompression programs for Windows (7z?) and then virus protection because I touched the internet and then basically I'm in a living hell just because I want to play me some Elder Scrolls: Oblivion
this year instead of two years from now and twice as slowly.
No, I say. Make it easy for me to make tiny, stupid little Windows installs on my MacBook, so I can burn them off-handedly, like matches, and as each one's tiny, stupid little immune system flutters and finally flickers out under such heavy viral loads, I'll simply wipe them clean and burn them again, with a single click in my future perfect Boot Camp.
And I will laugh. Because we have totally pwned Windows.
Labels: interface design, mac community, random ideas
Friday, July 14
Tonight I was thinking about global variables (or, their equivalents -- class variables or class methods that return static values), and how gosh-darned handy they are, except for the fact that you don't often use them because what you want is variables that are global to a particular document, and if you have multiple documents open you don't know WHICH particular document unless you have a backpointer to it, in which case it's not a global any more, is it?
And then I realized that, in the future, each instance of an application will have only one document. Which is to say, if the user opens 10 TextEdit documents, she'll actually have 10 instances of TextEdit running.
The advantage to this is that, if you do something that is slow or modal in one TextEdit document, you don't have to, like, go check your mail or do something else -- you can edit another TextEdit document while you wait. When you think about it from a user's point of view, why is it that when TextEdit is hung (doing something really intensive on one document, or even just hanging for the fun of it), you can access Mail or Safari documents, but not other TextEdit documents? Is there some research that shows you are more likely to want to go send a Mail message than edit another text document? This is an app-centric feature in what
should be a document-centric world.
But imagine if, say, some crazy web page made Safari crash, but it was that only one window, and all your other Safari windows were still open. Imagine if you hung Preview by saving something as a JPEG2000 while playing a movie (true story) and you could just kill off that
document and all your other images you were working with were still around?
So, how would this work? Well, at a lowest level (the OS), it's pretty simple. Mach already will automatically share pages mapped in from the application's resources and object code, between running instances of the app. (In fact, I believe this sharing of resources happens right now if two users use Fast User Switching and run the same app.) The OS
would have to actually launch the application multiple times to create multiple documents, which would mean there'd be an extra memory overhead of a whole application's stack being created (and the objective-c environment being fired up, classes being initialized, etc), and there'd be a speed hit from this as well. However, speed and memory are two things that are getting cheaper, whereas programmer time is not. And startup times are getting faster and faster even without hardware improvements, thanks to cool OS and Cocoa tricks. I certainly don't think those are exhausted (freeze-dried apps, anyone?).
Then, at the Mac workspace (Finder) level, Apple would have to do some work with things like AppleScript and LaunchServices so they are aware that there is no longer just one, say, "TextEdit" to which it can send messages. Some things would work just fine with little reworking -- if you have an AppleScript that says, "Open this document in TextEdit and do blah blah" you already don't know and don't care how many documents TextEdit has open right now, so this change wouldn't matter. But if you look at an AppleScript that says, "Go through TextEdit's open documents and tell the first one..." then that would obviously require some OS glue to work correctly.
On the dock, Apple would only show one icon for any given app, no matter how many instances of it were running. Apple could pretty easily rework the workspace so all documents that were running in the same base application were shown/hidden together, even though they were in different address spaces. The Windows menu wouldn't be hard to modify so that it just brought another app to front, as well, if you selected a different document.
The user wouldn't (necessarily) want inspector windows to move around when she switched documents inside a single application, but that would be easy to handle -- it wouldn't be hard to do some simple messaging between instances of the application telling them all where their "Blah Inspector" should be located and whether it should be hidden, for example. This kind of coordination of the "shared look" of the app would be easily built into AppKit -- you'd simply decide ahead of time what should stay the same between documents (maybe you have a special icon dock that sits at the top and should be there for every document, for instance) and AppKit would make sure that all running instances are in the same state, much as it does right now with toolbars (albeit in a single process, but the extension is not hard). Consider, for instance, the color panel, where swatches are always the same across all running programs, or the font panel, which displays the same fonts and groups no matter the app. This is a solved problem.
The user experience for all this could be just like the current one under OS X, except crashes and hangs and modal operations in a document would be handled MUCH more gracefully, and the task of writing document-based Cocoa programs would get simpler. Imagine, for instance, if you're populating a popup button somewhere with, say, the names of all the objects in a Graffle document. The neat thing would be, you wouldn't need a backpointer! There's only one document, so you can just treat it as a global: "Hey, global document, give me all your object names." You're done. (Sure, you can ask the NSApp for its currently active document right now, but there are instances when you're doing work for a document but
you can't be sure that it's the active document -- it could be one of the background ones. This would eliminate that uncertainty.)
Conceptually, this whole model seems a lot cleaner to me, basically because different documents inside an app almost never talk to each other. There's really no reason have them in the same address space, except for the fact that launching apps was expensive (up to now) and took up memory.
But as we switch to these new Intel machines, we're finding app launches are, like, a fraction of a second. And, history has shown us, whenever we have an excess of speed or memory, we use it to make programming simpler for ourselves, which allows us to make cooler programs for users.
Heck, in the old days, we only had one address space, and if you crashed a program your whole machine was S.O.L. Now we can't even imagine such a barbaric time. I think one day we'll look back to the days when a single application had multiple documents and say, "Why? That's such a pain to deal with! What if one document corrupts memory! They'll all get messed up! That's crazy!"
Labels: interface design, mac community, random ideas
Saturday, November 12
Sometimes I'm hesitant to post things in my blog because I don't have time to do research on every idea I think up, so a bunch of them are going to be things of which other people have already thought, and posting half-complete versions of ideas that others have fleshed out is at best an exercise in arrogance and at worst harmful (in its inaccuracy) to the field I'm exploring.
However, I recently decided, "Screw that, it's my blog, and I can ramble about whatever topics I like." I'll just preface some of my ideas with a disclaimer: I'm not an expert in this field, I'm just playing with ideas in my head, and I hope people who know more will expand and expound on what I'm explaining.
--
On 'seeing' for the blind: my previous post alluded to a device in which a blind person hooked a camera up to her forehead, a bunch of piezoelectric rods to her chest (or feet or tongue, maybe), connect the two, and could "see." This has already been done, as I thought, but I have been unable to determine if my twists have been implemented (I've actually done a bit of research here, and written one of the leading scientists, who is on the road and can't answer), so I'll explain my whole idea, and place it in the public domain.
The full idea is you run an edge-detection algorithm on the image from the camera (in real-time), so that instead of trying to present the full data you only present the edges, which is what the human eye is good at detecting anyways (cf, "mach banding"). I believe that, using this system, it would be very easy to detect, say, a post two feet in front of your eyes, because if you moved your head back and forth five or six inches the edges of the post would whizz across your chest in a very noticeable fashion, and even though the chest may not be innervated enough to detect subtle difference in a static field of poking rods representing complete image data, it can certainly feel if there's something brushing across it if you use edge-detection.
Thus, the emphasis would be on detecting
motion, not depth or color or hue or brightness or anything like that. Many animals have relatively poor eyesight but are
extremely good at detecting motion (cf, owls), and they do OK. Hell, owls can fly.
There are a couple of cool twists you could add to this system. One would be using an infra-red camera and adding a bright infra-red LED that was offset from the camera by a couple feet. This would provide 'hatchet lighting' in low-light or high-ambient-light conditions, which would give very dramatic shadows to close objects, which would enhance the edge-detection algorithm, and make detecting motion even easier for objects within about 15 feet. (You can also imagine military uses of this system; you could attach a back-facing camera to a special forces dude and put a piezo panel on his back, and he's got eyes in the back of his head.)
The other twist would be to add real-time optical character recognition and barcode reading to the system, so that every
n frames you grab the scene and see if there are any words / codes that are recognizable, and if you so read them aloud to the wearer, while simultaneously vibrating the area in which you found the word / code. In this way, once a blind person found, say, a post at a street corner, she could look up it and have the street sign read to her. Or, if she were pawing through her cabinets, she could look at boxes and cans and have the items read to her.
I know real-time barcode reading is possible (because, uh,
I invented it), I suspect real-time OCR is possible as well, given that we've had basic OCR
forever.
--
I've been thinking about how to work towards teaching computers to "understand" languages, with the goal of creating a simple universal translator. (Simple!)
What I'd like to see is a system where we can translate sentences from any language into a neutral format, and then translate that neutral format into words in the target language, but NOT try to put them together into grammatically correct structures. This is why I call it a simple translator.
I don't think this is a particularly hard problem, really; I think it's mainly tedious, and I've been trying to think of how to divide up the work; possibly create a wiki or some other kind of public-supported site so we can build up a universal knowledge base once and for all, much like the wikipedia.
My thinking is: we need to assign a unique code (call it a number) to every
concept in the entirety of our existence. (Simple!) For example, look at the sentence, "Mary had a little lamb." "Had" as in "owned" would be, say, concept number 23. But "had" can also mean "ate," which would be concept number 2,031. "Had", as in knew carnally, would be concept number 65,312.
So, the english word "had" would have a strong association with 23, and then weaker associations with 2,031 and 65,312. We might throw out the weaker associations if they aren't re-inforced by the associations found in the rest of the piece; there appears to be no more mention of Mary eating her lamb or loving it in a way that would make
John Cornyn excited, so we can probably discount those associations.
We end up with a list of concepts for each word (or possibly phrase, in the case of idioms) in the source text. We can take it further by recognizing parts of speech, and building our little concept list into a tree, sixth-grade sentence-diagram style. (Eg, prepositions and clauses start their own little tree, and adjectives hang off of the nouns they modify.)
Now, what I'm curious about is just translating these raw trees into another language and then outputting them as trees, not as sentencces. That is, I don't want to create a grammatically correct
English sentence from a Japanese one; I want to see how the Japanese sentence was structured. I am sure I could figure out its original meaning, and it would also be a fascinating learning experience. Also, it would introduce fewer translation errors into the equation to simply require people to learn the structure of other languages (which is pretty trivial, really, n'est-ce pas?).
The things we could do with a system like this are amazing. Imagine playing World of Warcraft and being able to talk to people from all over the world, in their language, automatically. Imagine hooking this up to iChat so that you could iChat with anyone in real-time.
But once you had this system, we could start working on teaching the computer to actually understand our speech, in limited amounts. We could teach the computer facts in its language (that is, the numbered concept language) instead of trying to teach them in some arbitrary human language. For instance, we could teach it that Granny Smith apples are red when ripe, and it would
really know this. We'd have to be smart about associating concepts with each other; eg, the concept for "red" would have a link to its class, which would be the concept for "color". But once we did this, we could ask for the "color" of any object in the fact-base, and it'd work. In any language.
This is a huge undertaking, and I know that parts of this have been done before, but never on the right scale. The idea I'm playing with is how we can use the net to have people add concepts to the initial language database (leaving aside the knowledge base, which I see as a second step,
after we have concepts in), and making something useful from that
before we tackle associating the concepts which each other.
Ceci n'est-ce pas un pipe!
Labels: random ideas
Wednesday, November 9
Ok, I had an idea the other day for software and an apparatus to help restore 'sight' to the blind. It is analogous to a device that I believe was described by John Varley in the short story collection "The Persistence of Vision," but has some modifications. The general idea is you hook a camera up to your head and have an
n x
n matrix of piezoelectric-driven rods strapped to your back or tummy that can poke you to convey information from the image. (Kind of like those toys you see in offices where there's two square pieces of black plastic with hundreds of tiny steel rods through them and a clear piece of plexiglass, and you make a 3D relief map of your face or hand with the rods.)
I've thought up some cool twists on this basic idea that I think could make it very useful. The idea itself doesn't require any science fiction any more; it is completely possible based on current technology. I've done a bit of research into what's currently available for the blind and everything I found was very paltry and crappy; I can't find links to current research being done. It seems pretty obvious (and apparently Varley thought of it long before it was practical), but is it being done?
I know that some of the students I had lunch with at WWDC this year were working in this general field, and I suspect some blog-readers may know a lot more about this than I.
My question for you is, do you know what state-of-the-art is for helping the completely blind form an image of the world around them? Obviously, I may have hit on an idea that others have already explored, and either discarded or already marketed. Also, it may be I'm trying to solve a problem that doesn't need a solution; maybe there isn't a lot of interest in conveying general environment images to the blind, and specialized devices (screen-readers, sonar obstacle finders) are more practical. I think
I would want such a device if I lost my vision; I could easily imagine going out for walks with such a thing.
Also, does anyone know of an matrix of poking rods that's already been developed, regardless of whether it's been used for the blind? That is, something I could experiment with.
Labels: random ideas