Thanks for visiting The Game Needed Me. In an effort to formalize my game development efforts and to promote my first iPhone game, I have created a new site and a new blog, Groundswell Games. All the old posts from this blog have been imported to the new site, so all you need to do is update your RSS feed or bookmark.I will be attempting to redirect this blog as well as possible, so I hope the transition to Groundswell Games will be easy for you.
Thanks for reading, and let me know how you like the new site!
Saturday, May 30, 2009
Come visit at Groudswell Games
Thursday, February 19, 2009
A personal note
Here at TGNM we're pretty much all business; this is a game development blog, after all. Today is different, however. You see, my wife is pregnant with our first baby, and we found out this morning that we're having a little boy. It's hard to describe how I feel today, probably because there's not a single word that would do it -- excited, scared, nervous, happy, awestruck. None of them quite work.
Things are certainly going to change for us, and soon, but rather than dwell on all of that, I'd like to take a moment to admire the first picture of my firstborn son.
The doctor says that's his spine. You can see it ... right?
Thursday, February 12, 2009
Zen and the art of indie game design
Touch Arcade posted an article yesterday about the upcoming iPhone game Zen Bound. Besides looking pretty frickin' slick, Zen Bound is notable because it's aiming at the increasingly popular zen-influenced approach to indie gaming (There is no spoon).
I put this in the same category as other non-traditional games like Jenova Chen's Cloud and flOw, and, to some extent, Crayon Physics (though it's more of a traditional puzzle game). These games are all characterized by a deliberate attempt to avoid the traditional trappings of commercial video games (or even the general concept of gaming). They aren't violent or particularly goal-driven, and they don't present situations where winning something is the player's primary motivation.
Games like this are appealing to me from a design perspective because of their counter-cultural tendencies. What's the best way to create an interactive experience that explores more than the adrenaline rush of today's big-budget games? Make something that moves slowly and doesn't go anywhere. It's a distinctly indie thought process, and it works perfectly for small projects. The focus is on quality on a small scale, doing one thing well and for its own sake.
I don't know if any of these designers will ever strike it rich, but that's probably not the point. The point, I suppose, is that there is no point.
Sunday, February 8, 2009
Real estate in Fable 2: an incentive not to play
I've been playing Fable 2 since late December, hoping that it would deliver on all the hype. After putting in quite a few hours and completing the main story line, I've decided that, like a lot of critics, I'm not quite convinced. Certainly there are impressive elements -- the graphics and visual style are suitably impressive, and the combat system manages to be simple, fun, and relatively deep.
However, as plenty of critics have said, the story is way too short, and ends abruptly without so much as a boss fight. The clothing system is pretty fun to play with, but there is an unfortunate lack of options for outfitting your character, and the only equipment that affects your performance is weaponry (which is also lacking variety).
Aside from all these issues, the one that sticks with me the most is the poorly balanced real estate system. On the surface, it's a neat system. You can buy property and rent it out to earn money. You can purchase furniture to improve the value of your properties and sell them for a profit. You can interact with the local economy to improve (or destroy) the amount of profit you get from your businesses. You collect rent every five minutes of real time, even when you're not playing.
As nice as it is to earn money when you aren't playing, the real estate system actually creates an incentive not to play once you get further into the game. After finishing the main story, you gain the ability to purchase Fairfax Castle for 1,000,000 gold. I didn't have close to that amount, so my strategy was to buy up as much valuable real estate as possible and then stop playing for a week until my bank account got fat enough. There wasn't enough content to keep me occupied in Albion until I had enough money, so I just switched to a different game. Call me crazy, but shouldn't game mechanics actually encourage people to play?
To make matters worse, now that I have more money than I can spend, there's no reward that seems worth the trouble. Apparently the reward for collecting all 50 silver keys, aside from an Xbox achievement is 50,000 gold? Seriously? After spending a million on a piece of property? Why would I spend hours collecting keys for chump change like that?
As much as I complain about Fable 2, my wife and my brother (who get the brunt of my complaints) would be quick to point out that I'm still playing. I can't really explain why, except maybe for my compulsion to collect obscure achievements.
Wednesday, January 28, 2009
Beyond the numbers: are they just for über-nerds?
Hit points, experience points, reputation points, strength, critical hit percentage, intelligence, agility... There's a long list of "stats" common to games today (RPGs in particular), and most of the time the numbers behind these stats are visible to the player. So do players really want to calculate their crit percentages and crunch the benefits of +12 stamina vs. +10 intelligence? Is it enough for NPCs to express their feelings toward you as +5 love, +7 attraction, and -30 fear?
Asked another way, is it possible to derive any real drama from all the rigid computer logic behind our favorite games? Earnest Adams gives his thoughts in a recent Gamasutra feature about "Numbers, Emotions, and Behavior."
Adams' argument is a familiar one: video games will never rise to their full potential as long as designers continue to focus more attention on the numerical mechanics behind a game than the human element of the game's characters.
In principle, I agree. Games do need characters that behave in more believably human ways. We as gamers would all be better for it, and the industry would get more respect. The constant focus on math isn't a very "humanistic" thing; it feels more mechanical.
The difficulty, though, is that video games aren't just about characters and stories -- they're called games for a reason. We play them. They have rules and structure. We engage in goal-oriented activities and try to win more often than lose. In a fundamental sense, games are mechanical. If you take these elements away from an interactive experience, it no longer qualifies as a game.
Adams notes in his article that "all that emphasis on gear [in RPG games] seems distinctly nerdy." He's talking here about the desire to collect the best items that provide the best stat bonuses and give you the best chance at beating your opponent(s). Is this nerdy? Maybe, but this behavior isn't the exclusive domain of hardcore gamers. Fantasy sports requires the same type of in-depth attention and number crunching, and no one calls it nerdy.
Perhaps the difference is that fantasy sports don't offer the potential for narrative the way video games do. It's pure gaming with no delusions of artistic grandeur.
So what's a game designer to do? Hide the numbers at all costs or give your hardcore players something to sink their teeth into? The answer to this quandary, like most good quandaries, is likely somewhere in the middle, and it definitely depends on the type of game you're trying to make. Could World of Warcraft benefit from more compelling dramatic action or characterization? Absolutely. But would it be so ridiculously popular if it wasn't possible to agonize over item stats and DPS? No way.
Thursday, January 8, 2009
Left 4 Dead: A co-op experiment
One thing my gamer friends (ok, that's all of them) and I always talk about is coordinating our purchase of a game so we can play together. Things rarely work out that way, mainly since everyone but me is still playing World of Warcraft. But last week three of us arranged to pick up Left 4 Dead at the same time. We even carpooled to the store.After a few play sessions with everything from one to four players, here are some initial thoughts:
The co-op basket
Left 4 Dead is similar to Portal in one very important way. No, not that it's made by Valve. At it's core, Left 4 Dead is an experiment in one gameplay mechanic. Just like Portal took the concept of the portal gun and explored it to its utmost potential, Left 4 Dead attempts the same feat with multiplayer co-op. Zombie games are nothing new. Co-op isn't either. But Left 4 Dead is designed to force teamwork in co-op, which, strangely, hasn't been done too often.
From this angle, Left 4 Dead is a smashing success. Co-op play is great fun. It's intense, fast-paced, requires communication, and presents a decent challenge even on the normal difficulty setting.
The problem is that the game puts all its undead eggs in this one basket. The amout of fun this game offers is directly proportional to the number of people playing. It's fantastic with four, pretty good with three, just ok with two, and borderline boring with one. Not being one to play online with strangers, I anticipate that we'll frequently run into scheduling problems. And that's too much like work.
Embrace the random
The other primary feature of Left 4 Dead is it's sophisticated AI system. Every time you play a level, it's different. The game AI decides where to place boss zombies and where zombie rushes will come from. It definitely keeps you on your toes. I imagine higher difficulty levels (which I haven't yet graduated to) are quite intense. Even music and sound effects are controlled by this system, which creates a wonderful mood just at the right times and gives perfect queues to build suspense about which monster might be around the next corner.
In fact, I think Left 4 Dead's AI system presents a big step forward in gaming. There's no more memorizing enemy locations and finding just the right way to take them out. The randomness of gameplay forces you to play the game with urgency each time through.
However (you knew it was coming), all this glorious randomness comes with a price: there's not much content. The game includes four campaigns, each of which takes about an hour to play from start to finish. They're brilliantly designed, but they're short. Actually, they're about the right length. One hour of zombie slaying is about right. There just aren't enough campaigns to choose from. It may be impossible to know where the zombies are coming from, but you can certainly learn the best locations to fight them. The first time through a campaign is exhilarating; you don't know where you're going, and you don't know from which door death might emerge.
Overall, Left 4 Dead is quite well executed. There aren't enough games these days that focus on quality over quantity. Valve has produced the last few. Nevertheless, I find myself wishing for just a little more quantity on this one. I don't know how many more coordinated play sessions we'll pull off before somebody loses interest. Once that happens, the chances of anyone else sticking around drop considerably. Just like in the zombie apocalypse, if you don't all stick together, the fun won't last long.
Sunday, January 4, 2009
The bandwagon
Happy new year, everyone. It's time to come back from vacation mode and get serious again. That means getting back to the day job, working more regularly on game development, and, of course, blogging. Yeah, maybe I'll get in shape, too.
One thing is certain, though: I now have more money invested in my little venture. My lovely wife bought me an iPod touch for Christmas, and signed up for the Apple iPhone developer program. Plus, I bought a Unity iPhone Basic license, so I can use the coolest development environment to make games for the coolest gadget.
Yes, that's right, I took the plunge -- just like everybody else.
This is one of those times that I wish I were more of an early adopter. The iPhone development market is pretty well flooded now, and the bulk of new apps coming along are games. Every day that goes by will make it harder to score a big hit; there's so much noise out there. Thankfully, thousands of people buy iPhones every day, and all of them no doubt will buy a few apps as they go. As the market matures, there will be less money around for silly or pointless games, and quality will become more important.
What am I working on? Well, a few things. The first goal is likely to be a simple, cheap (or free) game that lets me test the waters a bit. I'm working on something with my brother as well, which has been in the works for several months. We've started adapting our progress for the iPhone, and it's going to be a challenge to get things running smoothly. I've also got another, grander idea in mind that could be really cool, if I can get something out there before someone beats me to it. So many possibilities...
Then, of course, there's SPUDZOOKA. I fully intend to adapt it for the iPhone, but I have quite a bit of work to do there. I did a quick run today to see how well it could just be ported over. Alas, not very well. Running it promptly crashed my iPod.
There are a lot of sacrifices that have to be made for a mobile device, and I'm just beginning to get my head around them. More on that later. Stay tuned -- this is going to be an interesting year. For now, back to dabbling.
Friday, November 28, 2008
Morph targets and a disembodied head
It's been a while since I posted something for you to play with.
Well, here you go.
It will take a minute to load (lots of stuff to calculate). Once it does, just play around with the sliders to customize the guy's face. You can click and drag on his face to turn him around. Cool, huh?
Unfortunately, I can't say that I whipped this up after Thanksgiving dinner. Actually I've been working on it for a week or so, trying out different methods of achieving what I wanted -- and some methods of getting nowhere close. Actually, this version is the most complex one I did. The fact that it works is reason enough to post it.
How it works
Now the thrilling explanation. One of the features that Unity lacks at the moment is the ability to handle morph targets (aka blend shapes) imported from 3D tools like Maya or Cheetah. So, the only way to implement them is to code a system by hand. After scouring the Unity forums, I found a script that would handle simple mesh morphs but didn't do anything as complex as multiple blended attributes.
Using the basics of that script, I manged to put together a system that works pretty well. Here's the basic flow of things:
- To set everything up, I assign the base mesh (3D shape) in Unity, then create a list of attributes that I want to adjust. Each attribute has a reference mesh created by editing the original mesh to get the most extreme version of each facial attribute.
- When the scene loads, it first stores several pieces of information (this is why it takes a while to load):
- For each attribute (24 of them in this scene), it builds a list of vertices in the mesh that are affected by that attribute.
- At the same time it builds a list of offset vectors for each vertex affected by each attribute. This information stores the maximum possible offset for each vertex per attribute. Lots of data building up here...
- Then we build a list of which attributes affect each vertex. This is the converse of the first list above, and it's necessary to keep the code running smoothly.
- After all that data has been stored, the default mesh loads along with a bunch of sliders to control the various attributes.
- Each time a slider is adjusted, we calculate the proper amount to adjust each vertex affected by that attribute. This is done by using a weighted average of all the attributes affecting each vertex in question. By using a weighted average, we can combine attributes like the width and height of the eyes without getting conflicts (this part took me forever to figure out).
- Once we have the right offset vectors, we adjust the affected vertices by those values and redraw the mesh. Voila!
Because there's so much manipulation of individual vertices in this code, it was really hard to optimize. I spent almost the entire day trying to get it to run at an acceptable speed, and I still don't think it's good enough. The main problem is that when a vertex (or group of vertices) is affected by multiple attributes at once, the weighted average becomes harder to figure out and requires more processing juice. I attempted to store offset values rather than recalculating the average every time a vertex is affected, but I couldn't figure it out before dinner. This version runs well enough, so it will have to do.
Oh, and happy (late) Thanksgiving!
EDIT: I posted a new version of the file after getting some serious optimization help from Jamie. It still takes a while to start up (but not as long), and it runs considerably faster once it loads. My code now also morphs the normals as well as the vertex positions, which I had overlooked before.
Tuesday, November 18, 2008
Untold fortunes await
This is the kind of article I don't need to read. It puts crazy thoughts in my head. The article relates the stunning success of a young fellow who developed an iPhone game over the course of four months, put it on the App Store, and made $250,000 in the first two months. Now he's quit is day job, started a company and employs several people. He's living the dream.
The article does point out (a little slowly) that untold fortunes aren't exactly guaranteed. I don't have any serious notions about creating an overnight sensation--though it would be pretty cool. In fact, being the realist that I am, I can think of three big reasons why my path probably won't match his:
- He designed a puzzle game. Puzzle games have very broad appeal and are great to play for five minutes at a time.
- He made a game that required minimal art assets (just a few triangles that can flip over). This fact alone probably saved him months of development time.
- His game was available at the launch of the App Store. This is the big one. The number of games available on the App Store has grown ridiculously fast over the last few months. The difficulty of cutting through the clutter increases with every game that gets added.
The real point probably is that, while there's real money to be made in iPhone gaming, it's going to get harder all the time to get people's attention. But with a great idea and a lot of polish, it just might be possible to create something really special. Success might also take quite a few failures.
Thursday, November 13, 2008
More clout for iPhone gaming
Saw this article about the fact that several game industry heavyweights are throwing their ... weight ... behind iPhone gaming. There's one EA exec that has gotten quite a bit of press the last week or so for saying that Nintendo and Sony should be scared of the possibilities for Apple-based mobile gaming.
The fact that the iPhone isn't a dedicated gaming device doesn't seem to be a problem for these folks -- nor should it be. In fact, the idea that you can carry one device around to occupy every odd minute of your life seems quite appealing to people.
I've been reading about some of the technical limitations of the iPhone, and it definitely seems possible to overcome them. I'm trying to think of it like a retro game development exercise. I'll just pretend I'm developing for the original Playstation or N64.
In case you're wondering, I'm not actively developing for the iPhone, yet. I'm hoping in the next couple of months I'll be up and running. My brother and I are working on a game right now that we're planning to port over, and I have another idea for a game that could be really cool, if I can pull it off. SPUDZOOKA is on the list, too. It might be a good one to practice on, since the game is pretty much done. I would want to add some new levels, though (how long have I been saying that?).
Monday, November 10, 2008
A confession of loyalty betrayed
I have always been an Apple fan. (That's not the confession.)
It wasn't long ago that such a statement would cause listeners' eyes to roll uncontrollably. Often this reflex was accompanied by a sharp exhale of breath that most people would mistake for an impatient sigh laced with sarcasm. Lifelong Apple fans like myself, however, have always been able to recognize the true emotion behind those reactions: jealousy.
Don't bother to deny it -- denial is just part of the friendly game we all play. It's ok; I understand. Now that Apple's cool and Microsoft isn't, I do like saying that I knew that from the beginning, and I told you so, and Mac OS 6 beats Windows 3.1 any day.
All these things are self-evident, and my gloating undoubtedly suits a Mac user admirably. Nevertheless, there is one little problem: I love my Xbox 360.Maybe it's the allure of hi-def gaming. Or the number of games that appeal to my taste more than the PS3. Or maybe it's the promise of a true all-in-one media center in my living room (not that I've downloaded any TV shows or movies through Xbox Live, yet).
I don't know the reason, but I find, strangely, that I'm excited by the impending arrival of the New Xbox Experience on Nov. 19. Not just a little excited, either -- I'm excited like Steve Jobs is giving a keynote at WWDC. How did this happen?
But there are plenty of things to be excited about, right? I will be able to:
- Create a Wii-worthy avatar to replace my stupid gamer picture
- Navigate through thousands of downloadable goodies much faster
- Stream Netflix movies straight to my TV
- Some of the Netflix movies are even hi-def
If anybody's interested, here's a review of the New Xbox Experience from Ars Technica.
Wednesday, November 5, 2008
Lament of an anti-social gamer
There was a primer posted on Gamasutra a couple of weeks ago about the growing role of social communities in games (and the challenges of building one that works). It's probably obvious by now that there are huge advantages to building an online social community around games -- give your players a place to compare notes and shoot the breeze with other players, and you've got an almost surefire hit, particularly if the game already has a fanbase. Even games that are entirely played online anyway (say, World of Warcraft) have thriving internet communities because they give players another reason engage with each other while they should be working.
But is it possible to provide too many social options for players? It's a lot of work to set up such things, and there may be a point at which actual gameplay can be sacrificed for the sake of "social" features. The case in point is Spore. I was pumped about Spore before it came out. I bought it within a week after release. It's a great game, and it's revolutionary in several ways, but when you really dig into it, there's not much game there.
The Spore experience is so focused on encouraging players to share their creations with each other that I felt from the beginning as if I were missing half the game because I didn't care about looking at other people's creations. I love that other creations are pulled into my universe automatically, but I haven't spent a single minute looking at sporepedia online or making friends in the online Spore community.
(Full disclosure time: I'm not a heavy user of social media. I get it, and I think it's changing the nature of the internet before our eyes. But I lead quite an anti-social online life.)
It's becoming accepted generally that, if you don't build social features into your game, you better do it online. In fact, one of the suggestions I've heard for indie developers is to focus lots of attention on your online social presence. Make your game about connecting, not just playing, say the experts. They're probably right--all my favorite and most enduring entertainment experiences have thriving communities. My lack of participation doesn't mean it isn't there.
What I'm trying to find, being an ultra-indie, is the right balance. I can't build or support a big-time social platform to supplement my games. Even if I could, it would almost certainly seem incongruous with the scope of the games themselves. Nor can I hope to compete with the big casual game sites (which naturally have full-featured social elements).
Probably, as with most things, the answer is somewhere in the middle. Create a game with in-game social elements (like multiplayer) and then give players a simple way to connect with each other outside the game using existing platforms like Facebook apps or embeddable web site widgets. Guess I'll add those to the list of things to learn.
Thursday, October 30, 2008
Puerto Rico and The Fountainhead
My wife and I got back from Puerto Rico a few days ago. It was a fun trip, very relaxing, and much needed. Basically the only thing I did while in the Caribbean was sit by the pool and read (with some eating, drinking, and snorkeling thrown in).
In my pre-trip search for a book to read, I stumbled on an old copy of The Fountainhead by Ayn Rand that I got from my father several years ago. It's hard to say what drew me to it, not knowing much about Rand or her books, except that I had never read it, and everybody says it's a classic. I'll forego a full review, but I will say that it started out really well, with interesting, complex, and often surprising characters. Unfortunately the story quickly took a back seat to a lot of preaching about the eternal struggle between society and the individual.Any Ayn Rand critics who happen to be reading this, don't worry. I haven't turned into a raging Objectivist. Nevertheless, Rand's perspective (it's not hard to make a connection between the author's ideas and those of Howard Roark, the protagonist) did strike a chord with me. The notion of the self as humankind's quintessential trait and most valuable asset is hard to refute -- self-awareness being what separates us from the the animals, etc. But more than that, her portrayal of mass media and its influence on unthinking hordes of people was eerily reminiscent of today's reality TV culture.
The Banner (a newspaper in the book) used sex, violence, and gossip the same way CSI uses the shiny object effect ("it's...so...pretty") to draw millions of viewers, and ridiculous editorials in the book's fictional newspaper affected public opinion like today's 24-hour news stations, both of which spew nonsense because they know people just want to be told what to think. There's even a character who bears a healthy resemblance to Jerry Bruckheimer or Rupert Murdoch -- a media mogul who made his fortune by appealing to the lowest common denominator.
So what does any of this have to do with game development? Directly, nothing. But it's easy to make the same arguments about the money-grubbing and lack of originality in the video game industry as Rand made about architecture in The Fountainhead. Ultimately, I wonder if there's anything truly original to be gained from big studios whose collective goal is to rehash past success as quickly as possible. Rand places all her hope in lone, single-minded, and frequently outcast geniuses (Copernicus, Galileo, DaVinci) to move the human race toward a greater future.
Will some indie game developer take the industry in a whole new direction? With the ballooning budgets and shrinking quality of most games today (and art in general), it seems the indie scene is the only place left to look.
Thursday, October 9, 2008
iPhone development tips
As a follow-up to my last post, Game Career Guide just published an article on iPhone game development tips. there's some good info there, particularly about the general immaturity of the market and some of challenges for designing control schemes for the iPhone. The accelerometer, in particular, is one of the phones most unique features and also, I'd guess, one of the trickiest things to use effectively.
The article also warns against using the touch screen to simulate directional pads or joysticks, since there's no force feedback to tell you when you've slipped off the controls.
I'm still not sold on the idea of iPhone game development, but I have to say it's looking more interesting every day.
Tuesday, October 7, 2008
The future of gaming on the iPhone?
Unity Technologies announced last week the details of their iPhone development license for Unity. I've been waiting for this since they first said it was coming, and the specifics are about what I expected:
- The iPhone development license is an add-on to an existing Unity license.
- There are two versions of the license -- one that clearly targets indies and one for larger studios. The indie version is significantly less expensive, but it comes with some limitations, including a mandatory Unity splash screen as the game loads.
- There is no limit on the number of games you can create with a license (as opposed to the Wii development license for Unity, which has a per-title fee).
I can't help but wonder, though, how much of a future the iPhone has as a gaming platform. Certainly it's a great device. The accelerometer and multi-touch display make it perfect for simple, addictive games. But how much is just a novelty? Will every new iPhone owner buy a couple of games because they can and then play them for a grand total of five minutes? Everyone I know that owns an iPhone is constantly messing with it, sending texts or looking things up on YouTube. But when do they play games? During the morning commute? On planes? Though where does any adult play mobile games?
Still (can you tell I'm undecided?), the cost of entry is pretty low -- just a few hundred dollars, which, if you consider it the cost of starting a small business, is unbelievably small with very little risk. And, considering that Unity is perfect for developing games quickly, you can't really go wrong.
For a small team with limited resources, there are remarkably few reasons not to develop games for the iPhone. But the one that makes me hesitate is a big one: in another year, will anyone still be buying games for their phone? What do you think?
Wednesday, October 1, 2008
A whole new look
Hi folks. Believe it or not, I'm still here. In case you didn't notice, I updated the look of the blog. I'm going to be making some more changes soon; this is just a starting point. Among the changes: blogging more often. I have no excuse but laziness for my long lapses lately. Things have certainly been busy, and you'll be happy to know I haven't just been sitting around. Anyway, I hope you like the new look. Stay tuned for more.
Tuesday, August 12, 2008
IdentiFiction: Can it deliver?
I stumbled today on a new project called IdentiFiction, an upcoming online channel for episodic, browser-based games. After checking out the site, I definitely agree with the Rampant Coyote's assessment. IdentiFiction's vision is totally in line with the direction I want games to go: complex characters and stories presented in a way that will appeal to more than our most juvenile instincts.
The weekly episodic format is also appealing to me, since it's something that makes increasing sense as people get used to paying small fees for downloaded television episodes. It's also a great way to tell intricate stories without requiring hardcore time committments.
The question, of course, is whether this team of 50 people can deliver something compelling with their first game, Aosphere. The odds are against them, but maybe that's part of the appeal. In any case, I've marked my calendar for October 15th.
Tuesday, July 29, 2008
Unity 2.1!
Ok, this news is pretty stale at this point, but it's worth posting anyway. Unity Technologies released Unity 2.1 on Friday. This update was a long time coming (about nine months I think), but it's a doosy. The message around this update is that it finally makes Unity MMO-enabled. How? Well...
- Endless streaming terrains. Yes, that's right, Unity now supports as large a world as you want to create. You can build multiple terrain tiles and stream them in to create truly massive worlds. Anyone following TGNM the last month or so knows I've been working toward a home-grown version of the same thing. I had a feeling the Unity folks would throw something like this, but I couldn't be happier. Ok, I could be happier: I haven't figured out how to make these nifty new features work yet. The documentation is noticeably lacking so far.
- More realistic terrain lighting. Terrains in Unity 2.0 would only work with directional lights and lightmaps, which severely limited things. You couldn't, for example, light a road with torches in any realistic way. Terrains also now work with projectors, which means better shadow effects (for poor indie owners like me--terrains support real-time shadows for pro licenses) and the possibility for projected spell effects or selectors.
- Procedural control over characters and animation. Unity always had a really flexible animation scripting system, but now it's possible to create even more advanced effects like on-the-fly creation of skinned meshes. This stuff is pretty advanced, but it seems to open the door for really flexible MMO-style character creation. You can also sync scripted events with animations, making it easy to spawn things like footprints, footfall sounds, impact effects, etc.
- Streaming assets. This feature, alas, is reserved for pro licenses, but you can now pack up any group of assets in Unity into a bundle and stream it in as the player approaches.
Sure, I suppose I could feel annoyed that I spent so much time doing things the hard way with terrain, but who am I kidding? I always do things the hard way.
Saturday, July 26, 2008
SPUDZOOKA updates
In a few free moments the other day I implemented some much-needed improvements to SPUDZOOKA. There aren't any new levels yet, but I did make some changes several people had requested:
- I made the second level easier. It's a sign that you didn't do enough testing when people repeatedly tell you they can't get past the second level. Mostly it was people who don't play games very often, but in a casual game they're the ones to accommodate.
- I added a counter that tracks how many targets you've hit and how many are required to beat the level. This helps people track their progress and gives a better sense of how urgent things are as time ticks away.
- I fixed a bug where the money you earned at the end of the last level wasn't being added to your total. This meant you couldn't buy anymore cannon parts after playing through once.
- I also added some bonus money to your total when you beat the final level. Now when you enter free play you should have enough money to buy any remaining components and customize your cannon any way you like.
Wednesday, July 23, 2008
Seamless tiling terrain, in pieces
I've still been working away on several things since my last post, but most of the sweat has gone into correcting a few issues with the looping terrain I linked a couple weeks ago. I'm happy to report that I've finally fixed the two things that were driving me crazy:
- Published versions of the file were strangely not rendering the main instance of the terrain from certain angles. Something about it was not working nicely with the camera. I never figured out why the problem was happening, but I did manage to work around it.
- It was painfully obvious where the seams were between tiles. The cause for this was pretty obvious as well: While the vertices lined up perfectly on the edges of the terrain tile, the normals did not, which made light react differently to two vertices located in the same place along the edges. Unfortunately it took way too long to fix the problem. In the end, very little code was involved (which is not to say that I didn't write a lot of unnecessary code along the way), but I used quite a bit of scratch paper trying to figure out how to access normals on the mesh's borders.
But wait, there's more! I also developed a system to generate floor tiles around you as you walk. This means you could walk forever in any direction, and there will always be something to walk on. By itself this isn't terribly interesting, as you can see. Still, the possibilities are pretty cool. If I could generate random terrains a little more quickly, I could generate a truly endless, randomly generated terrain.
Or, even better, I could create any number of seamless terrain meshes and load them in as necessary around the player a la World of Warcraft. I would just need to store a master grid of terrain tiles and keep track of the player's location. I'm still a few steps away from there, but it's starting to look doable. Pretty cool, huh?