Games

Games

Squeak, Scratch and Etoys on Ubuntu and Maemo

When my older daughters were young, I told them they could play any game on the computer that they could write. While I did not make this a strict hard and fast rule, we did take it somewhat seriously at it helped establish a more creative approach to the use of computer games.

Back then, I had them programming in Logo. Now, my youngest daughter has asked for a Nintendo DS and a cellphone for Christmas. I’ve told her the same thing about writing her own programs, so today, we spent a bit of time working in Scratch on her Ubuntu based laptop.

For some background: Scratch:

is a programming language that makes it easy to create your own interactive stories, animations, games, music, and art -- and share your creations on the web.

As young people create and share Scratch projects, they learn important mathematical and computational ideas, while also learning to think creatively, reason systematically, and work collaboratively.

It runs nicely on just about every platform, and I’ve been running it on Ubuntu as well as on my Nokia N900 cellphone for some time.

I started my daughter off with simple logo type program commands. Soon, she was drawing triangles, squares, hexagons, circles, and designs that I used to create with a spirograph when I was a kid.

We moved on to exploring a few other bits of programming and hit a few walls. The sound wasn’t working and some of the simple commands did not seem to do anything, so I figured maybe it is time to make sure that everything is up to date.

Scratch runs in a Squeak virtual machine. “Squeak is a highly portable, open-source Smalltalk with powerful multimedia facilities.” I had been running Squeak 3.9 on my various machines, and Squeak 4.1 is now out. So, I’ve started my upgrade to Squeak 4.1.

There is a good blog post on upgrading Squeak on Ubuntu machines that I used as my guide. In my case I downloaded the deb file and installed it that way on my Ubuntu machines. However, the debian package page suggested adding the repository to apt/sources.list.

I figured maybe I would try this for my N900, however, after adding the repository containing squeak, the update manager asked if I wanted to update just about every package on my system, including Ruby, Python, gstreamer and who knows what else. So, I backed out of that upgrade.

Trying to install just the package, it told me that I needed at least libc6 2.7 and libuuid1 2.16 as well as a few other packages. So, I didn’t install it and stayed with the older version of Squeak on my N900. I did rebuild that version, as well as make some attempts at building a newer version of Squeak, but ran into difficulties, so I’m saving that for a later blog post.

On the Ubuntu laptops, the upgrade went smoothly and I then followed Getting Squeak 4.1 on Ubuntu to upgrade to the latest version. This also went very smoothly on both machines.

Yet this did not solve the problems, so I downloaded the latest Scratch image. This runs nicely on all my machines and has solved all the outstanding issues on Ubuntu. The N900 install will probably take a bit more work.

More soon...

(Categories: )

The Buckyballs Contest

I don’t normally do promotions, contests, paid content or stuff like that, but recently I’ve received a few emails from the folks promoting Buckyballs and they are exactly the sort of product that I would be interested in promoting.

So, here’s the deal. Promote my online presence, my blog, my twitter account, this blog post, stuff like that, and tell me about it in the comments. The more you promote, the more chances you have to win. I will select three winners who will receive their own Buckyballs. Winners will need to provide me with a mailing address in the United States where the Buckyballs can be shipped. For more details, check below the fold.

Building Virtual Worlds on the #N900

You are in a maze of twisty little packages, all alike.

This is a long article about attempting to build virtual worlds on cellphones. It starts off with some general thoughts and history that I encourage everyone to read. It then goes into some technological details more applicable to geeks. If you are an impatient geek, please skip to the technical discussion.


Prologue


Perhaps I played too much Adventure when I was young. Perhaps somewhere along the way constructivist theories of permeated my approaches to learning and entertainment. Perhaps my rules about computer games for my children wore of on me. Whatever the cause, I’ve been spending a bit of time trying to build various virtual world tools for my Nokia N900 cellphone.

When my eldest daughters were in elementary school, I told them they could play an computer game that they could write. They played in Logo, they wrote MOOCode, and I hope they learned the joy of creating and of understanding what makes things work the way they do.

