Critical Mass
Monday, January 21st, 2008I wonder: what sort of technological, marketplace, or other financial innovations would make it possible for “cult” franchises like Firefly and Uru to be more financially viable in the future? Both have large fan bases, and both have seen, as far as I can tell, remarkably marginal returns in the market despite the rabidness with which their constituents adhere to them. These products contain content that is by no means inexpensive to produce. In the case of Firefly/Serenity, there’s actors (not quite big-time ones like Harrison Ford, but certainly able to command sizable salaries), writers, camera crews, set builders, support staff, marketing, effects shops full of their own staffs… that’s a metric ton of money to be throwing at something like this. In Uru’s case, you’ve got artists, animators, programmers, designers, concept artists, story writers, marketing, customer service staff… again, loads and loads of money that needs to be spent for this sort of content. The sort of money that, when not made back quickly, makes investors or other financial buoys (like publishers) nervous.
Niche markets are getting harder and harder to tap, it seems, despite the increasing interconnectedness of experiences that one would think would make it easier to reach those niches, and the amount of money required to create high-quality entertainment capable of not only attracting but retaining the people who make up that target market is ever-increasing. You can’t make a Firefly or Uru with $50,000 in the bank (which by itself is a rather substantial chunk of change), and you certainly can’t sustain it that way. These are multi-million-dollar products, and you need to find a market for them quickly, and be able to hold onto that market, or you’re screwed, no matter how many loyal fans you have who will follow you to Hell and back if you promise them a fruit cup.
It’s incredibly frustrating to see quality franchises suffer at the hands of the Almighty Dollar just because not enough people are interested in it to make it financially viable. Not only is it frustrating, it’s also rather scary, speaking as someone who wants to do this sort of thing for a living before I die. Especially in the case of video games that don’t find their market fast enough, it’s ridiculously frustrating, because video games are themselves still a niche market (I think the biggest reason games cost $40-$60 a pop is because of their limited market… though as it expands and the prices fail to drop, the industry has managed to overtake motion pictures in revenue… go figure). A product like Myst or Uru that has the ability to break out of the traditionally-held limitations of the gaming industry’s demographics should be able to (and did, once) make substantially more in sales than products like Call of Duty, or even Halo, which has of course proven to be more popular than God. And yet, such products languish in obscurity, attracting only a niche group of an already niche market dominated by a demographic more inclined towards faster-paced, more aggressive gameplay, and failing to reach those who decry video games as nothing but murder and “virtual orgasmic rape” simulators (not so much NSFW as just incredibly, horribly frustrating).
There’s something about this whole situation that makes me wish that there were some way of more cheaply developing quality entertainment products that only manage to appeal to a narrow cross-section of the market (or that only manage to reach a narrow cross-section of the market that you know would find it appealing). Whether it’s through something ridiculously socialist like subsidies from whatever governmental organization could be seen as supporting this sort of thing (or, ideally, just making Blizzard share some of the billions of dollars in revenue that WoW generates… no, I’m not bitter, shut up), or through some other innovation in the market itself that makes these sorts of products available to anyone at reasonable prices with the majority of the revenue going to the developers and not the distributors, I feel that something needs to happen, especially in the video game industry, whose generally-accepted concept of innovation seems to be “Mario64, but in space”, “Like Halo 3, but with chainsaws”, “WoW 2″, and “System Shock 2: Underwater” (shocking). I may be watching a bit too much Zero Punctuation…
It could be (and certainly has been) said that as far as something like Uru goes, there was more in play than just lack of audience, and I think I’ve got a whole post full of things to say about what I’ve learned from Uru as a developer, but despite its numerous setbacks, cancellations, and stutters, it’s still a unique approach to interactive entertainment, and I wish there were more people willing to throw copious amounts of cash at it to make it what it really could be. And maybe that’s the solution to this whole thing in the end: finding people with plenty of money to spend funding crazy-awesome ideas that may not be the most wildly successful product in history, and hooking them up with people who have crazy-awesome ideas for niche products in need of said cash.
Now how the hell do we do that?
Look at me still talking when there’s science to do…
Tuesday, October 23rd, 2007More Portal references, yes. Deal with it ;).
A brief update on the whole physics-based first-person camera controller I was working on last week. I’ve gotten it working to a pretty reasonable extent. It’s slightly tricky, and doesn’t match reality 100%, but it works well enough for 99% of the cases I’d be interested in handling.
To quickly run down what it’s capable of, the system can handle collisions with stationary objects just as the standard controller does. It also properly handles landing on and moving on a moving object, like a rotating or moving platform (i.e., I could build Gahreesen in Unity were I so inclined to do so, only I could actually build it as a single scene, rather than 4 distinct sub-worlds, so everything would rotate as expected, and transitions between sections would be completely seamless). Additionally, it works reasonably well when the rotating object is tilting, rather than spinning on its vertical axis (i.e., a see-saw versus the Gahreesen rooftop). The only issue is that it takes until the thing you’re standing on reaches a near-90-degree angle before you slide off. For the most part, this really isn’t a huge problem, since I don’t see myself building many environments that involve this kind of rotating platform, and games have gotten away with much worse in terms of controls before (especially first person games).
The main drawback is that it doesn’t seem to work with the standard 1st person camera controller construct, so I can’t really restrict movement to certain angles of surfaces as easily as I could if it worked seamlessly. However, since the 1st person camera controller’s slope restrictions can be easily overcome by simply walking at the offending steep surface and jumping repeatedly, a more robust system would have been required anyway. So, now I have to make sure that any areas I don’t want players getting to are well enough insulated that they can’t cheat the physics to get there. In this regard, seeing all of the ways that Cyan has had to re-jigger their collision planes to stop people from getting places they shouldn’t be able to is a useful learning tool (like ever so many things about Uru are…). I believe the general rule of thumb espoused by several players has been “build a 20-foot wall around it” if you don’t want players to get on top of it. This seems like a very valid suggestion.
Now that the control works for a first-person camera, the objective is to make it work for a third-person rig. I doubt this will be a huge issue, since it’s been built completely independent of the camera controls, so the challenge is more in getting a third-person camera to work than it is in getting the movement to map to a visible object. Although, I do need to figure out how to get walk cycles mapped onto an object and ensure that it moves at the proper rate of speed for the designated walk speed. The camera will probably be the more difficult of the two, because I not only have to work out how to get it to look at and follow the target object (the easy part), but I need it to react to the target’s movement either in a dampened fashion (like Uru’s avatar-following camera), or in a fixed-position fashion (like a console game, i.e. Psychonauts or Tomb Raider). If it behaves like Uru’s camera, it needs to behave largely independent of any mouse input. If it behaves like Tomb Raider or Psychonauts’ camera, it needs to react directly to all mouse input to control rotation and elevation angles relative to the player character.
While Uru’s avatar-cam system would probably be easier to develop, and is something I’m certainly interested in pursuing, I’m more immediately interested in seeing if I can develop a third-person camera system that’s more like Tomb Raider or Psychonauts.
It’s at this point that I really wish I was getting paid to work on games, rather than writing online banking software, because there are so many things I want to work on and develop, and I just don’t have the time to devote to all of it along with the other stuff I’m always busy with after work. I’ve got ideas for camera controllers, walk cycle implementations, particle effects, physics tests, environmental animations… basically a whole mountain’s worth of stuff to fiddle with and fine-tune, some of it related to the current game projects I’ve got going, and some of it more indirectly related to game ideas in general. It’s kind of killing me that I have to spend 45 hours a week expressly not working on them. I just don’t have the money or ability to simply do this as a day job, because nobody would be paying me, and my release audience is currently restricted to either web-player games (which would obviously be free of charge) or Mac users. And while there’s as much as 8% of the current population using Macs, that’s still a rather small target audience for games. Now, my plan is to make a free limited web-player version, and charge a nominal fee for the full game in cases where it’s a more casual-style game (like Labyrinth), so hopefully I can get people hooked enough to buy the full version, and by saving up those proceeds, I can do things like buy the professional version of the Unity development environment, so I can build Windows binaries as well as Mac ones, and maybe eventually get a new laptop for more development freedom (since most of the work gets done on a Mac, and we only have one of those, it kind of creates a production bottleneck when the sound & music engineering, game programming, level assembly, and testing all has to take place on one machine).
Oh, and for those who were wondering, I believe RIUM’s post about furniture sentience was the fault of Ash and myself. Not like I’m trying to give something away or anything…
You just keep on trying ’til you run out of cake…
Friday, October 19th, 2007A couple of things to discuss this time around… first, the obvious one given the title.
Portal is the best game ever created. Period. It’s short, which is somewhat unfortunate, but it’s not lacking anything for being short. If anything, its awesomeness is simply concentrated by its brevity. It’s an amazingly dark and funny game featuring a highly passive-aggressive computer named GLaDOS (seriously, she’s like a female HAL), lots of amazingly involved puzzles with a very simple execution mechanic (aim gun at wall, fire, hijinks insue), a Companion Cube, cake, and a song by Jonathan Coulton. I really don’t think you could get much better than that if Jesus Himself were involved. The only issue I have with it is the fact that it assaults my low-end Dell in a way that I’m not entirely sure is 100% legal ;). Still, with a dedicated graphics card, it’ll probably work a lot better than it does with the integrated GeForce 6150. Even at 640×480 with all of the effects turned down, though, it’s a really good looking game.
Secondly, I’d like to also congratulate Valve for actually making me interested enough in the story of Half-Life 2 to make me overcome my extreme aversion to shooters. This is important, because the last shooter I actually played through and completed was Dark Forces, which came out 12 years ago. I’ve since had rather pitched multiplayer battles in Doom 2 and GoldenEye, and been dragged into assisting a friend through some co-op in Halo 2, but ultimately, I’ve never really gotten back into the shooter genre, and honestly don’t feel like I’ve missed all that much (I’m not counting my recent foray into Psychonauts or Tomb Raider Anniversary, because neither is really a shooter so much as an adventure/platformer game with some gun play/boss battles).
SPOILER ALERT!!!
That’s not to say half-Life 2 is without its obvious plot contrivances that continue to annoy the crap out of me, like forcing me to take the long way around a collapsed tunnel by going through the headcrab-infested city of Ravenholm, rather than getting the hulking monster of machinery named DOG (who had just ripped the doors off an airlock not a minute earlier) to simply clear a path for me, or the incredibly arbitrary object manipulation limitations of the Gravity Gun. I can pick up a wooden box, a radiator, or a toilet and throw it at a headcrab, but I can’t fire a gravity burst at the headcrab itself to get it the hell away from me. I can launch a wardrobe several feet across the room, but I can’t knock down a measly metal gate or take out a rickety plywood barricade. It’s irritating, because Valve did a great job of taking advantage of pretty much everything that Havok’s physics engine has to offer, but it’s done so inconsistently at times that it started driving me batty about halfway through Ravenholm, when my ammo started running low and I was desperately trying to get headcrab zombies the hell away from me with what ended up being the functional equivalent of a cap gun (so that’s what the orange tip is for…).
Overall, though, I do think that Half-Life 2 was a great game, despite its occasional contrivances to the tune of “we’ve given you an incredibly powerful gun that can do pretty much anything, but only when we say it can”, or “while you could probably kick this fence down, you have to take the long way around because your legs are about as functional as an Uru avatar’s arms”, or “URBAN COMBAT!” (cities are confusing; I get lost/turned around easily). I’m quite looking forward to stealing Ash’s monitor back next week so I can plow through the apparently much shorter Episodes 1 and 2, and maybe do a bit of advanced Portaling. Valve gets mad props for creating a game I was actually thoroughly engrossed in, with a story that I was very much compelled to finish (and the voice acting was the complete opposite of the traditional corny sucky stupid campy dialog that infests so many games these days). Also, while lack of interest is my primary motivation for not buying shooters, the control scheme has always been something I’ve never been a fan of because I’m really not a very coordinated individual. I’m absolutely atrocious at controlling a character using a dual analog stick setup, perhaps mostly because I’m too used to the one-stick control scheme of GoldenEye. I’m also not a terribly huge fan of the WASD + Mouselook control scheme, perhaps because I’m used to the far simpler “arrow keys and spacebar” controls of the obviously outdated Dark Forces. However, HL2 had a very small number of required buttons, and I found it easy enough to achieve a passing mediocrity with the control scheme, so while I probably made it harder on myself to play because I suck, I didn’t get needlessly stuck because I had to master some arcane controls with pinpoint accuracy under pressure. I do, however, have an annoyingly bad habit of standing stock still in the middle of a combat area trying to shoot people because my aim is atrocious when I try moving, and few of the guns seem to be very good at hitting anything over 30 feet away.
Now, all of this brings me to my second (or third, if you count my Portal and HL2 commentary separately) point. For a while now, I’ve been sort of obsessing over how Uru handles standing still on a moving object. Half-Life 2 and Portal merely add to this obsession to see how such things can be done correctly, because Valve has made some sort of dark contract with Satan to get the near-perfect physics model they have in Source. As some of you may recall, I obtained a copy of the Unity graphics engine for the purposes of participating in the company’s Top Developer of Online Games contest last month. While I didn’t win, I’d definitely say that it was money well-spent, because I got a free upgrade to the new version which came out last week, and so last night I decided to try out my own implementation of this whole physics-based mess.
Suffice it to say, the logical solution of dropping an FPS camera controller onto a moving surface completely failed in every way imaginable. Even after making each object a rigidbody and attempting some more arcane physics-based movement controls (versus scripting the moving object’s position and rotation directly), I failed to come up with a satisfactory setup. The best I was able to do was get the camera controller to drag along the surface of the moving floor at a slightly slower and more sluggish rate than the floor itself was moving, with the net result being that I could watch myself slowly turn in a circle in relation to the floor, which was also sliding away under me as though I were on roller skates. Adjusting the masses of the objects and the global gravity helped a little, but not nearly enough. Finally, I decided to give up and go to bed, when naturally inspiration struck and I had to bottle it up for later.
I concluded that the “best” way to go about implementing this system was to do something similar to Uru’s “sub-world” system, where the avatar is tricked into thinking it’s standing on a stationary object, while the object itself is actually moving (sometimes at high speed). There are problems with this model, which the migration to PhysX has exaserbated, but all in all it works fairly well. The issues currently present are the “jitter” that an avatar experiences while standing on one of these moving objects, especially at low framerates, and the fact that no interaction between the avatar and the over-world is possible once it has entered the sub-world. Thus, you can’t do things like pick up markers you’ve dropped, and you fall through solid ground in the over-world if you somehow manage to exit the sub-world by an unexpected means (like falling through the floor, or jumping a railing).
Unity seems to have a hierarchical system in place which I could probably use to successfully (but perhaps not accurately) implement the phenomenon of standing on a moving surface. Basically, any object can have children, and those children basically treat their parent as the only thing in the world; position, rotation, motion, etc. are all inherited, with the net result being that if you place an object on a surface and then make the object a child of that surface, and then you move the surface, the child object will move with its parent exactly as you might expect it to. Since Unity makes it possible to re-structure the hierarchy of objects in a scene dynamically at runtime, I could conceivably instruct the FPS controller to child itself to whatever object it was currently sitting on.
There are a couple of issues I need to work out, though, and it’s at this point that I really wish I were getting paid to do this, rather than writing software for a credit union data processing company (hello, Office Space). First, I have to make sure that this dynamic re-parenting of the FPS controller will actually work the way I think it will.
Second, I need to work out exactly when the FPS controller should re-parent itself in the case of jumping, whether it’s from the moving object to a stationary one, or just jumping in place on the moving object. I could probably get away with re-parenting it whenever you landed on a surface, but something to take into account is the fact that realistically, when you jump on a moving surface, you’re not usually going to end up in the same place, due to air resistance and all that other shiny physics jazz. You’ll be close, to be sure, but it won’t be exact. I’d thought about setting the FPS controller to a root point in the hierarchy any time it wasn’t attached to a surface (in outer words, de-parenting it as soon as it left the ground), but given the problems with physics not properly inheriting momentum on an object when it ought to, I don’t know if that would be a good plan, because you’d retain none of your angular momentum, rather than the portion of it that you would in the real world.
Third, I need to see what the effects of standing on a surface that tilts will be in this case. By default, a child will inherit all of its parent’s attributes, including its rotation. While this sort of setup would be interesting and useful for a relative-gravity scenario like the Milkman level in Psychonauts, usually you’d want the player to fall off of something if it rotated perpendicular to “the ground”. I don’t know if I can uncouple the rotation of the FPS controller from its parent object in a way that retains the functionality I want while alleviating this potentially bothersome issue.
Ultimately, moving surfaces are a pain in the ass. They just are. I hope the solution I came up with last night will actually work (and on the plus side, since you’re not really altering the mechanics of the avatar’s interaction with the over-world, it should still be possible to drop and pick up objects in a global setting, like markers), but if it doesn’t, I’ll be back to the drawing board trying to see if I can come up with a way to get an exclusively physics-driven solution to work. I may need more cake…
Animation
Wednesday, October 17th, 2007From Joystiq:
Who says mo-cap is the technical capturing of data to create realistic, fluid motion in gaming that’s devoid of soul?
Anyone who knows anything about how to properly animate a skeleton? Seriously, compare Polar Express to any film made by Pixar (even the original Toy Story. I’m that confident about this). The difference is mind-boggling. Pixar even went so far as to put a disclaimer at the end of Ratatoullie stating that absolutely no motion capture or other production shortcuts were used in the making of the movie. Animation is inherently art, and while you can use motion capture as a basis for your intentions if you’re under some serious time constraints, there is nothing motion capture can do that a trained animator can’t do better. Nothing.
Now, as I said, if you’re under pressure to get all the character animation in a game done in an extremely short time frame (especially when you’re aiming for realistic and unique movements, like in sports games, where each player has their own way of moving), you’re likely going to need to fall back on motion capture just because studying that many people’s movements is a lot more time consuming than just having them come in and strap into a mo-cap suit. However, if Polar Express has taught us anything, it’s that un-altered motion capture is creepy. Just watching the in-game footage that’s spliced rather spastic-ly into the end of the video embedded in the linked article, the players look pretty good, and move rather well, but they just strike me as slightly undead. It’s the Uncanny Valley all over again, but while most people tend to focus on the visual appearance of these creepy specimens themselves, the way they move is just as important. Motion capture seems to be a really good way of quickly moving from the null end of the Uncanny Valley graph straight into the deepest part of the trough; it’s what the artists and animators do with that raw footage that ultimately determines whether their characters manage to crawl back out of that pit, but putting your full faith in the motion capture to solve all of your problems is a really bad idea.
So to answer Joystiq’s query in a less sarcastic manner, the people who have only seen un-edited mo-cap are likely to assert wholeheartedly that it’s quite devoid of soul. Well-utilized raw mo-cap footage, on the other hand, may be indistinguishable enough from hand-animated motion that for all intents and purposes, you could either suck the rest of the soul out of it and hit the wrong end of your target, or you can punch it up a notch and hopefully strike the sweet spot of realism/stylization and interest/creepiness.
The Studio is Complete
Friday, September 28th, 2007The Inspiron arrived today, and with it, our game development studio is now complete.
It took a little bit of leg-work, and I was tempted on numerous occasions to just wipe Vista off of the machine and re-install Windows XP on it, but despite Oscy’s repeated efforts to convince me to do it, I’m still running Vista Home Premium on it. I was worried for a few minutes that I wouldn’t actually be able to accomplish what I was after without paying more money or back-grading to XP Pro, because Microsoft in its infinite wisdom decided to nerf the REmote Desktop client in Vista Home (bet you’d never hear someone complaining about an OS developer “nerf”ing anything, huh? ;)). Out of the box, you can request Remote Assistance sessions, and can start RDC to connect to another Vista or XP machine, but you can’t connect to a box running Home. For that you need Business or Ultimate. Which is stupid.
Apparently (and thankfully), I’m not the only person who thinks this is completely retarded, and within half an hour I had a version of the Remote Desktop dll that allows a machine to host an RDC session set up on the box. So I can now connect to the Vista box using RDC on the Mac. And I can run 3DS MAX 9 (in XP compatibility mode, or it crashes, but whatever) at a level of performance that somehow still manages to exceed the performance of MAX running directly on my aging laptop.
I can now effectively operate as a one-man game studio, though I will openly admit that Osc is better with the audio creation than I am, so I let her handle that while I deal with the modeling, texturing, assembly, and scripting. The duties are a tad lopsided, but whatever. This should make it a lot easier for me to get things built and dragged up to a fully-functional game, since I have an end-to-end solution without leaving my chair. No more dealing with my crash-prone, aging laptop, and no more having to steal Oscy’s computer when I want to actually get something accomplished in MAX. This makes me happy.
Now I just have to finish working on DPWR and get it the hell out the door so I can actually do some game development :P. I have a mountain of things I want to do to Labyrinth to make it better, and I have a few other things that I want to do as tech demos and environment tests for future projects, but it all has to wait until DPWR is done. DPWR has waited through enough other delays, and I’m tired of it hanging over my head as something that needs to be done. So: DPWR first, then the good times may roll.
For the first time in quite a while, I feel like I’m making real progress toward what I actually want to be doing for a living. That makes me very happy.
Sadness
Monday, September 24th, 2007So, the winners of the Unity Top DOG Contest were announced today. As I suspected, our hastily-constructed little labyrinth board didn’t really stand much of a chance against the heavy-hitters with a 5-week head start (well, “head start” may be the wrong word, seeing as how that’s when the contest actually started…). The winners were announced today, and can be seen ,a href=”http://forum.unity3d.com/viewtopic.php?t=6882″>here. Many congrats and kudos to them and everyone else who entered.
Thus freed from the requirements of the contest, I’ll probably do a considerable amount of tweaking on the game at some point, adding in additional boards, better environments, more legible text, and a fix for the pesky “infinite negative balls” bug you get after you lose and hit “Play Again”. My goal with this game is to eventually have two versions available: a simple web-based version with maybe 5 levels or so, and a more in-depth desktop app with more options and levels. I hope Oscy’s up for a lot more GarageBanding ;).
This is on hold until after DPWR gets upgraded, though. More on that briefly, but suffice it to say that there should be a lot more than Uru Live’s season finale going on in October at DPWR.
Uncleanliness…
Saturday, September 22nd, 2007Despite my ruminations on getting an iPod Touch earlier this month, I have yet to get one because it’s still a bit tough to justify spending $400 on a music player at the moment. However, circumstances have conspired to make it possible for me to spend a considerable amount of effort developing games on my G5. This, of course, requires me to have access to a computer running Windows that is also capable of running 3DS MAX. At present, there are three systems in this house, and the only one fitting that bill is my wife’s PC, which pretty much rules it out as a work machine for me.
So, with a heaping helping of “thank you sir, may I have another?”, I trudged my aging refurbished Dell laptop over to the aging refurbished Dell online store to look at the offerings. I feel very bad about doing this, because I’m looking at systems I’m likely to outgrow in a relatively short time span, and on top of that, I’m looking at PCs (rather than Intel-based Macs), and on top of that, I’m looking at Dells. However, I simply don’t have the time to spend saving up enough money to buy a decent Mac (or even a Mac mini, even a refurbished one), and the sole purpose of this machine is to run MAX anyway, so getting a Mac for the purpose of booting it exclusively into Windows seems a bit stupid.
Ultimately, I settled on a rather nice dual-core AMD 64 at 2GHz with a gig of RAM, and integrated GeForce 6150, and Vista Home Premium (because I enjoy torture, but not enough to subject myself to Home Basic) for $229, which is almost as cheap as a new license of Vista Home Premium at retail. Crazy. It’s hardly the most awesome machine on the market, to be sure, but it’s still light-years ahead of my laptop (whose display driver crashes when I try using MAX for more than 10 minutes), and even ahead of the 4-year-old PC my wife has, to a certain extent. I wanted to get a model with 2 gigs of RAM, but they weren’t going for less than $349, and I couldn’t justify spending even that much right now. It’s sad, I know, but we’re trying to pay off debt and save money at the same time, so it’s a little rough at times, and the truck’s coming up on some expensive required maintenance.
I’m happy I’ll be getting a system I can run MAX on uninterrupted and unhindered, but it also irks me that I’ve delved into the dark underworld of bargain-basement PCs again - and refurbished bargain basement PCs at that. Still, Dell’s sort of the lesser of three equally evil evils by way of familiarity (at least my laptop hasn’t experienced that many issues in its 4 year lifespan, which is far more than can be said for the two Gateways my aunts subjected themselves to, regrettably at my recommendation), and it’s also the best deal I could find on a baseline system, so I jumped at it. It’s not like I need a graphics powerhouse to do realtime game asset creation, after all.
My thoughts on the new workflow are as follows:
- Everything needs to be stored on the Mac hard drive for Unity to be able to open it and include it in the project. Any new files or other updates are automatically detected and imported on the fly. It’s pretty flippin’ sweet.
- Unity will be running on the G5 for obvious reasons. All final scene assembly and scripting will be done on the G5.
- 3DS MAX will be running on the Dell. I’d like to Remote Desktop into the Dell so I can run everything on the same screen with no switching, but it depends on how well the speed works out. All files will be saved over the network to the G5 for Unity to import.
- Photoshop will be running on the G, and again, all assets will be saved to Unity’s project directory for ease of use. I can bop between MAX on the PC and Photoshop on the Mac really quickly if RDC works out, and again, MAX will be drawing and stuffing everything from/to the Unity project folder on the Mac, so running PS on the Mac is a nice way to save PC resources.
The Dell is on 5-day shipping, so hopefully next weekend I can get the whole mess up and running, and get everything squared away for some content development next weekend (or at least, a workflow demonstration should Oscy’s parents make it up for a visit). In the meantime, I should probably wrap up development on DPWR and get it upgraded, or I may never actually see the light of day again.
Done!
Monday, September 17th, 2007Yeah, dropped off the face of the earth for a while on this one, but being sick and otherwise obscenely busy keeps you from doing game development in your spare time :P.
Labyrinth is complete! Or at least, complete enough that it can be submitted for the contest with a minimum of embarrassment on my part. I’m pretty sure it will pale in comparison with the other stuff being submitted, but hey, we gave it our best. It took all weekend – with some crazy-long hours at the end – to get it pulled together, but it’s done, and right under the wire, too (deadline is in an hour, and the files just finished uploading). It’s not as full-featured or expansive as we would have liked, but I think I made up for it with the sheer deviousness of the board itself ;). Anyone interested in playing it can head on over to http://www.revision1.com/maroontown/labyrinth.html to take a crack at it.
Kudos and many many thanks to Oscy for putting up with me this weekend, and for putting together the audio and music for the game.
And now, I go die.
Braindump
Wednesday, August 29th, 2007I’ve had a number of thoughts floating around in my head for a while, and I’ve decided that rather than spam MystBlogs’ feed with what may end up being a dozen little blurbles, I’ll just lump them into one big stream-of-consciousness thing here.
First, on a note that’s related to my previous two blog entries, I continue to be impressed with the Unity3D engine and related development environment. It feels a lot like the descriptions of Plasma that have been coming out of Cyan for the past 6 years, it’s incredibly easy to just mess around with, it’s pretty well-documented, and I can leverage my existing JavaScript knowledge (not expertise, but knowledge ;)) against scripting actions for games, because Unity’s scripting environment is C#/JS. Perhaps the biggest testament to the engine’s ease-of-use is the fact that in 3 days, I’ve already managed to prototype a pretty good deal of Labyrinth’s mechanics. Scripting is done, as I noted before, with JavaScript (or C#, if one is so inclined), and scripts are attached to objects in the engine. Any public variables (for anything from integers to other object references) can be assigned dynamically by typing in numbers (for integers) or drag-and-dropping objects onto the relevant field in the script’s inspector (for enabling script-based control of an object).
It just continues to boggle my mind that in the space of 3 days (counting from Friday night to Monday night; unfortunately I’ve been busy the past couple of days and haven’t gotten much more done) I’ve managed to enable mouse-based control of the Labyrinth board, enable physics-based movement of the marble on the board, create a game timer, a re-spawn control should you fall through a hole in the board, and define win regions using the engine’s built-in physics-based collider/trigger system (see? more and more Plasma-like all the time. Now about those doors… ;)). Still on my to-do list before the end of the week is the development of placeholder “power-up” objects in MAX (really, just some spheres or cubes… the great thing about Unity is I can re-save a more advanced model later and after an asset refresh, any already-used instance of that object will be automatically updated with the new data) and the scripting necessary to control them. I’ll probably put most of the scripting on the marble itself, since that’ll be an easier, more centralized way of maintaining the entire gameplay system than having a dozen little scripts scattered all over the place. I also want to do some research into how to load a new level after you complete the current one, but that’ll come a bit later I think. I’ve got 20 days left, and lots of work to do, but I think it can be done. I may not hit 30-35 different game boards by the end, but I’ll probably be able to come damn close… board-making is a piece of cake, really.
On a game-related note, Oscy and I have been playing Tomb Raider: Anniversary together after downloading it from GameTap. We haven’t finished it yet, but I have to say that so far I’ve been pretty darn impressed. Admittedly, some of the twitchier and more prolonged jump/climb/jump/shimmy/swing/shimmy/jump/climb/climb/climb/jump/fall/die/repeat portions can get a bit tedious, but it’s a really fun game with some pretty clever puzzles, and I’m glad I succumbed to the hype train that GameTap has been conducting and played it. My last experience with Tomb Raider was in 2000 when my (much older) cousin let me poke around in the original Tomb Raider’s Croft Manor section while my mom, my brother, and I stayed at my great-aunt’s house in Florida on a trip to Kennedy Space Center, so Anniversary has been quite interesting to me (I’m still trying to figure out whether they built Croft Manor off of a real British manor for the games, or whether they built a wicked-sweet set for the movies).
Also, Sam & Max Season 2! w00t!
Continuing on the subject of gaming and Macs, Oscy and I had the pleasure of attending Urupalooza a couple of weekends ago. We managed to drag R-chan along with us, and she in turn decided to basically kidnap a friend of hers (Scott) from Gas Powered Games, and together we roamed around Seattle on Sunday. Part of our excursions took us to a local mall, because I was rather adamant about taking the opportunity to visit one of Seattle’s three Apple Retail stores, since Spokane has none. By the way, the one in the Alderwood Mall (in Lynwood) is really cramped compared to the one in Kenwood, Ohio. While I was there I managed to dink around with the new aluminum keyboard (I like… sure beats the hell out of the white one I’ve got; the keys are better suited to my style of typing) and mess with an iPhone for the second time in two days (Brian Fioca has one, it is sweet).
Somewhat tangentially, I picked up iLife ‘08 (planning on getting iWork ‘08 soon), and have spent a considerable amount of time re-reorganizing my photo library around the “events paradigm”. This, coupled with the recent acquisition of a full-fledged .Mac account (well, a full-fledged .Mac sub-account, because my brother can’t follow directions on not using the Family Pack activation key himself *grumble*), has resulted in Urupalooza photos being posted online in a shiny .Mac Web Gallery for all to see. So go see :).
Anyway, R-chan – as anyone who was at Mysterium 2006 likely knows – is the proud owner of a light green new-model VW Beetle (with the license plate “MT DEW”, of course). Because the alternative would have involved trying to cram the three of us into the cab of my (very small) S-10 pickup truck, we also hijacked her car for the trip. R-chan’s car is the only Beetle I’ve ever been in, and it’s quite nice. I actually made the off-hand comment on the way to Seattle that the Beetle was probably the closest thing to an Apple-branded car out there. Amusingly enough, on the way back R-chan started playing a CD, and I discovered that her CD player was located in the trunk. This is largely because it’s an after-market add-on developed by VW because the Beetle didn’t originally have a CD player option. Oddly enough, this served to cement my impression that it was basically the Macintosh of cars, because as much as I do like Apple’s products, they tend to have this one weird thing that totally throws you for a loop. Y’know, like the old one-button mice, the non-optical, un-cleanable ball in the Mighty Mouse scroll nipple, the fact that the Dashboard’s implementation doesn’t exactly match the definition of the actual English word, the fact that you can’t sync notes between the iPhone and your computer, or that the USB 2.0 ports on the aluminum keyboard apparently only have enough power to do stuff like charge iPods when attached to an aluminum iMac… these are all “CD player in the trunk” sort of oddities that, while not complete obstructions to usability, do kind of make you wonder what they were thinking.
And now Apple and VW are supposedly making a car together. If the CD player ends up in the trunk, I will laugh myself silly.
Also, Apple is likely going to be announcing new iPods on my birthday. Or at least something Apple-related. Best. Present. Ever. Now I just need money and an easily-accessible Apple Retail store, because I don’t think I’ll be able to wait for shipping if it’s as good as I think it’ll be (and no, Seattle is not “easily accessible” from Spokane). My 1st Gen mini is in desperate need of replacingment. I’m also thinking about seeing if the local authorized reseller has any aluminum keyboards available… if not, I may have to order one. As I mentioned, I really like the feel of the thing, and once I adjusted to the slightly wider-than-normal key spacing, I was typing at my regular speed (as a test, I banged out the intro to Myst in TextEdit… yes, I am a nerd).
On a (nerd-)related note, I correctly identified a font from a sample printout today. Granted it was Courier, which was easy for me to catch because the printout looked identical to a Notepad printout, and Notepad’s default font is Courier, but still… nerd-dom, here I come (or here I am… not sure).
Next week is my birthday, and it’s weird thinking that I’m already going to be 23. What doesn’t help is when people on dA post journals about getting glasses and turning 17 and how they feel really old all of a sudden. I seem to have started shouting “get off my lawn!” a lot at these types, and I can’t help but think that it’s hurting more than helping ;). Next week is also our second wedding anniversary (I can’t figure out a not-stupid-sounding way of making “Oscy and I” possessive), so whee :D. In two weeks we’ll also have been living on our own in Spokane for 9 months, so there’s something of a marginally-impressive milestone.
My braindump seems to be petering out now, so I’ll just go ahead and wrap this up for now, and hopefully be more coherent on a day when I’ve had more sleep and less brain overloading at work.
Physics
Sunday, August 26th, 2007So hey, this is the inaugural post on this game in my blog, w’hoo :).
I spent some time this morning working on adjusting the physics of the game while waiting to video chat with my grandma across the country to wish her a happy birthday. Among the things I wanted to fix were the max tilt of the board (I had set it to 45 degrees as a test yesterday), and the speed and mass of the marble.
The board tilt was easy enough. After working out how to cap the board’s rotation last night, I just set the maximum as a variable instead of a hard-coded value and can now adjust it as a parameter of the board itself. I dropped it from 45 degrees to 15, but I may twiddle with it a bit more later on.
The marble movement was a bit harder to fix. I spent about 40 minutes playing with mass and drag parameters trying to get the thing to accelerate constantly as it rolled across the board, rather than just getting going and then rolling at a fixed rate of speed. I finally came across a parameter in the physics settings entitled “Max Angular Velocity”. This was set to 7; far too low for this application. I upped it to 20 and the marble started behaving more realistically, but it was almost impossible to stop it before it rolled off the edge of the board. So, I dropped the mass from 1 to 0.1 and now the ball moves realistically, and is fairly easy to control. Huzzah!
My next step is to make a basic board in MAX with a few holes in it, a marble to match (settings will need to be migrated over from the current test board setup), and see if I can get the game to behave as expected. I’ll probably get a start on the board mesh during lunch tomorrow (as today was largely spent playing Tomb Raider: Anniversary… time not at all wasted, if you ask me… that game has some serious production value, and being perhaps the only person to get through the ’90s without staring at Lara Croft’s bum, it’s been quite fun to play the game, story, and locations for the first time), and wrap on a test board and marble combination by the end of the day, hopefully with some testing and a new demo to go along with it. I’d also like to try getting some UI elements (like a timer and the point scorer) on their way to implementation as well.
By the end of the week I aim to have the demo board working, have the UI implemented, and hopefully have a jump start on getting the power-ups and game modifiers into development. It’s more a question of how much time I have to put into it than how much Unity will enable me to do… so far development has been pretty quick… three days from concept to working tech demo isn’t bad, I must say.