Tuesday, February 10, 2009

tac: We begin.

I'll start keeping a development journal for my iPhone game project. It could be useful/interesting.

The game is Wizard Tactics - or just 'tac'. The goal is to make an X-Com clone that captures the freedom and depth of the turn-based classic. Other than that, I don't have any concrete design goals in mind (How long should play sessions be? How newb-friendly?). The iPhone is an ideal platform thanks to its multi-touch interface, since X-Com was completely mouse-driven.

Why wizards? I figure this will give us the most design freedom (spells can do whatever we want) and the least art-cost. For attack-animations, we just need the wizard waving a wand, and we could probably use that for every attack or action. Healing, casting a small spell, casting a big spell, whatever - all the same animation.

Currently, I'm trying to implement the basic isometric-tile system X-Com used for its tactical mode. Some good reference shots are here: http://images.google.com/imgres?imgurl=http://www.ibiblio.org/GameBytes/issue19/greviews/ufo3.gif&imgrefurl=http://www.ibiblio.org/GameBytes/issue19/greviews/ufo.html&usg=__DzQ6_yCXGulw6duthxgnelne3Lk=&h=480&w=640&sz=65&hl=en&start=21&sig2=o0BpFsCu3Rr6_A2mJqoh-Q&tbnid=60vLSJnYz_B3KM:&tbnh=103&tbnw=137&ei=hSiSSaGJCNqhtweKhrTJCw&prev=/images%3Fq%3Dx-com%26start%3D18%26gbv%3D2%26ndsp%3D18%26hl%3Den%26sa%3DN
Speed is an issue. Each tile needs to be drawn with its own texture. There are some large pieces of ground here and there, but even then it could be charred by an explosion or something. So we need to quickly draw hundreds (maybe thousands) of quad-tiles while potentially switching texture for each one. The iPhone is fast, but not that fast for a naive implementation. Currently, my 50x50 map draws at 4FPS - unacceptable.

There's a fairly straightforward solution that will probably work: Put all tile geometry (basically, triangle-pairs arranged in an isometric grid) in a huge vertex array, and have an accompanying texcoord array. Each tile will have its own unique texcoords. Then use one giant texture (an 'atlas') to store all tile-textures, so if a tile needs to have a certain texture, just find it in the atlas and move its texcoords over to it. This should be nice and fast. You can also have a color array to modulate for lighting effects.

One issue is maybe a single atlas can't fit all possible tile-textures. The iPhone caps textures at 1024x1024. If you use 128x128 pixels per tile, you can fit 64 tiles per atlas. That's pretty good already, and you can always reduce tile-texture resolution if this isn't enough. I should make a utility, in matlab or something, to put these texture atlases together automatically.

Another concern for drawing is dealing with overlap. Currently, I sort everything from back-to-front (easy for a grid) and just draw them. I can probably use the depth buffer and avoid sorting myself - that can go either way I think. But what if you have varying depth within a tile? For example, if a wizard is on a tile of tall grass, should the blades of grass draw over his feet? The current system wouldn't allow for that. That probably will be something I'll just put up with, since giving each tile a depth-texture seems over kill. I could just go full-3D as well, but that opens up all sorts of performance issues. And plus, 2D art is awesome.

Friday, November 7, 2008

video games: a flood of sw33tness

we often worry about "a flood of crap" when things become too easy to do. the internet suffers from a flood of crap content so severe that we need advanced technologies like the googles and what not just to swim through it all and dig up the good stuff. but right now, with the recent bombardment of video game releases, i'm feeling the opposite extreme: there are too many good games out there.

there are at least 5 games out there that look amazing, and i want to experience them all. not only for entertainment, but also for their innovative designs and cutting-edge craftsmanship. but i probably only have (or should commit) time for one or two. i imagine the average gaming consumer my age with expendable income feels the same way, but is willing to commit even less time.

so, i _want_ to give all these game companies my money, but in order to do so i have to give up $60 a pop and reserve a whole fuckin' weekend to make it worthwhile. no way. not gonna happen. and that's no big deal for me - my life will probably be just fine if i don't play Fallout 3 (but i will be a little sadder). but for Bethesda, that's revenue lost.

