Categories
Marketing/Business

Books I Have Read: A Social Strategy

Mikolaj Jan Piskorski’s “A Social Strategy: How We Profit from Social Media” was published in 2014, which is quite a few lifetimes ago in the tech world, but I checked it out anyway.

A Social Strategy

It’s an academic text, looking at the success and failure of different social media platforms and a few companies attempting to take advantage of them through the lens of sociology.

It can get quite wonky at times, but I like wonky.

It also attempts to give advice to anyone looking to establish a new social network or use existing social networks to either save or make money.

In economics, there is a concept called “market failure” in which economic transactions do not happen or happen inefficiently due to some reason or another.

Piskorski notes that there are also categories of “social failure,” social
interactions that people seek and would better their situations if they happened but cannot accomplish in the off-line world. Social failures are about the interactions that do not occur, which is an interesting way to look at things.

For example, single people might find it difficult to meet others, and so dating platforms such as Ok Cupid and eHarmony provide social solutions. He analyzed how each differed in their approaches and how one succeeded due to providing a superior, more effective solution.

Besides “meet” failures, there are also “friend” failures, in which a person might find it difficult to share information or social support in an existing relationship. There’s a chapter in which Zynga is a case study that focuses on this context.

And much like how in economics there can be transaction costs as the underlying reason for a market failure, there are economic and social costs that prevent or inhibit otherwise good social interactions from happening. He categorizes them as breadth, display, search, and communication.

It’s a fascinating analysis, which is especially relevant if you are trying to create a new social app or platform. Piskorski juxtaposed Facebook and the Japanese social media platform mixi, as well as LinkedIn and Friendster, explaining how each tackled their solutions to the above social failures differently and how those different approaches created different results.

He argues that a social solution needs to address both the economic AND the social causes of interaction costs. Otherwise, it will be ineffective. In fact, he argues that social solutions that provide breadth, display, search, and communication functionalities will do better than others that only provide a few.

But, he also says that there are often trade-offs that need to be made. Some solutions increase the costs of certain functionalities. Facebook will never replace LinkedIn because Facebook would need to offer a way for people to meet strangers. In fact, Facebook once did offer a way to search and find strangers, but it had the side-effect that individuals in relationships used this functionality to cheat on their partners, which reduced the effectiveness of the “friend” solution that Facebook is offering. So Facebook removed the functionality, leaving LinkedIn as the dominant platform to meet people on.

Well, what if you aren’t setting up your own social network but want to take advantage of existing networks for your own business?

Piskorski also talks about the concept of the “social strategy.” In general, organizations use either low cost or high willingness-to-pay strategies. If you can lower the former without lowering the latter, or if you can increase the latter without increasing the former, you have a competitive advantage. Piskorski goes one step further to say that a social strategy involves leveraging people willing to take on business tasks for free in order to indirectly lower costs or increase willingness-to-pay.

A social strategy is different from a digital strategy, which is basically taking the familiar activity of broadcasting content at an audience and applying it online. A social strategy involves identifying and implementing a solution that solves unmet economic and social needs. In short, if you can introduce people to each other AND get them to do things for you for free, you are leveraging social media for your organization’s benefit.

The generalized framework used:

1) A viable social strategy seeks to increase a company’s profitability
2) by improving interactions between people
3) if they undertake a set of corporate functions for free

Piskorski discusses ways an organization can develop a strategy that fits the framework, as well as identifying what problems can occur if the strategy does not focus on how the proposed solution can both provide business value and social utility.

I am not sure exactly how different the social networking world looks in 20202 compared to 2014, and I would love to see if Piskorski has a new, updated analysis.

But “A Social Strategy” provided a set of principles and a framework that I think I can use to figure out how to more effectively market my games. Instead of randomly tweeting and posting on Facebook and wondering why I’m not getting the results I want, I can be a bit more analytical and thoughtful. I can be more purposeful and deliberate. And I can recognize when a strategy isn’t working that doesn’t involve merely noticing a lack of sales.

Categories
Marketing/Business Personal Development

My 2019 In-Review and My 2020 Vision

Every year end and start, I spend time reassessing how my life is going. I look at my goals, think about what I envisioned at the beginning of the year and how I would change things with an entire year of experience, and set new goals. It helps me collect a summary of my thoughts and plans, and it makes them public.

I just checked and found that my last published year in review was for 2016. My next post reviewing 2017 was still in a draft state and never published, which is too bad, because 2017 was a year to report on!

A lot happened in the last couple of years to throw me off of my pattern, but let’s do a quick recap of 2017 and 2018, then I’ll focus on 2019.

A QUICK LOOK AT 2017

From my 2016 New Year’s post Looking Back on 2016; Looking Forward to 2017:

2015 was about keeping my goals in front of me and establishing habits.

2016 was about being outcome focused. I logged more game development hours in 2016 than in 2015, but the more important thing was that those hours were aimed at targets.

In 2017, I want to focus on promotion and sales.

I didn’t need an overnight hit to be successful. I needed a foothold.

My goal was to go from $0/month to at least $10/month in sales by December 31st.

I know $10/month doesn’t sound like much, but that was the point. It should be relatively easily achievable, but it still required me to put in the work to setup my business to make sales. The idea was that once I had $10/month in income from sales, I could build on it to $20, then $50, then $100, and so on. I was in it for the long haul, and I was fine with being patient while I learned what I needed to learn and put in the hard work to make it happen.

In 2017, I had my first profitable year in probably forever. Awesome!

But I had $0 in sales. Not so awesome.

My income came from part-time contract work. In 2017 a colleague from a former job introduced me to a family in Chicago who wanted an app created. I explained what I knew about game development and mobile in particular, and then offered my services, being completely upfront about my inexperience with contract work and my day job obligations which would prevent me from working on the contract full-time.

It has taken a long time, much longer than I thought at first, and there have been requirements changes, art direction changes, and porting challenges.

But I remember that first payment coming in and feeling pretty good. Here I was, getting paid to create games. It wasn’t full-time work, but within just a few months, I had earned more in 2017 than I had in 10 years from advertising and game sales combined, which was simultaneously a good and awkward feeling.

On the learning front, I got ambitious.

At the end of 2016, I saw a tweet by IGN’s @_chloi about her plans to read 100 books in 2017.

