for instance
i love it when people get on the XNA forums and ask, “how do i make a game?” that is one of the rare occassions where the bastardly answer, “if you don’t know, i can’t tell you” might actually be appropriate. games are designed to be fun to play, and it’s easy to look at a beautiful let-down like far cry 2 and think you coud do better. but my god, video games are not trivial things to make. it’s not like golf…pretty simple to create a game like golf, but as they say, it takes a lifetime to master playing. i would say video games are quite the opposite.
so what brought this mini-rant on? i spent my weekend optimizing. i try to follow the rule of optimization, “don’t do it”, but when you’re running at 20 fps, you don’t have much choice. my newest xbox-crippling feature was about 1200 trees. they’re all the same, so hardware instancing was the obvious solution. now, i could have cut+pasted the xna instancing sample, but where’s the fun in that? actually, getting quick results can be extremely fun, but i’m doing this project partly to learn something so i dissected every LOC in the sample and recreated the whole damn thing. i can’t say it was the funnest thing i’ve done, but the technology is cool, i learned a lot, and it works (what more can a programmer ask for?)!
results? could be better, but on the xbox i’m bottoming out at 45 fps. still needs work (better culling), but if you think about it, if every tree is 100 polys…
100polys * 1200 trees = 120,000
120,000 * 2 (reflection in water) =240,000 polys
plus the terrain…not too shabby.
and what was the point of this post? i’m not sure myself. for one, the game now has trees! second, for those who want to know how to make games, multiply this kinda stuff by…oh i don’t know…the xbox’s fillrate or some other really big number.
May 12th, 2009 at 11:47 pm
This has been on my mind a lot lately. It’s painful sometimes to see the new users posting highly basic questions that you know you can’t possibly help them understand. Fortunately they are easy to spot from the mispellings and I think the best response is to point out the getting started samples and picking up a c# for beginners book. To a young user I think a short and succinet response will be just as devastating to their fragile minds as your bastardly answer, but at least they’ll get some useful information in the exchange.
The important thing is we don’t encourage the younglings by giving them code they won’t know hwo to use. Also, especially important is that we don’t spam their topics with replies. The faster their topics are knocked off the board the better for other members.
May 13th, 2009 at 8:16 am
Yeah, I’ve just been reading up on optimization myself…the worst part is, it’s difficult to do when your code is already completed. This must be why game designers keep remaking their game engines…(and keep reusing half the code from existing engines anyway)
May 24th, 2009 at 1:01 pm
@derek:
i agree, we definitely should not just scoff at newcomers and give them no help at all. while it’s annoying, i don’t like being mad at someone just for not knowing something. however, if they’re just lazy and want to be spoon-fed the next crytek engine, i may have trouble restraining myself.
kudos to the kid who asks, then goes out and buys a book on 3d programming and makes an fps that his friends play for fun. we’ll all be working for him someday.
June 12th, 2009 at 5:51 pm
“how is game formed? how is game formed? how do game get published?”
June 12th, 2009 at 11:05 pm
you’re an idiot.