Terrarium
|
Terrarium |
 |
It is modeling tool for use by those studying evolutionary biology or artificial intelligence. It is also a game, and a great way to learn various development techniques for .NET framework.
I've been involved in various AI-related development stuff for more than 10 years, starting with simple rule-based systems and working with a wide variety of programming tools. The first, toyish version of Visual Basic was my first contact with Microsoft IDE, and while I cannot say that it was always a pleasant experience, I must admit that the most of my day-to-day programming work is now being done in VB or C#. Java is still close to my heart, but many Pascals, LISPs, Prologs, Smalltalks, etc. are archived for a long time on my backup drives. However, most of the AI-related source-code you can find today is written in C, Java or something similar, primarily for various Unix operating systems. For a long time Microsoft tried to minimize the importance of the open-source movement, and every single component or source sample had a hefty price tag on it. Luckily enough, things have changed, and now you can join various collaborative projects working with VB, VC++ or C#.
While we can argue what is the best development platform for the specific field, I had great overall experience with the new Visual Studio .NET. Portal engine that powers aboutAI.net and many similar sites, with all theirs bells and whistles (collaborative filtering, data mining, text classification, etc.) is built upon solid .NET foundation. Don't worry, this isn't going to be another glorified story about .NET, as we are still keeping both feet on the ground and actively supporting other "non-MS" open AI projects. However, if you want to leverage your VB/C# knowledge in the AI field, there are several excellent collaborative (and competitive) projects you could join.
In an interesting marketing twist, Microsoft teamed with Intel and recently started the New Worlds .NET Web Services Challenge, awarding one Harley-Davidson V-ROD motorcycle, one Dell Dimension 8200 desktop computer, several MSDN Universal subscriptions and MS Xbox video game systems to the most successful developers. The project itself has two basic components: a Windows client (the "PlanetViewer") and a remote Web service ("World"). When the PlanetViewer calls a new World Web service, it retrieves particulars about the landscape for that world, rendering it in 3D. You could enter the contest either by creating and submitting your own worlds, or by improving the code with optimization techniques for the PlanetViewer.
The goal of this challenge was obvious: to improve the public awareness about new Microsoft's .NET strategy and Intel's 3D hardware. It focuses on using Web services, a somewhat new concept even for the experienced programmer. It seems like every publication and Web site has some mention of Web services. In a nutshell, Web services are a new platform for building language and platform-independent interoperable distributed applications. As a VB developer, you may already used component-based distributed apps using COM and DCOM. While this was a widely accepted approach, VB.NET finally allows you go much further by following a set of XML-based standards to achieve greater interoperability via the Web.
While this is an interesting project from the standpoint of distributed computing, there's another one, especially attractive to Artificial Life and Mobile Agent developers. Meet Terrarium, a multiplayer ecosystem game developed using the .NET Framework. Developers can create their own creatures and add them into the game on their own client machine. Teleporters on each client transfer the creatures between clients in the Terrarium peer-to-peer network.
As a creature developer, you can program either herbivores or carnivores. Once a creature is in the Terrarium ecosystem and competing for resources, the central Web site can be used to compare its vital statistics against those of other creatures. The objective of Terrarium is to develop a creature that out-survives the rest.
Terrarium uses Windows Forms and DirectX for a rich UI experience. The .NET Frameworks evidence-based security architecture allows mobile code (for example, someone else's creature) to run in a secure manner on your machine. And XML Web Services provide the community infrastructure for the game, enabling peer discovery, reporting, and auto-update of new versions. This single system allows you to experiment with various graphics aspects, mobile agent techniques and P2P capabilities, but that's not all...
The support for the Artificial Intelligence and Artificial Life techniques is rather impressive. In creating a creature, developers have complete control over everything from genetic traits (eyesight, speed, defensive power, attacking power, etc.) to behavior (the algorithms for locating prey, moving, attacking, etc.) and reproduction (how often a creature will give birth and what genetic information will be passed on to its offspring). Upon completing the development process, the code is compiled into an assembly that can be loaded into the local ecosystem.
In a nutshell, Terrarium provides a showcase for technological advancements built into the .NET Framework, and a quite powerful modeling tool for use by those studying evolutionary biology or artificial intelligence. But as they say first and foremost, it is a game... So have fun while learning the basic aspects of AI-related technologies.