In the past, I would try to read or listen to one book per week, but I was so enamored with the idea of all of the learning and exposure to new ideas that doubling my efforts would bring. So my 2017 reading goal was to read two books per week.

In 2017, I read:

  • 29 books on success
  • 25 non-fiction books (histories, technologies, true crime stories, biographies)
  • 12 books on game development
  • 7 works of fiction
  • 6 books on software development
  • 5 books on marketing
  • 4 books on business
  • 4 books on leadership
  • 4 books on productivity
  • 1 book on child-rearing
  • 1 book on creativity
  • 1 book on sales
  • 1 book on speaking
  • 1 book on writing

That’s a total of 101 books in a single year, just short of 104 to meet my goal. Even though I failed, it was a year that really expanded my mind. I learned so much about so much, and getting it all in a compressed time period helped it all reinforce each other, especially when it came to the success and game development books.

Also that year I set a goal to attend at least one professional development event a month. According to my records, I attended 8 local IGDA meetings, giving a presentation at one of them. I went to two software development conferences as well.

But in 2017, I also succeeded in stressing myself out. I put too much on my plate. I wanted to do it all: marketing, writing blog posts and newsletters, game development, contract game development, exercising, giving presentations, joining the chorus at my church, and getting more involved in social justice efforts at my church as well. Oh, yeah, and my wife and I were licensed for foster care as well.

2017 was going to be a year of market research, customer development, and sales. It turned out to be full of stress and pain, a lot of it self-inflicted.

I realized at one point that I never gave myself time to just be. If I wasn’t reading, writing, programming, designing, planning, or exercising, I was worried I was squandering my precious resource of time. I had to make every second count, and I didn’t realize that my priorities had gone out of wack, that I was letting down my family for not recognizing that I was taking them for granted.

Once I stopped putting so many expectations on myself and demanding that I put in 29 hour days, my life immediately became less stressful. It only took a few months of talking with a friend for me to be convinced to give myself a break, that I’m only one person and can only do so much.

Thanks, Shane! I miss our regularly scheduled talks.

WHAT I WANTED 2018 TO LOOK LIKE

I wanted to finish the contract, which would free up time to focus on my own business again.

I realized that my blog, while enjoyable to write, attracts other game developers primarily, and other game developers are not the primary audience of my games. I mean, yeah, sure they might buy some of my games, but my target customer is not “indie game developer.”

So I planned to change my blog’s target audience.

I wanted to read more books by women and people of color. I wanted to play more games. I wanted to spend more time enjoying life.

While I enjoyed the experience of trying to finish two books a week in 2017, it didn’t give me a lot of time to reflect on what I had read or heard before I was off on to the next book. So I scaled back to one book per week.

WHAT 2018 ENDED UP LIKE

2018 was a bit of a mixed bag.

I did not finish the contract, which meant I did not spend any time on my own business. My profit was still mainly due to income from the contract.

I did have almost a handful of sales of my game Toytles: Leaf Raking, although I am sure it was all people I knew personally.

I showed off my game at a local art and games expo, so it was great and gratifying to get feedback from strangers.

My writing output dropped significantly. I had a total of four blog posts for the year, and they weren’t exactly focused on building an audience for my games.

I surpassed my reading goal with 56 books for the year although I did not read much in the way of game development books. I cut myself some slack here, though.

And I gave a presentation at dsmAgile, earning myself a nice Amazon gift card for it, which I’ll count as getting paid for presenting for the second time in my life. It helped me buy myself a 4K monitor.

In the spirit of realizing that I can’t do everything all the time, I cut back on extra-curricular activities, such as choir or attending IGDA meetings, especially when I became a parent of two kids.

I was trying to have a day job and be a parent while continuing to work on the contract at the same rate as before. The more I put into it, the sooner I could be done, right?

But it left a lot of the burden on my wife to act as a single-parent, which was not fair to her. So I cut back the hours I let myself work on the contract in order to contribute to the labor of our home. She still does the lion’s share of the work, especially when it comes to scheduling appointments and coordinating with school, but I do dishes and laundry a lot more often. Our home is still stressful (we went from 0 to 7-year-old and 9-year-old within months), but it’s a bit less so.

Becoming a parent was a huge change, and I’m still coming to terms with how much of a challenge it is. I was always told I’d be a great father, and now that I’m here, I feel like I suck at it. To be fair, parenting is a skill that I had no practice with. Still, I used to think I was a disciplined, calm, patient, and easy-going person, but it turns out that I’ve just never been tested before.

FINALLY, LET’S LOOK AT 2019

My two main goals for 2019 were to finish the contract and earn $10/month in sales by December 31st.

I accomplished neither of these goals.

My expectation was that I would focus on finishing the contract, which had been “almost done” for over a year, then port Toytles: Leaf Raking to iOS, then work on a very quick project to get it published before the end of the year.

But my primary focus was the contract, which was in a weird state. I was pretty much finished with my part of it by September. There were no more deliverables for the client to test, and so I was helping the client get the app into the Google Play and Apple App stores. It’s been waiting to be published for months. I would periodically get a request for a small change or a question about the project, but otherwise, the rest of the work of publishing the game is on the client’s plate.

I’m not actively working on it, and since there are no more deliverables I am no longer getting paid, but it feels like sitting in front of the finish line instead of crossing it.

Before the contract and kids, I had regular morning habits and routines related to my business. I needed to relearn or reconstruct them all. Despite having the time, I finished the rest of the year doing very little non-contract game development. I opted instead to focus on resting and being more present for my wife and kids.

I only wrote a total of three blog posts. Heck, I barely wrote in my own personal journal.

I only read 32 books for the year. It sounds like I fell very short of my one book a week goal, and if I compare it to previous years in which I tracked the books I have read, it is the fewest I’ve read since 2013.

However, the 100+ books in a year experience from 2017 drove me to choose relatively shorter books and audiobooks. I would often go to the library and pick a 5-CD books over a 20-CD book, even if the latter was something I found very interesting, mainly so I could get more books finished sooner.

This past year, I decided to consciously pick larger books, which took longer to get through. Also, I decided to stop listening to audiobooks in my car in favor of listening to podcasts for a change. Currently, I am catching up on the strategy game podcast Three Moves Ahead, which led me to research some older yet fascinating games.

