Thoughts on doing more good

Hi everyone,


I was just wanting to get some people's thoughts on something I've been thinking about. I like coding in C and like the handmade approach,. I've also been making a game in unity with a friend, which has been a great experience and have learnt alot. Even though I'd say I make games, I don't play alot of games these days and spend more time thinking about social issues like climate change, education, farming and things like that (and software). I guess I feel games aren't 'serious' enough when all these other things are happening, and I feel like I could be having a bigger impact. I believe games do have a flow on effect to all these other things, and got into games through Jon's approach to games, but sometimes question am I doing the best thing I could be doing. I know there are good examples of projects on the site like 4coder, odin, remedy deguuger and lots more that show how software can make an impact, and jons compiler project and Jon's games are examples as well. Probably answering my own question here, but what could I do to do 'greater good' through coding and what are other people's thoughts on it.

Edited by Oliver Marsh on
That's understandable. I've had that happen to me many times as well - I would get in a funk about the pointlessness of whatever I'm working on when compared with such large problems I read about on the news. It feels like struggling to make progress, only in the wrong direction.

Perhaps I'll be pointing out something obvious, but you seem to admire these projects, which means you think they have some value. Each of them takes on a problem that's not even very new, but that few people have put enough time into solving very well.
  • Handmade hero is a low level programming education programme. It's the sort of thing I wanted when I studied CS in university, but never got.
  • Jon is trying to create a language that bridges the expressiveness of "high-level" programming with the control of the low-level.
  • Jon's games explore what games can do as a medium. The core gameplay of Braid or The Witness is not something you can even do in other media.
  • 4coder strives to be a programmable editor that gives you the most direct way to program the editor to do what you want it to.


The people behind these projects saw a problem that is worth exploring, and they're dedicating time to work on it. I know this is going to sound cheesy, but pick something you'd really want a better version of and dedicate unreasonable amounts of time to fixing it. I think Casey even mentions this in one of the HMH episodes: The people at RAD weren't the first to work on compression, they're just about the only ones who have decided to dedicate decades to the problem.

Also note that none of the projects you listed are as big as climate change or education, and I don't know to what extent social issues like "climate change, education, farming" can be attacked head-on via software. I'd say, if you're set on tackling problems of that magnitude, read up on what tools/processes are used to solve these problems right now, see where the roadblocks are, and then figure out how to go around them. To pick climate change as an example, here's a list of basic questions I would want answers to before I even begin to consider doing anything about it:
  1. Is measurement a problem?:
    • How do climate scientists collect information about the current state of the climate?
    • How do climate scientists deal with collecting historic information? Is the historical data accurate, is it incomplete, do they have to correct the data in some way?
    • ...
  2. Is interpreting the data a problem?:
    • How is all the collected information used to model the climate and its changes?
    • What's the delta between the model and actual measurements?
    • What tests have been run on which models to make sure they are predicting the correct changes (are we looking at the right data points?)
    • What is the largest contributor to climate change according to the model and why?
    • ...
  3. Is forming an action plan from climate studies a problem?
    • Is the data reviewed by and presented to people who can act on it? Do they understand it? Are they affected by acting on it (Will they lose their jobs/go bankrupt)? What will happen to them if they ignore it?
    • Is there actually any response these people can formulate? (If we know the sun will explode next Wednesdoy, but have no means to stop it, we won't act on the information)
    • If there are ways to address climate change, what are the benefits, neutral side-effects (as far as we know), and costs of each action? Who pays for the implementation? (How do we prioritise actions)
  4. Is implementing a plan the problem?
    • Are there economic factors that don't allow for the implementation of the plan? (Maybe the long term effects of not implementing the plan are severe, but the short term cost of implementing the plan ends up being bad enough that we won't recover to enjoy the long term benefits)
    • Is there a (more or less) central authority that could implement the plan or is responsibility distributed among many parties? If not, what would it take for all parties to work together? Who would have to implement which part of the plan?
    • Are there technical hurdles that need time to be solved? (Suppose we know we need to reduce air travel or make electric planes, but the electric airplane technology is still to be perfected)


Mind you, I don't know the first thing about climate change, so don't take the questions above as an example of an intelligent inquiry into the subject. My point is that when dealing with such large issues (or even "smaller" problems like "How do we make it so programs don't have as many bugs?"), you'd do best to learn about the problem end to end. The more specific information you can glean, the better.

