Tag Archives: programming

Stupid, Stupid xBox!!

12 Feb
Fone Bone saying 'stupid, stupid rat creatures!'

Fone Bone attempts to escape his pursuers by jumping on a small branch, thinking they wouldn’t be stupid enough to jump on. Obviously, he is wrong.

I was a founder of the original xBox project at Microsoft and gave it its name. Almost 14 years after the painful, pointless, and idiotic internal cage-match to get it started and funded, the hard selling of a compelling and lucrative living-room product to Bill (and then Steve as he began to take over), a product that consumers would want and love and demand, I am actually still thrilled to see how far it has come, how many installed units it has, how it is crushing its original console competitors, how the brand has grown and endured, and especially how great the games have become.

But the past 5 years, and the last year in particular, have been simply painful to watch. Coasting on past momentum. Failing to innovate and failing to capitalize on innovations like Kinect. Touting strategic and market success when you’re just experiencing your competitor’s stumbling failure (yes, Sony, Nintendo – you are, I’m afraid, stumbling failures). A complete lack of tactical versus strategic understanding of the long game of the living room. It culminated for me in recent coverage1 of interviews with Yusef Mehdi and Nancy Tellem and reports of the goals of a new LA xBox studio to create interactive content.

My gripe, my head-smack, is not that the broader content/entertainment business isn’t where you want to go with a living-room-connected device. It absolutely is. Indeed, this was the point of xBox, that was why it was the Trojan horse for the living room, where we could land and be welcomed by millions of console customers with more hardware and better software and network connectivity than the non-console devices (webtv, cable set-tob-boxes) we had been pursuing. No, more and better content was always the point and the plan. My gripe is that, as usual, Microsoft has jumped its own shark and is out stomping through the weeds planning and talking about far-flung future strategies in interactive television and original programming partnerships with big dying media companies when their core product, their home town is on fire, their soldiers, their developers, are tired and deserting, and their supply-lines are broken.

xBox’s primary critical problem is the lack of a functional and growing platform ecosystem for small developers to sell digitally-/network-distributed (non-disc) content through to the installed base of xBox customers, period. Why can’t I write a game for xBox tomorrow using $100 worth of tools and my existing Windows laptop and test it on my home xBox or at my friends’ houses? Why can’t I then distribute it digitally in a decent online store, give up a 30% cut and strike it rich if it’s a great game, like I can for Android, for iPhone, or for iPad? Oh, wait, I can… sort of. Read some of the fine-print at the xBox registered developer program page (that “membership” would cost you $10,000/year and a ton of paperwork, with Microsoft holding veto power over your game being published), navigate the mess through to learning about XBLA (also costly, paperwork and veto approval) and you may end up learning about a carved off little hard-to-find store with a few thousand stunted games referred to as XBLIG where Microsoft has ceded their veto power (and instead just does nothing to promote your games). This is where indie developers have found they can go in order to not make money on xBox, despite an installed base of 76M devices. Microsoft, you are idiotic to have ceded not just indie game developers but also a generation of loyal kids and teens to making games for other people’s mobile devices.

xBox’s secondary critical problem is that the device OS and almost the entire user experience outside the first two levels of the dashboard are creaky, slow, and full-of-shit. From built-in update and storage features to what they have allowed through negligence to appear in games, here are just a few of my favorite confusing and exhausting screens and messages:

Daddy, what’s a Hard Drive? Why do I keep having to choose Hard Drive when I’m playing Kinectimals? Why does Kinectimals take 10m before I can start playing? Can I use the iPad while it’s updating or whatever it’s doing?

I'm too dumb to update safely. I'm to dumb to know if more updates or restarts may, may, may, may be needed.

Hi, I’m xBox. I’m too dumb to update safely. I’m to dumb to know if more updates or restarts may, may, may, may be needed.

I'm too dumb to know if it's a game or an app. Why should I choose where you put it?

xBox: I’m also too dumb to know if it’s a game or an app. Me: Why should I choose where you put it?