So between the longer books and lack of audiobooks I can listen to on my day job commute, my “# of books read” metric was lower, but I’m not sweating it. I’m still learning and exposing myself to new ideas, and with podcasts I’m getting a wider variety of ideas than before.

Last year, I showed off Toytles: Leaf Raking as well as the contract game at the local art and games expo again. I felt a bit more prepared, and I enjoyed the experience of getting feedback as well as connecting with others showing off their games and art. I wish I had a newer game of my own to show off, but there’s always next year.

GOING INTO 2020

I’ve been assessing the last few years and comparing them to what I wanted them to be.

My main efforts and income came from the contract. I just received my final payment for helping to get the game through the app store publishing process. The contract is over after 2 years and 10 months. It is no longer a source of income, but it also means that I can put my focus back on my own business.

And I’m going to pick up where I left off in 2017:

In 2017, I want to focus on promotion and sales.

Ostensibly my goal for the last few years was to get from $0/month to $10/month in sales. Again, the goal was meant to be achievable and to be a stepping stone to increasing sales over time.

But I think what might help is if I gave myself a much more inspiring goal, something that is doable but also would require me to stretch to make it happen.

So my 2020 goal is to get $10,000 in sales by December 31st.

It’s not quit-your-job money, but it’s not so small as to let me think I can procrastinate and make it happen in the last weeks of the year, either. It’s also not about the money, but money is an easy metric to track.

Ok, so that’s a goal. How do I go about accomplishing it?

I’m still working on my plan to do so, but I can already think of a few things that will feature as key to that plan.

I need to start creating again. Between the lack of game releases and blog posts, I feel quite irrelevant in the game industry. It’s been years since my last new game. I haven’t been participating in game jams either.

I need to find my audience. Blogging for the benefit of other game developers is great for building relationships, and I want to continue to do so. But I also need to work on finding and reaching people who are interested in entertainment that encourages curiosity and supports creativity.

2017 is when I challenge myself to be incredibly proactive about putting myself and my work out there.

Uh, ditto for 2020. I will be working on getting back into the swing of things and doing my part to contribute to the indiepocalypse (are we still calling it that?).

It will be challenging, and a big part of that challenge will be in trying to be present for my family. With a day job, wanting to sleep a full night, and spending real quality time with my family, I only have so many hours available to make things happen for my business. Luckily, I can dictate what the pace and cadence for my business will be instead of trying to hold myself to other people’s expectations for how I should run it.

Perhaps it is unrealistic, and something will have to give. A giant chunk of my waking hours are taken up with “Not Game Dev,” with the day job taking up the lion’s share. Maybe I will find I am moving so slowly in my business that I’m actually falling behind, that it takes me months to do what others do in a few days of concentrated effort.

I worry there is a minimum amount of time and effort required that I’m not going to be able to give with my chosen priorities. It would be one thing if I was Sisyphus pushing a boulder up a mountain and having to do it again and again. It’s another if I am barely budging the boulder while it grows moss.

I’m saying no to a lot of things in my life to try to make sure I do have time for the things that are most important to me. I have been greedy in the past and have wanted to do and learn and be everything, but I know now that I have limits.

But in the spirit of my past goals, I’ll make slow and steady progress, and then I’ll build on those successes.

And perhaps those successes will give me the capacity to start saying yes more often.

Let’s start.

Categories
Marketing/Business Personal Development

Slides from My Presentation at #dsmAgile: “You Are Not a Code Monkey So Stop Acting Like One!”

The relationship between organizations and IT can be quite dysfunctional, and unfortunately they grew up together thinking poor results and demoralizing interactions are perfectly normal.

Developers tend to learn they have no control over their situation, which is unfortunate because they have so much more to offer an organization than merely following orders and writing code to a specification. Some internalize their status of “code monkey” and even take pride in it.

Organizations want efficiency, but then behave in ways that discourage developers from helping them actually become more efficient, and developers behave in ways that give organizations no reason to even think to ask developers for their input.

At dsmAgile 2018, my presentation “You Are Not a Code Monkey So Stop Acting Like One!” seemed well-received, and I had a number of people come up to me afterward to ask if I had been in their organization recently.

You can download the slides here:

Based on conversation I had at the conference, I think I should have focused a bit more on hope for the future and less on itemizing the symptoms and illustrating the problem. My goal was to ask developers and organizations to step up and treat each other as partners, and not to provide ammo for a gripe session. Next time…

What are your thoughts? Do you feel your organization treats you as a partner or as a code monkey?

Categories
Marketing/Business Personal Development

Don’t Pigeonhole Me: In Defense of the Jack of All Trades

Back when I was going to school at DePaul University in Chicago, the computer science school was introducing a game development minor. To kick it off, they had a panel involving a few people from local game companies such as Midway and Volition, as well as a few members of the Xbox team from Microsoft.

I remember the vice president from Midway Games answering a question from the students in the audience about how to get into the game industry. He referred to some advice that had shown up somewhere from Midway’s HR that essentially said, “Specialize, don’t generalize.”

I remember not liking that advice then, and I still don’t like it now. It sounded to me like “pigeonhole yourself and don’t you dare try to step outside of your hole”. Telling students who are interested in a future career, “You can improve your skills, but only in this one area of life” sounds overly restrictive and a path to misery. Or at least getting let go when your limited expertise is no longer needed.

Two Pigeons

Now, specializing isn’t necessarily bad advice. It’s just not the only valid option, and yet people like to talk as if it is.

I was catching up on my news feeds and saw that artist David M. Kessler wrote If You’re Talking to Everybody, You’re Talking to Nobody.

Don’t be a jack-of-all-trades. Pick what you like to do best, then get really good at it. Try to be better than anybody else. Let people see that you are an expert at the “thing” you do.

When you get known for that one “thing” you’ll see your art career soar. Now get in that pigeonhole and start working on your “thing.”

He says “Any successful marketer and business owner knows that you have to focus your efforts in order to target your market for sales. If you can’t target a market, you won’t make any sales – that’s business 101.”

He’s not wrong about needing a target market, but I don’t think “targeting your market for sales” is synonymous with pigeon-holing yourself into a single specialty.

