Random Thoughts of a Scatterbrain.
 Saturday, January 14, 2006

Random DevTools Entry: #001

1/14/2006 11:48:10 AM (Eastern Standard Time, UTC-05:00)

From time to time, as I'm working on projects, I invariably come across great sets of tools that make my life just a bit easier.  My plan is to list the tools, test them out, and rate them somehow after I get some usage.  I guess this is my way of sharing with the world :-D

So for the inaugural entry, we have two tools and one library:

  • FaceID Browser.  When creating custom add-ins for Office applications, you can create a command bar button (CommandBarButton) and apply an existing Office icon using the FaceID property.  This tool allows you to visually map the integer values to the icons.  I've tested it to work with Office 2003.
  • Xsd Generator with GAT.  For some reason or another, I like the idea of working with XML schemas when building an object model; schemas seem much more natural to me than working with classes in code.  In addition, you get nice XML serialization markup for free :-) Matias Woloski has written a custom generator for .Net 2.0.  I'm gonna give it a look-see. [Update:1] The binaries that are currently on the GDN website are not compatible with the RTM versions of VS2005. [Update:2] Holy crap.  After several hours of fiddling, I finally got it to install.  Damn, the December CTP of GAT extensions is still buggy as hell.  For some reason or another, uninstalling the Xsd Generator after installing it would also remove all traces of the Microsoft.Practices.RecipeFramework dlls. WTF? So this would necessitate reinstalling the GAT extensions.  On top of that, the December CTP changed the default namespace on the configuration file from http://schemas.microsoft.com/pag/ipg-core to http://schemas.microsoft.com/pag/gax-core took me at least a half an hour of digging to find this info.  The other really stupid thing is that you can't change the config file after install without reinstalling...another big WTF; I mean, isn't that the whole point of having an XML config file?  I also had to rebuild the references in two of the projects and add a missing reference to Microsoft.RecipeFramework.Common.Library.  But in the end, it's worth the effort!  I dig the fact that it generates generic lists instead of typed collections (typed collections are soo last gen. :-D).
  • Microsoft Updater Application Block.  Looks useful for anyone currently building lots of application add-ins for any of the Office applications as it will allow you to keep clients up-to-date without having to redeploy with each update.  There's an article over at TheServerSide.Net on usage and details.

That's it for now.  Look for more installments in the future.

Now We're Getting Somewhere

1/14/2006 5:43:00 AM (Eastern Standard Time, UTC-05:00)

I think that in these last two weeks, I'm finally starting to figure out the answer to one of my least favorite interview questions: where do you see yourself in x years?

I think the problem, in my case, is that my technical skills always shoehorn me into a developer's role, by default.  However, doing things like building Windows forms and web forms here and there doesn't satisfy me.  It's not challenging to build point solutions here and there.

