It seems to me like the Internet has made representative democracy obsolete. Why not have distributed democracy now? I feel like representative democracy is now really old and broken technology that hasn't scaled well with the times and has taken on some really unpleasant features that due to inertia, it cannot easily shed.
Libertarians, Dems, Republicans, really all parties should no longer be a concern. It is now not difficult to arrange for lots of clueful, qualified people who directly care about an issue to decide on how to address it.
Why do we need reps to do this for us as a whole? By definition, a representative will never represent the interests of all his constituents.
Most computers these days use LCD screens, and most LCD's use flourescent tubes as a backlight, which is what creates whiteness. If you put your ear really close to your screen, it's also what creates a faint hum. Those tubes draw most of the power on a display, and they don't turn off just because the screen goes black.
I don't think changing the colour to white changes the power draw significantly. It just means more of the flourescent tube light is passing through the screen.
If you don't like the location, then stop being there. Keep working at your job, and simply move elsewhere and do your work remotely. If you need to hire someone to cover for bits that you do there, then hire someone. If you can't use their money to do it, then use your money to do it and just take home the difference in pay and look for other work to supplement it.
Don't stop pushing and fixing until you're either fired or promoted. Don't do this in-between grind that wears you down. You're going to go out with a whimper, won't take any usable references with you, and the whole thing will have been a waste of a chunk of your precious 20's.
If you're fired for doing the right thing, then you'll have an excellent story for why you were fired. "I wasn't happy there because it's freaking Albany, so I moved, worked remotely, got happier, did much better work, hired someone with my own money when they refused to. Tried to lead that horse to water, but couldn't make it drink."
The very same reasons that get you fired are quite often the reasons that get you promoted, too. Taking risks like that, forcing a company to change against its wishes always has political fallout, but when it results in superior results, sometimes someone clueful at the helm is watching and rewards the behavior. But if it doesn't happen, don't sweat it. Company's fortunes are mostly affected by their top management, and if your good work isn't being recognized, that means other good work probably also isn't getting recognized. The company will probably fail. Keep the names and numbers of the guys you really liked, and when you find your new job, invite them to come with you. You're going to find this is the much stronger way to build a network of good people you keep close to you and a successful career.
At Transmeta, we were pretty excited about throwing away lots of decode transistors associated with variable-length x86 instructions and throwing away transistors associated with out-of-order cores, and this did lead to a significant power advantage. However, the instruction packet size on Crusoe could be no smaller than 64 bits (two 32 bit instructions), and though this would be later reduced to 32 bits on the Efficeon, this is still longer than the average x86 instruction size, which was between 16-24 bits.
Bottom line for poor Crusoe was that the 64-bit packets caused excruciating pressure on the instruction cache if you were running something that didn't fit neatly within. Nevertheless, Linux and most well-behaved Windows apps fit quite neatly in the i-cache, with one major, notable, and ultimately devastating exception: Winstone.
Winstone is unfortunately the industry standard benchmark for Windows computers, and what it does is run through several rather bloated applications in rapid succession, spending very little time doing something interesting in each one, which dealt a double-whammy blow to Crusoe. The translations are a brilliant idea, because their cost gets ammortized over time to become a huge win, but when you aren't iterating, you aren't ammortizing, and when you're hopping through a lot of code, you're not only thrashing your i-cache but also thrashing your translation cache, which is stored in system memory that x86 space doesn't know is there.
This one benchmark is unfortunately both deeply flawed and critical to an x86 processor's success. We all know how that went.
But I want to point out that this is a dramatically simplified explanation. Systems today are much more than the x86 processors at their core, and it's not just software compatibility that's an issue. A huge part of what is slowing down systems today is unfortunately a painful combination of the interaction of the x86 architecture with BIOSes, Windows, and device drivers. It's a really sad dance of pain, and they're all locked in it together. As others have pointed out, we're kind of trapped in an unhealthy local maxima.
Assuming the tech isn't vapor, there would have to be a second "ultra-cap" you plug into your wall and leave there, that builds up a charge slowly, so that when you slink up to it with your car, you can recharge quickly.
I went to Highland Park High School in Dallas. Very similar situation. I would later end up one of the coders on Doom & Quake, so you can imagine my frustration at the time. HPHS is a public school but with generally very wealthy kids, a football stadium that was truly a spectacle of steel reinforced concrete and civil engineering, a famously disciplined football program, and a super-lame lab with virtually useless PC's and one programming class taught in Pascal or Basic, if I recall. As a result, I basically held my breath until Dad bought me an Apple//e, which really served as my primary education and social experience until I outgrew Applesoft and 6502 asm somewhere in my junior or senior year and started going to my Dad's office so I could learn C on his PC.
Here's the trick. Wish I had known it then. The football budget came from donors, and that's basically the answer to your question. The stadium and the atheletic raquetball and other stuff thingy building, were named after the big donor who plunked down millions. That's the ticket.
What I suggest you do is learn something about business development, which is the kung fu required to land great facilities of any kind, because unlike the programming language, API's, and OS du jour that will be a useful tool to you for a healthy 5-10ish years, savvy business development never goes out of style, and will actually help you land a fully funded, sweetly decked out lab, along with great courses.
The proper approach will depend very much upon the specifics of your situation, who you know (both students and adults), and your various superpowers. If you want me to help you figure out The Path, drop me a line, and I'll see if I can be useful.
The game industry is not all that broken. It's simply stratifying, and if anything, there are wonderful new opportunities that game developers never had before. To be a console developer on the PS/2, for example, you had to ship a retail title. This is a huge investment, because there is a cost of goods, a large licensing fee to Sony, there is a cost to rent shelf space, and there is a cost to marketing to let people to know to go to the tsore. However, on the Xbox 360, you can download games, and if they're self-funded, you get a huge percentage of the back-end directly from Microsoft. There is no cost of goods, you don't have to market them because people can play the demos for free, and there are already several examples of games that almost instantly made back their investments. Geometry Wars is said to have recouped in 6 days from launch. The typical ratio of people who buy a game to people who play a demo on Xbox360 Live Arcade is a whopping 20%. Compare this to under 3% on the PC, and you can see why this is a really big development.
Sony and Nintendo are expected to launch similar services for the PS/3 and Wii. With all this downloading action, the barrier for entry to be a next-gen console developer is going to be lower than ever. This is really important, because indie games used to be relegated to the PC. This sucked, because you have this massive compatibility headache, and you had marketing issues trying to reach your crowd. On the console, you just have a single, high-performance architecture and a captive audience that wants only to play games, not to browse the web, download porn, read slashdot- just play games.
Downloadable games are also a terribly honest way to make a game. If the demo isn't so fun that the player wants more at the end of his 60 minute or N-level trial, then he won't buy the rest. So you have to make the game fun first.
If you believe the common wisdom that all you can do with GPU cycles is render things, and that therefore you must have to make these expensive next-gen art assets, then yes, everything will cost more, and everyone will suffer. If, on the other hand, you simply look at the Xbox360 GPU as 48 specialized processors running at 500MHz and another 3 general purpose processors, each with dual cores, running at 3.2GHz, then what you really have is an assload of compute bandwidth with which to simulate whatever you want.
At E3, Havok was demonstrating their physics engine running on the nVidia 7800. It was an impressive demonstration. You are going to see advanced physics simulations open up a whole to world of possibilities for gameplay mechanics.
No, it's not easy to write optimized code for this stuff, but it's also really easy to get something up and running and to begin iterating on optimizations.
Claims that the game industry is broken are badly exagerated. It is certainly getting harder to be one of the top tier game developers, and those that are finding themselves in the middle ground are feeling the squeeze, but this is the natural outcome of most growing, hit-driven markets. If you're in that middle ground and starting to whine instead of adapting, then you're going to go out of business.
You need an Irishman on the board, but the reason people set up Irish companies is to enjoy the 12% flat tax rate. However, transferring IP's that already have track-records is completely dumb. The IRS can tax that transfer, and these guys will get manhandled by the government, I can assure you. You need to have the balls and forethought to create the Irish company and develop the IP there when it is still relatively worthless, or you will owe massive taxes.
The reason not everyone does this is because it can cost anywhere from $20k-$70k in legal fees, depending on how many companies in how many countries you want to connect the Irish corporation to.
Speaking as a conversational junkie, I have to say I vastly prefer house parties over almost any other sort of organized event. Large parties typically aren't adequately hosted. So you get a lot of people standing near the drink and snack tables, refilling every once in a while, trying to look calm, cool, and content, when in fact they wish someone would introduce them.
Really good parties feature a clueful-host-to-interesting-guest ratio of no more than 10ish, in my opinion, because you want hosts to make introductions and facilitate conversations, particularly with accomplished geeks whose single-minded focus on the software that made them famous has left their social interaction neurons a bit withered and crispy.
If you want to network with megageeks and have a good time, I strongly recommend throwing a tasty dinner party and inviting a handful of quality guests. Once your dinner kung fu has improved, consider letting them invite a friend to add some randomness.
Even if you aren't in it for the conversation, I think it would come as some surprise to most geeks that even if you paid someone to cook the food and serve the drinks for you, odds are you'll recoup the cost later, because you were there at the right time to hear a conversation about an opportunity, and the relationship was in place to facilitate your involvement. This is how a great deal of business gets done.
First, I want to say there are some great posts in this thread, including the suggestions of scaling back your spending habits in exchange for happiness ("Rich Dad, Poor Dad" is a fast & wonderful read on this), switching to an industry where you become a bigger fish in a smaller pond, and in particular, starting your own business.
I've never been happier in my career than when I started my own business, and I love it so much that I advise a lot of entrepreneurs on how to start their own. I've got 10 suggestions to make this easier:
1. Do things that you "know" you could do in your sleep. You'll find that productizing them isn't as easy as you think, but your mildly inflated confidence will reduce stress and pull you through the process.
2. Don't generate supply for which there is no demand. I am from the game industry, and I know a lot of game developers who start making demos for games that they have not bounced off customers like players and publishers who can with a single facial expression, tell you whether you're onto a stunning high concept or just a run-of-the-mill one.
3. Approach companies rolling in cash that share your aesthetic sense and philosophies, particularly ones with founders who share your background or interests. Tell them a little bit about your background, and ask if they could use a coder like yourself.
4. In any project you propose, find a way to pull the description back to the bottom line. At the end of the day, coders usually don't sign your checks. Suits do. What suits know is the value of money. So use layman's terms to explain why the software is important, including walk-throughs of the user experience and explain why the software will make more money than the alternative.
5. Learn what the word "comp" means. It's short for "comparison", and it is a key to chatting up suits. They're inherantly skeptical of all things new, but if you really do your homework (God bless Google), you can usually find analogous projects to what you're doing that will make your business case. No matter how "new" you think your product is, at the very least, it probably follows some business model and customer experience that has gone before.
6. Don't make part of a product and look for completion funding. This very rarely works out, and you have no recourse if no one steps up, because consumers don't want to buy partial products. If you go all the way and finish a product, even if it's radically simplified, your distribution options, exit strategy, and back-end profits are all far more lucrative.
7. Try to identify your weaknesses early and bring on partners to compliment them. Unless you've got a track record of being highly adaptable, trying to fit yourself in a role you're not suited for will consume far too much of your time and create stress.
8. Hire a junior coder. Your wrists are fucked. Stop pushing yourself. They'll only get worse. Get over whatever is stopping you, and try to find someone who you can back-seat dri.. I mean mentor. Read up on Extreme Programming and "pair programming". It might be right for you.
9. Write down estimates of how long it will take to do something and log your progress meticulously. Take a breather now and then to analyze your work logs and estimates. Most people are shocked not by the difference in their estimates and actual times, but in how much time goes into parts of the job they thought were unimportant or minor.
10. I like to hear about people's superpowers and kryptonite-like weaknesses and to help them find ways to break the catch-22's of capitalism. If you have a work ethic and can not only listen to advice but act on it, then write me. I derive extreme satisfaction from working with and knowing these people.
I went from full-time employee to contractor, and I'm a lot happier, but it's all about your aptitudes and particularly your attitude.
I recommend you get the "I better get upgraded to full-time" entitlement nonsense out of your head and think more along the lines of, "I'll do this until it doesn't work for me."
Contracting comes with several benefits:
Your own hours, of course, and generally more time with the family.
You aren't roped into working overtime w/o being paid for it, a la EA_Spouse.
You get your own health insurance, something not lame & skin-flinty. Check out NASE and their indemnity option, which covers any doctor anywhere.
Instead of grinding away at precisely one thing for a significant portion of your life, you get to mix and match. This is particularly good for me because I like to design, code, and do biz dev, and as an employee, you're pressured into a focused role.
It's a phenomenal networking opportunity.
For some reason, your opinion as a contractor is worth (marginally) more than your opinion as an employee.
Often, when hired to do a job, you feel lame if you're not qualified to do a piece of it. As a contractor, you can simply subcontract the piece you suck at. You might make a little less, but you deliver more complete solutions, which in the long run will make you more successful.
I you want an invoice template or just to bounce ideas off someone, drop me a line.
In my experience, the biggest problem with contracting isn't finding new work. It's worrying about finding new work, because Lord knows, people need to get things done, badly.
I've long been a supporter of portable games and I'm the guy who wrote or championed Unix-y ports of Doom, Quake, and Abuse back in 1993-1996 (http://davetaylor.name), but Mac is still a pain in the ass.
As I'm sure most of you suspect, porting to the Mac is not as easy as "make", even assuming a similar arch to the Xbox2.
The reason developers opt to make their games portable to multiple platforms now is that they want $8M to make their game instead of $6M, and the only way the publisher will approve it is if the developer commits to a multiplatform release, so that they can see more sales.
The Mac game market is still very small, unfortunately, so it doesn't qualify as a viable platform for the publishers. And although the similar endianness of the Mac does make porting easier, it's not a single platform, but a collection of similar platforms, which means you're signing up for a customer support headache, just like you are with the PC. The additional customer support costs, the differing marketing channels and strategies, the inventory mgmt, and sales effort of maintaining an extra SKU, are usually sufficient distraction to knock down a Mac port proposal.
But that's not the whole story. It turns out that Mac owners suffer from accute good taste, which has something to do with why they've historically paid a premium for a pretty, inferior computer.
Only since MacOS X emerged from an awkward puberty has the Mac become a pretty, superior computer to the PC, but it turns out that Mac owners are still the cause of some aesthetic grief. If you do a straight port to the Mac, instead of adding the features and looks that Mac users insist upon so that their Mac apps feel Mac-y, then you get panned in reviews.
I agree with another poster's comment that Apple should either do the ports or fund developers to do ports. I think this would be good for them not only because it would bring more games to the Mac but because it would viscerally illuminate to them the annoying demographic and business side-effects of porting to the Mac, and going through it enough times might inspire solutions.
Sadly, I've recently asked after this, and they are not interested.
On the bright side, they are aggressively going after the top-20 PC games and making sure they get ports. This is smart but not brilliant. Brilliant would be creating incentives for developers to maintain Mac portability from the start.
For instance, I've often thought that iTunes, had they not signed multiple deals with multiple devils to launch it, could be the solution to the distribution dilemna for unsigned composers. If Apple made a similar online distribution store for Mac games, where the developer/publisher could enjoy massive margins that put the retailers to shame, this could be the cookie developers need to pull the trigger.
Pulling that particular iTunes-y solution out of my bum probably too early in the morning w/o sufficient coffee, but my point is that Jobs certainly has the scratch, balls, and brains to make it an attractive platform, but it isn't quite there yet.
I am a geek (http://davetaylor.name), and I picked up Texas Hold 'Em because I act as a hobby (http://nowcasting.com/ddt) and was invited to play a game with a television producer.
So I got on the net, learned the basic odds and strategy, and showed up. It was a $20 game, and I bowed out when I was $14 up. I understand the tradition is to play until you win or are broke, but I noticed that like capitalism, after someone is sufficiently ahead of you, assuming they're not incompetent, it's not really worth it to compete with them.
The social element is key, but I noticed my geekiness doing its job. After the cards were shown, I'd replay the hand in my head, and correlate people's behaviors with the hands they had.
It was like keeping a short circular buffer in my head. Most people had really blatant tells, nothing subtle like tiny twitches. They were more like the loud impressions you get from boys with severe confidence issues trying to hit on girls.
This, along with keeping track of simple odds really helped compensate for it being my first game.
I wonder if this has anything to do with the tech consultant on NPR who I'd say a week or two back explicitly recommend that people switch from IE to Firefox or Mozilla.
1) Java has bounds checking for arrays, C++ doesn't. This is specified in the language. This affects performance.
2) Java has garbage collection, C++ doesn't. This is specified in the language. This affects performance.
Also, the specification of Java says that it should be compiled to byte code and executed in a JVM.
So the "language" certainly affects performance.
I believe I disagree with all of these.
When Transmeta's Crusoe launched, it was not widely known that they had the fastest native picojava processor on the planet.
To prove it, they compiled most of Doom down to x86 machine language, and then they compiled the exceedingly hot spots (rasterization) down to x86 for one executable and down to picojava for the other executable.
They both ran at the same speed.
You might say this is because Transmeta processors don't really run x86, but instead translate it to another format. That is correct. So does a JVM. So do Intel and AMD chips. Pentium processors haven't been native x86 processors since the original Pentium.
The trick to most on-the-fly x86 optimizations is figuring out when the strict x86 behavior is necessary, and when you can bend the rules. If you're in the middle of bending the rules, and the processor receives an IRQ or generates an exception, you need to dump everything on the floor and back up to the last time you had a valid x86 state, otherwise, as long as the x86 state is the way it's supposed to be at the end of the block or trace or however much you can get away with, it's all good.
This is true of Java bytecode as well. If you can simply trap out-of-bounds memory instead of doing an explicit bounds check on each access, your code will run very fast. If you get an exception, then it's back to the JVM. If you get lots of execptions, you can retranslate that particular block to do explicit bounds-checking and again manage to avoid calling the JVM.
If your garbage collector learns individual app behavior and tailors its behavior to a particular application runtime memory allocation track record, you can get superior performance to C++ new()/delete()'s compiled to x86, depending on how much time the app developer got to profile his memory management system, a task all too often overlooked in today's memory-is-cheap-get-it-to-market rush.
HP's Dynamo runtime actually proved that you can get better native machine language performance by running the native machine language in a runtime.
Modern JVM's aren't executing bytecode. They're making fully native x86 translations, and the x86 translations jump to each other. In fact, you're not really spending much time running the JVM at all. Your program is getting compiled, linked, and is running native. It's only going to the JVM when it has to.
The bottom line is that your Java perf is going to be wildly variable, depending on the quality of your JVM, and your x86 performance is going to be much less wildly variable, because x86 processors really became C++ bytecode processors several years ago. They're very carefully tuned to destroy benchmarks, particularly Winstone, which is a spectrum of bloated C++ Windows apps, a depressingly representative benchmark of what most of us run.
However, Intel and AMD processors can't see or remember beyond a tight window of x86 instructions. They will make the same optimization mistakes over and over again, no matter how many times you run the application. If your hot spots are longer than the size of that window, you lose. JVM's don't have this restriction. They see and can remember the entire application.
Nothing about x86 or C++ prohibits C++/x86 runtimes. This is precisely what Transmeta and VMWare are doing. They are both little companies and do not have the incredible muscle and financing of AMD and Intel, n
1. For one, don't put interesting posts on slashdot without a URL next time. Hits + non-zero conversion rate = sales. I couldn't even find your e-mail address.
2. Artwork. Everyone overlooks how much "pretty" sells. Look at gateway's cow theme or Dell's slick site and case designs. Artists are absurdly cheap. Contract them. Don't have an ugly store or ugly boxes or ugly website or ugly ads. Technology goes out of date fast, but gorgeous artwork does not.
3. Offer free home consultation to anyone with any kind of computer. When you're there, if you see a responsible sales opportunity, take it. If you see crap hardware, then pull up reviews of that crap hardware from Google, and rub their noses in their mistakes.
I have to concur with the "hater". This article wasn't up to my standard for Ars, and I recoiled at exactly the same implications regarding the power draw of CMS itself.
CMS and its translation buffer takes a small fraction of the available RAM, and all of RAM takes a small fraction of the power the CPU does, so we're talking about a fraction of a fraction. Translations live in RAM, btw, and are cached like any other executable code, when needed.
> The similarities between VMS and Windows are quite astonishing.
You'll have to qualify that remark, as I thought VMS was that stable, noble operating system which most users and system administrators remember quite fondly as the pleasant user interface to submitting their Cray jobs.
What sucks right now in the game industry isn't that you can't make clever games with new ideas, but that you can't get them funded. If you develop an unusual, refreshing game to completion, you can get wonderful deal terms and have surprisingly good odds of turning a buck.
Getting them funded to completion is the trick. Even veteran game companies are finding they need to pitch a sequel or a heavy license, and the deal negotiation still takes 3-6 months, during which time you can't make payroll and lose your employees to the monster first-party developers or in-house megacorp developers.
Angel funding generally doesn't work unless you know someone wealthy who really trusts you. Doing the angel circuit is incredibly challenging, and you still have to wait several months for the deal to sign and cash to flow, during which time your tasty team is disintigrating.
What I recommend to teams trying to do original content is find a way, by hook or by crook, to completely develop, debug, tune, and polish the game to completion, to develop their own ads, their own marketing plan, their own box art and box copy. This forces you to think through where the game can be sold, how, and for how much.
Handing a boxed, shrink-wrapped product to a publisher makes recouping your development costs trivial. Most big publishers have slipping product, and most big publishers, particularly publicly traded ones, need to ship a certain # of titles every quarter. There is a powerful demand for completed, fun games, but there is an over-supply of largely unwanted proposals and demos.
I did exactly this with Abuse and turned a $60k investment into $1.1M in royalties on a game that sold lousy numbers of units (though it was downloaded like crazy). I have friends doing exactly this sort of thing now, generally quietly, content to make money on games that they love making, even if they aren't over-exposed mega-hits.
They don't always have a $5M marketing campaign or a $5M art budget behind them, but good, fresh games are out there.
It seems to me like the Internet has made representative democracy obsolete. Why not have distributed democracy now? I feel like representative democracy is now really old and broken technology that hasn't scaled well with the times and has taken on some really unpleasant features that due to inertia, it cannot easily shed.
Libertarians, Dems, Republicans, really all parties should no longer be a concern. It is now not difficult to arrange for lots of clueful, qualified people who directly care about an issue to decide on how to address it.
Why do we need reps to do this for us as a whole? By definition, a representative will never represent the interests of all his constituents.
Maybe the fact that the trailer has the only good scene will finally create a case for consumer fraud against Boll?
Most computers these days use LCD screens, and most LCD's use flourescent tubes as a backlight, which is what creates whiteness. If you put your ear really close to your screen, it's also what creates a faint hum. Those tubes draw most of the power on a display, and they don't turn off just because the screen goes black.
I don't think changing the colour to white changes the power draw significantly. It just means more of the flourescent tube light is passing through the screen.
If you don't like the location, then stop being there. Keep working at your job, and simply move elsewhere and do your work remotely. If you need to hire someone to cover for bits that you do there, then hire someone. If you can't use their money to do it, then use your money to do it and just take home the difference in pay and look for other work to supplement it.
Don't stop pushing and fixing until you're either fired or promoted. Don't do this in-between grind that wears you down. You're going to go out with a whimper, won't take any usable references with you, and the whole thing will have been a waste of a chunk of your precious 20's.
If you're fired for doing the right thing, then you'll have an excellent story for why you were fired. "I wasn't happy there because it's freaking Albany, so I moved, worked remotely, got happier, did much better work, hired someone with my own money when they refused to. Tried to lead that horse to water, but couldn't make it drink."
The very same reasons that get you fired are quite often the reasons that get you promoted, too. Taking risks like that, forcing a company to change against its wishes always has political fallout, but when it results in superior results, sometimes someone clueful at the helm is watching and rewards the behavior. But if it doesn't happen, don't sweat it. Company's fortunes are mostly affected by their top management, and if your good work isn't being recognized, that means other good work probably also isn't getting recognized. The company will probably fail. Keep the names and numbers of the guys you really liked, and when you find your new job, invite them to come with you. You're going to find this is the much stronger way to build a network of good people you keep close to you and a successful career.
Excellent summary.
At Transmeta, we were pretty excited about throwing away lots of decode transistors associated with variable-length x86 instructions and throwing away transistors associated with out-of-order cores, and this did lead to a significant power advantage. However, the instruction packet size on Crusoe could be no smaller than 64 bits (two 32 bit instructions), and though this would be later reduced to 32 bits on the Efficeon, this is still longer than the average x86 instruction size, which was between 16-24 bits.
Bottom line for poor Crusoe was that the 64-bit packets caused excruciating pressure on the instruction cache if you were running something that didn't fit neatly within. Nevertheless, Linux and most well-behaved Windows apps fit quite neatly in the i-cache, with one major, notable, and ultimately devastating exception: Winstone.
Winstone is unfortunately the industry standard benchmark for Windows computers, and what it does is run through several rather bloated applications in rapid succession, spending very little time doing something interesting in each one, which dealt a double-whammy blow to Crusoe. The translations are a brilliant idea, because their cost gets ammortized over time to become a huge win, but when you aren't iterating, you aren't ammortizing, and when you're hopping through a lot of code, you're not only thrashing your i-cache but also thrashing your translation cache, which is stored in system memory that x86 space doesn't know is there.
This one benchmark is unfortunately both deeply flawed and critical to an x86 processor's success. We all know how that went.
But I want to point out that this is a dramatically simplified explanation. Systems today are much more than the x86 processors at their core, and it's not just software compatibility that's an issue. A huge part of what is slowing down systems today is unfortunately a painful combination of the interaction of the x86 architecture with BIOSes, Windows, and device drivers. It's a really sad dance of pain, and they're all locked in it together. As others have pointed out, we're kind of trapped in an unhealthy local maxima.
I work in the game industry and was kind of nervous there for a second, and then I saw Jack Thompson was the plaintiff's attourney.
Assuming the tech isn't vapor, there would have to be a second "ultra-cap" you plug into your wall and leave there, that builds up a charge slowly, so that when you slink up to it with your car, you can recharge quickly.
Ever seen a capacitor explode, btw? http://www.youtube.com/watch?v=M8nT97CrgcU
I went to Highland Park High School in Dallas. Very similar situation. I would later end up one of the coders on Doom & Quake, so you can imagine my frustration at the time. HPHS is a public school but with generally very wealthy kids, a football stadium that was truly a spectacle of steel reinforced concrete and civil engineering, a famously disciplined football program, and a super-lame lab with virtually useless PC's and one programming class taught in Pascal or Basic, if I recall. As a result, I basically held my breath until Dad bought me an Apple //e, which really served as my primary education and social experience until I outgrew Applesoft and 6502 asm somewhere in my junior or senior year and started going to my Dad's office so I could learn C on his PC.
Here's the trick. Wish I had known it then. The football budget came from donors, and that's basically the answer to your question. The stadium and the atheletic raquetball and other stuff thingy building, were named after the big donor who plunked down millions. That's the ticket.
What I suggest you do is learn something about business development, which is the kung fu required to land great facilities of any kind, because unlike the programming language, API's, and OS du jour that will be a useful tool to you for a healthy 5-10ish years, savvy business development never goes out of style, and will actually help you land a fully funded, sweetly decked out lab, along with great courses.
The proper approach will depend very much upon the specifics of your situation, who you know (both students and adults), and your various superpowers. If you want me to help you figure out The Path, drop me a line, and I'll see if I can be useful.
Actually, 50Mb is plenty because of ProFX (http://www.profxengine.com).
:)
Check out RoboBlitz (http://www.roboblitz.com).
It's the first Unreal Engine 3 game coming for Xbox Live Arcade.
Procedural textures are your friend.
That's great, because nothing says "environmentally friendly" like spewing out miles of asphalt so that we can continue to pave the planet.
When Zeratul sacrificed himself in StarCraft, I was choked up. I was impressed that I could be moved to tears by watching an alien bite it.
The game industry is not all that broken. It's simply stratifying, and if anything, there are wonderful new opportunities that game developers never had before. To be a console developer on the PS/2, for example, you had to ship a retail title. This is a huge investment, because there is a cost of goods, a large licensing fee to Sony, there is a cost to rent shelf space, and there is a cost to marketing to let people to know to go to the tsore. However, on the Xbox 360, you can download games, and if they're self-funded, you get a huge percentage of the back-end directly from Microsoft. There is no cost of goods, you don't have to market them because people can play the demos for free, and there are already several examples of games that almost instantly made back their investments. Geometry Wars is said to have recouped in 6 days from launch. The typical ratio of people who buy a game to people who play a demo on Xbox360 Live Arcade is a whopping 20%. Compare this to under 3% on the PC, and you can see why this is a really big development.
Sony and Nintendo are expected to launch similar services for the PS/3 and Wii. With all this downloading action, the barrier for entry to be a next-gen console developer is going to be lower than ever. This is really important, because indie games used to be relegated to the PC. This sucked, because you have this massive compatibility headache, and you had marketing issues trying to reach your crowd. On the console, you just have a single, high-performance architecture and a captive audience that wants only to play games, not to browse the web, download porn, read slashdot- just play games.
Downloadable games are also a terribly honest way to make a game. If the demo isn't so fun that the player wants more at the end of his 60 minute or N-level trial, then he won't buy the rest. So you have to make the game fun first.
If you believe the common wisdom that all you can do with GPU cycles is render things, and that therefore you must have to make these expensive next-gen art assets, then yes, everything will cost more, and everyone will suffer. If, on the other hand, you simply look at the Xbox360 GPU as 48 specialized processors running at 500MHz and another 3 general purpose processors, each with dual cores, running at 3.2GHz, then what you really have is an assload of compute bandwidth with which to simulate whatever you want.
At E3, Havok was demonstrating their physics engine running on the nVidia 7800. It was an impressive demonstration. You are going to see advanced physics simulations open up a whole to world of possibilities for gameplay mechanics.
No, it's not easy to write optimized code for this stuff, but it's also really easy to get something up and running and to begin iterating on optimizations.
Claims that the game industry is broken are badly exagerated. It is certainly getting harder to be one of the top tier game developers, and those that are finding themselves in the middle ground are feeling the squeeze, but this is the natural outcome of most growing, hit-driven markets. If you're in that middle ground and starting to whine instead of adapting, then you're going to go out of business.
You need an Irishman on the board, but the reason people set up Irish companies is to enjoy the 12% flat tax rate. However, transferring IP's that already have track-records is completely dumb. The IRS can tax that transfer, and these guys will get manhandled by the government, I can assure you. You need to have the balls and forethought to create the Irish company and develop the IP there when it is still relatively worthless, or you will owe massive taxes.
The reason not everyone does this is because it can cost anywhere from $20k-$70k in legal fees, depending on how many companies in how many countries you want to connect the Irish corporation to.
Speaking as a conversational junkie, I have to say I vastly prefer house parties over almost any other sort of organized event. Large parties typically aren't adequately hosted. So you get a lot of people standing near the drink and snack tables, refilling every once in a while, trying to look calm, cool, and content, when in fact they wish someone would introduce them.
Really good parties feature a clueful-host-to-interesting-guest ratio of no more than 10ish, in my opinion, because you want hosts to make introductions and facilitate conversations, particularly with accomplished geeks whose single-minded focus on the software that made them famous has left their social interaction neurons a bit withered and crispy.
If you want to network with megageeks and have a good time, I strongly recommend throwing a tasty dinner party and inviting a handful of quality guests. Once your dinner kung fu has improved, consider letting them invite a friend to add some randomness.
Even if you aren't in it for the conversation, I think it would come as some surprise to most geeks that even if you paid someone to cook the food and serve the drinks for you, odds are you'll recoup the cost later, because you were there at the right time to hear a conversation about an opportunity, and the relationship was in place to facilitate your involvement. This is how a great deal of business gets done.
First, I want to say there are some great posts in this thread, including the suggestions of scaling back your spending habits in exchange for happiness ("Rich Dad, Poor Dad" is a fast & wonderful read on this), switching to an industry where you become a bigger fish in a smaller pond, and in particular, starting your own business.
I've never been happier in my career than when I started my own business, and I love it so much that I advise a lot of entrepreneurs on how to start their own. I've got 10 suggestions to make this easier:
1. Do things that you "know" you could do in your sleep. You'll find that productizing them isn't as easy as you think, but your mildly inflated confidence will reduce stress and pull you through the process.
2. Don't generate supply for which there is no demand. I am from the game industry, and I know a lot of game developers who start making demos for games that they have not bounced off customers like players and publishers who can with a single facial expression, tell you whether you're onto a stunning high concept or just a run-of-the-mill one.
3. Approach companies rolling in cash that share your aesthetic sense and philosophies, particularly ones with founders who share your background or interests. Tell them a little bit about your background, and ask if they could use a coder like yourself.
4. In any project you propose, find a way to pull the description back to the bottom line. At the end of the day, coders usually don't sign your checks. Suits do. What suits know is the value of money. So use layman's terms to explain why the software is important, including walk-throughs of the user experience and explain why the software will make more money than the alternative.
5. Learn what the word "comp" means. It's short for "comparison", and it is a key to chatting up suits. They're inherantly skeptical of all things new, but if you really do your homework (God bless Google), you can usually find analogous projects to what you're doing that will make your business case. No matter how "new" you think your product is, at the very least, it probably follows some business model and customer experience that has gone before.
6. Don't make part of a product and look for completion funding. This very rarely works out, and you have no recourse if no one steps up, because consumers don't want to buy partial products. If you go all the way and finish a product, even if it's radically simplified, your distribution options, exit strategy, and back-end profits are all far more lucrative.
7. Try to identify your weaknesses early and bring on partners to compliment them. Unless you've got a track record of being highly adaptable, trying to fit yourself in a role you're not suited for will consume far too much of your time and create stress.
8. Hire a junior coder. Your wrists are fucked. Stop pushing yourself. They'll only get worse. Get over whatever is stopping you, and try to find someone who you can back-seat dri.. I mean mentor. Read up on Extreme Programming and "pair programming". It might be right for you.
9. Write down estimates of how long it will take to do something and log your progress meticulously. Take a breather now and then to analyze your work logs and estimates. Most people are shocked not by the difference in their estimates and actual times, but in how much time goes into parts of the job they thought were unimportant or minor.
10. I like to hear about people's superpowers and kryptonite-like weaknesses and to help them find ways to break the catch-22's of capitalism. If you have a work ethic and can not only listen to advice but act on it, then write me. I derive extreme satisfaction from working with and knowing these people.
I recommend you get the "I better get upgraded to full-time" entitlement nonsense out of your head and think more along the lines of, "I'll do this until it doesn't work for me."
Contracting comes with several benefits:
- Your own hours, of course, and generally more time with the family.
- You aren't roped into working overtime w/o being paid for it, a la EA_Spouse.
- You get your own health insurance, something not lame & skin-flinty. Check out NASE and their indemnity option, which covers any doctor anywhere.
- Instead of grinding away at precisely one thing for a significant portion of your life, you get to mix and match. This is particularly good for me because I like to design, code, and do biz dev, and as an employee, you're pressured into a focused role.
- It's a phenomenal networking opportunity.
- For some reason, your opinion as a contractor is worth (marginally) more than your opinion as an employee.
- Often, when hired to do a job, you feel lame if you're not qualified to do a piece of it. As a contractor, you can simply subcontract the piece you suck at. You might make a little less, but you deliver more complete solutions, which in the long run will make you more successful.
I you want an invoice template or just to bounce ideas off someone, drop me a line.In my experience, the biggest problem with contracting isn't finding new work. It's worrying about finding new work, because Lord knows, people need to get things done, badly.
I've long been a supporter of portable games and I'm the guy who wrote or championed Unix-y ports of Doom, Quake, and Abuse back in 1993-1996 (http://davetaylor.name), but Mac is still a pain in the ass.
As I'm sure most of you suspect, porting to the Mac is not as easy as "make", even assuming a similar arch to the Xbox2.
The reason developers opt to make their games portable to multiple platforms now is that they want $8M to make their game instead of $6M, and the only way the publisher will approve it is if the developer commits to a multiplatform release, so that they can see more sales.
The Mac game market is still very small, unfortunately, so it doesn't qualify as a viable platform for the publishers. And although the similar endianness of the Mac does make porting easier, it's not a single platform, but a collection of similar platforms, which means you're signing up for a customer support headache, just like you are with the PC. The additional customer support costs, the differing marketing channels and strategies, the inventory mgmt, and sales effort of maintaining an extra SKU, are usually sufficient distraction to knock down a Mac port proposal.
But that's not the whole story. It turns out that Mac owners suffer from accute good taste, which has something to do with why they've historically paid a premium for a pretty, inferior computer.
Only since MacOS X emerged from an awkward puberty has the Mac become a pretty, superior computer to the PC, but it turns out that Mac owners are still the cause of some aesthetic grief. If you do a straight port to the Mac, instead of adding the features and looks that Mac users insist upon so that their Mac apps feel Mac-y, then you get panned in reviews.
I agree with another poster's comment that Apple should either do the ports or fund developers to do ports. I think this would be good for them not only because it would bring more games to the Mac but because it would viscerally illuminate to them the annoying demographic and business side-effects of porting to the Mac, and going through it enough times might inspire solutions.
Sadly, I've recently asked after this, and they are not interested.
On the bright side, they are aggressively going after the top-20 PC games and making sure they get ports. This is smart but not brilliant. Brilliant would be creating incentives for developers to maintain Mac portability from the start.
For instance, I've often thought that iTunes, had they not signed multiple deals with multiple devils to launch it, could be the solution to the distribution dilemna for unsigned composers. If Apple made a similar online distribution store for Mac games, where the developer/publisher could enjoy massive margins that put the retailers to shame, this could be the cookie developers need to pull the trigger.
Pulling that particular iTunes-y solution out of my bum probably too early in the morning w/o sufficient coffee, but my point is that Jobs certainly has the scratch, balls, and brains to make it an attractive platform, but it isn't quite there yet.
I am a geek (http://davetaylor.name), and I picked up Texas Hold 'Em because I act as a hobby (http://nowcasting.com/ddt) and was invited to play a game with a television producer.
So I got on the net, learned the basic odds and strategy, and showed up. It was a $20 game, and I bowed out when I was $14 up. I understand the tradition is to play until you win or are broke, but I noticed that like capitalism, after someone is sufficiently ahead of you, assuming they're not incompetent, it's not really worth it to compete with them.
The social element is key, but I noticed my geekiness doing its job. After the cards were shown, I'd replay the hand in my head, and correlate people's behaviors with the hands they had.
It was like keeping a short circular buffer in my head. Most people had really blatant tells, nothing subtle like tiny twitches. They were more like the loud impressions you get from boys with severe confidence issues trying to hit on girls.
This, along with keeping track of simple odds really helped compensate for it being my first game.
Client side copy protection doesn't. You can study and crack it within VMWare, I'm sure.
I wonder if this has anything to do with the tech consultant on NPR who I'd say a week or two back explicitly recommend that people switch from IE to Firefox or Mozilla.
I believe I disagree with all of these.
When Transmeta's Crusoe launched, it was not widely known that they had the fastest native picojava processor on the planet.
To prove it, they compiled most of Doom down to x86 machine language, and then they compiled the exceedingly hot spots (rasterization) down to x86 for one executable and down to picojava for the other executable.
They both ran at the same speed.
You might say this is because Transmeta processors don't really run x86, but instead translate it to another format. That is correct. So does a JVM. So do Intel and AMD chips. Pentium processors haven't been native x86 processors since the original Pentium.
The trick to most on-the-fly x86 optimizations is figuring out when the strict x86 behavior is necessary, and when you can bend the rules. If you're in the middle of bending the rules, and the processor receives an IRQ or generates an exception, you need to dump everything on the floor and back up to the last time you had a valid x86 state, otherwise, as long as the x86 state is the way it's supposed to be at the end of the block or trace or however much you can get away with, it's all good.
This is true of Java bytecode as well. If you can simply trap out-of-bounds memory instead of doing an explicit bounds check on each access, your code will run very fast. If you get an exception, then it's back to the JVM. If you get lots of execptions, you can retranslate that particular block to do explicit bounds-checking and again manage to avoid calling the JVM.
If your garbage collector learns individual app behavior and tailors its behavior to a particular application runtime memory allocation track record, you can get superior performance to C++ new()/delete()'s compiled to x86, depending on how much time the app developer got to profile his memory management system, a task all too often overlooked in today's memory-is-cheap-get-it-to-market rush.
HP's Dynamo runtime actually proved that you can get better native machine language performance by running the native machine language in a runtime.
Modern JVM's aren't executing bytecode. They're making fully native x86 translations, and the x86 translations jump to each other. In fact, you're not really spending much time running the JVM at all. Your program is getting compiled, linked, and is running native. It's only going to the JVM when it has to.
The bottom line is that your Java perf is going to be wildly variable, depending on the quality of your JVM, and your x86 performance is going to be much less wildly variable, because x86 processors really became C++ bytecode processors several years ago. They're very carefully tuned to destroy benchmarks, particularly Winstone, which is a spectrum of bloated C++ Windows apps, a depressingly representative benchmark of what most of us run.
However, Intel and AMD processors can't see or remember beyond a tight window of x86 instructions. They will make the same optimization mistakes over and over again, no matter how many times you run the application. If your hot spots are longer than the size of that window, you lose. JVM's don't have this restriction. They see and can remember the entire application.
Nothing about x86 or C++ prohibits C++/x86 runtimes. This is precisely what Transmeta and VMWare are doing. They are both little companies and do not have the incredible muscle and financing of AMD and Intel, n
A couple suggestions, Tony:
1. For one, don't put interesting posts on slashdot without a URL next time. Hits + non-zero conversion rate = sales. I couldn't even find your e-mail address.
2. Artwork. Everyone overlooks how much "pretty" sells. Look at gateway's cow theme or Dell's slick site and case designs. Artists are absurdly cheap. Contract them. Don't have an ugly store or ugly boxes or ugly website or ugly ads. Technology goes out of date fast, but gorgeous artwork does not.
3. Offer free home consultation to anyone with any kind of computer. When you're there, if you see a responsible sales opportunity, take it. If you see crap hardware, then pull up reviews of that crap hardware from Google, and rub their noses in their mistakes.
I have to concur with the "hater". This article wasn't up to my standard for Ars, and I recoiled at exactly the same implications regarding the power draw of CMS itself.
CMS and its translation buffer takes a small fraction of the available RAM, and all of RAM takes a small fraction of the power the CPU does, so we're talking about a fraction of a fraction. Translations live in RAM, btw, and are cached like any other executable code, when needed.
> The similarities between VMS and Windows are quite astonishing.
You'll have to qualify that remark, as I thought VMS was that stable, noble operating system which most users and system administrators remember quite fondly as the pleasant user interface to submitting their Cray jobs.
What sucks right now in the game industry isn't that you can't make clever games with new ideas, but that you can't get them funded. If you develop an unusual, refreshing game to completion, you can get wonderful deal terms and have surprisingly good odds of turning a buck.
Getting them funded to completion is the trick. Even veteran game companies are finding they need to pitch a sequel or a heavy license, and the deal negotiation still takes 3-6 months, during which time you can't make payroll and lose your employees to the monster first-party developers or in-house megacorp developers.
Angel funding generally doesn't work unless you know someone wealthy who really trusts you. Doing the angel circuit is incredibly challenging, and you still have to wait several months for the deal to sign and cash to flow, during which time your tasty team is disintigrating.
What I recommend to teams trying to do original content is find a way, by hook or by crook, to completely develop, debug, tune, and polish the game to completion, to develop their own ads, their own marketing plan, their own box art and box copy. This forces you to think through where the game can be sold, how, and for how much.
Handing a boxed, shrink-wrapped product to a publisher makes recouping your development costs trivial. Most big publishers have slipping product, and most big publishers, particularly publicly traded ones, need to ship a certain # of titles every quarter. There is a powerful demand for completed, fun games, but there is an over-supply of largely unwanted proposals and demos.
I did exactly this with Abuse and turned a $60k investment into $1.1M in royalties on a game that sold lousy numbers of units (though it was downloaded like crazy). I have friends doing exactly this sort of thing now, generally quietly, content to make money on games that they love making, even if they aren't over-exposed mega-hits.
They don't always have a $5M marketing campaign or a $5M art budget behind them, but good, fresh games are out there.