the importance of understanding theory?
Any of you feel that way, or do you feel that its pointless to research theory so long as you manage to accomplish your goal?
I love studying theory. Though, I'm interested in writing rather than programming, so I'm mostly interested in theories of how fiction operates in the human mind and in culture, and the evolutionary psychology and biology behind the development of novels, movies, and games from prehistoric myths and folktales. I'm also interested in art theory, since I dabble at making art. But for fiction and art its more of a fuzzy, relative question whether any piece "works".
I want to help design a "sandpark" MMO. Optional interactive story with quests and deeply characterized NPCs, plus sandbox elements like player-craftable housing and lots of other crafting. If you are starting a design of this type, please PM me. I also love pet-breeding games.
I personally have never seen anything I learned in theory, that applied to the real world application.
Real life example:
In theory I had to learn expansion rates of different metals under different temperatures, and using that info calculate their voltage output to determine if a thermistor was operating in range.
In real life I stick the thermistor into an oven, and than plug it into a meter that tells me if it's working properly.
I cannot remember the books I've read any more than the meals I have eaten; even so, they have made me.
~ Ralph Waldo Emerson
The problem is that in theory, theory and practice are the same. In practice, they're different.
Seriously, knowing and understanding the theory behind something will let you do more, do better. It's the difference between a 'C' student and an 'A' student (are letter grades a valid cultural referent any more?). You can get by without knowing the theory. You can excel if you know the theory. It's up to you.
Stephen M. Webb
Professional Free Software Developer
I also feel very uncomfortable using something I dont understand, even if I manage to make it work correctly.
If its a personal project, I dig on the subject till I get whats going on, if is work I only dig enough to make it work well.
Thats the main motive of why Im so less productive with my personal projects, the second being procrastination.
example: I tried physics engines like ode and physx, I was so damn curious about the kind of monstrosity needed to make all that stuff work, that I started making my own physics engine. My intention was never have a working one to use in my projects, I knew I was too noob for that, I just wanted to know. So I learnt all the stuff about rigid bodies, inertia tensors, mass-spring engines, the problem with euler and its alternatives (rk4/verlet), broad phase collision detection, etc, etc.. Than I went back to physx, and its wonderful, cause even if you dont know how exactly theyr doing something, you know what theyr doing, and why..You dont go like "whats there to use so I can do this", you go like "wheres the stuff that do that". Really enlightening, you know what to look for, and you dont get lost.
Knowing whats going on makes everything easier and more efficient.
example: I tried physics engines like ode and physx, I was so damn curious about the kind of monstrosity needed to make all that stuff work, that I started making my own physics engine. My intention was never have a working one to use in my projects, I knew I was too noob for that, I just wanted to know. So I learnt all the stuff about rigid bodies, inertia tensors, mass-spring engines, the problem with euler and its alternatives (rk4/verlet), broad phase collision detection, etc, etc.. Than I went back to physx, and its wonderful, cause even if you dont know how exactly theyr doing something, you know what theyr doing, and why..You dont go like "whats there to use so I can do this", you go like "wheres the stuff that do that". Really enlightening, you know what to look for, and you dont get lost.
Knowing whats going on makes everything easier and more efficient.
pretty much this.
yes going down that rabbit hole generally means you well come out the other side with little to show, the tools people have made, are dedicated for the task they are designed to do, and it's unlikely you are going to be able to develop an competitive alternative anytime soon when you go on that journey. But what you do gain can be quite immense in understanding how to use the existing tools to their fullest. I think this type of attitude is very prominent in system/game engine engineers, which want to know ever little facets, and try to work as close to the ground as possible(i.e not simply using frameworks like SDL/SFML, or pre-built engines like Unity, panda3D, or Ogre3d). This isn't to say that those who don't look deeply into how something works can't produce amazing results, or don't have that similar level curiosity, but it's to say it's pretty easy to get lost in making a game, only to end up working on say an IK controller for game animations weeks later.
For example, i was fed up with using libpng to do a simple load of a png file, so i set off to write my own png loader, weeks of studying the specs, and figuring out how things work, in the end i was mostly successful(some png images i never got to load, but many did). however, this gave me the insight as to many of the reasons for the complexity of what libpng is doing, and gave me a much richer understanding of compression, and image data layout's.
But this type of questioning is defiantly the longer path to your goal, you might be able to reach the destination via a shorter route, but you might not have the knowledge you would have gained going down pointless paths, that don't really lead anywhere.
It depends. Ideally, you would know the theory behind everything. In practice, you have limits on your time.
You should definitely know the theory in your particular field of expertise. If you are a game designer, you should absolutely understand game design theory inside and out, but you don't need to be a 3d math genius to use your teams engine.
You can go your entire life without having to learn much theory and function perfectly well. However, you may have trouble explaining your work to anyone else, since theory also provides common terminology.
I worked on an RPG where the designer had added a puzzle that involved breeding various creatures. No matter how much the designer tried they just couldn't get it to work or be fun. Somebody bought the designer a book on genetics and after a couple of days of learning the theory behind progressive and reggresive genes we had a fun mini game. Just saying "if you mix this red sheep and this blue sheep you get a purple sheep" just wasn't fun. When a proper genetic simulation was added it became a lot more sticky.
Without the theory it sucked with the theory it didn't.
I tend to let most of the theory in the blackbox. The reason for this is that, as soon as I believe I understand something, I need to refactor/optimize it. This would lead to me developing an engine instead of a game, and this would be counter-productive for what I'm trying to achieve.
My mind does wonder though...