I've been doing a lot of GUI/tool programming for the last two months (mainly building a level/character/campaing editor).
And I have noticed a huge difference in my mental state while programming GUI/tools sutff.
As in, when I'm programming games, I'm constantly on my toes: "Is this efficient? Am I making a copy of this? What O(n) is this? How can I avoid this loop?" etc etc... basically I didn't realize until now that every time I'm game programming I'm like this:
Pictured: 10.000 actions in 16 ms.
Now, don't think I'm a optimization maniac. In fact, after seeing this talk on gpp2015... apparently I'm not even doing enough.
I try to live by the rule number 1 of optimization: "Don't do it"; but I do tend to have a sense of awareness that if I can effortlesly redesign my algorithm to make it faster, I do, as long as it doesn't take me 2x+ the time to code it.
But... my eyes openend when I programmed my tools and my GUI. It felt like this:
Pictured: 1 action in 100 ms.
My mind was like: "Iterate through all 20 items? Lol, sure... Open 15 files to build this menu? Be my guest!"
Like, the reaction time was huge (user dependant), the number of items being handling was ridiculous low, 20... 30 options. It felt like a vacation.
So, my question to you... Is this a normal feeling?
If it's not: am I doing something wrong? Game programming should not be more stressful than "regular" programming. Any advice?
If it IS: If this is a common feeling, I am seriusly considering not coming back to the game industry once the indie-dream is over. I mean, if I can feel this relaxed on my work environment (and the higher salary is nice too), then maybe my doubts about what industry should I go back to is easier to answer.
Any thoughts?
You should feel like that for game programming as well, at least for stuff that isn't being done on a per-frame basis. Big O notation is interesting, but I think people get really caught up in it. When N is small, and only being done on startup or once or whatever, then yeah, don't bother optimizing it. You can find out of it's a problem later once your startup time becomes an issue.