For a while now, I had this idea in my head of making a small 2D side scroller game that helps people learn programming, and I’m looking for honest opinions and feedback from others. I know that such a game is niche and I wouldn’t expect to earn a lot with it. Spending time on development would only make sense for me, however, if there is at least some interest in playing it. Whether the game will have some success, is not a question that can be answered here, but my hope is, that I’ll be a bit more confident in my decision after hearing more feedback from others.

I have been teaching C/C++ and Python for years now and have developed a small application that gives students, without a specific goal, something to work towards to. It is just a console application that offers various programming tasks to be solved, submitted and compared against previous results. The student just has to run the application, import my interface library and start coding. I usually go over the theory and try to help them while they are figuring it out. Just to give you an example of such a task:

“There is a sequence of N unsorted and unknown numbers. You can compare, whether any number is greater than any other one by specifying their positions in the sequence. You can swap two numbers, save copies of them on a stash, and replace any number in the sequence with stashed ones. Try to sort the sequence of unknown numbers with as little operations as possible.”

The idea of the side scroller would be, to give that application a compelling frontend and to “gamify” these tasks even more. Aside from the usual game mechanics like “find and fetch items”, “talk to this or that person” or “solve simple terrain puzzles”, I want the programming tasks to be the main quest which unlocks new parts of the world and ultimately completes the story line. There will be some kind of quest book that goes into more detail and tries to help the player understand the task and to find solutions. Aside from that, the player is expected to use their own development environment (which can be as simple as: Notepad and GCC/Python Interpreter). The quest book is just meant as a starting point, and players would have to do additional research to learn more about algorithms and how to implement them.

I think, at this point, I have described the rough idea enough, and I apologize for the wall of text so far. For that reason, everything below this is optional TLDR as far as I’m concerned.

The last thing I wanted to mention here is the rough sketch of the lore I had in mind. A medieval world containing steam punk elements that is slowly but surely overtaken by these alien looking artifacts. You, the protagonist, have figured out that some of these artifacts can be controlled by using the language that can be derived from the carvings on them. Around the artifacts, a contamination that destroys everything is slowly spreading. No one has figured out how to stop this, but it becomes clear over the course of the game, that interacting with these artifacts and solving the programming tasks, slowly reverses the spread. The ultimate conclusion is, that an alien species put these artifacts in this world to slowly terraform it. Because they didn’t want to wipe out any intelligent species in the process, they created an off-switch. If a species is intelligent enough to figure out these tasks, the whole terraforming process is terminated.

  • I think the most engaging way you could do this is if you have the player code the game they’re playing. Like the tutorial is the foundational game building part, then once they’re exploring the works they built in the tutorial, they code increasingly difficult tasks to build something in game to complete the task or unlock/create an area

    • Building something in-game and extending the world with coding is an interesting perspective. I haven’t thought about it this way before. Instead, I always thought about solving programming tasks and, therefore, solving some issue in-game. I’d have to think about this more and see if I could incorporate that idea. Thanks for the suggestion!

  • so, my opinion on your game idea is essentially: it sounds like a decent idea. but ideas are only as good as their implementation. so a lot depends on how well you execute it. but the idea itself, sure. it’s fine. the world building twist is neat

    i mostly wanted to let you know that games to learn programming are actually a small market in games. it already exists and people are already making games like that. there’s even games for teaching things like assembly, which is more esoteric than C/C++ (among others, you can check out Human Resource Machine)

    so i think it would do you some good to research what’s out there, see how they do things, see if you find them lacking in some way, etc. then you can bring what you learned back to your game

  • Sounds pretty cool, though as others have mentioned it is pretty niche and I don’t think I’d recommend doing this if your goal is earning money, if you’re doing it out of personal interest as a hobby and because you think it is a fun project, absolutely go for it, no harm done in gaining some experience.

    The idea of the side scroller would be, to give that application a compelling frontend and to “gamify” these tasks even more

    This sounds a bit like hamster simulator, which we used in high school in our “programming” class, the site is in German, but you might the idea. But I can absolutely see how you can make this more compelling.

    • This sounds a bit like hamster simulator, which we used in high school in our “programming” class, the site is in German, but you might the idea. But I can absolutely see how you can make this more compelling.

      Deutsch wäre jetzt kein Problem für mich und ich glaube, ich erinnere mich sogar daran, das auch mal im IT Unterricht gehabt zu haben. Leider war die Lehrerin damals 'ne Katastrophe und ich hab’ das meiste von damals wohl schon ausgeblendet 😅