After doing an end to end survey of the problem, you can pick your place to start making a change. Maybe you think the data side needs help, maybe the models aren't as good as we need them to be, or the analysing the consequences of potential plans turns out to be a huge nightmare. Maybe there's some technological breakthrogh that is yet to be invented (or an existing one brought to mass production).

You can do this for any problem, but, obviously, larger problems take more study. Here, I ended up ordering my example questions like this:
  • Do we have correct information?
  • Are we drawing correct conclusions from the information? (Is our mental model correct?)
  • Can we do anything about it?
  • How and what would it take?


Which is too general, but a starting place nevertheless. Once you get some understanding of a problem, you'll usually have much better questions to ask.

tl;dr: Pick a problem you want and _need_ to have solved, study it, then dedicate unreasonable amounts of time to solving it.

Edited by VROOM on
Thanks for your response vroom, there's lots to think about from it. I think you nailed it on the head, having a framework to think about these things will help immensely. The questions you posed will be informing where and what I want to spend my time doing. Thanks for taking the time out to answer it
On the topic of climate change and software, I actually saw a tweet just a few days ago from a climate scientist in which he said that a program that could accurately convert PDFs into CSVs would be an incredibly valuable tool. Apparently there are thousands upon thousands of PDFs with data that would take far too long to manually convert into CSVs (I assume for generating graphs from), so using machine learning to accomplish this would be invaluable.

It piqued my interest because I started working on a PDF reader a little while back as a little side project, and I've also always intended on digging deeper into machine learning.

It's an interesting problem, and one way in which machine learning can be used for good as opposed to, you know.. spying and other forms of collecting data on people for shady ethical purposes.
On climate change specifically, this article by Brett Victor is incredibly helpful for assessing which problems in climate change you think can actually make a difference in.
Interesting to think about how software will help this big issues. Thanks everyone for answering, I've got a better idea on where to focus my efforts in the future, and how I can go about doing more good and feel like I'm doing my best.
On video games, how often do you watch YouTube videos on your favorite series from 20 years ago? My mind uncontrollably goes back to Ocarina of Time (and its sequel) whenever I struggle with responsibility, growth, and maturity. It's not classic literature, but it's a classic something. I often feel emboldened by my childhood experiences with the game.

On software dev in general, I wouldn't underestimate the indirect power of small tools, including the ones being developed here. Aren't they an important pipe of a pipeline that achieves something far greater? I don't know, though, feeling like a wrench forever may or may not be for us.

If you want to be a level above low-level infrastructure, please consider the problem of social networks. Outside of climate change and the automation of repetitive cognitive tasks, I'm certain this decade will be defined by the ramifications of a sudden, unfettered connection of humanity.
That is something that I always fall back on, thinking about how much video games meant to me as a kid (i think most of my childhood was either playing, thinking about or talking to other people about ocarina of time 😜).

Part of my thinking about not taking responsibility etc. is me thinking about what other people think about how I spend my time. The whole 'what society thinks of my role in society', which isn't beneficial for anyone.

And I agree, i believe the biggest evolution is going to be through avenues which allow people to express and show other people who they are. And going deeper on what they're capable of, and overcoming limiting beliefs that we have about ourselves.

I think putting more trust in myself that I know the best thing to do, even if it doesn't line up with other peoples (like parents or 'society') is something im not super good at.
I've had this same feeling as well. You just think to yourself, 'how is this really going to potentially help anyone besides me?'. But I think games have the greatest potential of any art form when it comes to effecting people. It's one of the only entertainment mediums where the audience is in direct control and this can have powerful implications, especially given the power of hardware now a days which is allowing games the push the boundaries further and further, creating completely immersive experiences (not to mention the enormous potential of VR in this respect). If you still feel like your not doing enough then maybe work on your story telling skills to really help your next game grab people emotionally in some way.
Storytelling is a big thing that has come up for me, and getting better at it would be great. As an adult I loved the story\emotion conveyed in the swapper, the witness and Talos principle. If anyone has any resources for story telling in games, I would really love that. I havent really connected to more movie style story games like uncharted series.

I'm pretty good at coming up with gameplay and exploring that gameplay, but then going on to bringing that into a story, and provide the emotion that will drive people to explore your game, I'm not very good at.

