<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d15677816\x26blogName\x3dGathering+of+Engineers\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dBLUE\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttp://pdxgaming.blogspot.com/search\x26blogLocale\x3den\x26v\x3d2\x26homepageUrl\x3dhttp://pdxgaming.blogspot.com/\x26vt\x3d-1257436599043759910', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script>

Gathering of Engineers

Ludographic considerations from the Silicon Forest

Monday, January 30, 2006

A brief hobby, in brief

I had a raw draft about Internet boardgaming in general, focusing on play-by-web vs. real-time, but I just don't have the energy left to do any editing. It's Focal week at work - where us managers edit and rewrite and revise employee reviews - and I am burnt, fried, and refried. So, instead I will just post the last third of the article, which is a brief look at my brief foray into the glamorous world of internet boardgame programming.

A couple of years ago, I had ambitions to provide an Internet gaming site. These days, play-by-web (PBW) sites are abundant; SpielByWeb is a particulary nice site. However, PBW sites use Web & DB technologies. Part of my motivation was to beef up my skills in client-server .NET programming, as I work on control software at work. This would make my project more like the real-time network apps such as BSW. I ordered the hardware and started on some initial work, but two things happened. First, my kid arrived, and working on my PC or laptop is impossible when she is around. Second, I got promoted at work, which means not only am I busier, but I don't do any programming any longer!

The games I developed had minimal, functional graphics using simple widgets; the .NET WinForms library enables me to very rapidly develop prototypes on top of a working game engine. I wrote a tiered framework with a generic event-driven rendering interface on the client, so a nicer GUI could have been grafted on at some point. I focused less on the multi-player networking support and more on some rudimentary AI, ranging from Dumb to Dumber. Here is a list of projects that actually had working code at some point. (Click on the images to see a larger version.)

My first project was Mystick Domination, a CCG-like two-player game. I had the basic system in place, including all of the pawn attributes. However, implementing the special rules for every card proved to be too much work, and that was using the Basic set! A quick look at the Power set and I knew I was way in over my head. No AI here; I was just trying to create a point-to-point app so that I could play with my friend across town.


Next I whipped up Honeybears; it's a simple design, and creating a competitive AI was within my grasp. This game had the final version of the object library I used in every game since. Go Yellow Bear!



Next up was Titan: the Arena, a group favorite. Encoding all of the creature abilities was a fun challenge, but I never took the AI further than its current random behavior. Instead, this was the app that I most fully developed for a client-server architecture.



The last playable executable I "released" was based on a design of KC's, Trés Amigos. I won't say too much about it in case Sunriver Games is still looking to publish it. It's the first one where I included images (courtesy of KC) instead of just using painted widgets.



If nothing else, I gained a deeper appreciation for those who provide Internet boardgaming options, be it PBW, real-time, or standalone client with AI. Now, if you don't mind, I'm going to get in a quick game of San Juan before crashing for the night.

0 Comments:

Post a Comment

<< Home