Hofstadter’s law is a huge underestimation for GDC talk preparation

Hofstadter’s Law: It always takes longer than you expect, even when you take into account Hofstadter’s Law.

I’d prefer if this would scale to WAAAAY longer, but I suppose the vagueness has it’s advantages.

I think after a short panic I am ready for my GDC 2017 talk, Cozmo: Animation Pipeline for a Physical Robot please come check it out if you happen to be at GDC on Friday.

I am now going to sleep now that I’ve hit save for the last time on these slides (hopefully), party/learn at GDC all week, and then sleep more next week.

Long term tips for multiple short game jams for programmers

I see multiple blog posts around the internet for tips on just doing a single weekend game jam, these tend to be pretty obvious like drink water and get sleep. What I don’t see that I think is harder is strategies in getting better after doing several and how to stay motivated to keep doing them as a programmer.

I keep motivated doing gamejams/hackathons because I find it’s the easiest way to follow some great advice in The Pragmatic Programmer. The book suggests learning at least one new programming language or big tool every year and reading one technical book a quarter. Easy to remember and great advice. Even if I’m not doing a deep dive that weekend, I still get a good sense about what makes engines or platforms different and get out of habit. This is different from the common designer motivation of using the tool they’re most comfortable with so they don’t need to spend a lot of time in tutorials and can focus on a mechanic.

I assume that most people’s 1st or 2nd gamejam is consumed just by trying to complete a project so these tips mostly only apply to once I started being able to scope and complete projects.
Strategies I use for making progress on my 3rd+ gamejams and still feel like I’m growing as a programmer while still having a finished concept others can give feedback on:

  • I don’t focus on multiplayer if people need to judge it on the internet. The friction is too high, you can’t keep a populated server and even in the case of local MP most people don’t have friends around.
  • I prefer working with tools that making having an online build easy. When trying to get others to play quick games, low friction is even more important than in a f2p game. This isn’t to say that I don’t play around with native stuff, but it factors in that I won’t get much feedback.
  • I timebox myself when I feel like I’m “going down a rabbit hole” and trying to make a new tool do something it doesn’t want to do. When I feel like I’ve sunk more than a few hours into a feature like getting water working or glow shaders, and it just isn’t happening I try brainstorming a replacement once a set time has past so you don’t waste too much time. If I get it done within that time, great, if not just come up with an alternative
  • If no good ideas come to me for the theme I just start playing with tutorials. Official new tutorials often showcase the strengths of a new tool you might not know, so it gives good direction.
  • I figure out where my resource holes are before starting. This gives me some idea of how much time I’ll end up looking for art or sound, or whether someone else can fill those in.
  • If I have friends that tend to like to have ideas but haven’t made a game before, I try to help them make their own game in twine or something similar before being on a formal team together. It helps when everyone learns scoping skills before working on a bigger team.
  • The biggest motivation is doing things you’re not allowed to do at work.For me that’s my cynical based humor.

This is by no means a complete list I’m sure. These are just the things I’ve found that other people have disagreed with me on but I feel work really well personally.

“How is being a Women in Game Development?” or “What’s it like to exist as you?”

I feel like I relatively frequently get asked by students “What’s it like to exist as you?” or more precisely “How is it being a women in game development/ Girl Gamer/ Female programmer?” So just posting a general answer.

I understand where people are coming from when they ask but it’s such a strange question to expect to be able to extrapolate any information from that can be applied to another’s experience. As a women programmer, I often hesitate to talk about it publicly for fear of my single story being projected onto a whole population as the inquirers sample size is likely small. So this post comes with the disclaiming that this is just my experience, but I have come to realize that visibility matters and that it means I should talk about it more.

I was a tomboy growing up and didn’t have many friends who were girls, but once I got to college and there were only about 10 of us in a CS major of 200 total students, suddenly it felt like being a women was a massive amount to have in common with another human.
When I graduated and got a job, I didn’t have many gender related incidents when dealing with people in real life fortunately, stereotypical examples of microaggressions happened but nothing terrible. Eventually I got used to responding to “she” since who else could your co-workers be talking about, if you’re the only women in the room most of the time.