Edited by Oliver Marsh on
Ya, I'm no story teller either but it is definitely something I think can make a big impact and I would like to be able to have that ability. I will say it seems, like you mentioned, a lot of games with the biggest production and heaviest emphasis on story don't really land for me, at least not in a really impactful way. I'm not really sure what the secret ingredient is but it is definitely something to research more in the game dev field. Maybe the closer to realism you get with something the more critical the brain becomes of what your watching, detaching you from the emotion. I will say though that god of war did actually grab me with it's father-son dynamic. I know they did the whole 'one-shot' camera thing so maybe that had something to do with making the story seem more personal.
I don't have much to add, but I wanted to thank you Oliver for posting about this sort of murky subject. I'm encouraged to see that you and others are grappling with it as I am. Also, that Brett Victor article is quite a treasure trove.

In particular, I identified with the oscillation you described between feeling like you want to do material good in the world, and falling back on more creative/artistic pursuits inspired by childhood experiences. I feel like good art, including games, can make humanity more intelligent, and able to make better worldly decisions -- and yet, the higher we feel the worldly stakes are, especially with a ticking-clock issue like climate change, the more we feel that there isn't time for artistic pursuits, and we must do something practical, even if that means leaving our inner children in the cold.

I don't know what a good balance looks like, but I'm glad it isn't just me thinking about it!
Well, you can't heap all of humanity's problems on your shoulders. You have your life and your limited time here. You have to find your thing, and you should try to enjoy it.

I get some of this attitude from my spouse, who literally develops targeted therapies that help people fight/manage cancer. He's obviously making a huge positive impact on the world, but even he has days where he'll say things like "yeah, we basically make therapies to help rich people live a few more months. I don't even know if I want some of these people to live longer. Who knows, they might be some radical Trump supporter or something. Over half of Americans don't even know the Sun is a star, and we're keeping them alive."

Sure, maybe we save the planet from climate disaster. But people are people. They'll find ways to complain and fight each other. Give the planet enough time, and the sun will explode, the galaxies will turn cold. It'll all end.

On some level, each of us has to be aware of that fact that everything we make will eventually be completely erased. Whatever impact we had has to vanish. It's the law of entropy.

This isn't a reason not to solve the big problems of the day, or to at least try. Rather, it is a reason to make sure that what you're doing is something you're interested in.

You're the one who has to live your life. You get your time and that's that. Enjoy it. Try to find meaning in what you do, even if it doesn't solve all of the worlds problems. Do what you can to wake up excited and interested in your work. That's about all you could hope for.



I may be a bit younger than you, I'm not sure if that effects how you see your future. But for me I see making my own Video Game as a sort of personal accomplishment that makes me a far better programmer and leader. Games do have an indirect impact sure, but I don't really hope my game is going to make the world a better place. The reason I'm okay with this is because I know I will have other opportunities down the line to choose to make a difference or not, and a lot of the times my ability to participate or really contribute to change in a meaningful way is fueled by my prior experience and expertise. Maybe spending a bunch of time learning OpenGL to make a game seems pointless, but I actually just talked to a guy a couple weeks back that was working on some software to visualize brain MRI scans in a 3D view port rendered in OpenTK (which is basically OpenGL for C#). He was having some problems with sampling colors from the back buffer and I talked to him for a few hours about how graphics cards and the rendering pipelines work and that seemed to help him out a lot. Sure, I didn't really directly contribute to "curing cancer" or anything but the fact that I knew so much about a topic meant that I could be a really important resource to someone in a time of need. That's how I view life I guess. A lot of younger people (around my age really haha) seem to be focused so much on what they see as the global problems that they forget that specializing and honing your skills is required to become an active player in a lot of the hardest to solve problems. I think that I don't really want to dedicate my entire life/career to just making video games. But if I focus on completing this now I will have better opportunities later to help make a difference in another way. For me, I think my true goal in life is to build my own hardware or operating system. The fact that the computer industry right now is so inefficient is a massive contributor to the problems we have in the world. I would love to contribute to solving that problem in some considerable way during my life time. Plus I know I love providing truly good tools for people to accomplish tasks more efficiently. I built Const Port for my job and it has been the back-bone of my ability to create a long range 900 MHz radio. And now I am seeing the fruits of that endeavor through various products and things that are being created using the radio.

Anyways, I guess the way I look at it is you should always be ready to accept any opportunities you see to make a change, but you can't really architect your life as much as you might want to. Things will always go differently than you expect and that's okay. You can plan ahead some and keep your goal in sight but b-lining straight towards your goal isn't always the best option.