4MB, thanks for that info. Wait, what? What are the consequences of being signed out of Xbox Live if I update?

Me: 4MB. Gee, thanks for that info. Wait, what? What are the consequences of being signed out of Xbox Live if I update?

My all-time favorite: each game dreams up an indicator that it uses while writing your save-game data. Saving securely without needing UI sure doesn't seem like a system-level service Microsoft should provide.

My all-time favorite: each game dreams up an indicator that it uses while writing your save-game data. Saving securely (e.g. atomically) without needing UI sure doesn’t seem like a system-level service Microsoft should have provided for xBox in 2003.

Every time I leave a game, even right after saving in the game, the system presents me with this little scare. Every. Single. Time.

Every time I leave a game, even right after saving in the game, the system presents me with this little scare that I may lose progress. Every. Single. Time.

These messages and many others – impossible Xbox Live sign-in and password recovery, accounting/membership, to name just a few – are made all the worse by the huge amount of time that passes while waiting for content to load. You don’t turn on your xBox to play a game quickly — it takes multiple minutes to load, flow through its splash screens, and then get you playing. It doesn’t surprise me that most people spend more time watching videos or listening to music on xBox, because it takes too long to screw around with discs and wait for games to load.

These are the 2 fronts Microsoft is going to lose on in the living room battle with Android & iOS. It’s not going to be based on whether they have (a more expensive) Netflix, whether they have original TV/video content or interactive kids television shows which integrate with Kinect. They will lose unless these two things are sorted out well and quickly.

Microsoft is living in a naive dream-world. I have heard people still there arguing that the transition of the brand from hardcore gamers to casual users and tv-uses was an intentional and crafted success. It was not. It was an accident of circumstance that Microsoft is neither leveraging nor in control of. xBox was for years the only network-connected HD-ready device already attached to tv’s that had multi-use potential (games, DVD, Netflix) in the household to justify and amortize its high cost of purchase to the family’s bread-winners. The hardcore/soft-tv transition and any lead they feel they have is simply not defensible by licensing other industries’ generic video or music content because those industries will gladly sell and license the same content to all other players. A single custom studio of 150 employees also can not generate enough content to defensibly satisfy 76M+ customers. Only with quality primary software content from thousands of independent developers can you defend the brand and the product. Only by making the user experience simple, quick, and seamless can you defend the brand and the product. The transition they are seeing (87 hours per month of use, more TV/music use than game use) will continue to happen despite their active “strategic” efforts to encourage it and get more Xbox Live subscribers.

Which brings us to…

Apple is already a games competitor broadly, even if Apple-TV isn’t yet a game platform or a console. Mobile generally and iPad specifically have grown the total hours of game play and grown the overall game market. Only in the last 18-24mo has that overall growth turned from a segment-expanding rising tide to a tsunami swamping the console game vendor profit boats hitched to the docks. It is accelerating. Apple, if it chooses to do so, will simply kill Playstation, Wii-U and xBox by introducing an open 30%-cut app/game ecosystem for Apple-TV. I already make a lot of money on iOS – I will be the first to write apps for Apple-TV when I can, and I know I’ll make money. I would for xBox if I could and I knew I would make money.  Maybe a “console-capable” Apple-TV isn’t $99, maybe it’s $199, and add another $79 for a controller. The current numbers already say a lot, even with Apple-TV not already an open console: 5.3M sold units in 2012, 90% year-over-year growth — vs. xBox 360 — about 9M units in 2012, 60% YoY decline.

So, because these two critical issues – user expereince and indie content – are not nearly in order and I see big investments in future interactive content happening, as well as idiotic moves to limit used games or put harder content protection into place than exists in mobile or tablets – i predict massive failure and losses here. And it makes me sad. Because it just doesn’t have to fail, even though it has been punted around poorly for 5 years. xBox just needs somebody with a brain and focus to get the product in order tactically before romping forward to continue the long-term strategic promise of an xBox in every living room, connected to every screen.