As I thought about what to get for a smartphone, I wanted a device that reflected this. I wanted a device that I could get in and write my own programs for. Yes, I could have chosen to become an iPhone developer. Friends have done that. But the iPhone needs to be jailbroken if you want to really have fun with it. Android looked like a much better platform, and I almost went that way. Yet many Androids are also locked down pretty tightly. So, when Nokia came out with a linux based cellphone that is about as open as you can make a cellphone, with some pretty nice features as well, it became a clear choice for me.

One of my early projects was to install Squeak on my N900. Squeak is a Smalltalk programming environment that is particularly popular amongst constructivist oriented elementary school educators interested in teach children to program games. It is also the basis for some interesting virtual worlds projects. Unfortunately, the font was too small and I hadn’t gotten reading glasses yet, so I put it aside for the time being. One of these days, I’ll come back to it and figure out how to resize fonts and objects.

As I watched the Olympics last winter, I thought further about virtual worlds on the N900. What I would really like to tackle is building a Bobsled in an Open Source Mobile Virtual World Experience on the Nokia N900. At that point, I considered trying to build the Naali viewer to connect to OpenSim virtual worlds.

There were various N900 programmers interested in this, but it also got put on the back burner.

Yesterday, in response to recent developments in virtual world education, I wrote about Running OpenSim on a SliceHost VPS. John Lester, commonly known as Pathfinder in the virtual world communities went one step further and wrote a great blog post about Running OpenSim and Imprudence on a USB Key. He spoke about having a virtual world in his hands, a world of his own creation, using pieces that he had built or borrowed from other virtual worlds.

Two days earlier, he had written a great blog post about the current turmoil in virtual world education, With every Exodus comes Expansion. His efforts to hold a virtual world in a USB key in the palm of his hand, I believe, is simply a starting point for this great new exploration. With the USB key as a guidepost and previous experience to build upon, I felt it was time to start exploring a world within my N900.

At this point, I will move from narrative to a hacker-adventurers log. If you are less geeky, you may want to skim over this section. It documents my exploration of the maze of twisty little packages I have just started exploring. I realize I may lose a bunch of people at this point, and may have already lost quite a few. However, I encourage you to read this to get an insight into what can be the joys of exploring computers and virtual worlds on mobile devices.

Running OpenSim on a SliceHost VPS

Three years ago, I set up OpenSim on a few of my computers in my home network. OpenSim is an open source three dimensional virtual world, very similar to Second Life. I’m not sure what version I was running, but it was very early alpha code. Nonetheless, I managed to get it up and running and do some rudimentary activities on it. Other projects came along and I set the OpenSim project aside.

However, recent developments around Second Life caused me to take another look at OpenSim to see how it has developed. Opensim runs on Mono, a cross platform, open source .NET environment. I recently upgraded the server in my office, which I had installed OpenSim on years ago to run the latest long term support version of Ubuntu, Lucid Lynx. Since I already had Mono running on it, the upgrade brought me up to version 2.6.7 of Mono. Downloading and installing Opensim 0.7.0.2 proved trivial, and I ran the Hippo viewer and the Imprudence viewer against the server.

Since my office server is behind a firewall, it is currently inaccessible to anyone in the outside world. I considered making it accessible via IPv6, but OpenSim does not appear to support IPv6 yet. Either that or the viewers don’t support IPv6. My guess is that none of them do.

So, I thought I would see if I could set up OpenSim to run on the VPS that I have from SliceHost. This is a small VPS, only 512 Meg of RAM. At Slicehost’s current pricing, that is $38/month. I use it for many different projects, so OpenSim would be just one more process.

However, I am currently running the older Long Term Support version of Ubuntu, Hardy Heron. Hardy Heron has a fairly old version of Mono, not new enough to support OpenSim. So, I thought I would try compiling the latest version of Mono. I followed the instructions on the OpenSim Wiki.

Unfortunately, part way through, the make failed. Looking around, I found that there have been problems with newer versions of Mono with older Linux kernels. I had been running 2.6.24-23.48. Slicehost makes it fairly easy to update the kernel. After checking around to make sure there weren’t any warnings I needed to be aware of, I upgraded to 2.6.35.4-rscloud. As an aside, many of my other projects have seen noted performance improvements since upgrading the kernel.

