The Craiggers's blog

Realism vs. Fun

It seems like most games that aim for realism are very unfun (piss off, spell checker, I say it's a word now). Not many games out there are realistic at all, and probably every single one of them has at least one unrealistic compromise made in the name of fun or playability. Maybe it's finding gold coins in freshly slaughtered bear carcasses, stumbling upon ammo for your arsenal of guns on alien worlds, or medic packs that can somehow heal gunshot wounds caused by tanks, games have to compromise a little somewhere or they turn into horrible chores. Games that forget this or try to branch out usually end in failure or end up not being as fun as they should be.

Take GTA4 for example. If you truly wanted to experience the game, you had to take women on dates, friends out to bars, etc. Doing this would improve your relationship with them, while snubbing them lowered their liking of you. Sadly, not answering your fucking cellphone while you're in the middle of a high-speed chase or getting shot up by Russians and being late when picking them up means you just lost some cred. Or maybe you were picking up a date when your smelly cousin calls to go shoot pool- whoever you ditch will hate you a bit more. While I hope these seemingly minor transgressions wouldn't lower your "cred" with some major characters to the point where they would stop moving the plot along (I never finished the game, so I can't say), it still disagreed with me. It felt like instead of playing the game, the game was playing me.

That all said, I'm making a strategy game. A game with a fairly large scope as it is: galactic warfare. I believe such games have to be mostly based in (some sort of) reality. However, some methods of warfare may totally break the multilayer experience. Take technology, for example. History is filled with examples of a warring faction being totally decimated by another with superior technology. Pointy sticks < swords < guns < tanks, etc. Realistically, if your armada armed with pointy sticks goes up against a foe armed with guns, you're going to lose, and badly. You might not even have the time to reverse engineer their technology before being wiped out. One way of looking at this is technology research is a vital part of these games- you can't neglect it any more than you can neglect maintaining a sizable army to ward off foes. Another way to look at it is that you will make a few mistakes when playing each game. Should you automatically lose the game if you make a mistake and your opponent doesn't? "Fun" says no- you should get a chance to come back. However, somebody has to win the game eventually, and it can't just be based on random factors- skill must have a part in it.

Man, I seriously don't know how game developers do this.

Spammers

Well, it took a few months, but spammers finally found my poor website. Last week, something like 15 users were created with such awesome names / email addresses like "asytojsfa" and "vandueas." They are now gone and as promised, user creation restrictions have been tightened. That said, a couple of them could have been legit users, but I doubt it. If, after a couple months, you suddenly decided you had to make a new ID to leave snarky comments on my site and now cannot log in let me know and I'll mail you a pony or something.

Direction change

First off, I'm not giving up on my RTS idea. It's too awesome to forget about it, but sadly it would take years working with 3D stuff before I would get to the point of making anything playable. That said, I've completely changed directions and am making a turn-based strategy game. In 2D. Probably even in space so I won't even have to worry about making maps with backgrounds. I'm borrowing a lot of the crazy technology ideas from the RTS though.

The main goal of this project is to create a multiplayer game that can be played at each player's leisure and yet still as fast paced as possible. The game will use a simultaneous turn play-style. How this works is that everybody takes their turn at the same time and submits their choices to the server. Once everybody has told the server what they want to do (or a pre-defined time period elapses) , the server parses all the commands from each player, resolves the combat, makes an updated map, and sends it to each client. The process repeats until there is a victor.

The major problem with this is the server will have to handle all the combat. It would take forever to resolve a skirmish via this method. Now, I'm not usually a fan of computer-resolved combat. It's always too boring and doesn't have the excitement that real human intuition brings. That said, units in the game will be able to be 'programmed' with some rudimentary commands for battle that are executed in order. Things like "fire long-range missiles for X turns; retreat" or "flank army; attack from rear" stuff like that. I toyed with the idea of having a full-blown lua script or something that players could create to control their ships, but I figured most people wouldn't want to deal with that and it would be unfair. I still plan on having lots of options in order to make combat interesting, however.

I believe this format will also lend itself well to portable devices. I'll be getting a Pandora soon, and I'll surely be making a client for it. PC will obviously have a client as well, and maybe the DS if it can run Python. The portable device will connect to the server in the morning, get the updated map, and the player can take their turn while eating lunch or taking a crap. Later, when they get home or within range of a hotspot, they can upload their turn.

Anyway, the server code is coming along nicely. I hope to have a simple server by the end of the week that can move units around on. Obviously there is way more to do than that, but it's an exciting first step.

On production

I think I've decided that there will be no "builder" units in the game. No SCVs or Peons or Construction Vehicles or whatever the hell most games have. I might be screwing myself though. I figure most games have these units for a reason. No, not 'most', all. I can't think of a single RTS game that doesn't have at least some kind of builder unit. To which I say, why?

They offer almost no tactical choices. Sure, in some games you cutting off the resources by killing peons on the way to or from resources is a valid tactic, but I've already removed that option with how the resources will work. More on that later; since I haven't gone into the details on the resource management yet here. In later games, like Dawn of War, they only create buildings and repair. Other than getting stuck on the way to a job, they do nothing but provide some sort of silly animation while building.

Building structures will be easy. Click the building you want to build on the toolbar, click where you want to build it, and it will start the process of building. The building will continue to build until it either finishes, is canceled, or is attacked. Repairing structures will be like Command and Conquer; just click the repair button and select the buildings you want to repair to start the process. Easy peasy.

Repairing units will be a different story. I'm thinking about making them go back to the base to be repaired.

Scripting / modding

Currently, one of the debates I'm having with myself (is that healthy?) is if using XML for such things like the Tech Tree will be powerful enough. If I use XML, I would have to hard-code certain effects into the game. For example, if one of the technologies would bypass shields, I need to have some sort of ByPassShields="Yes" tag in the XML, and the game would take it into account when the weapon fired because I told it what to do when it encounters that tag in the config.

The other option is some sort of simple programming script, like Lua, that would allow me to actually control how the game will react from within the config itself. In this case, the same weapon in the config would have to include code for damaging the target(s) and how it would damage it. When the weapon fired, control would be passed to the fire function in the script, which would contain all the code to deal the damage to the target that was hit. This is a very simplistic example, obviously.

Going the XML route would be the easiest. Going the scripting route would give me the maximum in flexibility and let people really tinker with the game mechanics if they wanted to. However, something tells me that the second option might be biting off more than I can chew for my first real project in 3d games. XML it is, for now.

Music

One of the features I liked about Total Annihilation was that the game basically had two soundtracks. When you first started the scenario, the music was somewhat calming classical pieces. However, as soon as a shot is fired, the music switches over to a fast paced, harder music. Years later, while trying to rip the music out of Moonbase Commander (I just love it that much), I found it had a similar technique that I didn't even realize. Basically, during the 'boring' times an ambient type music would be playing. When the shots started firing, the music would seamlessly change into something more applicable to a fast-paced game of lobbing bombs at each other. There were at least three or four different musical tracks it would change to, depending on what was going on in the game. Even though it made recording the "cybernetic bird farts" music impossible, I thought it was a very slick idea.

I want to do something similar in my game. I have a few options that I'm still tossing around. One of my first ideas was just to use something similar to Moonbase Commander's method. Have a bunch of MP3 files for varying levels of engagement, make sure they all mesh somewhat so the transition isn't too jarring, and just have the game escalate accordingly. Another idea I had (which is my current favorite) is to use tracker-based music files, and turn tracks on an off in real time. When the game first starts, there might only be a drum beat or something ambient. When shots start being exchanged early on, probably when scouts start running into eachother, another track or two might get switched on, adding guitar or more drums or whatever. Maybe the tempo could even be increased. The more damage being done, the more the music would engage the player. Once things die down, the music could fall back to normal stages, or perhaps beginning +1 stage, so it would never fall back all the way after the first battle; this would help prevent the player from getting too complacent.

I'll have to talk to some of my more musically-inclined friends (especially the ones with electronica / DJ backgrounds) and see what they think. If anybody reading this has more ideas they would like to share or foreseeable problems I haven't noticed, please let me know.

3D Engines

A long time ago, somebody new to making games posted a thread on the Something Awful forums asking for tips on making a game he was thinking about. Somebody (I forget who and it's probably archived by now) responded with "You want to make a game, not a game engine. Go find an engine that does what you want and use it." I'm glad this advice has stuck with me, as one of my weaknesses as a programmer is that I constantly want to do everything myself. For people that actually have the drive to spend every waking moment on a project from start to finish, this might actually be a boon. But for people like me, with girlfriends and jobs and other hobbies that also demand their attention, not so much. Also, lets not forget the fact that my hard drives are filled with the decaying remains of long-forgotten projects that I never finished. It seems that if I don't have something to show after a few hours of work, I lose interest.

Thankfully for me, there are a lot of people out there that devote their time to making 3D engines, sound libraries, and all the other necessary ingredients that goes into making something playable. Sadly, they pretty much force you into a certain type of game; most of them are designed with the highschooler making a FPS in mind, not something that might push any sort of envelope. I found this out the hard way when I attempted to create a Moonbase Commander game in 3D, where the battlefield takes place on a fully rotatable planet. Things like that are just not possible unless you have a very good understanding of 3D graphics and the engine you are working with. I have neither.

This time, I'm making a RTS that takes place on relatively flat plane. While this environment will surely have 3D terrain, mountains, valleys, shit like that, this will be way easier than doing the same thing on a rotating planet. Also, RTS games are popular enough of a game type that there will at least be some resources for me to use. Now I just have to not get too carried away and think up shit that is too hard to program.

I think I've decided on using Ogre3d for my game engine. I have a little bit of prior knowledge of how it works from trying to make my last ill-fated project, and I know it can at least do the types of environments and lighting that I have in mind at this early stage. We'll see how this pans out. Time to start the always fun process of getting a sane programming environment set up with different libraries.

Spamity spam

Spam is something everybody has to deal with, but people who run their own webistes even more so I think. In an effort to curb the inevitable onslaught of spam, I've made account creation a requirement for posting comments. Currently, this is the only form of spambot mitigation on the site. No email verification or captchas to decipher or any of that garbage... yet. I'll keep an eye open and see how bad it gets. Each time another spambot gets through, I'll introduce more requirements.

The point is, if you want to post comments, you gotta make an account... but it's currently very easy to do so. So, those of you that think you might want to, do it now before it gets annoying. Or not. Most of my online friends I talk to all day over IM, so I don't know why they would bother. Unless it's Mike and he just wants to humiliate me on yet another channel of communication. Which is the kind of thing he would do.

Anyway, the good news is that so far I'm digging this new content manager running on the site, so this is probably going to be what the site looks like for awhile. Unless I get Squidgy to make me a new theme.

New Site

Yes, it's that time again. Time for a new look to the webpage that I don't use enough of, and another empty (probably!) promise of updates. Anyway, I decided that having WordPress installed in my server was the equivalent of parking my Jeep in a dark alleyway in Detroit. At Night. With the doors unlocked. And leaving a box of hammers next to it, just in case they don't try the door handles. In other words, it wasn't very secure since I was too lazy to update it.

So, since I keep paying my webhosting fees (by the way, Apis Networks is the best webhost I've ever had the pleasure of paying money for) I keep thinking I should actually use this thing for something besides tiny little projects that only a handful of my friends see. At the same time, I've been itching to do more programming. Specifically, reliving my old childhood dreams of creating a videogame. I decided this could be my new online journal (I refuse the use the b-word for some reason that I made up just now. No, you don't get to know what it is.) for the project.

The new project will be a RTS game (real time strategy, for the TLA (Three Letter Acronym- for the even more acronym) ignorant) that will be something of a cross between Master of Orion 2 and Earth 2150: The Moon Project, with a heavy emphasis on espionage, research, military intelligence, and counter-intelligence. Anyway, more on that later... spouting everything about the game now would make for a huge first post. Besides, I need to pace myself.

I'm also turning into something of a shutter bug, so I may post my photos here. Still thinking about how I want to do that part... use a Flickr-like site or do something myself.

Syndicate content