One thing that I like about being a consultant is that I get to see many different environments and I get a chance to see how many different companies operate from an IT perspective.  When I engage a client, I always end up thinking "big thoughts".  I inevitably share my "big thoughts" with others and (you'd think I would learn my lesson by now) always end up with the short end of the stick, one way or another.  Thinking "big thoughts" as a consultant isn't always a good idea for a number of reasons (or more accurately, sharing such thoughts with the customer); it inevitably leads to strife between the established developers and architects.  To begin with, the business of thinking "big thoughts" is typically held by an employee of the client or by a less technical, more senior "architect" (either consultant or employee). 

The problem with the former is that you rarely encounter an employee in a non-software related industry that really keeps up with the technology that changes so rapidly around them.  Often times, companies are slow to move to newer technologies.  There are companies that only switched from ASP to .Net in the last year; they're 3 years late to the party.  Not only that, working within one environment for so long to be trusted with the role of "architect" typically means that one becomes too engrained in the ways of thinking of the other developers within the organization so there is a resistance to trying something new; there is a resistance to improving upon designs limited by weaker frameworks of the past.  Instead, the new development is inevitably shoehorned into the "traditional" way of thinking ("this is the way we've always done it" (incidentally, this is what Scott Bellware meant to address when he coined the term "Visual Babytalk" (It's not that I have anything against VB.Net, in fact, I have a workshop written VB.Net, it's just that the majority of the developers that think in VB are from an antiquated era of software development))).  A developer that wrote the last system in ASP+VBScript is going to be a bad choice to design the new system which will be implemented in ASP.Net+C#.  The radical paradigm shift in architecture isn't apparent to many and most implementations end up being little less than .Netified versions of the old ASP applications using the same principles that were used when writing ASP.  Yuck.

The problem with the latter is that more senior architects are typically less technical or they've strayed from their technical roots.  Without a deep understanding of the technologies that are evolving, there is no way that good software design can arise.  It ultimately ends up in a design that mirrors last gen. thinking.  Now I'm not saying that senior architects can't design good systems.  It's rather that there are so few architects that remain technically rooted in the latest technologies and software design principles (of course this is not to say that there aren't fundamental, "old school" principles that still hold).  A part of the problem is the business model where a management position is equated with higher salaries.  So instead of equating a higher salary with a more technically sound and educated developer, companies like to promote and bring in new developers (employee or consultant) that already know the new technologies.  And let's face it, people have lives.  As you progress in life, you will have children, you will have a house to take care of, you will have multitudes of responsibilities that distract from your ability to focus on studying technology and design principles.  It's an issue I fear I will have to encounter in the next 5 years (and I thank my wife for taking a big burden off of me by taking care of most of the day-to-day responsibilities like paying bills and that sort of trivial stuff).

Now don't miscontrue my words; I hardly think that I'm "The One" or anything like that.  In fact, I openly admit that I still have much to learn.  When I say "big thoughts", I simply mean to think beyond satisfying immediate needs.  It's the difference between giving a man a fish and teaching a man to fish.  It's the difference between putting a bigger, more powerful engine into a below average car in hopes of driving sales versus building a better factory and hiring more skilled workers which will yield higher quality.  It's the difference between trading for a basketball player that averages 5 points per game more to try to win games versus rethinking the offensive and defensive schemes to improve the chances of winning (i.e. Dallas Mavericks).  It's the difference between designing a processor with a higher clock speed versus designing a more powerful processor (Intel Pentium IV vs. Intel Pentium M/AMD).  It's the difference between thinking 2 weeks into the future and thinking 2 months down the line.

So I think I know what to ask next time I go into a job interview: does your organization like to think big thoughts?  I don't want to sit around writing reports or tweaking Windows forms.  I want to write the framework to help the developers more rapidly write and deploy the reports.  I don't want to sit around tweaking Windows forms every time a business person wants to change a layout.  I want to write the framework to allow for an easy to reconfigure UI.  I don't want to do trivial programming tasks.  I want to build complex things.  I don't want to work under a technical architect/lead developer who's less technically educated than I am (I make a distinction between technical architect and business architect/analyst) unless said individual is open to new ideas, new technologies, and new ways of thinking.  I like to think "big thoughts".

My managers and the customers (business people) don't always like that.  Managers think small thoughts.  They're like children in the sense that they have short foresight.  Part of that is that they're at the whim of the business people and in the eyes of the business people, if you're not contributing to the bottom line today, you might as well be gone tomorrow.  They've been conditioned to operate in a mode where quantity is valued over quality, where getting it done now is more important than getting it done right.  When you work like this, what you end up with is a pieces of code that are cobbled together, difficult to maintain, and costly to fix. 

Unfortunately, very few managers that work outside of software related industries think big.  I don't think that I've ever met a manager that I would say "thinks big", but I think I've come close by having managers that allowed me to think big by trusting me and allowing me to work the way I like to work.

I remember telling Brian, my current managing consultant, that I like to work on things that don't have value.  More accurately, I like to work on things that don't have immediate value.  The value of such things is never apparent in the short term, as in the short term, the paying customer wants to see progress.   When building such things that have little immediate value, it's very difficult for the customer to understand that if a little more effort is put in upfront to solve the more complex problem, then it will be many times cheaper to solve the simple problems down the line.  Writing a framework to create and distribute reports costs a lot of money upfront with little to show for it.  But the benefits down the line far outweigh the immediate costs as report after report is written and deployed using the framework (and it's not like a business is going to ever stop writing reports).

It's unfortunate for me that I've never really worked in a software development company as I think that's where I'd fit in the best.  But at the same time, I think if I did work for a software development company, I wouldn't be exposed to the complex business problems that people are trying to solve.  But for sure, I now understand what I want to do in the next 3-5 years: I want to solve big, complex problems.

On a tangent, I think I've figured out why I have problems making small talk and chit chat.  It's because I don't want to talk about anything other than software design, technologies, and the process of building software :P Seriously, that's really just about all that I'm ever really thinking about when I'm not watching basketball or doing something mindless.

I guess I'm just ranting now :-D The problem is that I'm thinking big thoughts, but mired in a situation where I'm forced to work on small ideas.  It's terribly frustrating, to say the least.  I feel so un-energetic each day. :-S

 Thursday, December 29, 2005

Gaming Rant

12/29/2005 11:52:58 AM (Eastern Standard Time, UTC-05:00)

So the last few months, I've been on this crazy GBA gaming spree.  Even I myself find it weird that, with a PS2, GC, and a capable PC, I'm having the most fun playing some old school 2D sidescrollers and RPGs.  I'm currently making my way through Final Fantasy IV, which is still a great game in this day and age.

It's weird, in a sense, that in a medium (videogames) that allows for so much innovation and creativity, the industry continues to fall back on tried and true formulas, time and again (with a few exceptions here and there).

I came across two items this morning that kinda got me thinking about how seriously the rehashing has become.

The first was The Grand List of RPG Cliches.  It reveals how many of the RPG games today, while they certainly feature better graphics and some level of innovation in the battle systems, at the core, all contain the same recycled material.  To be honest, this was always in the back of my head.  Seeing it materialized in a list made it much more apparent, however. 

I was more disheartened when I came across a preview of RF Online (yet another Korean MMORPG).  Certainly, this game has some very nice art direction and slick graphics.  I downloaded the gameplay video expecting to be blown out of my seat (I don't know why).  But, to my dismay, I was underwhelmed and even disappointed by the gameplay.  Basically, it boils down to the same "stand-hack-slash-repeat" combat system that has been so disappointing in so many other games.

It's not that such a battle system can't work, one of my favorite games of all time, Vagrant Story, used just such a system.  But it was genius and quite unique at the time (and still is).  The issue with RF Online, Guild Wars, WoW, Lineage II, and just about every other MMORPG to date is that they keep recycling the same basic principles and the same basic gameplay.  Blah!  The least that these guys can do is to copy Vagrant Story and add another diemension to the gameplay.

You would think that someone, by now, would have created a MMO/RPG that would truly break the mold and go off in a totally new direction and address all of the issues that make no sense in "classic" RPGs.

 Sunday, December 18, 2005

Workshop : JavaScript Combobox

12/18/2005 3:18:28 PM (Eastern Standard Time, UTC-05:00)

The default set of HTML controls do not include functionality like that of the WinForms combobox. For UI designers, this is usually resolved by having both a text box and a dropdown select box and allowing users to use one or the other. However, the big drawback of this approach is that it takes up what could be valuable real estate space and it's not necessarily the most elegant solution to the problem.

This workshop goes through how we can utilize the power of unordered lists and CSS to create a custom, JavaScript combobox.

If you're interested, check out the workshop.

Leave comments, questions, and criticisms in the thread.

 Friday, December 16, 2005

Asynchronous Callbacks with AJAX

12/16/2005 9:01:51 AM (Eastern Standard Time, UTC-05:00)

A blog post I came across should be of interest to anyone working with AJAX:

I've explained before why XmlHttpRequest should always be used asynchronously. In a nutshell, JavaScript is not multi-threaded, so the only way to keep your application and browser reasonably responsive is to use some kind of asynchronous pattern. This way, the multitasking is left to the hosting browser and the JavaScript developer can enjoy a relatively easier programming environment where he only needs to care about events and not about summoning threads and managing locks.

Add this small script to your page (preferably in the <head> section) and all your XmlHttp requests will be done synchronously no matter what the framework you're using is doing. This works with ASP.NET 2.0 callbacks in both IE and Firefox but breaks callbacks for Opera. I suspect that it would also work with other Ajax frameworks such as Atlas.

Supposedly, this will work with any AJAX framework.  I've been running into just this issue with AJAX.Net.  Having used both  AJAX.Net and Atlas somewhat extensively, I'll have to give the edge to Atlas for pure ease of use.

 Monday, December 12, 2005

Ebert on Games as Art, Part 2

12/12/2005 1:11:47 PM (Eastern Standard Time, UTC-05:00)

Over the last few weeks, there has been quite some noise regarding the debate as to whether video games should be regarded as a form of "art".  Certainly, this is not a new debate, but it has been reinvigorated as the new generation of hardware and software allow the game designers to build ever more photo-realistic environments and bring us closer to an interactive movie.

At the center of the debate, today, is Roger Ebert, one of the most respected and recognized authorities on motion pictures.  I must have missed the original source of the current dialogue (I can track it to the third Q&A on this page), but the resulting comments from around the world/web is interesting nonetheless.  There are so many great replies and comments, that it's hard to really summarize, but there are a few choice perspectives that I feel I should highlight.

Like Tim Maly, I don't think that a comparison of film to video games is one that has any relevance.  As Tim states in a letter to Ebert,

The invention of photography sparked a crisis in the world of painting: "Why should we paint if pictures can do it better?" But then painters figured out that there were lots of other things that they could do, that cameras can't.

Simon val Alphen adds,

Last year, I finally got around to reading Aristotle's Poetics and was charmed to discover that large sections involve Ari discussing the relative merits between the new-kid Tragedy versus the established form of Epic Verse. He cites other critics who argue that Tragedy, featuring vulgar elements such as singing and creating works of hugely less scale, is a lesser form than the traditional Epic Verse. Aristotle plays it cute, arguing what they've analyzed as weaknesses are in fact strengths, allowing Tragedy to move people in ways Epic Verse simply can't.

In general, I tend to agree with the opinion that games can't be compared to movies (nor should they be).  It's certainly not a crime to compare a gaming experience to a cinematic experience (read my review of MGS3 for PS2), as more developers start to create more story driven games, hire top notch voice acting talent, incorporate motion captured movement to create more fluid animation, and push the visual envelope that distinguishes the virtual world from the physical world.  But there will always be that element of interaction that seperates games from film.  This interaction, as Ebert and several correspondents point out, leads to an experience that is altogether incongruent to the principles of film.  However, as van Alphen suggests, video games offer an experience that simply cannot be delivered by film.

Of course, this is not to say that there are no similarities in the two mediums, but rather these similarities must be compared in different contexts and with regards to different factors.

There are many, many more great comments on Ebert's website that are worth reading through for offering well thought out responses to this dialogue which Ebert seems to have singlehandedly rekindled.  I, for one, am glad that Ebert has brought this discussion to a more mainstream outlet (as opposed to the geek-infested Internet forums and boards).

 Sunday, December 04, 2005

Engineers...

12/4/2005 1:09:26 PM (Eastern Standard Time, UTC-05:00)

Great thread with some funny jokes and what not about engineers.

Just a sampling:

There was an engineer who had an exceptional gift for fixing all things mechanical. After serving his company loyally for over 30 years, he happily retired.


Several years later the company contacted him regarding a seemingly impossible problem they were having with one of their multimillion dollar machines. They had tried everything and everyone else to get the machine to work but to no avail. In desperation, they called on the retired engineer who had solved so many of their problems in the past.

The engineer reluctantly took the challenge. He spent a day studying the huge machine. Finally, at the end of the day, he marked a small "x" in chalk on a particular component of the machine and said, "This is where your problem is."

The part was replaced and the machine worked perfectly again. The company received a bill for $50,000 from the engineer for his service. They demanded an itemized accounting of his charges.

The engineer responded briefly: One chalk mark $1; Knowing where to put it $49,999.

I also like this one:

To the optimist, the glass is half full. To the pessimist, the glass is half empty. To the engineer, the glass is twice as big as it needs to be.

 Saturday, December 03, 2005

Flash = Teh Suck

12/3/2005 1:27:34 PM (Eastern Standard Time, UTC-05:00)

I can't be the only one that think's Flash based websites suck can I?

I've never understood the appeal of Flash as a framework for structuring content to be honest.  I can understand using it for a few animated portions like a headlines type of object, but as a method of structuring content, it's simply annoying.

The worst are the Flash based ads that popup in the middle of what you're actually trying to read.  And to make it even worse, they invariably have annoying sounds, too.  Grrr...I really want to slap some of these site designers sometimes.

Yeah, a lot of these sites look great and have neat-o effects, but WTF, it's a waste of my time wating for this crap to download and then it annoys the hell out of me.  Oh, and what if I want to link to a particular piece of content?  Out of luck.

So why I am I so annoyed?  I was on the Acura website looking at the TSX.  But it's annoying as hell.  Not even an HTML option?  When I click the "Launch Acura.com" text, it opens another window.  WTF?  Seriously, whoever designed this needs to be smacked for such stupidity.  Once the window opens up, you start to notice the huge amount of laaaag when moving your cursor across the links at the top.  Wow, I'm just moving my freaking mouse across the top bar.  And it's not like it's some awesome OMGWTFBBQ!!?1?! special effects...the background just turns red ::incredulous::.  Not only that, I peek at my CPU utilization: 100% (I have a 2.4GHz Pentium 4 + 1.2GB Fast DDR RAM (Corsair XMS (Yes, this is excessive usage of nested parens (Blame SNE)))).  Goodness gracious, it seems like they expect all their users to have dual core Opterons with 4GB of RAM and an Nvidia 7800GT to be able to view their site.

Once I get onto the TSX subsection, I get more the same; my CPU utilization is insanely high for some stupid ass leaf falling effects.  I just want to look at pictures of the car, damn it.  Stop torturing me!

Okay, I just needed to vent and get that off my chest.  Seriously, I don't understand the concept of using Flash to structure content.  It's just plain stupid to me...

 Tuesday, November 29, 2005

Extraordinary Craftsmanship

11/29/2005 9:09:40 AM (Eastern Standard Time, UTC-05:00)

Wow.

and

Wow.

I think that's all I need to comment on these :-)

 Monday, November 28, 2005

Speculating on the next Gameboy

11/28/2005 12:26:03 AM (Eastern Standard Time, UTC-05:00)

As I was laying down to sleep, I started to think about the next generation Gameboy (GBX, Gameboy Next).  Honestly, I don't remember the train of thought that lead me to thinking about it, but I was sooo engrossed, that I had to get out of bed to jot down ideas and what not.

The first thing that came to mind is what type of media would Nintendo choose to use?  I think that any sort of optical or magnetic disk type media would be way too inefficient from a power and loading time perspective.  Clearly, Nintendo has always placed a big emphasis on quick load times, which are essential for portable gaming systems.  In addition, Gameboys have a rich tradition of looong battery life.  Disk based media require spinup time, which negatively affect load times.  So the only thing that comes to my mind is flash media (or small format hard drives, if they're cheap enough and sufficiently durable).  It will likely be a proprietary format (for reasons that will be discussed below). 

But to distribute flash media with each game is inefficient and costly (as was always the main issue with cartridge based systems aside from the size limitation).  We have already been told by Nintendo that the Revolution will offer games for download.  It would seem like this would also be the obvious choice for the GBX, with one radical difference: the games will be download only

Yes, download only.  This may sound bad for stores that sell games, but consider the facts: 1) stores will have an advantage in that they can distribute game related materials (manuals, freebies, etc.), 2) not everyone will have access to an internet connection, so stores will still need to have download kiosks, 3) stores will allow users to validate copies of existing software titles so that users can download.  That last point is of particular interest as it means that the GBX will have backwards compatability by allowing users to download copies of their old games.  We have a precedence for this as Revolution will allow users to download old NES and SNES games (and who knows what else, maybe even Sega Genesis games?!).  On point 1, all manuals will be made available online in PDF format for download.  On point 2, an internet connection will not be required to play the game, only to download the game.