He listed a bunch of artists as examples to further his point. The idea being that if you think of someone such as Monet or Jackson Pollock, you will inevitably call to mind some representative work of theirs.

But then, what about an artist such as Leonardo da Vinci? What was his “thing”? What about Leon Battista Alberti? Did he have just one thing?

How about someone more contemporary, such as Viggo Mortensen? I knew he was an actor from his role in Lord of the Rings, but I learned he is also an abstract painter and a poet, among other things.

There’s a lot of advice about specializing, and often it is very good advice, but just as often it is also not really supported by any sort of economic principle. Rather it’s more like “common wisdom” that “everyone” knows.

There’s no actual need to pigeonhole yourself into a specialty. Maybe it’s a tougher route to communicate your “thing”, since someone else can’t easily pigeonhole you as an abstract painter, but no one said it had to be easy.

Maybe rather than thinking about arbitrarily self-imposed limits, the more important thing is finding the thread that ties your story together as Pamela Slim argues in her book Body of Work.

Apple makes a lot of different products. Their thing isn’t merely iPhones or Macs. Their “thing” is elegantly, well-designed computing devices. Their “thing” is bigger than what a single product can encompass.

Telling executives at one of the most financially successful businesses in the world “Stop it. You need to niche down” wouldn’t make sense, would it?

The benefits to a focused approach are more than just increased sales. As you begin to focus your work, you’ll begin to get really good at it – better than you thought possible.

While I can see the logic, I also think that I could see someone get really good at their craft if they are able to work with different approaches, techniques, and mediums.

If all you know is oil painting, maybe you’ll get really good at oil painting. But if you know water color as well?

And if you think, “Huh, I wonder how it would look if part of the painting was oil but part was water color?” Would the result potentially be a more interesting work? Would the skill developed in each medium overlap, complement, or reinforce the other?

I don’t know, but I bet a conversation with someone who focused on creating the best work they could with all of their varied skills would be more fascinating and interesting than someone who is Yet Another Oil Painter.

And if their work is more fascinating and interesting, would commercial success also be possible?

According to Vigo Mortensen’s Wikipedia entry, “Mortensen experiments with his poetry and music by mixing the two art forms.”

Do you think his work in one influences the other and makes him a better artist, or does it reduce him to mediocrity because of a lack of focus? How about his music and his film efforts?

Dismissing the jack-of-all-trades as doomed to financial failure easy, but I see no supporting evidence. In fact, in software development, there’s a premium on so-called “full-stack” developers. Rather than hiring someone who only knows how to work with back-end databases or front-end forms, you get yourself a programmer who can do both as well as everything in between.

No one says, “Oh, sorry. we’re looking for a programmer who only knows one kind of programming language.” That’s like saying, “We want programmers who can’t think beyond one paradigm.”

On the other hand, a jack-of-all-trades without a larger purpose, vision, or mission? THAT I can see as being a problem, financially and otherwise.

Categories
Marketing/Business

Sears Needs a Better Purpose, Vision, and Mission

The day I was giving my presentation on the importance a well-defined, compelling purpose, vision, and mission for indie game developers, I read this timely article about a major company struggling with its identity.

Its Survival In Doubt, Sears Struggles To Transform Once Again from Morning Edition on NPR talked about the struggles of the once-giant Sears, which has been operating at a loss for quite some time, despite mergers and selling off brands.

A quote from a customer really sends home the message about how important it is to have a good purpose:

“It fits no niche. It’s not a discount place. It’s not high end,” Mullen says. “It has no identity anymore. I guess it tried to be everything to everybody and it was very successful at that. But now it’s nothing to nobody, which is sad.”

Is your indie game development business similarly raising question marks above the heads of players? Can people tell at a glance what they can expect your games to be about? Do you give them a compelling reason to care about you, or do you “just make games” like most other forgettable indies?

Categories
Game Development Marketing/Business Personal Development

Get Energized and Stay Motivated with Slides from my April 18th IGDA Des Moines Presentation

Most indies pay little attention to their purpose, mission, and vision, but then again, most indies don’t have sustainable businesses. The vast majority don’t make $500 in a year.

Rolling the dice and hoping for a hit, or at least something that earns enough to fund the development of another game, is not a serious strategy.

And there are a lot of new new indie game developers struggling with motivating themselves to work on their projects for more than a few days at a time before the pain of the creative effort overwhelms any enthusiasm they had to be a game developer. There are always posts online asking for tips of staying motivated.

At the most recent IGDA meeting, I presented an updated version of my 2014 talk Playing the Long Game: The Vital Importance of Purpose, Mission, and Vision to Your Indie Game Development Business.

I’m running my business part-time as I have a day job, but doing a poor job of running GBGames as a full-time independent game developer from 2010 to 2012 taught me some major lessons about running a business. Other indie game developers could benefit from my experience.

While there is no video of the presentation, I uploaded the slides with notes in a few formats:

Knowing who you are and what you stand for will go a long way towards reducing the stress and pain and fear that can otherwise be a regular part of running your own indie game development business.

At the very least, it will give you the energy and motivation to keep working on your projects for the long haul.

Categories
Game Development Marketing/Business Personal Development

Looking Back on 2016; Looking Forward to 2017

Wow, it’s almost February? I’m incredibly overdue for the blog post in which I give a post mortem of the previous year and talk about my plans for the coming year.

Which isn’t to say that I’ve been doing nothing this past month. I just haven’t prioritized telling you about it over actually doing it. B-)

WHAT WENT WELL IN 2016

As I said in 2015, I improved my ability to remember my goals. I no longer did the equivalent of setting New Year’s resolutions that I forgot within weeks. Throughout the year, I knew how well or poorly I was doing according to metrics I tracked.

Unfortunately, it meant that I was very aware of how poorly I was doing most of the time.

Last year I set out to build on my success with remembering goals by focusing on what’s needed to actually accomplish those goals.

One big and important improvement I had was in the area of project planning.

In the past, even if tried to be formal about my project management, my actual planning efforts never amounted to more than creating a list of tasks.

Now, some developers find that they can do just fine with nothing more formal than a TODO list or two, and it worked fine for me if I just wanted to know WHAT to work on and maybe even in what order.

