Tuesday April 08, 2008
How The Game Is Played
My latest Netbeans trick
I now have the netbeans plug-in correctly displaying the walk-mesh for a tile when the tile is displayed.
Walk meshes are a kind of movement blocking map used to make fast calculations as to where a character can or cannot move.
here's the display with the walk mesh shaded green for non-blocking and red for blocking:
Posted at 04:33AM Apr 08, 2008 by gameguy in General |
First ever darkstar training course comes to an end
Well,
This past week I spent giving a week long course in Darkstar to a number of Sun technical representatives from all over the world. We had attendees from China, Korea and Australia just to name a few.
The week was broken up into morning lectures of anywhere from 45 to 120 min (with breaks) and afternoon labs where they did real Darkstar coding. The labs included a simple matchmaker, a full Blackjack game, and a tiny action game complete with dead-reckoning and server-side collision detection. Look for some form of the slides and labs to be available for general down load in the not too distant future.
Another note: I lied last blog. There IS one date on the road map. I guess the team felt confident enough to release that.
Posted at 07:25PM Mar 21, 2008 by gameguy in General |
Darkstar roadmap goes live!!!
This is an exciting bit of news.
I have really appreciated the Project Darkstar communities willingness to deal with scant internal project information. This has been a crash project in many ways and our first focus was getting code out to you. However we're well aware that engineers do not live by code alone and in the next few months I hope all of you will be pleased to see us filling out the documentation picture and tuning the community site.
I'm pleased to announce we have an officially released road-map now. You can read it at http://www.projectdarkstar.com/wiki/doku.php/darkstarroadmap.
No, it doesn't have dates. Really, all we can say on that front still is "we're trying to get you everything as fast as we can while still making sure we give you a solid and reliable system." But at least you can see what the team's plans and internal priorities are right now.
You are all SO important to us. I don't want you to doubt that for a minute. Project Darkstar was born of my dream to fundamentally change the economics and technology of online games to bring their development and deployment into the range of the small developer while a the same time improving their scalability, reliability and content. But the Darkstar Project cannot succeed without your enthusiasm and involvement. I hope this road-map and the information that will follow will continue to make you, the community, feel like real partners in this goal.
Posted at 09:06PM Mar 14, 2008 by gameguy in General |
Getting into Mass Effect
Well, I started playing Bioware's Mass Effect again and got hooked. Played til midnight. I think maybe they nailed the
settings business. I hate reaction tests that get in the wy of the story. With the knobs set to easy, however,
they are not very challenging... adding just enough to heighten tension without setting off my easily triggered
frustration response.
One warning: The early bombs-at-the-train-station sequence is pretty easy IF you go the right way around the
platforms. Go the other way and its incredibly hard and there isn't really a guide. (The right way is up and over the first
bridge you encounter at the top of the ramps.)
Speaking of knobs, curiosity got the best of me and I peeked at the IGN footage of the infamous "sex scene." Honestly, I'm disappointed.
I mean, yeah okay, you can play as male or female and if you play female then its a "girl on girl" scene but my
titillation level at that went to zero I think with about year 14 of my life. And "on" is stretching it pretty hard. Its
pretty much a "pan to the trees" scene.I'm told if you stop-frame it you can get a brief flash of the side of a blue
boob. Oh boy.You see more in a PG13 movie these days.
Honestly, with all the media noise I was expecting something at least a BIT more fun :P
Posted at 05:38PM Mar 12, 2008 by gameguy in General |
Are fancy graphics really the answer to all game questions?
Tim Sweeny sure thinks so... ofcourse, his entire world is based around his product, the very high end Unreal engine.
http://www.tgdaily.com/content/view/36390/118/
Me, I'm starting to wonder.
As much as I love the *idea* ofimmersive virtual environments, in the end none of the MMORPGs I've played have been able to hold my interest
for more then 12 months. In the end they all seem to suffer from shallow game play and shallower game players.
My current addiction though is about as low-tech as you can get. Its a card game, online. How 1970s, right?
The thing is, its an incredibly *deep* play experience. I played Magic:The Gathering (also called Magic: The addiction, or just "gamer crack")with physical cards when it was new. Now I'm playing again with virtual cards online.Their servers really need work (can anyone say Projhect Darkstar?;) ) but the game play is undeniably deep and fascinating.Also, the people I play with, on first blush, seem a bit deeper.; Maybe it takes a certain amount of a tendancy introspective thinking to really get the hang of something as permutationally complex as MTG.
All this comes back to an interesting question though. Is Tim Sweeny barking up the wrong tree? Is the answer to the future of games not more CPU cycles but more design cycles?
Its an interesting thought.
Posted at 10:52PM Mar 10, 2008 by gameguy in General |
Project Darkstar Siting!
This is really cool and is based on Project Darkstar for their servers
Check it out:.
www.callofthekings.com
Posted at 05:53PM Mar 10, 2008 by gameguy in General |
Passing of an era
Well, the EGG is dead.
E Gary Gygax, or EGG as those of us who have been in the pen and paper roleplay game hobby since the beginning were won't to call him, has passed on. I'm sure they will be brief spat of glowing tributes about "the creator of D&D" and so forth. As one who lived a bit closer to the story, I remember him somewhat differently.& And in that memory, there is a cautionary tale of Greek proportions about greed and hubris.
I was living in Madison, WI during most of the early history of TSR and had, if not a front row, a first-row balcony seat to the drama that unfolded. This is from my memory. Dates may be off, but I think the important events are fairly accurate...
In the beginning. &EGG, Dave Arneson and the two Blumes were all wargamers together playing miniatures based wargames. Together they developed and published the original D&D rules, which were extension rules for a miniatures game called Chainmail to add (heavily LOTR inspired) fantasy and heroic elements.
In one line in those original rules it says "or you can dispense with the miniatures and just play with your character sheets." In this one sentence, they accidentally invented pen and paper roleplay gaming. Tactical Studies Rules (TSR) is born.
On the heels of their success they start publishing other pen and paper RPG games including Metamorphosis Alpha (the original one, which was a rip-off of the TV Show "Starlost") and Boot Hill. During this time hey also publish four extensions to D&D (Blackmoor, Greyhawk, Eldritch Wizardry, and "Gods, Demi-Gods and Heroes") & &The money starts coming in, and trouble begins in paradise...
EGG and the Blumes push Dave Arneson, who wrote all the original monster stats, out of the company. At the same time, JRR Tolkien, who never cared much about rights and derivative works, dies. His son inherits the rights to LOTR and threatens to sue over D&D's use of Tolkien creatures such as hobbits. As a result, TSR issues AD&D, which makes such superficial changes as changing the word "Hobbit" to "Halfling"
The first AD&D book published is the new "Monster Manual." It contains no acknowledgment of Dave Arneson's previous work.& He sues in court and wins rights to the Monster Manual as a derivative work of his original D&D monster booklet. They have no choice but to pay him royalties on
that but its is his last TSR product.
TSR does very well for awhile publishing AD&D and then 2E. Within a few years, however, the Blumes wrest control of TSR totally to themselves and kick out EGG.
EGG goes off and writes "Dangerous Journies", which is a flop. He has a few more flops over the years and basically lives the rest of his life kicking around the industry on his "old man of gaming" reputation.
The Blumes nearly destroy the company in the long run and end up selling out to the family of the originator of the Buck Rogers serials. What the Blumes couldn't manage to destroy, they basically finish. As TSRs financials get worse, TSR gets more and more and more desperate and start trying to chase third party suppliers of D&D related materials out of the market with bogus claims of copyright and trademark infringement.
They only go to court twice ... and lose both suits. &As the result of losing a suit against Mayfarie Games' "Roleaids" product line they agree to buy out the Roleaids products. They buy them and they are never seen again, but this further stretches their money problems.
The end can be seen to be finally approaching when they start suing their own fans for putting up freeware D&D modules and aids on internet ftp sites. A general truism is no business can survive when it becomes regular practice to sue ones own customers (look at whats happening right now in music, as another example.) TSR goes bankrupt and is bought, lock stock and barrel, by WOTC.
And thats the story as best I remember it. A tale of a company born of a common love of a hobby, and destroyed through the greed and hubris of its founders.
Like EGG himself, who was never actually all that great a Dungeon Master, it had its warts and faults, but many of us still loved it for what it brought into our lives. So godspeed E. Gary. And thank you from those of us whose lives your touch indirectly brightened.
Posted at 01:03PM Mar 05, 2008 by gameguy in General |
One holiday almost down...
Well, its the night before new year's eve and I've had a week to myself. Shelley has been doing duty in California at her sponsoring parish. (My wife, Shelley, is studying to be an Episcopal priest) And Sun has been closed for the week.
I've been spending my time writing, watching movies and, honestly, sleeping too much. This winter has been particularly dark in Boston and I am a bit surprised at how hard its hit both of us. I bought Shelley a full spectrum SAD therapy lamp but I may borrow it a bit. I also just bought myself a dawn-simulator.
A dawn simulator is a full spectrum light designed to ramp up over a period to simulate the arrival of the sun, since here in Boston it seems we can get to noon on cloudy winter days and still be in twilight. I'm hoping this helps me get up as I've been sleeping til noon which is too much. Its on order, I'll probably blog about whether it works or not after I've had it a few weeks.
I lucked out and got the entire Neon Genesis Evangelion Anime used on DVD for $4.00 a disc. Its one of my favorite anime series and at $4.00 a disc its even reasonably priced. I've been watching them in Japanese with English subtitles and catching a lot of detaisl I missed when I saw it on TV.
As wonderful as the script and art direction were, the production on it was a mess and really fell apart at the end. The director himself has commented on the fact that it got very sloppy and badly done by the last few episodes and he eventually released two additional movie length episodes to try to fix it that replace the last two episodes in the original series. I've had those on DVD for awhile as it was the only way I could get to see them but they make a lot more sense viewed right after the episodes they are supposed to come after.
I've also started watching my way through my restored Bond films collection. I just watched The Man with the Golden Gun. Before that of course I watched Live and let Die, and beforr that one of my favorites- Diamonds are Forever. I caught a plot hole i had never noticed before but it turns out its filled by a deleted scene thats on the extras disc.
I was noticing plot holes in TMWTGG too. I'm not so sure if there are deleted scenes to explain that or if its just sloppy writing by that point in the series, but I'm going to look on the extra's disc and see.
Other then that, its been mostly writing. I'm up to a bit over 75 pages of rough draft on "Writing Massively Multiplayer Online Games with Project Darkstar", mostly on Bunny Hunters Online. When my co-author Dan Templeton gets his chapters on DarkMUD in I'm expecting that will put us pretty close to half-way through writing the rough of the book. Dan, by the way, just had his first child so I'd be remiss if I didn't say a public congratulations on that!
I'll be glad to be done with writing about Bunny Hunters. It was kind of fun to write but I'm itching to get at the second half of the book, which is DarkMMO and is going to be built on my earlier JNWN experiments.
I'm also running the first of what I hope will be monthly Pen and Paper Fantasy HERO games at Pandemonium Books and Games in Camebridge next month. I'm really looking forward to getting back into the pen and paper RPG scene and have been using that as impetus to do some more serious work on my Fantasy RPG setting that I've been working on for years.
To go with it I've been building a custom template for Hero Designer, which is the official HERO System character editor and management program. It happens to be written in Java and use XML templates to control its functionality. I bought a personal license to Oxygen which is a very fine XML editor (really a suite of XML tools) thats also written in Java and it has made the effort much easier. I highly recommend it to anyone doing serious XML hacking.
Thats about it for what I've been working on. Its a bit of a mixed ramble this time, but I hope you found at least parts of it interesting. Oh, and if your a pen and paper roleplay gamer and in the Camebridge area-- my run will be the second Saturday of January. Come on by to play or at least kibbitz!
Powered by ScribeFire.
Posted at 12:50AM Dec 30, 2007 by gameguy in General |
Me and my OLPC
I decided that the Give One/Get One program run by the M.I.T. media lab's One Laptop Per Child project (also known as the OLPC project or the "$100 lap top" was a worthwhile way to give back this season... plus I got a toy. So I joined.
My laptop, or OLPC as it is referred to by those in the know, arrived just before Christmas and I've been fooling with it and its development environment. Here are some of my impressions.
Form Factor.
Cute is the only word I can think of that really fits this little bugger.