All downloaded games are portable across units, but not across media.  What this means is that you can download a game to a particular media and you can then use that media in another unit to play the game, but you cannot copy the media.

Flash memory is relativley cheap nowadays, with retail prices for 1GB of memory ranging from $40-50.  For comparisons sake, the Gamecube disks are 1.5GB in capacity.  Keeping in mind that this is a portable system meant to be played on a small screen and the fact that flash memory prices will drop significantly in the next 1.5 to 2 years (the timeline for the GBX), we can postulate that a 2-4GB flash unit at $40-50 could hold a good number of games considering that the current DS memory cards are only supported up to 128MB.  Of course, the games themselves will be cheaper as the overhead of distributing the games is significantly reduced.  The cost of printing the games is completely eliminated.

The advantages of using flash media and downloads is easily apparent in the cost savings for Nintendo and the convenience for the user.  Using solid state memory allows for significant power savings and reduced loading times compared to magnetic and optical media.  For game saves, the GBX can either reserve game save space on the download media (for example, if the game is 120MB, 10MB may be reserved for the game saves for a total footprint of 130MB) or perhaps use a seperate, more conventional (non-proprietary) media, for game saves.

So why is a proprietary media required for the downloaded games?  The reason is that it must support certain measures to ensure that games are not duplicated (or at least not easily duplicated) and/or pirated.  More specifically, it must contain a write only section that cannot be altered. How does this all work out?  I'm glad you asked :-)

  • Each media will have a unique identifier (UIDMedia)
  • Each media will have a private key (KV,Media) and a public key (KU,Media)
  • Each GBX unit will have a global public key (KU,Global)
  • Nintendo servers will have a master database that contains the unique ID (UIDMedia) for every media manufactured along with the public key for the media (KU,Media)
  • Nintendo servers will also have a private key (KV,Global)