1 http://www.engadget.com/2013/02/11/microsoft-xbox-360-premium-content-plans-entertainment/,
among many others.

Kids Can Code

5 Dec

I have a 12-year-old son and an 8-year-old daughter, and like most parents I want them to grow up to be great people, to be great readers, to be great at Math and Science, and to have hobbies that they enjoy.  As a life-long programmer, I also want them to be great at programming and in general great at creating things, at making. I don’t want them to be mindless consumers.

As a techie, I’m often drawn into conversations with parents, teachers, and friends about young kids learning to program and about “screen time.” Here is my current thinking. I may update it with new links and ideas from time to time. I hope it helps you in some small way as your raise your creative little makers.

Screen Time: Creating vs. Consuming

One important idea I like to plant in parents’ heads about using computers is to make sure that when they worry about kids “having too much screen time” that they are making the distinction between when their kids are “creating” and when they are “consuming” using computers, smartphones, tablets, even televisions. A lot of parents are given the advice to limit screen time to “15m per day” or “only on weekends.” I strongly agree with putting limits on consumption — playing games, watching entertainment videos on a TV or on YouTube, playing video games — these should all definitely be limited in a manner that is appropriate to your family. (In my family, we mostly read — we don’t watch TV, we play some xBox+Kinect and iPad games on weekends, and we will often have Friday or Saturday “movie night” with popcorn — we’re not much into screens for consumption. YMMV.) I do think it is worth knowing that video games and television are very much designed to tap into addictive behaviors when you think about your own family rules.

But… putting limits on how much time kids spend creating things using computers is something I strongly discourage. This is like saying to a child that likes to draw that they can only do it 15m per day, and you won’t buy them any pastels or paints. Or telling a child that loves to read and write that they can only do it on weekends. How about a kid who is really into baseball or dance — would you insist that they can’t join the team or company because practice is 3 evenings per week? We don’t do this with art, math, or sports — why would you do it with creative things on computers? There is simply a huge difference between time spent creating or making and time spent consuming. Let your kids learn by creating and making using these incredible tools.

Consider also that most adults in our society spend their entire workday in front of a computer, making things — creating or adding to spreadsheets, writing email, writing memos, analyzing, synthesizing and summarizing content from different sources — using computers as a tool to draw conclusions or to design and build real and virtual things. Working at computers to create new things from old things, to write, to draw, to program and engineer — these are the real-world skills that kids are going to need. So it makes sense to really allow much more open-ended and unlimited “creative” time for kids at computers. Drawing programs, writing programs, quality educational programs masquerading as games (like rosetta stone language learning, or a few good educational games), programming, video-editing, making slideshows with family photos — all of these are great creative things that you should think about in the same way you think about making sure your kids learn to play basketball, soccer, learn piano, enjoy art, singing, etc.

