Let's make a collection of productivity enhancement hints.
1. close IRC
Block twitter, Facebook, reddit and other social media.
sleep, exercise, caffeine
Stop reading a.cc threads during class...
sleep
^ this, oh so much of this.
Oh, also forgot youtube and twitch.
Mmmmh... sleep.
Do a.cc and other forums count as social media?
Got another one: settle for "good enough" now and then instead of always aiming for perfection.
Back away from the metal and use tools that make your life easy until it has to be hard (i.e., don't use C or C++ unless you really need to). And do yourself a favor and learn some dynamic languages (e.g., JavaScript, Perl, Common Lisp, ... Ruby, Python [1]). They are so much nicer to code in. The possibilities are just so much more elegant. These do tend to be slower than native code, but computers are very fast today and most of the time you don't actually need every clock cycle. Your time is usually more valuable than the CPU's. And dynamic languages are every bit as "real" as static languages.
If you do need to use C or C++, try to reuse existing code rather than rolling your own. You don't have time to do better than somebody else has, and you'll waste a lot of time trying. For example, Bstrlib.
Real programmers have better things to do with their lives than reinvent the square memory management. I believe it's very useful for you to learn how to manage memory, what it means, and why its necessary, but once you understand how to do it you should understand why you don't want to do it unless you really have to.
Delete all the games...
One thing that isn't just removing things... Is just do something you actually like to do.
Choose your tools carefully and wisely.
Since I switched from a game library to a game engine I have increased my productivity enormously.
It depends on how you measure "productivity", If your goal is to actually write the low level bits, then using a prebuilt engine is actually bad
But if your goal is to just whip out a game as fast as possible, yeah, grab unity or something.
I'm actually using GL and Allegro directly for my current game related projects because I want to learn GL and some of the concepts behind what engines do. So yeah.
Notes + Trello + timer/exercise.
I often bog myself down with thinking about too many things. I get new ideas (that immediately appear better) and drift into day dreams naturally.
What I started to do, since side project work for me is extremely limited (sometimes, only a single hour), I take a few minutes to brain dump every one-word thing I can think of that sums up what I'm working on. This is mindless and easy. Afterwards, I review the words and expand upon them to something actionable, which creates tasks. I then put those tasks into a trello board and get working. It's motivating to see the cards move across the flow and trello is good for minimal effort to move them along. This also gives me a place to pickup from if I need to stop for a while.
If I hit a wall or get curious about whether or not I'm doing something right/wrong, it immediately goes into a backlog on the notes and will be considered for the next round, not the current round.
Lastly, I turn on some music, either hard rock or cinematic type music and start a timer for 1 hour. Once the timer goes off, I get up and do a quick 10 push ups, reminding myself that time is passing and I too need to be moving along effectively.
It's all about understanding what it is that you're trying to do and picking the shortest paths to it. If you're trying to learn GL programming or engine design then that's what you should be doing. Of course, if this is the case then you should get the same satisfaction from meager displays of GL manipulation or engine machinery that somebody actually trying to make a game would get from testing a new part of their game. If you're learning GL and engine mechanics, but ultimately want to be playing your game, then your productivity will be very poor and your motivation will not last. Along with choosing appropriate tools is defining realistic goals. You may be setting off on an ambitious project, but to have any chance at all you need to break it up into smaller, attainable goals that will keep you motivated and move you towards achieving the over all goal.
Open a thread on a.cc about religion or... rats, I suck at this.
Just read this --- perhaps the solution is not to increase your productivity, but to decrease it?
Oh, and yes, sleep FTW.
Just read this --- perhaps the solution is not to increase your productivity, but to decrease it?
Michael wins the thread! Thanks for sharing!
Remove people whose inactions (incompetence?) hinder your progress. <rant> I share workspace with another group on a different schedule. I came in tonight and one of our monitors was missing. We have a cabinet with spare equipment including monitors. The procedure for broken equipment is to replace the equipment and call tech support to restock. The cabinet has two monitors, both broken. The only other time I replaced a monitor, I had to call tech support because we had no working spares.</rant> Also rid your computer of Internet Explorer. Congrats Michael.
Just read this --- perhaps the solution is not to increase your productivity, but to decrease it?
I very much agree with that article.
Not trying to go into a "work-yourself-to-death" mode here and certainly not expecting anyone else to do that. Just collecting obvious and not-so-obvious hints for the times when you'd like to get this or that done.
Getting things done beyond the bare necessities is entirely optional and should not be something to obsess about but being idle all the time can get boring too.
So on a wide angle view... it is all about finding balance again. Society has lost balance a long time ago (or maybe never was balanced to begin with) but for some reason is not making an effort to find it again.
Get stoned.
I do not know what I may appear to the world, but to myself I seem to have been only like a boy playing on the seashore, and diverting myself in now and then finding a smoother pebble or a prettier shell than ordinary, whilst the great ocean of truth lay all undiscovered before me. -- Isaac Newton
I kind of feel the same way about programming, we've only scratched the surface. You don't have to be a genius, because there are so many things possible that haven't been touched yet. Think about that awhile.
You don't have to be a genius, because there are so many things possible that haven't been touched yet.
And there are so many interesting topics to explore, it's depressing one is not granted an eternity of time to dabble in all of them.
If one had the eternity of time, one would do things later.
A hundred years is a mere blink in a life of an Elf. I'm patient. I can wait.
Unlike elves, we mortal men cannot wait for our time in this world is finite.
Too much Tolkien again, sorry
Tolkien was a wise man.
Alright, cookie time.
If one had the eternity of time, one would do things later.
Sig meat! but...is this yours johan? I'd like to credit correctly
Just focus on your task. What else ?
Get yourself a boss and I guarantee your productivity will start to increase.
pkrcel, yes, that's what I came up with after reading Dennis' post. But google for it. I'm pretty good at re-inventing the wheel. Unintentionally.
My idle time spent on /r/cringe is somehow unfulfilling. My idle time spent on allegro.cc tends to bring me things like that article of Michael's. On this basis, I recommend keeping allegro.cc open
By the way, occasionally I manage to spend a Saturday, Sunday or both working on a game at home, and when I do, I often find that being on IRC gives me the feeling that there are other people out there, and that makes it worth doing things. So closing IRC is not necessarily good advice in all situations.
pkrcel, yes, that's what I came up with after reading Dennis' post. But google for it. I'm pretty good at re-inventing the wheel. Unintentionally.
No need to, it'a hell of a reinvention.
If I'm working on web apps, I put my web browser on a second monitor, using full screen mode. Don't get distracted by notifications from email, chat, etc.
(For Firefox, the Autohide Toolbar extension helps since the default animation that happens when you temporarily unhide the toolbar by moving the mouse to top is horrible.)
IRC
Ughh... when I was working on a tessellation shader for the Dolphin project, IRC was the only way to reach the developers. Try meeting up with random dudes from Germany working on a project in their space time. Talk about frustrating! Half the time the only replies I got were, "Oh... I don't know anything about the shaders. You need X, who is never online."
IRC is an excellent way to communicate, but most hackers are happy to communicate via mail and groups/projects generally have a mailing list.. IRC is the preferred way to communicate in real-time. Mailing lists are the preferred way to communicate in virtual time. Or Web forums for Windows-oriented developers.
I did rather well with KDE4's Activities. They are like virtual desktops, except a higher level, since they even include virtual desktop state. I had one for "personal" and "work". when switched into work, my personal browsing, and projects, and (eventually) mail/chat stuff would be hidden, and work stuff shown. It's even possible to "suspend" an activity, so kde will stop/start processes in an activity on demand if needed.
It's pretty neat, but its taken a long time to be completely implemented (assuming it has been, I haven't seen the necessary features in kmail to hide specific folders or email accounts yet, but I haven't looked yet).
Due to recent thoughts I might add that "productivity enhancement" is equal parts of doing what you want to do (e.g. making games because you enjoy it rather than because you think you'll get rich), and "grokking in the fullness of time" (having patience to understand bone deep).
For instance, last night I tried getting into shaders, and stumbled over deprecated functions such as ftransform(). It took me awhile to get past the habit of thinking of GL_MODELVIEW matrices and friends to understanding that you have to construct your own matrices. I thought "geez that's a lot of work and googling" until it bubbled up from my subconcious that I had a wealth of code to transform quaternions directly to OGL matrices and the transform was simply sticking the X, Y, Z translation into indexes 12, 13 and 14. Once I got past that, I remembered my old software rendering stuff from 10 years ago (which I did because I enjoy such a thing) and presto! I simply had to substitute the mulmat4 stuff for the GLSL equivalents (although I could ignore the Sutherland-Hodgman clipping).
Disclaimer: I'm drunk again.
When I hang out in IRC there is either silence (which is depressing) or talk (which is distracting).
here's another one: don't hang out on deviantArt all day, replying to each and every fav and comment you may receive on your stuff as that quickly turns into a full time job (also, it blows up ego, easily gets to your head and pressures you into thinking you need to quickly make even more and even better stuff to meet any expectations and then you just really quickly burn out under the (imagined) pressure when you realize that a day only has that many hours)
Disclaimer: I'm drunk again.
Is that why you passed the parameters to 'substitute' the wrong way round?
Is that why you passed the parameters to 'substitute' the wrong way round?
I didn't even notice that. I'm just now getting past the "wander around the house while my head asplode" part. Just a few minutes ago I realized I can get rid of all the matrix pushing and popping while switching to/from perspective matrices to orthogonal for 3d with al_draw_text().