1,458 reputation
510
bio website scivium.com
location Oceanside, CA
age 42
visits member for 4 years, 4 months
seen Jun 23 at 17:25
Game developer since 1996. Many shipped games. Some did very well, some did not-so-well. Strong opinions about the Right Way. -tom!

Aug
22
awarded  Teacher
Aug
22
comment What happened to COLLADA?
If you write an exporter and then later can't figure out how to export some new piece of data that you need, then you shouldn't be writing tools. Just sayin'.
Aug
22
comment What happened to COLLADA?
...and as a format to share data between tools, it's a terrible idea except for the most trivial of datasets. Unless all of the 3D packages are going to render every COLLADA file the same, you don't get the cross-package benefits that were touted.
Aug
21
answered What's the most efficient way to find the intersection point of a missile and a bitmap terrain?
Aug
21
comment Should the content pipeline tools be embedded in the engine?
I would add that keeping the complexity outside of the engine doesn't necessarily mean that functionality isn't available to the engine. Keeping it separate though so it's easily divorced from the engine is key. I can't stress enough how useful it is to support hot loading of assets, i.e. reloading things on the fly. This too can bring a lot of complexity into your system though so you'll want to make sure it's built in such a way that the game doesn't need to care about where the assets are coming from.
Aug
21
comment Target Tracking: When to accelerate and decelerate a rotating turret?
As with the other comments, this will work for a stationary target but will likely be unacceptable for any moving targets. The C0 and C1 terms are traditional damped spring stuff, where C0 represents the spring's strength (usually called k) and C1 is the damping factor (usually called 'B' or 'c'). So yes, you can minimize oscillation by cranking up the damping but the problem is that this does not try to anticipate where the target will be, so is doomed to lag the desired goal.
Aug
20
answered Do “Results-Oriented Work Environments” work?
Aug
20
awarded  Commentator
Aug
20
comment Are there cases where globals/singletons are useful in game development?
My question would be then, why use singletons at all? I see that people like to wrap APIs with singletons or classes that consist only of static functions, but why bother with the class at all? It seems even easier to me to just have the function calls (wrapped as you wish), but then internal to them access the "global" state. E.g. Log::GetInstance()->LogError(...) could just as well be LogError(...) which internally accesses any global state without requiring the client code to know about it.
Aug
20
comment Are there cases where globals/singletons are useful in game development?
@Joe the key word is "dependencies." A function that accesses globals (or singletons or any other shared state) has implicit dependencies on all of those things. It is much easier to reason about a bit of code if all of its dependencies are explicit which is what you get when the complete list of dependencies are documented in the argument list.
Aug
20
comment Are there cases where globals/singletons are useful in game development?
Great list. Personally I find only negative value in singletons and globals because of the problems that come from shared (likely mutable) state. I do not find the "codegen" problem to be an issue though; you either need to pass the pointers through registers or you need to do some sequence of operations to get it, I think it changes the code vs. data size sightly, but the sum will be about the same.
Aug
19
comment Getting It Done vs Solid Software Design?
@Joe I think many "heavyweight" methodologies tend to prefer CYA over solid software. Indeed, much of my non-agile experience tends to be "it doesn't need to be right, it needs to be right now," whereas "agile" aims to say "it needs to be right now, but do everything that you can to make stuff right as you go along."
Aug
19
answered How to do an infinite torus topology battlefield for over-the-shoulder perspective
Aug
19
comment What are some techniques used for mouse tracking, with a bit of “emulated lag”?
'Interpolation' just means "computing intermediate values." So you store points at some interval, and when you want to compute a new location you find the point "sooner" than your current point and the point "later", and do a weighted blend between the two points' positions based on the time differential.
Aug
19
comment Which unit test framework for c++ based games?
UnitTest++ is the only testing framework that you should need, especially given that it's easy to modify and extend. If you find yourself doing any Java programming later, JUnit will strike you over and over in the face with a hammer with the utter inelegance that it displays.
Aug
19
comment How to design a game's software such that it is easy to unit test?
The first paragraph is key. The fact is that TDD requires you to design your code better than you would have without it, simply to allow the testing. Of course many think that they are experts at design, but of course those most impressed with their own skills are usually the ones with the most to learn...
Aug
18
comment Why do we use scripts in development?
BTW- I believe that the power in scripting languages, be it Lua or Python or whatever, is that the programmers can use it and be many times more productive, simply due to getting out of the change, compile, execute loop. ...although I guess depending on your implementation you may require that for scripts too, which then makes them less valuable. :) However- having a "scripting" console in-game is an amazing tool.
Aug
18
comment Why do we use scripts in development?
At my place of employ, the designers' "scripting" sandbox is visual. Essentially they're hooking black boxes together with triggers and timers. The UI isn't great, and the designers sometimes wish they could just type it all out, but doing it visually allows the tools to tightly constrain what they can do and to make it "impossible" to make mistakes.
Aug
18
comment Experiences of test-driven devleopment in large projects
@coderanger's first comment starts out spot-on. You can only write tests for code that you intend to understand. If you have no intention of understanding how your code works, there is no need for tests. You can't test for how you want other people to use the code (e.g. an isFun test), but you can test that the code that you wrote works as you expect it should. Btw, you can test far more than people typically think is possible, but it does require extensions to the typical xUnit-style frameworks. Plus, functional tests (i.e. higher level tests) can fit that bill partly as well.
Aug
18
awarded  Supporter