But when you’re a lone wolf indie game developer, you need to wear a lot of hats. I had no problem with donning the Software Developer Hat, but my Producer Hat was neglected and gathering dust.

So I might spend weeks working on a particular feature or task without realizing it because I never stopped to think about how the entire project’s progress was being impacted.

At the beginning of the year, I spent quite a bit of time in project planning mode. I even wrote about how I approached it in How to Create a Game Development Project Plan. Then I dove into executing the plan.

And I was very pleased at how well following the actual plan worked for me. Even when my project started running late and surprises appeared that I hadn’t planned for, having a more active Producer Hat meant that at any given time I was focused on actually shipping my game.

Which leads me to the next thing that went well: I shipped!

I published my business simulation game Toytles: Leaf Raking for Android.

I still need to write the post mortem for it, but it is my first finished commercial project in years. While there are still features and content I wished I could have added, I’m proud of what I put together.

The release of my first commercial game in years also gave me my first sales in years. After earning $0 in 2015, I like this new trend of actually earning money from my business.

Speaking of money, 2016 was also the first time I put together a detailed budget for my business.

I used to track my expenses and income as they happened, and my aim was to ensure I had enough money in my bank accounts to cover everything.

But I got tired of learning that my bank account balance was lower than expected, only to discover that an automatic renewal on domain names or web hosting had occurred. I felt like I should be able to anticipate such regular expenses instead of being surprised by them.

So, I put together a projected budget, which allowed me to see not only how much I anticipated spending in the coming year, but also when my expenses were expected to spike. For example, I knew that my annual web hosting renewal was coming up in August.

