We're the only people who are impervious to psychoanalysis.
31 Mar
After a few days of Nick’s endless campaigning, I finally signed up for Twitter; it was an odd concept for me and one I was greatly resistant to doing. After all, I never use the Facebook status messages or anything, so why would I want a system which is exactly that? He said “just try it, you’ll like it; it’s hard to explain.” He even linked me to other blog entries about it and I still thought it was insane. Finally, I gave in. I said I’d try it. And now, a week later, I have about a hundred updates. Once I integrated it into my my site and got some more friends (namely, game developers) using it, I saw the appeal: it’s a fantastic way to just quick-talk about whatever I’m working on, what I’m having issues with, what bug I just resolved, a link I want to share, and so on.
But that’s not what this entry is about. Twitter got me thinking about my blogging habits and some of the rules I follow whenever I write an entry to my site.
It’s worth noting that I loathe the word “blog,” but felt it was inescapable for this entry.
30 Mar
I wasn’t a huge fan of the last redesign that I forced upon this site, so the quick turnaround into the new one is primarily related to that.
Usually, when I redesign my site, I choose a theme and then overhaul the CSS/Formatting to fit my needs and, generally, to remove the fixed-width nature of most Wordpress themes. This time, that’s not the case. The new theme, designed by Design Disease struck me as being so completely perfect for what I was looking for in a design and the color palette is nothing short of superb. At some point in time in the next week or two I’m going to look into getting a custom logo next to the Polycat.net text at the top of the page but, really, other than that I am absolutely in love with this design.
As of this iteration of Polycat.net, I’m also taking the site in a new direction. Since I am, essentially, everywhere, I’m going to start linking to things I write/post elsewhere instead of just cheaply mirroring the content here. I will still use this main page for things but, for the most part, I’m done mirroring articles across all three of the primary places I write (this, GameDev.net, and JoeUser). My goal is to fill the sidebars to the right with as much oft-updating information as I can to keep this site updated regularly, so over the next few days I hope to remove the Categories/Archives bits in the sidebar and replace them with useful RSS headlines. The gallery also received a hefty upgrade. I’m keeping the original Gallery in its old place so none of the articles here and elsewhere which link to its contents will have broken images, but this is the new hotness. I even wrote an about page which caused me much mental anguish. And I added about forty quotes for the random quote code to nab from.
Also, the Twitter feed will stay. I’m loving the thing. I assumed it was going to be much like Facebook status updates (which I never use), but this is appealing once I got a desktop client that I just updated with development stuff as it entered into my mind.
27 Mar
I absolutely love this “rise of the social single-player game” sort of mini-march I’m seeing occur in the industry right now with games like Spore, Fable 2, and Animal Crossing. With the announcement of The Sims 3 came a great deal of information about what EA Sims felt were the important parts of the Sims 2 and, thankfully, it seems they truly understand what was important about The Sims as a franchise. When it comes down to it, the Sims has never been about house decoration nor has it been about treating your Sim as a digital Barbie doll. These are things that players took and ran with to an extent that I’m not sure Will Wright had intended and, due to this, the franchise ends up with expansions pack which add more accessories and things to add to the Sims’ living quarters than they do to enhance the single most important aspect of these games: the player-Sim bond in a world inhabited by other bit-breathing, digital-living Sims.
Casting aside the unnerving amount of joy the player-base gets from torturing Sims — putting them in a house, making them drink water all the time, and never placing a toilet — or letting Sims into a new room and then removing the door, the thing that sets the Sims apart from any other franchise is the bond that develops between the player and the Sims he/she controls. Whenever I first started playing a Sims game for the first time my only goal was always to experiment with all of the tools the game offered me. I’d see what kind of things I could design — houses and Sims — and I’d see what I could exploit in the game world to test the reactions of the Sims. This generally results in a very poorly-played game, unhappy Sims, and serial-killer levels of dead Sims. Playing the game like this fails due to one simple fact about it: at its core, The Sims 1 and 2 are actually fairly complex strategy games. And one of the reasons the games work so well is that there this weird little bond that the player can develop with the Sims within any given household throughout, as the Sims 2 introduced, the lifespan of an individual Sim from its teeny-tiny diaper-wearing days until it died of, if you maintained its basic needs well enough, old age. And with the Sims 3, the game will now have all members of a neighborhood age together, so that numerous generations of Sims within one household will no longer always be haunted by that tramp Betty who has, at this point in Timmy’s life, made out with both Timmy, Timmy’s father, Timmy’s grandfather, and Timmy’s grandfather’s friend Jim (who, as chance has it, is also Timmy’s current best friend).
One of the smartest decisions that the original game made was to never have any of the Sims speak even a single line of identifiable language. The inability for a Sim within the game to utter the same tired catch phrases, one-liners, and “you clicked me!” bits of dialogue allows the player to continually think of the Sims within a game as far more identifiable and lovable versions of Tamagotchis. Their inherently humanlike appearance and behavior further solidifies the ease of which a player can feel “closer” to their Sims in a way that, say, a particular unit in an RTS can’t. The reason that I still maintain such an absurd amount of excitement for The Sims 3 is that, in their announcement for the game, the need to micromanage the aspects of Sim behavior that no one really likes dealing with has been eliminated. There is no longer a need to try and save time by finding an ideal moment in the “Bladder” gauge of a Sim so it can relieve itself without disrupting whatever you have planned. A player will still have to allow a Sim a bathroom break but, now, the player won’t have to be consistently reminded that a Sim will, at some point in the future, reach critical mass. Obscuring the more trivial aspects of a Sim’s life while maintaining the basic gameplay mechanic should, so long as additional micromanagement reminders aren’t added in its place, should make the overall game so much more enjoyable.
The absolute coolest thing about The Sims 3, though, is going to be the way that character designing portion of the game is going to handle the creation of a unique personality for a given Sim. Gone is the pseudo-RPG stat management that went into creating a personality for Sims in the first two games that had a certain neatness value that, for the most part, had no place in a game like this. The Sims 3 is introducing a trait-based personality system that will have players choosing five traits from a pool of ninety-plus total traits. Using these five traits, the game will define the entirety of a Sim’s base personality. So, let’s say I wanted to create Sim Trent, I’d choose the Workaholic, Talkative, Enthusiastic, Opinionated, and Creative/Logical depending on the mood Real Trent was in when making Sim Trent. These five traits would then define the base personality for Sim Trent and, along with his physical make-up, allow Real Trent to go into Sim Trent’s life and play the kind of game that he, er I, think(s) Sim Trent would most enjoy. It’s a fantastic way to handle what, before, was an unnecessarily confusing system that had entirely too many gameplay ramifications attached to it.
I wish Games for Windows had the various prototypes that EA Sims had their designers make before starting any serious development on the game up on their website (as it is, it’s “coming soon”) as that was the primary motivation for this column and for my next design/development project. When I notice it’s up I’ll certainly cover it if the prototypes end up being as interesting as the three they had listed in their magazine.
19 Mar
Video games are such a fantastic medium. I just finished playing through Gears of War cooperatively with a friend over Xbox Live and it was absolutely enjoyable, hilarious, and challenging as hell. As a child of the, uh, Manboy Generation? YouTube Generation? Whatever kind of generation I’m a part of, growing up with video games has obviously had a large influence on my life being that I am what some may consider a “hardcore gamer” along with being a game developer, designer, and so on. So, basically, my abnormal interest in games is a well-founded and, I believe, a very beneficial one. And as I was sitting here a second ago working on some optimizations for my near-finished old-school shooter in the vein of classic games like Asteroids and Robotron I realized that, above all else, Real-Time Strategy games remain the genre I most enjoy and love to think about. So many of my favorite games are RTSs that, occasionally, I am prone to ponder what makes them so awesome. This shortly-conceived and hastily-transcribed article is a sort of general, informal monologue about the genre.
One of the reasons that the genre is so immensely popular is that the games that exist within its boundaries lend themselves to an extreme amount of consideration and study amongst the hardcore audience of players. Much like certain first-person shooters like Quake, Quake 3, and Counter-Strike attract a very dedicated group of hardcore players who memorize the layouts of every map and can absolutely thrash even “very good” opponents in tournaments with ease, certain real-time strategy gamers gravitate to specific titles that are particularly conducive to gameplay which rewards a deep, occasionally disturbing, level of understanding of the game mechanics. The game that immediately comes to mind when thinking about the genre like this is no other than Starcraft, which, particularly in Korea, has an overwhelming number of gamers which treat the game like a religion. I’ve heard rumor of Starcraft tournament stars being likened to the traditional rock stars of American culture. Whether this claim has any legitimacy is unknown to me, as I haven’t really traveled to Korea lately, much less a Korean Starcraft tournament.
For me, the appeal of the genre doesn’t quite stretch to the hardcore understanding that would lead me into victory in any tournament. My favorite RTS is, without a doubt, Rise of Nations. I feel that this game is the perfect blend of typical RTS research-and-attack conventions while also having a very unique and interesting economy. I was never a much of a heretical fan of the Age of Empires series (though I have enjoyed them greatly) and, for me, Rise of Nations a fantastic middle-ground between Civilization and more action-oriented RTSs like Command & Conquer and Warcraft that Age of Empires slightly missed. In the early parts of the game it was necessary to build up the area your central settlement and explore the continent you were spawned on while also researching your way into the next epoch. At some point, you’d expand your settlement (and this was a necessary step unlike a game of Warcraft 2/3 where an expansion base may not be the best idea) and then start establishing trade routes, building up your borders to ensure a strong defense when a foolhardy opposing tribe thought they could break down your walls and lay waste to your settlement early on in the game. Each game had a truly epic sense of scale as it took you from spears to fully-automatic guns, bazookas, and a staple of any good game: nuclear weapons. The game also had alternate victory conditions that didn’t necessarily rely on violence (thought you would, almost definitely, engage in a handful of skirmish). Most importantly, though, this game did not require intense micromanagement for the most part — though, in the late game, effectively managing all of one’s settlements was an absolute pain — and managed to contain all of its gameplay in a timespan under two hours which, for me, is probably when my attention for any one gameplay session begins to wane.
As I think about it now, the reason that Rise of Nations captivated me the way it did was due to its superb ability to pack all of my favorite things about turn-based strategy games into a real-time strategy game progression. Some games I loved playing an aggressive military game while others I enjoyed playing defensively and researching my way to victory while other times I enjoyed doing nothing but researching my way to nuclear weapons and blowing the rest of the map to radioactive wasteland. What it all boils down to is that real-time strategy games work because they promote a certain level of decisiveness in the gamer that can be reflected in-game surprisingly quickly whether it be related to a research choice and the immediate and long-term consequences, a choice to position a tank in combat somewhere specific or to put extra money into artillery instead of a tech which would boost your economy, and so on.
RTS games are, fundamentally, a microcosm of real-life topics and gameplay mechanics. They contain real-time combat that is dependent on tactics both big picture and instantaneous decision, balancing an economy that must fund both research and military, defense of your home base(s), exploration, and expansion. Sins of a Solar Empire, for instance, is a relatively slow-paced game that has its foundation in a lot of 4X (eXplore, eXpand, eXploit and eXterminate — why it’s not a 4E game has always boggled my mind; I guess X is just in a more extreme segment of the alphabet) turn-based gameplay that puts as much emphasis on economy and diplomacy as it does combat. In the end, Sins is primarily won through combat but the intelligent player is able to leverage a particularly strong economy to form alliances with other players in a multiplayer game who can function as the sword to his savings. Company of Heroes, on the other hand, is a game which is firmly rooted in combat. It still gives players a variety of possible play styles (I like to play infantry- and artillery-heavy) but the reason the game is a success is because it places such a fine point on its combat that, instead of focusing on large-scale economy decisions, the choices the player has to make are now large-scale combat choices — how to capture territories and key points in a way that, if attacked in the process, will result in the most damage to the opponents forces and the least to the player’s. So a player could rush into a point with a single piece of armor and a pair of infantry forces to capture the point while being supported by heavy machine gun fire, mortar shell launching, and the ability to call in a precision artillery strike if a hasty escape needs to be made.
The possibility for a large-scale RTS which manages to seamlessly mix the large-scale issues of research, diplomacy, and economy of a player-driven empire along with the less time-intensive and more short-term rewarding nature of visceral RTS combat is an idea which I absolutely adore. The day a game like this comes about is the day that RTS gamers can have their life-ending World of Warcraft.
17 Mar
At this point, I think that it’s fairly safe to say that the meat of Asplode! is finished. All of the primary gameplay is in place, the enemies are all implemented and handled in a state that I’m fond of, and the player controls, responses, and such are all implemented. At this point any more features that I add to the gameplay portion of the game are either polish points or experimental ideas that I may or may not keep as part of the game (a few automatic weapon upgrades, various ideas as to how to handle the score multipliers, and whether or not I’ll allow the player to acquire more ships/lives as the game progresses or not). I mean, I still have to add the main menu, restarting/quitting mid-game, and handling option changes dynamically instead of by text file and such, but unless there’s something I’m vastly underestimating about this process (I’m not having a fancy UI or anything), it shouldn’t take more than two more weeks — as I’ll be gone all next weekend.
That all said, what I’m struggling the most with right is performance. The game runs smooth and excellently for the first two-three minutes but, shortly after the two-hundred second mark, it started chugging something fierce. My first response earlier this week was that it was, obviously, the particle system and its insanely inefficient rendering method where I filled a vertex buffer per-system and then rendered the contents (per-system). I remedied this by batching all of the particle geometry together into a single write-only vertex array/buffer indexed by a static index buffer and rendered all of the contents in a single draw call. The number of particles doesn’t generally spill over into a second batch but, even as a worst-case scenario, that’s two draw calls total for that. Pictures from that experiment (this actually went really well and I only had one screw-up):
That improved the overall framerate a decent amount but it still was, clearly, not the main problem. The only other huge graphical culprit that could have been causing a problem were the vector model rendering routines. When I started looking over the source code I realized that these were the first things I wrote when I switched back to XNA after my D3D10 experiments and the code was absolutely atrocious. I had two draw calls per every model and, on top of that, I was generating data for each of the models from the source XML data whenever a new enemy was created. So, not only was I reading and parsing the XML data but I was generating all the geometry from the minimal data in the XML. It took most of Saturday to sort out all of that and batch the model rendering routines together and, in the process, I made a number of pretty-looking screw-ups:
I’m officially declaring the game in beta testing status as of now and here are some screenshots from a playthrough an hour or so ago.