I tried running make again, and this time it completed. With Mono running, I loaded the most recent OpenSim binary. Initially, it complained that I had too old of a version of sqlite. So, I switched over to use MySql, which I already had installed. Opensim got much further until it complained about not having libgdiplus. Instructions on the Wiki had said to configure Mono --with-libgdiplus=no. It looked like I would need to do another rebuild.

At the same time, version 2.8 of Mono came out and people on the OpenSim mailing list started asking if anyone had tried OpenSim with Mono 2.8. I considered doing this, but the builds take a very long time, so I figured I would instead take a different course.

Badgerports has a repository that includes Mono 2.4.4 which is sufficient for running OpenSim 0.7.0.2. I installed this version of Mono and started OpenSim.

I have firewalls on my Slicehost VPS server, so I poked the appropriate holes for a standalone installation of OpenSim. Then, I connected to the server from Hippo on one of my office Linux boxes. My linux client box is a fairly old box, and it was slow getting started. I’ve also been having some network connectivity problems and I had a couple of times when it timed out.

That said, I now have OpenSim running on a 512 Meg Slicehost VPS. When there is no traffic, it is currently taking up about 3-6% of the memory and using around 3% of the CPU. I don’t want to test it extensively out of concern for other projects I have running. However, I have built simple objects, logged out, shutdown the server, logged back in, restarted the server and everything seems to be persisting and running smoothly.

It is worth noting that on a 512 Meg Slicehost VPS, it does take close to 15 minutes for my region to fully start. I imagine that if I add more assets and more users, this may get worse. However, I am now comfortable that for around $40/month and a small amount of configuration work, I can have my own little adequately functioning three dimensional virtual world based on OpenSim. It doesn’t give the full Second Life experience, but for my purposes, it is more than sufficient.

(Categories: )

#digiday - Gamifying The News

One of the most interesting comments from Digiday Social conference in New York City on Tuesday was that more people play social games, like Farmville, than read the newspaper. I haven't found a source to back up this comment or to get details about exactly who they are counting, or how, but on the surface, it is frightening. More people seem more concerned about acquiring fictitious grapes from a fictitious farm stand than about acquiring information that is necessary for our democracy to thrive. Perhaps the politician seeking to get elected would do better seeking ad placements in social games than they would be in participating in debates.

Yet perhaps there is a glimmer of hope from the Digiday Mobile conference for the future of journalism coming in the form of a neologism. The emerging buzzword of the conference was "Gamification". A San Francisco startup calledGamify defines the verb gamify, as "Applying game mechanics to bring fun and engagement where needed." Perhaps it is sorely needed to bring fun and engagement back to the news industry.

A few years ago, I participated in some "Play The News" games where participants would read up on a news story and make predictions about how it would turn out. As an example, people might read up on the primaries that happened last night, and make predictions about the outcomes. Will Christine O'Donnell and Karl Rove make nice? Will she win the general election? People who follow the news would be expected to perform better in this game. With game mechanics in place to track who is doing the best, people will feel encouraged to participate.

Unfortunately, this was a couple years ago, before social gaming really took off and I don't know whatever happened to the game. Another site that I've always been interested in is NewsTrust. This site crowdsources efforts to find quality journalism. They base their results not on gaming the news the way people do at Digg or Reddit, but on aspects of whether the story has multiple sources, anonymous sources, uses purple language, only presents one side of the story, and other means of judging the quality of a news story. You could review reviewers as well and see how well each reviewer was doing. They are on their way to gamification.

Of course, NPR listeners are likely to think of Wait, Wait... Don't Tell Me!, the NPR news quiz show. They have done a great job of gamification of the news. However, a social media game for listeners to play along at home could take this to a whole new level.

So, it may be frightening that more people play social games than read newspapers. On the other hand, it might be a great opportunity to encourage greater understanding of what is going on around us and greater civic engagement by gamifying the news.

Syndicate content