In my house, the open-ended creative tools we let our kids use any time we would also let them draw, read, play with toys, or play music (meaning whenever they don’t have other school work, practice commitments or chores, and have gotten some physical activity into their body) include:

  • making slideshows in iPhoto or movies in iMovie or FinalCut Pro using family photos/videos or photos/videos that they have shot on their own. (giving kids their own inexpensive digital cameras is a great holiday or birthday gift, by the way!)
  • making stop-motion videos using the computer’s webcam and clay or other arts-and-crafts items. We use iStopMotion (http://www.iStopMotion.com) and a few others.
  • painting/drawing programs of all kinds. We use Pixelmator (http://www.pixelmator.com) and various iPad apps.
  • writing programs to write stories or letters
  • creating 3D models and animations using Blender (http://blender.org)
  • Programming tools, see below:

Kids Can Code

There are also absolutely some great tools for kids to use to learn real computer programming. Sadly at this point none of them are a curriculum that takes young kids from introductory concepts up through complex programming in a compelling results-oriented way, so you have to stitch things together yourself until kids get to the age when high-school “computer science” classes or clubs kick in, or until they are so self-motivated that they can draw on the innumerable free resources on the internet. Below is a little list with some details and recommendations. My son who is now 12 1/2 has used most of these and started with Scratch from about the age of 5, and is now building iPhone/iPad applications using StencylWorks and XCode. My daughter who is 9 has tried many of these but programming hasn’t yet piqued her interest (I’m working hard on it!).

Scratch (http://scratch.mit.edu/). Scratch is probably the best introductory tool for young kids because it is visual (you drag and drop “blocks” of code around to make your programs work), because it is easy for kids to create graphical things like what they see around the web, and because it has a huge community of kids who share their projects on an associated (kid-safe) web-site. Every Scratch project you find on the site you can download, take apart, and see how it works, change it, etc. This tool has such a big community that it is actually the closest approximation to how real programmers work in the real world — we mostly learn by example and using things other people have built before us. We share code-snippets, we share open-source projects on GitHub and other sites, and we offer advice in forums, IRC, and on StackOverflow.

CargoBot (http://twolivesleft.com/CargoBot/) for iPad, RoboLogic (http://www.digitalsirup.com/apps/app_robologic.html) for iPhone and iPad, and MoveTheTurtle (http://www.movetheturtle.com/) are three “games” which are actually very much about learning how to program and how to think logically to accomplish tasks. Some kids who want to learn how to make their own games don’t really like these, because they are too “simple”. For kids that you want to introduce to programming or give a hint that by playing these they are taking steps to learning programming, these are a great choice and they are also fun to play together with very young kids.

CargoBot was written entirely on an iPad using a tool called Codea (http://twolivesleft.com/Codea). I don’t yet have any first-hand experience with Codea and my kids haven’t used it, so I can’t recommend it, but I might add more detail about it to this list in the future.

CrunchZilla’s CodeMonster and CodeMaven (http://www.crunchzilla.com/). These were written by a local Seattle dad, Greg Linden (https://twitter.com/greglinden), a friend of mine who has kids about my kids’ ages – he has also noticed a lack of learning tools for young kids. These are simpler forms of the tutorials listed below for Khan Academy and Codecademy. I would definitely suggest CodeMonster for young kids. With this and CodeMaven they are actually learning JavaScript, but they are doing so in a very interactive and step-by-step fashion which I find less clunky than Khan and Codecademy..

Khan Academy (http://www.khanacademy.org/cs). Khan has some computer-science tutorials involving a simple programming language called JavaScript (no relation to Java) which focus on drawing and which are the most approachable for young kids. These are pretty fun and introductory. I would recommend these for kids who really like the programming aspects of Scratch (the for…each or while… loops, or the variables, etc). Very few of the kids younger than 9 that I have worked with really understand what they are supposed to do at each step of these these lessons because they are geared towards adults who understand complex page layout and following a complicated set of instructions, but it’s worth trying for any kid who is looking for more than Scratch.

Codecademy (http://www.codecademy.com/). These guys have tutorials about JavaScript as well as several other programming languages. These tutorials are geared more towards adults and they have a lot of user-interface “friction” that young kids without a lot of web browsing experience won’t really understand. Once kids are pretty experienced using computers and have used things like Scratch to download and upload their own projects, they will be more equipped to use Codecademy. Until my sone was about 11 I didn’t think he would find any value in these, but now he is very equipped to use them and finds them useful. He and I both notice that they are just pure lessons — they don’t tend to lead you through learning an entire project like you can do in Scratch or Stencyl, and so the rewards are somewhat weak for kids looking to really do something.

Stencyl (http://www.stencyl.com/). This is a pretty complicated tool that very experienced Scratch users can figure out with the help of an adult. You can use Stencyl to create your own web-site “flash” games and to make games on iPhone/iPad and Android devices, and for this reason it is very compelling for kids who want to create things that they can actually share with their friends. My son recently started actively using Stencyl, and it took him and me a little while to figure out the tool. The tool assumes a great deal of user-interface experience, uses games terminology without much background, and the tutorials are not the right pace or depth. That said, it is the easiest-to-approach tool for kids looking to build iPhone games right now.