When I felt I had enough experience and free time I started mentoring and doing what I can to “change the ratio.” A lot of this came from the motivation that I really do think homogenous thought is artificial and makes worse teams. I take the two-fold approach:
1. Volunteering to instruct young girls to be interested in STEM. I highly recommend working with Girls Who Code. I’ve learned a lot working with teens and trying to make them feel a bit more guided through the rough intro process so hopefully they can have a bit of a head start and not feel so overwhelmed when starting college.
2. Trying to get my women co-workers talking more. Something as simple as an e-mail alias really demonstrates how the “right to assemble” helps to get people discuss ideas and help each other with any problems that might be encountered since it might be a shared experience.

Feel free to contact me if you are one of those people that do have more anecdotal questions… just don’t ask me “how to solve sexism” there are plenty of blog posts written by smarter people on steps towards that goal, it’s complicated and will require us all to work together.

The code version of the “How to Draw an Owl” meme

I’ve been reading the Unity manual during my morning commute on BART… because the life of a game developer is non-stop excitement. Today I read something that made me burst out laughing in the middle of a crowded train, a single short bullet pointed list page entitled: Converting a Single Player Game to Multiplayer

If you’ve never made a multiplayer game from a code base someone else has made, attempting to follow these tutorial instructions is the programmer equivalent of the old art meme:

At first I thought it was extremely funny that all you’d need to do to convert a single player designed game to multiplayer is “Make important member variables into SyncVars” and “Create Lobby Scene” but as I thought about it more I began to be worried that seeing something like this might make a student think it was an easy process that they can do “later.” Trying to oversimplify networking by talking about it being a matter of syntax instead of needing to understand concepts like everything needing to be asynchronous is making the process more mysterious, not less. I understand the one to one correlations between the class names could be useful, but I think manuals should take more care when they switch from showing best practices to showing “worst practices” as trying to shoehorn in networking clearly is.

For the most part if a student programmer does find themselves in the position of needing to put multiplayer into a fundamental single player game I look forward to hearing all the rants about rewrites due to discovering something else that is fundamentally unsyncable due to the way it was written and assumptions made.

Good luck with “Converting a Single Player Game to Multiplayer”

Molly’s GaymerX3 talks

This year for GaymerX I did two different talks “Not just a Queer in Gaming” and “Localizing Games for a Worldwide Audience” (slides) (videos) As I gain experience I’m trying to do less panels that just focus on my own existence as a gay/women game programmer and more things on specific topics, so this con was a good step towards that goal. I think the existence panels are good for total new people. However, there are enough of a backlog where there is nothing new to say that a new person couldn’t easily find online and they don’t cause me to think and grow when writing them.

Not Just a Queer in Gaming I was invited on last minute with the famous David Gaider of BioWare fame, Wes Schneider of Pathfinder and Gordon Bellamy moderated. It was a casually moderated panel on motivations, career paths, and minimum bars for portfolios. Since GaymerX is an older crowd than something like PAX ( 18+ required ) it can focus less on school requirements. The main takeaway I had from this panel is the fairly obvious, being on a panel with famous names who have accomplished awesome stuff gets audiences to show up and is super cool.

The second panel being “Localizing Games for a Worldwide Audience” with Gordon Brown with Carbine Games, was one I had been thinking about for awhile. The idea was to get people from the typical “how to make your first game” talk to showing best practice steps for an area of game development not shown much to ship a real product. It had a secondary goal of exploring “English speaking” as an under examined privilege and bias I believe people should be more aware of. One immediate problem with this panel was scheduled for the early first slot 10AM on a Sunday at the same time as a Dragon Age panel, I’m not sure how to ensure better timeslots I believe this had but a strong negative impact on attendance. In addition, localization is inherently a niche topic, one that is so hidden people aren’t aware that they don’t know they don’t know. GaymerX is a very unique venue in that there are both a significant amount of gamer fans and developers of all levels so you can appeal to both. I was hoping this would pique the average gamers curiosity by talking about both why games from Japan were hard to bring over and teach something about how much work games were, but it didn’t quite work out that way. The good thing is that localizers themselves are very supportive of each other and we ended up having an interesting conversation with others working in various aspects of localization.

I started attempting to overcome my stage fright about 2.5 years ago and after about 6 small talks or so I no longer suffer from nervous fear of public speaking about a subject I know. Your mileage will vary but I found numbers comforting when I was first starting out on what seemed like an impossible goal of overcoming nerves. I’ll be moving onto bigger conferences next.