how could they get that money? i don't think less games is the answer - no, keep em coming. at a time like this, when the industry is at its most creative, the more the merrier (and i see no reason why publishers would self-regulate like that). but i would like to see the option of shorter experiences. back in the day, a little known publisher named Apogee published little known games like DOOM and Duke Nukem 3D. but $60 for the full game wasn't the only option. you could buy 1/3 or 1/4 of the game - the "shareware version" - for $10-15. so if you didn't want to commit $60 and 20 hours of your life to a game, you could go the shorter route. sure, it's not getting $60. but it's getting $15. and that, last time i checked, is way better than nothing. multiply that by the number of gamers who feel the same way i do and you're looking at...well, i have no clue. but hey, it _could_ be huge!

some would scream, "not every game is a level-based first person shooter that can be split up like that for shareware!" fair enough. but you can sure as hell try. just consider it another design constraint/trade-off. game designers work under all sorts of constraints that result from economic/technical realities (time and money to name a few), so if the constraint of "shareware-ability" can be justified, then you should try adjusting your design accordingly. there is no reason why an RPG like Fallout can't be split into discrete chunks - there are only reasons why it's hard. and if my gut feeling is right, whoever cracks that nut is potentially cracking into a revenue stream that's feeling very over-fucking-whelmed right now.

Monday, January 28, 2008

video games: a prediction

Prediction: Sony's PlayStation 3 will become very successful in the future. it will "beat" the 360 and be right up there with the Wii in terms of hardware and software sales.

Rationale: Sony's investment in creativity and innovation will eventually pay off in a big way. Sony has clearly invested in creativity on the software end by giving publishing deals to indie developers with very creative titles (fl0w, everyday shooter, little big planet, etc) and by incubating a top-notch roster of daring first-party developers (Team ICO, SCEA Santa Monica). when MS, EA, and most other publishers are busy refining their Halos to death, they'll be hit with dramatic diminishing returns. as consumers grow weary of games that only sharpen the saw, they'll turn to Sony (and also to Nintendo, as they already are) to deliver fresh experiences. on the hardware side, Sony's decision to use the CELL processor will also enable different experiences. although initial development costs are high, developers will adapt and learn to utilize the unique hardware in new and interesting ways.

Friday, December 21, 2007

voting for the under dog

often times, people don't vote because they think the person they support doesn't have a realistic chance of winning. but, i think you should vote anyway, because:
  1. even if the candidate doesn't win, if he/she has a strong number of votes, that sends a message to the American people. it shows that many people support the candidate's views, and thus next time, people are more likely to take him/her (or someone similar) more seriously. this is especially important for third-party candidates.

  2. for phone-polls, they only call people who voted last year. so if you don't vote, you're sacrificing your vote in the polls. sure, it doesn't seem that important, but people (unfortunately) pay attention to these polls. a lot of Ron Paul supporters (like myself) don't get called because they didn't vote last year - now, we're facing the consequences of that because RP's popularity is not properly reflected in the polls.

Monday, November 12, 2007

duality

Reggie Fils-Aime, president of Nintendo of America, recently gave a talk here at Cornell. in summary, "nintendo is awesome and the wii prints money" - fair enough. but at the end, he was asked what's the most important thing for achieving success? he said there was no single thing, no silver bullet, no secret to success. but he did offer a piece of advice i found pretty solid...

appreciate the duality of values. that is, be able to hold values that are strictly opposed to each other yet exercise them all when appropriate. for example, passion and dedication are important values. but equally important is to know when to quit and not let your passions blind you - that is, to be pragmatic. teamwork and tolerance are also important values. but equally important is to know when to go against the flow and stand-out against the majority. so as with most things in life, it is important to have the right balance of values.

not quite as simple or catchy as one-liner advice that most ppl give, like "follow your dreams and everything will turn out alright!" or "you can only rely on yourself!" but a lot more realistic, i think.

Tuesday, October 23, 2007

wasted time

pride can waste you a lot of time. as a first year phd, i have a lot to learn, since almost every week i encounter something new thanks to my research project. but, being full of intellectual pride, i rarely ask for help - surely i can figure it out on my own!

i'll spare the details, but i probably just spent a whole week doing insanely pain-in-the-ass calculations. then today, i had my weekly meeting with my prof...he showed me a much better way. turns out, you can do it in like 15 minutes using these things called "computers"...

wasted time = 1 week - 15 minutes. me = pwned (but a little wiser).

Tuesday, October 16, 2007

time management

...i'm pretty bad at it. here are 2 videos that i can relate to, cuz they're both about bad time management:

"Saturday"
"Procrastination"

so, what have we learned? you really need to just do whatever you need to do and stop thinking about it so much. bad news for us thinking folk, eh? stop thinking so much! it's hard, i know. maybe put a cap on how much you think about something before doing it - like 5 minutes.