The World’s Leading Microsoft .NET Magazine
   
 
The .NET Addict's Blog

My Top Tags

                                                           

My RSS Feeds








Latest Diggs - Programming

Internet Blogs - Blog Top Sites

Site Hits

Total: 2,551,710
since: 19 Jan 2005

Introducing Ulysses Agenda: My Reference Game for .NET Framework 3.0

posted Sun 10 Sep 06

I'm going to date myself here, but back in college there was a fantastic game for dial-up Bulletin Board Systems (BBS) called TradeWars. I loved this game, but it was pretty limited by the technology of the time. It had multi-player experience, but only if the SysOp of the BBS happened to have multiple modems and multiple phone lines and enough of a following to actually have people connected at the same time. This was backwoods, Massachussetts - not a particularly huge pool of tech-savvy BBS users to play with.

In college I decided to make my own space trading game called Ulysses Agenda. This game was going to have it all - a C++ client that you could use to connect with other players and a C++ server to host the whole thing. I planned on doing some graphics above and beyond the ANSI that was the defacto standard for BBS games, and toyed with things like RIP (a means of transmitting basic VGA graphics over a modem line by transmitting primitive instructions instead of raw data). Eventually my studies and other pet projects took hold and I left Ulysses Agenda to rot in the dust.

I've finally decided to pick the game back up. In this article I will talk to you about the technical things that UA will do. In subsequent articles I'll post most of the design and the actual gameplay I envision. Basically, UA is a .NET Framework 3.0 reference application that I hope will illustrate good coding techniques, solutions to common coding questions using the .NET Framework 3.0, and hopefully even a few best practices here and there. It will utilize and demonstrate the following technologies:

  • Windows Presentation Foundation
    • Core interface is a very high resolution 2D interface complete with translucent HUD overlays, radar maps, and realistic "cockpit" style control knobs, switches, and panels
    • Illustrates the realistic integration of 2D and 3D. While the core UI will be 2D, items on your radar screen will be 3D models and your avatar/ship will also be a 3D model.
    • Data binding will be a huge part of the UA front-end
  • Windows Communication Foundation
    • This game will make extensive use of the WCF throughout the application
    • The "Universe Server" will be a WCF service application
    • There will be a custom peer name resolver that is also part of the "Universe Server" application
    • Each game client will enter a P2P mesh for communication
    • Each galaxy will have its own P2P mesh so that player and NPC movement can be broadcast to all connected peers using the WCF PeerChannel
    • When players get rich enough, they will be able to purchase a Commerce License, which allows them to start construction of their own starport.
      • Player-owned star ports are hosted by player-hosted WCF applications called "StarPort Server". These apps facilitate docking at the star port, as well as much more. The starport owner can blog on the starport that anyone can read who docks at that port. There will be a port-local chat, discussion boards, and more. When the player isn't hosting his/her star port, the universe server will facilitate commerce while the player is offline, but all other community activities at the port will be disabled while the player's starport server is offline.
  • Windows Workflow Foundation
    • I plan on having various NPCs roam the galaxies using sequential workflows defined in WF.
  • Windows CardSpace
    • I might be able to get it so that you can use CardSpace to authenticate with the various Universe Servers
    • CardSpace is the one area I know the least about, so I may end up tossing this feature or postponing it

I can't guarantee that I am going to finish this project, as I am only in the design phase right now. But this is one of those projects that I take very personally and its one of those things that I just need to finish and I don't care if anyone plays the game. I hope that in creating the game I will have made something that makes people more aware of the raw power of the .NET Framework 3.0 as well as what it is good for and what it isn't (e.g. WPF vs. DirectX).

I am hoping to put up a CodePlex site for Ulysses Agenda and once I have that I will post a link to it from this page and link to it from my main blog as well. I'd love to hear your comments. Remember that the main game design and gameplay design are still being fleshed out and I will have them available later for anybody who wants to look at them. I'm also hoping to convince a couple of my co-workers (you know who you are!) to get on board and help me out with the game. I've got the 3D models covered, but I'm not very good at creating realistic cockpits in XAML.