Its hard to get a sense of scale for the machine from pictures. Using a piece of paper as a ruler, I make it about 9 inches wide by 10 inches deep. This is touch on the small side for a grown up, though with some practice I'm finding it quite usable. Its probably the perfect size for little fingers though.
The keyboard is a compromise, being of the old "chicklet" rubber membrane style. Its not the most comfortable keyboard in the world for grownups both in feel and size, but I'm finding it quite usable with some practice. It again is probably fine for kids and it has the virtue of being sealed and spill-proof.
Survivability in both the thrid world and in the hands of kids was a major goal of the project and they seem to have done a good job. The hinges are all beefy and feel solid (though i haven't been brave enough to stress test them.) The thing seems pretty well sealed against moisture too, though again I haven't been brave enough to risk damage to it testing this.
The screen rotates 180 degrees and folds back down to make a tablet for ebook reading, much like my old Clie. The screen is not touch sensitive, but there are "game controller" type controls on its bezel that work well for reading books. The screen itself, though on the small size for a modern laptop, is comfortable to use and somewhat surprisingly high resolution (1200 x 900.) It can be set for a number of back-light brightness levels, all the way down to pure reflective, with a matching improvement in battery life.
The OLPC is light and easy to carry. Its comfortable in one hand and weighs almost nothing. I've started carrying it experimentally as a portable ebook reader, net client, etc and about the only discomfort I have is that fact that it looks a bit like a toy. But, again, thats fine for its intended market. (If they ever decided to sell it to business people, I think they could put it in an ice sleek black case and it would look very fashionable.)
Internals:
The processor is a GEODE. I won't go into specs, you can find them all here.
Suffice it to say its a slow built serviceable x86 clone with low power requirements and a very low power sleep mode. Some of the longer battery life claims for the OLPC are based on utilizing that sleep mode. I suspect that will work well for things like book reading, less well for actively interactive things like chat or game playing.
Its got a gig of high speed flash ROM for a "hard drive". After installing the OS and bundled apps, it leaves a little more then half of it free. You can also put an SD memory card in as secondary storage. I put a 2 gig one in mine, which is available in US on sale for about $20. This is clearly intended as an upgrade not a data mobility feature as the slot is rather hard to get at.
As it has no CD-ROM or floppy, I use either the built in 80211 or a USB key to move things between it and my desktop. The lack of any disc drives helps the OLPC acheive lower cost and extended battery life, at the expense of some speed. (The "high speed flash" is still a bit pokey when compared to modern hard drives. This is only really notable when doing large data transfers, such as when starting an app.)
Somewhat surprisingly, the OLPC has only 256 meg of RAM. This is its biggest limitation. Although the OS is multi tasking, I find I can only load a few of the apps at a time before I run out of memory.
Software:
The OLPC runs a stripped down Fedora 7 Linux with the Matchbook tiny window manager. Ontop of that it runs a custom shell/app manager called "Sugar". Although still a bit rough around the edges, Sugar is one palce the OLPC really shows its stuff. Its an easy, accessible desktop metaphor with some surprising innovations. The Sugar "neighborhood" manager is their networking interface and ist the nicest 80211 interface I've ever seen. The neighborhood screen is graphical, showing you in the center and all the various detected 80211 connection points as circles of varying distances away from you. If you hover over one, it identifies itself. If you click on one, it connects. That simple. Its so easy and intuitive, it reminds of some of Apple's best design work.
But you don't just have to connect to your usual routers. OLPCs themselves can connect directly to form "meshes". Users can communicate with other users in their mesh IM style, as well as using them to forward packets to a router.
The primary coding language for the OLPC is python. Although it comes with a little python editor intended for beginners, I was fairly easily able to download and install the Eric3 editor which is a full featured python development environment. It still left me with over 45% of my storage free.
Java and the OLPC
Since its Linux and X, I thought I'd try installing the JDK. The good news is that the JDK does indeed install and run. The bad news is it brought me up to about 90% utilization of the hard drive. The JRE isn't that much better. I might try a CDC at some point if I can find one for Linux and X but ist a shame, really. This is another case where its purely the bloat of the Hostpsot JDK thats keeping it out of an otherwise viable spot.
Once installed, the JDK did run... with two caveats. The first is that Sugar (Matchbook really) is a full-screen window manager. Every window must be full screen and they end up stacked on the X11 window stack. That isn't a big deal. alt-n/alt-p easily switches between them HOWEVER somehow Matchbook isn't communicating that back to Java properly and Java lays out for only about a third of the window space. This is on the small and cramped size and looks awful.
The second problem is even more major, Swing pull down menus don't function properly from the mouse :( (Short cut keys, where provided, work fine.) This makes apps more or less unusable.
As Java works well with most X11 window managers, my guess is that this is due to a bug or limitation of Matchbook. Hopefully someone with more interest and knowledge in X11 window managers then me will look into it.
COnclusion:
All in all the OLPC is still a bit rough around the edges but is an interesting and I think worthwhile device.
For those of you who would like to fiddle with developing on it but didn't want to shell out $400, you can use the emulation images on Windows or Linux. They are available for either VMWare or Qemu at the main OLPC Development site. Instructions are on the wiki here.
Even though I own an OLPC, I find it useful to do major tests and work on an emulation image first then transfer it. I myself prefer the VMWare emulation environment, but thats very mucha matter of taste and what works best for your hardware.
Powered by ScribeFire.
Posted at 01:59PM Dec 27, 2007 by gameguy in General |
The piano has been drinking...
So, recently someone on my list pointed me to a blog by an amature game developer who wrote his game in Java. (http://steve-yegge.blogspot.com/2007/12/codes-worst-enemy.html)
To sum it up, his code base is ungainly and unmanageable and all its all the fault of the language and the tools.
This reminds me of nothing more then the Tom Waits song "The Piano Has Been Drinking." I'll end this blog with the lyrics. In the mean-time, lets take a closer look at some of the things he claims he's learned from this experience:
"I happen to hold a hard-won minority opinion about code bases. In
particular I believe, quite staunchly I might add, that the worst thing
that can happen to a code base is size."
Well there is nothing terribly new or exciting here, except that he apparently hasn't caught up from the 80s when IBM thought number of lines of code written per day was a good measure of programmer productivity. Since then the industry has become very aware that well written code is often also the smallest and that 10 good lines of code may do the same thing that 1000 liens of crap code does, and do it better and faster as well as in a more maintainable fashion.
Today, this is part of what we call "elegance" and "good design."
"People in the industry are very excited about various ideas that
nominally help you deal with large code bases, such as IDEs that can
manipulate code as "algebraic structures", and search indexes, and so
on. These people tend to view code bases much the way construction
workers view dirt: they want great big machines that can move the dirt
this way and that."
I don't know what industry people he knows, but I don't think of my code as dirt. I;m not sure I wouldn't think of his code as dirt, based on the picture that emerges from his complaints, but thats another story.
Using his analogy though, you can't build a house in Massachusetts without moving 4 feet deep of dirt from the construction site to elsewhere. We call this a "foundation" and a "basement." Well, maybe he lives in Cali where they don't have basements. My point though is that this work is unavoidable. Its not that you want to move all that or enjoy doing it-- its that you cannot build the house any way else.
Similarly, with the genuine complexity of today's mainstream games, which rival or beat the complexity of any other software today, you are going to have a big code base. Its inevitable to do the job. and that means you had better have tools to manage it. The fact that the tools are so much better today then they were when I started game programming in C is a cause for some genuine excitement, yes.
But you still have to know how to use them. To continue his construction analogy a bit further, I love my table saw at home. It makes projects much easier. But I don't let anyone touch it who doesn't know how to use it properly because it is also a very efficient finger removal device.
I have a feeling he's experienced the latter with his software tools. Especially after reading thsi next assertion.
"It turns out you have to have something bad happen to you before you
can hold my minority opinion. The bad thing that happened to me is that
I wrote a beautiful game in an ugly language, and the result was lovely
on the outside and quite horrific internally."
I have seen beautiful assembly. I have seen piss ugly PERL. The biggest difference in whether code is one or the other was never the tool, or the language, but the preperation of the programmer. Hackers produce hack work. Designers design clean code. Its really that simple. A proper design phase makes all the difference. That, and the willingness to throw away your first cut and start again when the implementation drifts too far from the original design.
In the book "Effective Java" Josh Bloch suggests you design with Interfaces first and not write a line of Class code until your interfaces are right and compile against each other. This is not a new idea. Its just another way of saying "design before you implement" but Java makes it easy to see. Before Java though I did Modula2 and C/C++. In Modula 2 I wrote all my DEF files first. In C/C++, I wrote .h files first.
As the article continues he shows a definite trend towards "magical thinking" in how he approaches his tools. He seems to expect his tools to do the thinking for him. Given that, I am not surprised he is disappointed.
"'The problem
with Refactoring as applied to languages like Java, and this is really
quite central to my thesis today, is that Refactoring makes the code
base larger. I'd estimate that fewer than 5% of the standard
refactorings supported by IDEs today make the code smaller."
To my mind he has completely missed the point of a refactoring tool. A refactoring tool does not magically make your code smaller. What it does is give you the flexibility to fix design mistakes later in the game. It *may* make your code smaller IF you use it to factor out common code that you didn't realize was common in your design phase.
But this is a thinking operation, you don't just press a "refactor" button and expect your code to magically be better. Such general automated code correctness and translation has been searched for by academics for decades now to no avail.
Programming is an art. And it is a poor artist who blames his paintbrush.
It is ironic that his next complaint is...
"This brings us to the second obviously-bad thing that can go wrong with code bases: copy and paste. "
If your not going to refactor at all, then you *will* end up doing a fair bit of cutting and pasting by the time you are through. Here I semi-agree with him. If you find yourself copying lines of code from one part of your program to another, then its probably time to think about refactoring something.
This next one is interesting....
"The core problem is duplication, and unfortunately there are
patterns of duplication that cannot be eradicated from Java code. These
duplication patterns are everywhere in Java; they're ubiquitous, but
Java programmers quickly lose the ability to see them at all."
Don't you love it when one person speaks for a whole community? Don't you love oit even more when they claim to be an outsider to that community? He claims that "other Java coders can't see this" but he gives no examples that *he* sees.
If he did maybe we could discuss whether its really an inherent weakness in he tool or rather the way he is using it.
His next poke is at a straw man.
"It's obvious now, though, isn't it? A design pattern isn't a feature. "
He's absolutely right Of course he's as right in any language as he is in Java since "patterns" properly specified are not language specific.
The thing is, he again misses the entire point of the tool. Patterns were never intended to be features. Programmers who proudly proclaim how many patterns they used in their code miss the entire point. Patterns are simply a common language with which to describe common code constructs. They are a communication tool, and a recognition that certain constructs tend to repeat themselves in code. Nothing more.
"Bigger is just something you have to live with in Java. Growth is a fact of life. "
Another empty, unsupported assertion. Seems maybe thats one of his personal design patterns? ;)
"I'll give you the capsule synopsis, the one-sentence summary of the
learnings I had from the Bad Thing that happened to me while writing my
game in Java: if you begin with the assumption that you need to shrink
your code base, you will eventually be forced to conclude
that you cannot continue to use Java. Conversely, if you begin with the
assumption that you must use Java, then you will eventually be forced to conclude that you will have millions of lines of code."
Do I really need to say it? Yes, its a repetition of his unsupported assertion pattern.
It's also nonsense. Java's late binding combined with strong type checking makes it about the best language for proper data structure design and re-use I've ever used. C++ came close but ultimately its lack of late binding led to the "fragile base class" problem and reusability of code didn't happen.
Well written and reusable modules simplify any complex problem by breaking it down into the application of already solved sub-problems. In fact, I'll argue this is really what he is looking for and why, in the end, he gravitates to scripting languages. The real difference is that, in scripting languages, most of the design of the reusable modules has been done for you by the scripting environment whereas in a full programming language like Java, you need to look at it and think about it yourself.
But to use his own argument style through broad analogy, thinking a scripting language all by itself reduces over-all code complexity is like thinking that shoving all your crap under your bed counts as cleaning it. This isn't to say they can't be valuable tools. But again, no tool is going to magically solve these programs. No program is going to write your program for you. Thats why we get paid to design and deliver software.
"But you should take anything a "Java programmer" tells you with a hefty
grain of salt, because an "X programmer", for any value of X, is a weak
player. You have to cross-train to be a decent athlete these days.
Programmers need to be fluent in multiple languages with fundamentally
different "character" before they can make truly informed design
decisions."
Well here I semi-agree with him again, but hes ultimately still got his left shoe on his right foot.
I don't hire "programmers." Ever. I hire software engineers. And the engineering is the big thing that has been lacking in his project. Good software engineers don't train in "languages." They train in how computers work. Underneath. They train in the arts and techniques of good code design. They can see the big pictures of how things like structured coding, data structures and object oriented coding all inter-relate.
And they don't get hooked on thinking that easy answers exist in the tools.
A language is just a tool like any other. Learning new tools is a good thing. But understanding their proper use takes more fundamental skills. Ask a carpenter, a real one, how much of her work is pushing the button on the tool and how much is understanding the characteristics of the wood she is working on.
His whole IDE ramble I won't quote, because thats all it is. Honestly, I can't really follow what hes trying to say. Modern IDEs conatin many tools certainly. Most of which are time savers and can lead to better code when used in the right way at the right time and place. See my description of the table saw above.
In the end, as I mentioned above, he decides he wants a scripting language...
"That narrows the field from 200+ languages down to maybe three or four:
JRuby, Groovy, Rhino (JavaScript), and maybe Jython if it comes out of
its coma.
Each of these languages (as does Perl 6) provides
mechanisms that would permit compression of a well-engineered
500,000-line Java code base by 50% to 75%. Exactly where the dart lands
(between 50% and 75%) remains to be seen, but I'm going to try it
myself."
Lets ignore the "well engineered" claim for a moment and focus on the rest of the claim.
Scripting languages are "more expressive" in the sense that fewer lines of code can accomplish more work. Note I said more, not necessarily the right work. That depends on how closely the creator of the underlying scripting environment had your particular application in mind when they designed it. This is the nature and purpose of scripting languages-- to address niches be they First Person Shooters in Unreal Script or web sites in Ruby on Rails.
Scripting languages are also typically loosely to non typed. This allows for a coding freedom and somewhat smaller code size at the cost of removing the consideration of important compatibility issues from the design time of the code. This cna be a time saver when writing small bits of well understood code, but its a nightmare when you want to start writing modular and reusable code.
It also means more bugs.
One of the great things about Java that most who try it experience though few really think about is that Java is designed as a "fail-early" language. Some errors that you could make in C and C++ won't even compile in Java (eg "dead code", uninitialized variables. wild pointers.) Others are caught as soon as they occur at run-time (eg array over-flow and under-flow.) This results in *provably working* code far faster then previous languages and a lot of it is thanks to Java's particular blend of strong
typing mechanisms.
I've written quite a lot of C, C++, Modula2, Java and PERL in my day. And yes, PERL code is quick to make run, and *very* hard to debug. C is a pain to get running and also hard to debug. Java is quick to get up and running, and well designed Java can be near bug free on the first pass.
So I wish him luck with scripting languages. He's going to get so-far, and then fall over because his code will require complexity they can't wrangle. At which point he'll be forced to go down back underneath and write more modules for the language in the lower level its supported by, be that Java, C or whatever. Maybe this will actually get him to think about his modules up front, but somehow I doubt it.
He missed the most useful tool he coudl have used on this project. I recommend it to anyone coming new to Java and software engineering. And thats a book.
Josh Bloch's Effective Java
Had he read it and grokked it before he started, I strongly suspect he would not be in the mess he's in today.
Which brings me back around to the title of this blog. I leave you with this apropos song:
my necktie is asleep
and the combo went back to New York
the jukebox has to take a leak
and the carpet needs a haircut
and the spotlight looks like a prison break
cause the telephone's out of cigarettes
and the balcony's on the make
and the piano has been drinking
the piano has been drinking...
and the menus are all freezing
and the lightman's blind in one eye
and he can't see out of the other
and the piano-tuner's got a hearing aid
and he showed up with his mother
and the piano has been drinking
the piano has been drinking
cause the bouncer is a Sumo wrestler
cream puff casper milk toast
and the owner is a mental midget
with the I.Q. of a fencepost
cause the piano has been drinking
the piano has been drinking...
and you can't find your waitress
with a Geiger counter
And she hates you and your friends
and you just can't get served
without her
and the box-office is drooling
and the bar stools are on fire
and the newspapers were fooling
and the ash-trays have retired
the piano has been drinking
the piano has been drinking
not me, not me, not me, not me, not me
Powered by ScribeFire.
Posted at 04:18PM Dec 19, 2007 by gameguy in General | Comments[3]
Short note to the Eco Interested
Its always nice when your employer does something you can be particularly proud of.
Sun is sponsoring an unconference in Santa Clara called the "OpenEco Energy
Camp". It looks to have an intersting mix of high profile particpants.
Unfortunately it will *not* feature Al Gore singing "There's a hole in the center of the Ozone."
But, here is what it will feature: http://www.openeco.org/energycamp
Powered by ScribeFire.
Posted at 12:11PM Dec 19, 2007 by gameguy in General |
Is this the Android I'm looking for?
Okay,
I was slow to catch on but I'm starting to get excited by Google's Android project.
My biggest complaint with every mobile phone, in fact every mobile device, I've ever had is that it was a closed
device that was either a pain in the neck or outright impossible to program. The Android is the antithesis. It
is designed from ground up to be a free and easy platform to program. Best of all, its primary coding
language is Java!
Put decent game hardware on one of these and I am *there*. Frankly, if someone comes up with a way
to install the Android base on my PSP I'd probably do it, even if it lost me access to PSP games.
As part of the book I'm currently writing right now, I'm doing an MMO skeleton. I am already seriously
considering doing a little Android chat & trade client as well as the full featured desktop one.
Powered by ScribeFire.
Posted at 03:26PM Nov 13, 2007 by gameguy in General | Comments[1]
A weekend of games: Part 1 - 360 blues
Well,
This weekend I finally got a chance to play with some toys I've had sitting waiting for me. Having finished the gaming table (article and pictures on that to follow), I decided to hook up my refurbished XBox 360 that arrived last week.
The good news. It was easy to hook up and I got a nice big picture on the projector screen in my home theatre.
First problem: It wouldn't recognize the wireless controller. Apparently, my "fixed" XBox still had a broken blue-tooth synch switch. A quick google however on the problem told me that you can synch the controller using the cable from the "charge and play kit." This kit also comes with a rechargeable battery that folks on the internet said was essential. So a quick hop to GameStop and $20 later and I was synched and ready to try it all out.
More good news. The Wireless controller worked flawlessly sitting in my theater seating with the XBox360 in the rack in the next room. I was able to boot up and make my online account. It said it wanted to download an update and then it would restart the machine.
I watched it download, then the screen went blank and I waited.... and waited... and waited...
Nothing.
Going back to the rack, I saw the Xbox360 had three of its 4 "ring lights" lit red. Power cycling didn't help so I wnt back to the net. Success, it seems on the 360 you need to leave it off for at least 10 seconds on a power cycle. Returning to the box, I powered it down, counted to 20, and turned it on again. All 4 lights went happily green and I went back to my theater seat to play around.
Mass Effect, the 360 game I really want to play, hasn't shipped yet, so I started prowling the online offerings. I saw a few interesting demos and videos and started the downloads.
Next problem: After about 90 minutes, the screen suddenly goes checker board and freezes. I go back to the rack and put my hand by the box... its not blowing particularly hot air so it shouldn't be an over-heat. I shut it down, count to 20, and start it again....
Still red! Uh oh. I do it again , nothing changes. I unplug everything, count to 20 and plug it all back in and turn it on. Sill the "red ring of death" as the net community calls it. I go back to google. The only advice I can find is to call 1-800-4MY-XBOX. This is late saturday night.
Good news again: MSFT has the line staffed 24 hours seven days a week. A very nice lady, probably in India, takes all my information and tells me that (1) This problem needs a factory return. They will send me a prepaid shipping box to do so (2) That they will extend my free online subscription a month to cover the time I'm down and (3) They have an extended warranty to 3 years to cover the red ring of death. (Such secret warranties actually are fairly common. The auto industry uses them all the time to cover known manufacturing problems.) She also apologies profusely and what sounds very sincerely for the hassle.
I am now waiting for the box.
All in all I have very mixed reactions to this. I have bought many refurbished products over the years and this is the first one I've had any trouble with. Microsoft really needs to work on their quality control (QC.) They also need to understand that QC is *especially* important in refurbished units and a basic test of *any* refurbished unit should be a burn in bench test of a day or two.
On the other hand, their customer support has honestly been excellent. All in all this has to be costing them a fortune on what was already a loss-leader product (the 360.) There are lessons we could learn here in terms of customer support.
Powered by ScribeFire.
Posted at 02:22PM Nov 12, 2007 by gameguy in General |
YouTubing down the river of memories
Okay,
I have a new media addiction.
I was literally one of the first viewers of MTV. While I was in college I watched with rapt fascination its predecessor, the "Video Jukebox" short segments on HBO. When MTV went live I watched it as much as I could, absorbing this fascinating new entry to the area of film/video-- the musical short.
In those early days the videos were wildly experimental, very often impressionistic, and often fine peices of art created by artists not for monetary gain but because they had something they wanted to show people.
Alas, the music industry soon discovered that a hit music video meant big record sales. This was shortly followed by the discovery that if you put some pretty girls on screen in very little and had them shake it, and maybe mixed in some other "f-ck you mom and dad" stuff you had a guaranteed hit video and, as art, MTV descended into boring insignifcance.
But those first two years or so had wonderful stuff. I sat for a month of free time at one point with my finger on the wired remote of my Betamax recording the best stuff. Unfrotunately I lost that tape years ago in a move.
You Tube to the rescue! I am discovering others videod these things as well, and they are showing up on YouTube. I've started scouring YouTube to recreate my collection but here are two notworthy ones to start with:
The first video ever broadcast on MTV. I watched that broadcast, ergo my claim to being among the first MTV viewers. Video Killed the Radio Star by The Buggles.
And this video, for Cry by Godley and Creme (originally of 10cc) is just an amazing bit of emotive film making.
Powered by ScribeFire.
Posted at 03:23PM Oct 29, 2007 by gameguy in General |
Collecting Blog Questions
First of all, a big thank you to all my fellow bloggers who are blogging on the Project Darkstar interview this month on java.sun.com.
Some of you and your readers are asking interesting questions. Rather then create an account on each of your blogs I'm going to be lazy and answer them all in my own!
From John Simpson's Blog:
"Several questions: Do we really know what the market for these
multiplayer games is? Does anyone have experience with Darkstar -- Sun
claims that big mostly unnamed industry players are interested. Are
Sun's claims credible? And what else should we be thinking about? "
So to break it down, a few market data points. One online game (WoW) is currently estimated at billing over $100M a month. (9 million users times $13 a month).
DFC intelligence reports: "the worldwide interactive entertainment market is expected to grow from
about $28.5 billion in 2005 to around $42 billion in 2010."
As for experience, I suggest people log into www.projectdarkstar.com, our community site and visit the forums. Experience is growing rapidly and there are many experienced developers that visit there.
As for our claims, we have been able to name a few names. They include a pilot done by NCSoft (publisher of Lineage 1&2, City of Heroes/City of Villains, Guild Wars and a number of other online properties. They are one of the biggest pure-play mmo publishers in the business). Integration work at Perpetual Entertainment (publisher of Star Trek Online) and serious development underway by the folks at Gaia Online ( a big social game site) on their first MMO which is based on Darkstar technology. And a big project in planning at Mind Control Software, a small game developer but one *highly* respected inside of the industry.
We have a lot more folks we're working with... frankly were swamped, but due to the natures of the business relationships we cannot divulge those names at this time.
"Is there
a use for something like Darkstar in applications outside of the purely
gaming arena? Consider the transactional capabilities: is there a
business application here? "
Its important to understand both what Darkstar does and what it doesn't do. A traditional app server is designed and optimized for maximal average transactional through put. We are not. We sacrifice this and other features of traditional app servers in order to optimize our key area-- worst case latency of response.
Another thing we loosen for performance reasons is ACID requirements, in specific the Durability requirement. In the event of total back end failure, The Project Darkstar data store guarantees it will come back up in a referentially integrous state but we reserve the right to lose about to about 2 seconds of transactions. For a game, this is not a problem. If your trying to store mission critical things like financial transactions however, it could be.
The way our game developers handle this is to use a Darkstar pluggable service to talk to external billing systems or databases for those kinds of things. Thats one of the many pieces of integration work that Perpetual has been doing.
Now, having said all that, uses DO pop up that surprise us. When your application is "game like" there might be a fit. We know an online auction site that has prototyped their next generation on Darkstar for the auction logic and are *very* happy with the results. (No, I can't give the name yet. Its another one of those.)
Okay...I think thats enough for this blog. Next blog will be more answers to questions I find out there.
Posted at 04:17PM Oct 23, 2007 by gameguy in General |