Monday, January 09, 2017

On Pruning Your Passions

We live in a hobby-rich world. There is no shortage of pastimes to grow a passion for. There is a shortage of one thing: time to indulge those passions. If you're someone who pours your heart into that one thing that makes your life worthwhile, that's a great deal. But, what if you've got no shortage of interests that draw your attention and you realize you will never have the time for all of them?

If I look at all the things I'd love to do with my life as a rose bush I'm tending, I realize that careful pruning is essential for the best outcome. This is a hard lesson to learn, because it can mean cutting beautiful flowers and watching the petals fall to the ground to wither. It has to be done.

I have a full time job that takes a lot of my mental energy. I have a wife and a son and family time is very important in my house. I try to read more, and I want to keep up with new developments in my career, and I'm trying to make time for simple, intentional relaxing to lower my anxiety and stress. That doesn't leave a lot of room to pursue any of these hobbies.

I used to play the guitar, if only a bit.

I've always had my eye on becoming a writer.

Software development began as a passion hobby, and now that it is a carrier I still feel that draw to it outside of work.

A lot of my life was spent under the assumption that I would end up in some career as an artist, and I was even on a trajectory towards art school in my teens.

But there aren't enough days in the year, or hours in any of those days, to scratch 100% of those itches.

So, I'm committing to saying "No" to myself more often. When I'm looking for a small app or tool and can't find just the right thing, I'm going to say "No" to building my own, instead of making the best option work. When NaNoWriMo rolls around next year, I'm not going to cause myself anxiety over the "Will I? Won't I?" leading up, and I'm going to admit that it just doesn't work for me. When I end my work day, I'm going to leave the web development at work.

I will be saying "No" to myself on all these interests so I can direct my "Yes" whole heartedly to one: my blossoming foray into game development. And this is a really deliberate choice! Game development is what got me into computers and into programming. But, its also something multi-faceted in a way that few other pursuits are. By throwing myself fully into my game projects, I'll be able to spend time created art, to code outside of work and learn new techniques and paradigms, and to tell stories.

I'm putting down a lot of interests, and shelving a lot of personal projects. I have dozens of bits of code that'll only collect dust from now on, even though I think of them often and constantly feel the pull to hack on them in the evening or weekends. But, I have convinced myself this is for the best. I'm working on making 2017 a big year for me, and I can't do that when I'm pulled in a thousand directions.

Learning to give up just may be the ticket to finally succeeded.

Tuesday, January 03, 2017

The Insidiousness of The Slow Solution


In software development, slow solutions can be worse than no progress at all. I'll even say its usually worse and if you find yourself making slow progress on a problem, consider stopping while you're a head.

Its easy to see why fast progress is better: either you solve the problem or you prove a proposed solution wrong and find a better one. Even a total standstill in pushing forward on a task or a bug or a request can force you to seek out new information or a second opinion.

Slow solutions, on the other hand, is kind of sneaky. Its insidious. Slow solution is related the Sunk Cost Fallacy, but maybe worse. Slow solutions have you constantly dripping more of your time, energy, and hope into a path that's still unproven, constantly digging a hole. Slow solutions are deceptive, because they still do offer real progress. It is hard to justify abandoning it or trying another route, because it is "working", technically.

We tend to romanticize the late night hacking on a hard problem. We hold in esteem the feeling of banging out heads for hours before gold. We have to be on the look out for the solutions that leech our time and our energy and our souls. Even the solutions that actually work! Maybe you've got a path that will lead to the solution, but if it takes you forever and sucks out your soul: find something else.

If a path is an objectively better one maybe even compromise on the destination. Hawaii and Virginia both have beaches and you need a break.

Thursday, December 29, 2016

One Game A Month: Off And On Again

Off And On Again is a series of light puzzles. You must turn all the lights on, but you must do so by flipping them in patterns. If you turn one light on or off, you'll be flipping lights around it, too. If you can find the right combination, you'll brighten up the board and move on to the next challenge.

This was more than just a game. This was a public project in putting light on the hobbyist game development experience. Created over 25 hours, every single minute of the development of Off And On Again is available as part of a YouTube series Let's Make A Game. If you're interested in learning from this process and seeing what came out of it, you can watch the entire creation of Off And On Again and then play the game for yourself.



Tuesday, December 27, 2016

Why Am I YouTubing An Entire Game Development Project?

For a few weeks now I've been posting new episodes of a YouTube series I've been doing this month called Let's Make A Game. Now that I'm most of the way through the project, I wanted to think a bit about why I'm doing this, what I think people might get out of the videos, and what I hope to get out of it for myself. The best way I know to do that reflection is to write about it, and to share those thoughts.

So, Why am I YouTubing an entire game development project? Why would I put myself out there so publicly for anyone and everyone to look over my shoulder for twenty-five straight hours as I stumble, typo, and mistake my way through a skill I'm still learning and still very green on? And, why exactly would I think anyone cares enough to watch me code, mostly in silence, for twenty-five hours?

Why would anyone care to watch?

The truth is, I don't really expect anyone to. And that's okay. Part of this project required that I be okay with my own definition of success. So far, I have gotten some people watching the videos. I don't know if anyone will continue to watch more of them, and I'm positive that no one will watch all 25 episodes. But that's okay.

Maybe some people are just curious. Or, maybe someone will just be energized by the idea of someone doing this, even if they don't care to site through the whole thing. I'm sure everyone has better things to do with their time than watch me code for over a full day.

But, watching me code isn't actually the point.

Why do this when I'm not very good at it yet?

Because I'm trying to better. Of course, that's a very shortened answer. I hope that the process makes me better about scheduling. I want to practice this sort of video creation, because maybe I'll do more of it when I'm better at this in the future, and I want to know what I'm doing so I can produce semi-decent videos when they actually have good content.

Why do this in the first place?


The genesis of the project wasn't actually a desire to share any part of the process at all, though I consider that a fun plus. Instead, it was entirely for myself. I've been doing this One Game A Month thing for a few months now, the goal being to release one game a month of any quality or scope, and its gone well. But, I realized, I don't really know what's going into these projects. Sure I released one a month for about three months, but I don't know how much time I was actually working on each of them.

The episodic nature of the video series was a good opportunity to do one of these projects in a rigid time-box that I could track, document, and scope within to both practice and observe how I'm able to estimate what I can complete and what I can accomplish in a specific number of hours.

Hopefully this will feed back into my ability to plan these projects, and larger ones.

What's next? Will I do more?

I'm sure I'll do more video content about game development, but I'm just as sure that it won't be in this format. It has been very demanding, to be honest. Later, I might look at a series of Unity tip videos, for example. And in 2017 I hope to work on larger projects, putting a lot more time into them. But this video project has been a big time sink. I spend a lot more than an hour making each one-hour episode!

It has definitely been worth it, but I'm looking forward to wrapping it up.

If you found this post interesting, you can find all the episodes at my Let's Make A Game playlist.

Let's Make A Game Passes the Half-way Mark with Episodes 12 and 13

Interested in my process for making a monthly game? I've got two new episodes up of my series Let's Make A Game! for a total of eight episodes to enjoy, so far. The project should include a total of 25 episodes by the end of the month.
If you want to start from the beginning, you can find a playlist of all the current episodes with all the future episodes added when they're available. Of course, you could also subscribe to my Stonebird Games YouTube channel.
I write here about programming, how to program better, things I think are neat and are related to programming. I might write other things at my personal website.

I am happily employed by the excellent Caktus Group, located in beautiful and friendly Carrboro, NC, where I work with Python, Django, and Javascript.

Blog Archive