UPDATE: I've now got a project for Ulysses Agenda set up on CodePlex .

 

tags:                      

links: digg this    del.icio.us    technorati    reddit




1. Nick Cody left...
Mon 11 Sep 06 7:15 am :: http://primordia.com/blog

Very cool. Have fun with it Kevin.


2. Kevin Hoffman left...
Mon 11 Sep 06 8:22 am

Its been a long time since I was able to do a code project at home that wasn't directly related to a code sample in one of my books. I think this might actually be a lot of fun, and therapeutic as well.


3. Sean left...
Sat 25 Nov 06 4:00 pm

Awesome. I used to play Trade Wars back in the day and I always wondered why someone didn't modernize it. Looking forward to the fruits of your labor ;)


4. David left...
Thu 14 Dec 06 10:56 am

I would like to help out drop me a line. m e n t a l e n g i n e @ y a h o o . c o m


5. Duncan Suttles left...
Tue 19 Dec 06 3:41 pm

Hi I posted on your Codeplex site. Please contact me at duncan@magnetargames.com. We are going down exactly the same path.

Duncan Suttles http://www.magnetargames.com/


Tag Related Posts

NYC SharePoint Developer Needed

Mon 12 May 08 12:09 P GMT-05

iPhone Underrated as a Gaming Device?

Fri 14 Mar 08 1:50 P GMT-05
tags:        

CLINQ v1 Demo - Network Message Filtering

Wed 09 Jan 08 7:47 P GMT-05
tags:        

Building a Ledger Style for WPF Grids

Tue 21 Aug 07 3:30 P GMT-05
tags:    

Continuous LINQ - Can I write games with it?

Mon 13 Aug 07 3:09 P GMT-05
tags:        

My 2008 Wishlist : A Transformers MMORPG

Tue 26 Jun 07 12:04 P GMT-05
tags:        

My first "Acropolis" Application

Mon 04 Jun 07 1:40 P GMT-05
tags:      

Exploring the Delegate Design Pattern

Mon 14 May 07 6:30 P GMT-05

Orcas' Hidden Gem - The managed PNRP stack

Fri 11 May 07 6:45 P GMT-05
tags:        

Core Data - Almost too Easy?

Wed 18 Apr 07 2:23 P GMT-05

Will Silverlight be DOA?

Mon 16 Apr 07 8:02 P GMT-05

Exploring the MVC Pattern in WPF

Tue 10 Apr 07 12:51 P GMT-05
tags:                      

My Little Pony .NET Unleashed 2007

Fri 30 Mar 07 1:59 P GMT-05

An experience with the Leopard beta

Mon 26 Mar 07 7:45 P GMT-05
tags:                

Authorness

Thu 15 Mar 07 1:44 P GMT-05

WPF Bindings == WTF Bindings?

Mon 12 Mar 07 6:31 P GMT-05

On MUDs

Thu 08 Mar 07 5:00 A GMT-05
tags:                    

Cocoa Programming vs. WPF : NIB vs XAML

Tue 20 Feb 07 2:09 P GMT-05

Cocoa Bindings vs. WPF Binding

Thu 15 Feb 07 5:41 P GMT-05
tags:                

What I think is a bug in WCF POX messaging

Thu 04 Jan 07 4:58 P GMT-05
tags:      

WPF Bumper Stickers

Tue 12 Dec 06 7:32 P GMT-05

Ulysses Agenda Makes Redmond Developer News

Wed 29 Nov 06 7:10 P GMT-05
tags:                

Is the continuous beta the new model for Vista?

Tue 21 Nov 06 8:51 P GMT-05
tags:              

A visit to Nintendo World on "Wii Day"

Mon 20 Nov 06 12:37 P GMT-05
tags: