This blog has moved. Visit Groundswell Games for the latest. Remember to update your bookmarks and RSS feeds.

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.
All in all it's a pretty amazing release. There are still plenty of things huge things that would be required to build an MMO with Unity, like all the back-end databases and server configurations, but this is a major step.

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.
So if you're a SPUDZOOKA fan but haven't played in a while, go back and check out the new enhancements!

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.
Anyway, check out the new, improved version.

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?

Wednesday, July 2, 2008

Notes from the abyss

Absentee bloggers are no fun. They entice you with a stream of regular posts and then disappear for weeks at a time, offering not a peep. When they do return it's just to supply excuses about a busy schedule or an obsession with the latest big game or to post frivolous items like creatures of the week.

Well, I'll not become an absentee (denial is an ugly thing). I have no excuses. But, for those few loyal readers who still stop by from time to time, here's a little update on my activities.

In short, I've been scattered, lacking focus. When I started writing this blog, I was working steadily on a single, massive, impractical project. Then I decided to turn my attention to SPUDZOOKA, and still I was focused. After releasing SPUDZOOKA, though, I haven't been able to settle on anything. I still work on things, a little here, a little there. But three things have primarily held my attention the last few months:

  • A new game. No specifics yet, but I've been working on a concept for a new game quite a bit different than SPUDZOOKA, one that will focus more on story and character and, I hope, have a wider appeal (not that potato cannons aren't universally entertaining). The difficulty so far is that story and character are tricky to develop and, while I think the concept and setting are good, I haven't been able to find the game in it. People might explore for a while, but what would compel them through the story?
  • A web site concept. I had an idea for a web site recently that I've been exploring, which means reading a lot about databases, php, and xml, and then tinkering with them to see if I've got the programming chops to make this idea happen.
  • Procedural terrain generation. Huh? I don't know where this stuff comes from, but I got it in my head that I would try to see if I could generate an application in Unity that would dynamically generate and display an endless terrain. The usefulness of something like that is maybe a little suspect, but it could spin off into some interesting applications. Unity's terrain system is a little limited right now, for example, so something like this could help people generate more realistic terrains and link them together to create truly massive worlds. Even just linking sections of terrain terrain together is something that could be useful right off the bat, particularly in, I don't know, an RPG. I hit a few tricky parts, but I did manage to create a randomly generated terrain that loops forever. Check it out (it may take a few seconds to compute).
So, I've been working, just not on a single project. Once I settle, I'm sure regular posting will resume. For now, don't forget to check back for the next creature of the week.

Edit: I fixed the bug that people were seeing in the web player and put a new file at the same location.