And then I tracked my actual expenditures against the budget. It was eye-opening, and not just because I was able to quickly learn that my web host increased its rates without telling me before autorenewing. B-(

As a side effect of being hyper-aware of where my money was coming and going (er, mostly going), I also added to my budget a plan for a monthly investment into my business. I managed to add a significant amount of money into my business bank accounts by the end of the year.

Also, I updated my website, which is something I’ve been meaning to do for quite some time. My blog used to be completely separate from the main site, and now it’s integrated.

WHAT COULD HAVE BEEN BETTER IN 2016

Aside from my newly detailed budget and more robust project plan, I didn’t have plans for much else.

I wish I had spent some significant time on creating a promotion plan for Toytles: Leaf Raking. I had done some keyword research and put together a list of reviewer contacts, but most of my effort was spent on actually finishing the game.

Once it was nearly ready, I struggled to make forward progress on getting it in front of people. I realized quite late that the reason I was struggling was because I had no real plan to make it happen.

I didn’t even blog much about it, so I rarely mentioned it during development. I was a bit too accidentally secretive.

For a long time, I had a TODO item on my list to create a skill development plan for myself. I wanted to direct my learning more rather than pick up things haphazardly, but all of 2016 passed without such a plan in place.

I read 54 books, but only 8 were business related, of which I believe only one was game development related.

My project ran late. I didn’t plan for balancing the design, and so quite a bit of work to make the game feel complete wasn’t in the original plan.

Had I published it in three months, I would have had the rest of the year to figure out how to promote it. I wanted to try earning $1,000 by December 31st, but between the late release and my lack of promotion, I fell way short of that mark.

WHAT I WANT 2017 TO LOOK LIKE

2015 was about keeping my goals in front of me and establishing habits.

2016 was about being outcome focused. I logged more game development hours in 2016 than in 2015, but the more important thing was that those hours were aimed at targets.

In 2017, I want to focus on promotion and sales.

Which means I’ll be putting together concrete, specific, actionable plans instead of hoping and praying, or haphazardly trying to tweet about what I’ve made, which is basically the same thing.

I’ve already started the year with efforts to port Toytles: Leaf Raking to other platforms. More platforms means more opportunities for people to find my game. First up is GNU/Linux, mainly because it is my development platform and is easiest for me.

But what about making other games? Project planning is one thing, but product planning is another thing entirely. I have various ideas for new games, but I don’t want to be random about picking something just because it appeals to me. It will be easier to promote new projects if I do my market research and ensure my projects already appeal to players.

My blog has historically been about running an indie game development business, and so my audience has been other game developers primarily. My customers, however, aren’t going to be other game developers and aren’t necessarily going to care about what happens behind-the-scenes.

The thing is, I like writing what I’ve been writing on my blog and don’t want to stop. Can I address players more directly, or do I need to separate my business from my blog to do so?

I am confident when it comes to creating games, but thinking about selling them is both exciting and terrifying to me, the way new things often are.

2017 is when I challenge myself to be incredibly proactive about putting myself and my work out there.

Let’s start. Oh, and happy new year!

Categories
Game Development Marketing/Business Personal Development

GBGames in 2006 vs 2016

There’s been a meme going around in which indie game developers have posted photos of themselves today juxtaposed with photos of themselves from 10 years ago.

GB in 2006 vs 2016

It took me forever to find a 2006 picture of myself.

Let’s go back in time.

10 years ago, states were passing laws to ban the sale of video games to minors. It was after Bush was elected and everyone was falling all over themselves to prove they had “family values”, so a lot of governors were posing with moms and demonizing the great scourge of video games. In the end, each state had its law struck down as unconstitutional (which is to be expected when you base your law on versions from the other states that had been declared unconstitutional already), and it cost the states a lot of money.

I ended up voting 3rd party that year.

Roger Ebert was claiming that games could never be art. Again. And some high profile people in the game industry were arguing the same. I gave my thoughts back then in What Are Games Good For?.

Games were projected to double in revenue by 2011 driven by online and mobile gaming. Keep in mind that the iPhone wasn’t introduced until the next year, and so everyone was thinking mobile meant Java and Brew or Palm Pilots.

Digital Rights Management was in the news, whether it was about computer hardware, games, or things like the Broadcast Flag. I made my opinion known about how annoyed I was that people were so cavalier about it.

Nintendo’s Wii was released, and there was a day when everyone was talking about how ridiculous the name was. Then almost immediately everyone was used to it. I wouldn’t get one until 2009.

Steve Pavlina’s Dexterity.com shut down that year as he completed his transition from the game industry to the personal development industry. His game developer forums eventually became the IndieGamer forums, and his old game development articles turned up either on his site or elsewhere.

People were already comparing game development and photography. The indiepocalypse was quaint then.

The World Cup was in Europe, and the United States had one of their most epic matches against Italy, with both sides losing players before the final whistle. The US was defeated by Ghana to be eliminated in the group stages. Super disappointing. It took two more tries before they would beat them.

What was I up to?

In 2006, there were a lot of firsts for me. It was the one year anniversary of my blog.

I set New Year’s resolutions, and while I didn’t accomplish all of them, the major one was the formation of GBGames, LLC.

Back then, I was living with a girlfriend in an apartment in Chicago. I was working as a paid intern at the Chicago Mercantile Exchange in the UNIX group, and shortly after I formed my company, I got a software development job at WMS. It was across the street from Midway Games, and I worked on slot machines.

My cats, Diego and Gizmo, entered my life that summer. Before them, I never even had so much as a goldfish as a pet, unless you count the rooster my father brought home one time which I later realized was the dinner my mother prepared the next day.

They do this all the time

During crunch time, I would get home feeling dead, and the next thing I knew I would have both cats curled up on me as I lay on the couch. I hated crunch time, but I loved those moments with my cats.

Nap time

As someone interested in becoming a better indie game developer, I joined the Thousander Club. Back then, everyone was recently introduced to the idea that it takes 10,000 hours of practice to become an expert at something. Seriously, everyone who was blogging was blogging about it. If you work on your craft for a few hours a day, over the course of a year you would do about 1,000 hours, well on your way to becoming an expert in 10 years.

The Thousander Club was a way of tracking my hours and publicly holding myself accountable. Aside from the person who originally started it, I don’t remember too many people joining this club, but I would keep it up for a few years, although I never spent that much time in a given year on it. By the end of 2006, I had only 262.25 hours, only a little more than 25% of the goal.

I was working on a game I codenamed Oracle’s Eye, and I can’t remember what the game was about at this point. I remember a ball that could be bounced around the level by the player.

Oracle's Eye
Oracle's Eye It was a stick figure in 2005. I actually like the look of the tiles. Eventually I created a business man sprite.

Since I was writing the game from scratch using libSDL, I encountered and had to solve issues most kids these days get for free with their Unity3Ds and their GameMakers. I had to solve my own hit detection issues, such as the ball or the player entering and getting stuck in walls. I spent time learning the wrong and better ways to write code to make objects move around. Thanks to those early efforts, today I recognize certain issues before they become issues. That’s experience.

But I was bad at finishing my projects then. I had plans to submit a game to the Independent Games Festival that year, but I eventually started over with Oracle’s Eye Prime, which I also don’t have much of a recollection of. It was one of those “I’ve learned so much! This time I’ll do it better!” kinds of restarts. I never finished it, and I never ended up getting a game submitted to the festival. I was super frustrated with myself about that failure.

I switched to creating a Pong clone (I should write another one just to see how much faster I could do it today), and later a Space Invaders clone.

My Space Invaders clone.
I created this desktop image to inspire me to finish my project.
Note the orange “ship” which was originally blue.

I learned about accommodating color blind players when a tester asked me why my spaceship and background were the same color when they most definitely were not, and it has been something I’ve tried to be aware of ever since. See Game Design for the Color Blind Player and Making Your Game Accessible to People Who Are Color Blind.

I was just starting to learn about Agile software development and wondering how to apply it to my own efforts to make me more effective.

I joined the Association of Software Professionals the year prior and wanted to become more involved so I could get more out of my membership. A lot of indies joined back then, and many of them let their memberships lapse, which was too bad. I attended the Grand Rapids Schmooze and met a bunch of great people I’m still friends with. Eventually I became a board member and then president of the organization, something I didn’t really anticipate back then.

The next year’s resolutions included the goal of selling my first game, but I woefully underestimated how much I still had to learn about making games, let alone selling them.

And today?

Since then, I had saved up a chunk of money, quit my job, moved from Chicago to Des Moines, Iowa, all to go full-time indie and live the dream. I got quite a bit of feedback from people in the industry which I promptly ignored, then ran out of money and got a day job again after about two years. So, GBGames is back to a part-time effort for me.

So four years as an employee at a company making slot machines, two years being a full-time independent game developer, and now another four years as an employee, only now I don’t work on slot machines and the devices are quieter.

I went to GDC in 2011, so I could check that off my list. I met a lot of people I’ve only ever known through the Internet, including a bunch of people from Ludum Dare or the IndieGamer forums.

Ludum Dare meetup

These days when I learn that someone’s kid is really into Minecraft, I find that half the time they get super impressed when I say, “You know, I met Notch once.” The other half of the time they say, “Who?” That meeting, by the way? We talked about our Ludum Dare projects before he had to go handle some email emergency.

Shortly after GDC, I proposed to my girlfriend on the balcony of a castle in Europe. We got married. I still have two cats. I’m a home-owner now.

My four years working on slot machines taught me a lot about working on big projects, but my experience working on Stop That Hero!, writing and designing everything from scratch, turned me into a pretty good software developer. I leverage the knowledge and expertise I gained from game development at my current day job, which pays me well.

Stop That Hero!
I spent way too long working on this project, but I’m still very proud of what I was able to accomplish with it. It’s currently on the backburner indefinitely.

So, in general, I’m doing great. I’m fairly healthy. I’m getting paid very well to apply my skills and training daily. I’m fortunate to be married to a wonderful and incredible woman. I am living in a comfortable and spacious home. And again, I have cats.

And yet…

But my business isn’t doing well at all.

Part-time efforts means that things run slowly. What I thought would take me a matter of weeks ends up taking many months. And being slow in this industry is death when there are dozens of games being released daily. I learned about the importance of speed at GDC in 2011, so I knew this fact even before the market got flooded.

I once went to a talk by an entrepreneur who said working part-time on a business just isn’t sustainable because by the time you put something out there, others with more resources and time on their hands might have gotten there first. He said there’s a reason why many entrepreneurs end up divorced.

Well, that sucks. My priorities put being a good husband above my business, and I know other people make different choices in this regard, but I love my wife and can’t see ever deciding that my Limited Liability Company is more important than our partnership.

When I was single and younger, I could work a full-time job, then work for hours on my game development without too many worries. I was just undisciplined and unfocused then, so I didn’t take advantage of it as much as I should have.

Today, I’m better disciplined and more able to focus, but now my time is split quite a bit. I’ve learned that I can’t work on my business too much before I start getting rubberbanded back towards other responsibilities or my health starts forcing me to pull back.

The year prior to 2006, I assessed my ability to create at a very low value and identified it as my major weakness. It’s why I joined the Thousander Club, and I wish I put more time into it back then.

In 2006, I did 262.25 hours of game development. That’s about 1.4 hours a day, which isn’t much, but it can work. It didn’t really result in much that year, though.

This past year? I only did 259.5 hours of game development so far, although that number doesn’t include the 40+ hours of writing and 40+ hours of business planning and marketing I’ve put in. Yet, I had a plan, and I managed to publish. 10 years on, and I am still taking too long to work on a game, but at least I finish my games now.

Toytles: Leaf Raking
My three month project that took me 10 months to publish. I think it’s a pretty good business strategy game, and I’m REALLY proud of finishing this one.

Yes, it was meant to be finished in three months and took about 10, and even though I spent a lot more time on game design and balance as opposed to infrastructure and technical details, I still felt very frustrated with how slow this project went.

My wife pointed out that had I worked on it full-time, I easily could have done the almost 260 hours within three months.

Fair enough. I felt better. A little. It’s easy to get frustrated when you compare your struggles and efforts with the successes that other people publicize, or with the future possibilities. Saying things like “I’m a failure because I spent a year making a dinky game while this highly polished mobile game is making millions” is a good way to get yourself stressed. I went through that with my previous project.

You need to measure your progress looking back at where you came from. And compared to how I was in 2006, I’m way more capable as a game developer, as a software developer, as a partner in a relationship, as a business owner, and as a leader. I mean, I know terms like “the Dunning-Kruger effect” now.

10 years goes by quickly

But in 10 years, I’ve only published less than a handful of games commercially? Oof. I still haven’t submitted a game to the IGF. It’s not that I haven’t worked on games, but unless I take my Ludum Dare or One Game a Month projects and polish them up for release, they kind of don’t count except as ways I’ve gained experience with making games.

But again, when I think about what I have accomplished since 2006, it adds up to a few commercial attempts and over 20 different published projects that are more or less playable. Each Ludum Dare game jam or experiment adds to my expertise. Each finished project makes the next one that much easier.

So, I’ve grown quite a bit. And I did it my own way. And doing it my own way was part of the appeal of going indie in the first place.

I don’t know too much about what my life will be like in another 10 years. My wife and I will be middle-aged then. My cats are getting old and may not be there with us, which makes me sad when I think about it. I’m getting old, and I worry that I’ll fall behind in terms of my technical expertise with artificial intelligence and automation threatening once-secure jobs. I worry about continuing to miss out on opportunities. I feel out of touch with the game industry as it is. I worry about becoming a sad old man who refuses to acknowledge the futility of what he’s doing.

Frankly, I don’t have an exit plan. I don’t have an idea of a situation or point in time when I say, “Well, that’s it. I’ve hit the limit of what I will accomplish in game development for my lifetime.”

Ever since I went back on “corporate welfare”, I’ve been working slowly and trying to build up my business, with the expectation that it will all come together. I don’t mean getting lucky with a hit game, but that the business will eventually become sustainable as my full-time employment.

I have been aiming to build up streams of income, rather than hope for a big jackpot. But for a few years now I’ve been worried that the premise isn’t workable, that it’s not possible to do what I’m doing and expect great things eventually. I’d hate to think I’m limiting myself to mediocrity.

But I chose my current approach because there are certain things in my life that I value as more important. I’m trying to be the tortoise and shouldn’t get frustrated when the hares around me are sprinting by, often off cliffs.

Many of the game developers and blogs I followed back in 2006 are no longer around. Some retired. Some switched industries. Some gave up.

I’m still here, though.

And I expect to be here for another 10 years. In order to have more to show for it by then, I’m making plans to do more rapid and focused learning and hard work now to get me there. Part of that is rereading some of the advice people gave me in the last 10 years and reconsidering what I’ve ignored or misunderstood then.

Wish me luck!

Categories
Games Marketing/Business

Published on Google Play? Kinda. Not Really.

After over nine months of development, I finally had a game I felt good about brave enough to release to the world.

My major goal was to release the app on the Google Play store first to get a sense of what the process is like and to get direct knowledge about the customers there.

I clicked Publish late in the evening of Saturday, October 22nd. Whew! A big step!

But now I’m in “Pending publication”, and while many unofficial resources mentioned waiting mere minutes to a few hours, I learned that Google changed its policy in 2015 to manually check apps. It still doesn’t take two weeks like it might on Apple’s App store, but it might take a little longer than it used to.

The status switched from “Pending publication” to “Published” the morning of Monday, October 24th. Woo hoo!

Leaf Raking Game - Published Sorta

Er, wait. Sorta.

For an entire day, and even now the next morning, October 25th, I still see “We’re sorry, the requested URL was not found on this server” when I click on the “View in Play store” link.

I keep finding all sorts of unofficial explanations about caching and how long it can be expected to take for listings to propagate through the system, but the only hint that it might take much time at all is in the Developer Console help article “Issues publishing apps” which asks if it “has been over 24 hours since published”, but then goes on to talk about search algorithm changes and reasons why apps might get filtered out on certain devices.

It doesn’t address a published app not actually being available anywhere.

It’s kind of difficult to feel good about finally publishing my project when I can’t point out any evidence to anyone. As a first-time publisher on Google Play, this experience is confusing and leaves a bad taste in my mouth.

According to someone on IRC, they had emailed earlier in the day and learned that there were some technical difficulties on Google’s end:

“Typically apps can take up to 24 hours to appear on the Play Store, however we are currently experiencing longer than usual delays across a large portion of our system. Our technical team is actively working on a solution and hope to have this issue fixed by the end of the day.”

So, we wait.

I find it confusing because when I self-publish on my own site, I don’t consider the game published until someone else can actually see it.

But this experience is teaching me about the process way more than reading about it ever would.

Categories
Game Development Geek / Technical Linux Game Development Marketing/Business

Gearing Up for Release: Platform-specific Issues, Part 2

Last time, I talked about Linux-specific issues to fix before my game’s release.

This time, I’ll address the issues I’m seeing on Android and Windows platforms.

Android: manual code signing

Quite frankly, between running the game on my phone and on my tablet, I haven’t seen any issues since I first tried to get my game built and installed on this platform. The main issue I had was figuring out which directory to save to, and I solved that issue.

Oh, and code signing was another solved issue. I can build and deploy debug builds by turning on developer mode on my devices, but the release build needed to be signed. As I am not using amazing IDEs that have one-touch buttons that do all sorts of fanciness, I had to figure it out myself from the documentation.

Luckily, the Android developer documentation for signing manually was fairly straightforward in this regard. In my CMakeLists.txt, I added a custom target called sign, which requires the location of my keystore and its alias. I created a few environment variables that I pass into my build, and the following is basically what’s needed as per the documentation:

ADD_CUSTOM_TARGET(sign
"echo" "================ SIGNING WITH KEY ================="
COMMAND "jarsigner" "-verbose" "-sigalg" "SHA1withRSA" "-digestalg" "SHA1" "-keystore" "${GB_KEYSTORE}" "bin/${ANDROID_APP_NAME}-release-unsigned.apk" "${GB_KEYSTORE_ALIAS}"
COMMAND "echo" "================ VERIFYING WITH JARSIGNER ================="
COMMAND "jarsigner" "-verify" "-verbose" "-certs" "bin/${ANDROID_APP_NAME}-release-unsigned.apk"
COMMAND "echo" "================ USING ZIPALIGN ================="
COMMAND "zipalign" "-v" "4" "bin/${ANDROID_APP_NAME}-release-unsigned.apk" "${ANDROID_APP_NAME}-release.apk"
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/android-project/")

Otherwise, I found porting to Android be very straightforward thanks to using the NDK and libSDL2-based libraries. If anything, I worry about scaling to different screen resolutions and device-specific compatibility problems due to the lack of devices I have to test on.

I’ve already signed up for the Google Play developer program, so the main piece to worry about is actually submitting my app to their store. How hard could it be?

Windows: persistence and font rendering

While GNU/Linux and Android are more or less the same, Windows is the odd duck.

I can easily cross-compile to create a Win32 build, and with my limited testing I found that the 32-bit version runs smoothly on a 64-bit system, so that’s good.

Since I don’t need to use a lot of memory, there’s no real advantage I can see to building a 64-bit version of my Windows port. The main downside would be an inability to support people on 32-bit systems, requiring that I provide both 32-bit and 64-bit binaries as I might need to do for the Linux-based package.

However, I did have to fix a few issues this past week that I didn’t know were there until someone tested it for me. Thanks, Rick!

I knew of an issue with using MinGW to cross-compile to Windows in which using std::cout would result in a crash. I never looked too hard into it because I only used cout for my own logging in order to find out what is happening, so I just commented them out when I released for Windows, usually for a Ludum Dare game.

Well, it turns out that there was still a crash, and I found that if I commented out the code that saved the current game state to a file, it would run just fine.

Was the known issue applicable to file stream operations, too? Luckily, gdb can be downloaded and run as a standalone applications on Windows, so I ran my game on Windows through gdb and read through the stack trace. It pointed to yaml-cpp.

I use yaml-cpp to save and load my game data, and it works very well. But why does it crash on Windows?

I found this thread on GitHub that mentioned a similar stack trace: Crashy shared object

It was closed without really being addressed, as the original poster gave up after seeing the issue disappear when using a later version of gcc.

Luckily, someone else found a different solution involving a change to a few lines in yaml-cpp’s code, although they said more tests are needed. I tried it, and it seemed to solve the problem for me, although I am a bit wary about not knowing what the change does or how it solves it. B-(

The other issue I found on Windows was that resizing the window results in the text looking completely wrong:

Leaf Raking Game Windows Text Corruption

All the other graphics look fine. Under the hood I am using SDL2_ttf, but using it directly isn’t showing this problem. I am using NFont, which does some caching, and I wonder if it is somehow being corrupted. I need to do some more tests, but this issue does not occur on my Ubuntu system, and Android doesn’t allow you to resize the screen dynamically at runtime, so it’s a Windows-specific issue so far.

I’ll continue looking into it, but updating to the latest version of NFont didn’t help. I tried updating my SDL2-related libaries next since some Windows 10-specific updates were made between the initial Windows runtime binaries and the latest release.

NFont’s creator Jonathan Dearborn has been running test apps I’ve sent him and sending back updates to try, and so far it seems we’re nearing a solution. Thanks for being so responsive, Jonny D!

The main major issue is signing my game’s binary. Windows 10’s SmartScreen puts up a warning about how they have protected your PC because they prevented the app from starting. It shows the binary as coming from Unknown Publisher.

That’s scary. I need to look into how to make it less scary. Does it require buying a code signing certificate, or is it similar to how Android’s code signing works? I don’t know yet, but I’m looking into it.

The other issue with Windows is that saving the game is sloooooow. In my game, I persist changes each time the player makes a major decision. Basically, if you click a button that switches to a different screen or causes something to happen in-game, I save so that if you shut the game down and reload it, it takes you back to where you were.

My Linux-based and Android-based builds are zippy. I can click, click, click, and any changes are instant. As a result, the game has been feeling very responsive despite the lack of a real-time need for it.

My Linux-based system does not have an SSD drive, and my wife’s Surface Pro does, and yet her system takes forever to save a file.

So on Windows, it feels less like click, click, click and more like click, wait, see screen update, then click. Because of the delay, sound effects are playing too early as well. It’s a lesser experience on Windows.

I haven’t ever needed to do multithreaded programming before as a single thread was usually plenty for the work I’ve ever done, but now I am wondering if I should spin of a thread specifically for writing to a file due to this issue that seems to be Windows-specific.

How Much Longer?

Ok, so there’s some technical issues, and some are easily surmountable, and some require some more investigation, and it’s possible there are some I haven’t run into yet.

Since Android seems the simplest to release, perhaps it goes into the Google Play store first, and I worry about the Linux and Windows versions later.

But I do not want this three month project to get to the ninth month before its first release.

The good news is that the next project will have a much clearer release plan, and many of these issues will be already solved. B-)