Certainly, there will be some sort of handshake procedure and what not to setup the connection for browsing game catalogs and initiating the download to ensure that only registered hardware (registered when manufactured) can connect to the servers, but I'm only going to cover how a theoretical download scenario could work after the handshake.

(I aplogize for the unconventional notation, as I'm too lazy to go in and format the HTML properly, so just follow along.  Also bear in mind that this is a very high level overview.)

  1. <Unit> M0 = Encrypt(KU,Global(UIDMedia)).  The first step is to create a message by encrypting the unique ID of the media using the public key of the Nintendo servers.  This ensures that only Nintendo servers, which have the private key, can decrypt the message and map the unique ID of the media to the public key of the media.  The message is sent to a Nintendo server.
  2. <Server> UIDMedia = Decrypt(KV,Global(M0)).  The server decrypts the message from the unit using the server's private key.  This results in the unique ID of the media.  The Nintendo servers contain a key map of media unique ID to media public key.
  3. <Server> M1 = Encrypt(KU,Media(KShared)).  Using the public key of the media, a shared key is encrypted to create one part of a message.
  4. <Server> M2 = Encrypt(KShared(FileGame)).  The game binaries are then encrypted using the shared key.
  5. <Server> MF = M1 + M2.  A final message is created by encapsulating the encrypted shared key and the encrypted game file.  This composite message is then returned to the GBX unit.
  6. <Unit> KShared = Decrypt(KV,Media(M1)).  The GBX unit obtains the shared key by decrypting the first part of the return message using the private key of the media (remember, it was encrypted using the public key of the media which is stored at the server).  The shared key is never stored in an unencrypted form.  Each time a player loads a game, the shared key is decrypted again.  Only the encrypted form of the shared key is stored (perhaps the unique ID of the media is also stored in the message as an added measure).  Because the shared key is encrypted with the public key of the media, only the private key of the media, contained in a read only region of the media, can be used to obtain the shared key.
  7. <Unit> FileGame = Decrypt(KShared(M2)).  The game file is read using the shared key.  Decryption is done in real time using hardware level decryption for performance reasons.

Essentially, this would be a form of DRM where the rights are associated with the media, not with the unit.

Bill Gates was straight on in commenting that the HD-DVD vs Blu-ray format war is insignificant due to the fact that this will be the last significant physical media (from a distribution perspective) for quite a while (at least when it comes to consumer electronics; holographic storage will eventually become the standard in ultra high capacity data storage).  Nintendo, I think, will be the first gaming company to move away from distributing physical media altogether by switching to a download only type of service for its next gen portable console.

Other random thoughts on the console are:

  • The DS screen resolution is currently 256x192 (for each screen).  PSP is 480x272.  I expect that, with the improvements in LCD and processor technology in the next two years, the GBX will have a resolution higher than the PSP (although we all know that Nintendo has a habit of undervaluing graphics capabilities).
  • It will have a 6 button design similar to the DS.  The current GBA has a 4 button design (A,B,L,R).  I picture a setup more like the GCN's, however, in that it will be three smaller buttons surrounding one large action button.
  • The unit will have a built in gyroscope.  This ties into the Revolution and some of the experimental games on the GBA which have built in motion sensors (WarioWare Twisted!).  Racing games, flight sims, etc. will be totally sick on this machine.  In addition, it may also connect to the Revolution as a wireless controller.
  • Following in the vein of the SP and the Micro, it will be slickIt will be sexy.  I picture it somewhat like an iPod Nano in terms of finish (except it'll be more resistent to scratches).
  • It will have built in wireless capabilities.  We see that Nintendo is finally coming around to all of this 'Net gaming and really embracing it (Mario Kart DS).
  • To enforce a kid-safe environment, as each unit will have a unique ID, Nintendo can create an architecture whereby each conversation and each exchange of text is logged and scanned in an asynchronous fashion.  Other users in a conversation may also choose to explicitly tag a conversation as breaching the terms of service.  Essentially, it would require a massive grid of computers to scrub recorded voice and text data for abuse.  In turn, Nintendo can punish those users by disabling voice and text capabilities (on the Nintendo network) for an increasing period of time with each infraction.
  • There is a very distinct possibility that we will be seeing an emergence of large capacity, small format hard drives in the next year.  This is related to the recent developments in storage design.  Specifically, perpendicular storage technology, which promises to increase disk density significantly.  Anywhere I've used "flash memory", it may very well be replaced with a micro harddrive boasting 20-40GB.
  • I think it'll look like the OQO ultraportable in terms of layout (the screen slides up to reveal the input buttons), except not as wide.  This would be inline with the design of the Gameboy Advance SP "clamshell" and would be great for viewing media when not gaming.  Which leads me to...
  • The GBX, contrary to Nintendo's typical stance on building pure gaming machines, will be a multimedia platform as well.  With the emergence of cheap, large capacity storage and the competition (Sony), it will be hard for Nintendo to ignore this functionality.
  • And finally, this being Nintendo, we know that there is going to be some sort of innovation that hasn't been done before on a handheld gaming system.  I predict that this will be stereoscopic 3D.  Yes, you read that correctly.  Sharp has already developed an LCD for cellphones which has this technology.  What's great is that the effect can be turned off in case it causes headaches and what not for certain users.

Okay, that's enough babbling and speculation from me.  Time to sleep damnit!  I dunno, I've somehow managed to hype myself up over my totally fabricated speculation :-D

But mark my words, I think what I've outlined here will come to be in the form of the next generation "Gameboy".

RSS 2.0 Atom 1.0 CDF