A downloadable game for Windows, macOS, and Linux


* IMPORTANT: Please read through the Download & Install Instructions below, located right above the Download section *

Learn to Code RPG is a visual novel game developed by freeCodeCamp.org. In this game, you will teach yourself to code, make friends in the tech industry, and pursue your dream of becoming a developer 🎯

This game features:

  • Hours of gameplay 🎮
  • Original art & music 🎨
  • 600+ Computer Science quiz questions 📚
  • 50+ Easter Eggs you can tweet about 🐦
  • 6 different endings  👀
  • Friendly characters and an adorable cat 🐱
  • Minigames! 👾

This open source game is a work in progress and ever evolving. We will publish major expansions to this game in the coming months, including new music and characters.

This game was made possible by all the kind people who donate to support freeCodeCamp.org. You can help support our nonprofit's mission here.

This game is open source and is currently in beta. If you notice any bugs or have suggestions about accessibility, the interface, the story, or anything at all, please report them by opening GitHub issues.

If you are enjoying this game, please rate the game and leave a comment below.

If you are interested in how we made this game, check out this article (a Let's Play video included).


Creative Lead Lynn Zheng
Coding & Writing & Misc. Art Lynn Zheng
Music Quincy Larson
Character Art Layerto (Noa Trinh)
Quiz Questions & Proofreading Abbey Rennemeyer
Oliver Eyton-Williams
Estefania Cassingena Navone
Jessica Wilkins
Dionysia Lemonaki
Playtesting Ilenia Magoni
Estefania Cassingena Navone
Naomi Carrigan
Yoko Matsuda
Daniel Rosa
Beau Carnes

Install instructions

Windows: LearnToCodeRPG-1.0-pc.zip

  1. Unzip the file (refer to this Microsoft support article if you have questions)
  2. Open the folder that appears after unzipping
  3. Double click on the application LearnToCodeRPG.exe

Mac: LearnToCodeRPG-1.0-mac.zip

  1. Unzip the file by double-clicking
  2. Double click on the application that appears after unzipping. If you run into an error about "an unidentified developer", refer to this Apple support article.

Linux: LearnToCodeRPG-1.0-linux.tar.bz2

  1. Unzip the file
  2. Open the folder that appears after unzipping
  3. Run LearnToCodeRPG.sh, you may have to change execution access


LearnToCodeRPG-1.0-linux.tar.bz2 199 MB
LearnToCodeRPG-1.0-mac.zip 196 MB
LearnToCodeRPG-1.0-pc.zip 231 MB

Development log


Log in with itch.io to leave a comment.

Can you put the game's APK on itch i downloaded it from google play and it gets stuck downloading the assets

“LearnToCodeRPG” cannot be opened because the developer cannot be verified. 

Tried to play it on a MacBook Pro....

I don't remember exactly what the button said, maybe "more"? It's beside the cancel/close button. I pressed that, then when it gave me more information it asked me whether or not I wanted to open the file anyway. That's how you open the game. I'm using windows not a mac but I believe it's the same 

APle moment

Gatekeeper doing its job. You can unlock that in the system preferences under Security. There's a radio button that needs to be checked in order to successfully install third party software that doesn't have. I forget which one off the top of my head but it's under the FileVault tab I think?

Sorry I haven't worked support in a long time and it's escaping me now but I know there's an article about it on the Apple Support website.

Hi, there! :D
I have a little issue with the game. 

The graphics look blury (characters and backgrounds)

Don't know if it's a game's bug or my laptop is the trouble maker here. bug or my laptop is the trouble maker here. 

What could it be?
P.D. Nice game, btw. Pretty much enjoying it :D

Game crashing when i go to hackathon with Annika



Vendor: 'Intel'

Renderer: 'Intel(R) Q45/Q43 Express Chipset'

Version: '2.1.0 - Build'

When the "Sounds good!" text apears game crashing, but thank you for the game! Its amazing!


Great game! Take a breathe, take a day for yourself, you'll be alright. 

How do I change execution access? I managed to unzip the file but I can't run LearnToCodeRPG.sh. Am I supposed to type something into the terminal or is there something in settings


If you mean you don't know how to run from the commandline, then type:


If you mean it won't execute, even after you type that, then try:

chmod +x LearnToCodeRPG.sh

If it still won't run, then I'm sorry, but I don't know how else to help.

That worked, thank you 


There's something embarrassing here! emails come saying there are new updates on the game while here the version is always 1.0 as if there was no change!


Hi kmbenjel, thanks for the note! The emails you get are about small bug fixes. We will keep the version number as 1.0 until we have major content updates, at which point we will bump the version to 2.0 and so on.




I just unlocked the completed CS curriculum and applied for cupcake company. After that as I was answering the quiz the game crashed. Here the exact error message:

I'm sorry, but an uncaught exception occurred.

While running game code:
  File "game/script.rpy", line 1282, in script call
    call study_session from _call_study_session_3
  File "game/scripts/labels/quiz_session.rpy", line 41, in script
    $ renpy.say(None, quiz_question.question, interact=False)
  File "game/scripts/labels/quiz_session.rpy", line 41, in <module>
    $ renpy.say(None, quiz_question.question, interact=False)
TypeError: %o format: a number is required, not TagQuotingDict

-- Full Traceback ------------------------------------------------------------

Full traceback:
  File "game/script.rpy", line 1282, in script call
    call study_session from _call_study_session_3
  File "game/scripts/labels/quiz_session.rpy", line 41, in script
    $ renpy.say(None, quiz_question.question, interact=False)
  File "renpy/ast.py", line 923, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "renpy/python.py", line 2235, in py_exec_bytecode
    exec(bytecode, globals, locals)
  File "game/scripts/labels/quiz_session.rpy", line 41, in <module>
    $ renpy.say(None, quiz_question.question, interact=False)
  File "renpy/exports.py", line 1406, in say
    what = what % tag_quoting_dict
TypeError: %o format: a number is required, not TagQuotingDict

Learn to Code RPG 1.0
Mon Jan 17 14:23:18 2022

You know what I loved most about this game? The constant reminders that you have to take breaks and live a life away from the computer, so as not to burn out and/or go insane.

As someone who tends to push himself to burnout, and who is currently taking the self-study path to becoming a developer, I really needed to hear this. (Even if,  as a game mechanic, it 's sometimes frustrating that you can only do a tiny bit of actual "studying" before your sanity drops dangerously low . . .)

Anyway. I've only played once through so far, but I appreciate what you've done here. Thanks!

im unable to open the .exe

Im on windows 11 on a PC and have tried everything I see in the comments. I click on the game and my cursor gets the spinning wheel and then nothing.  

Any suggestions? 

Hi there,

I love the look of this game and can't wait to play it further, but I've encountered a problem.

I'm running Windows 10 Home 10.0.19043 and whether I play the game from the .exe file in the .zip, or download the code from Github and run it through RenPy, the stats aren't working for me. I get this:


I have two drives and have tried running the game from both, with no luck.  I've also cleared my saves from AppData and started again - still nothing.

(I also got a crash the first time I tried a minigame, but stupidly didn't save the error logs...)

Any ideas?

Hi TeaandOwls,

Thanks for the bug report. Both have been fixed on GitHub and new builds have been uploaded here :)

Shhh now some spoilers about what caused this error: we are working on translations into different world languages so we’ve started extracting strings and interpolating variables.

Best, Lynn


Wonderful - it works perfectly now. Thank you, and good luck with those translations! :)


I liked this game. I read the story of the programmer behind it in the  freecodecamp blog. I joined tech industry for some time now but I am not a software developer (I am a Network Engineer). With regards to coding & software engineering, although I start with some coding tutorials from time to time and I can do some Python/Git/Linux, there is something that always makes me stop and I don't feel I am leveling up the way I want. This game is a good project that has succeeedd with its purpose, it has motivated me to seriously upgrade my coding skills this 2022. Thanks!

hey in windows the game is not working 

Saying "Game is a virus"

tell me what can i do


click more details, then click run anywa

but if these is a virus , why it is showing 


That message is shown up with every ".exe" file whether the file has virus or not. So you don't need to worry about it so much :)

It shows up because freecodecamp is not a varified developer with Windows. They are legit, just havent gone through the hoops registering yet

You did the right thing by being concerned. It's always good to make sure that what you run is legit and not a virus. If you got the game directly from here, then it should be fine. Always make sure to get software directly from the source, since if you get it from somewhere else, sometimes bad hackers could put malware into the files. The other people here should have told you that, rather than "just click through it" or "no worries." That's not a good habit to have, unless you're 100% sure the executable is legit. This one is, though, so you can click through it.


I've been played this game, and I have to tell this game is a great resources for learning how to make an interview and get a dev job, this is great, but maybe you have to change some dialogues in the game, some of those dialogues repeat so many times, for example: in the kitchen with the mom and in her room, with the cat or when she's taking a rest day in her home and she has to decide what she wants to do in her rest day, maybe add more task for this situation, also add more features or other things. 



Just started playing the game and I'm not sure if this falls under accessibility or not but the mom and dad part could be a potential trauma trigger for people who weren't able to trust their parents, or suffered abuse/neglect at their hands. I realize that would require re-writing the whole intro to make those NPCs colleagues or friends or something other than parents. Of course the same could probably be said for colleagues/friends


se puede pasar a español o traducir los  subtitulos


The game is  really good,  i like how you learn the concepts and also the different endings, :D


I'm unable to open this game on my Macbook Pro 2012. I have done everything specified in the installation instruction.

The app quits abruptly and displays the following error: https://gist.github.com/godswillumukoro/e0d1576c120e67a54b059804f1e794f6


eh , in the linux quizz you ask the same question 2 times???

"which linux command is used to create multiple nested folders?"
which is the 2nd and 3rd question.


SMTP,POP (emails are files).
PTP can be used to transfer files.
FTP (this is likely what you mean but the others are not incapable of the same thing)


same kind of issue for the question on which port is used for http...
technically all ports can be used for it.

However, one specific well-known port is most commonly used, so that's the one to always answer.

i dont think the game can teach you how to make RPG, you dont need to learn how to send files to another computer or client and in the screenshot it is suggesting using database (AKA server) to do unnecessary stuff.

a database and a server are not the same at all.
a database stores information where as a server serves files to clients and other servers.

and i have no idea what you mean by this
"i dont think the game can teach you how to make RPG"
i did not once mention anything about making an RPG.

Large databases are often located on their own specific servers, so he's not quite wrong.



I have a feeling i wont gain anything from this knowledge wise as i have raise too high to reach but im still very interested to see how the story of the game plays out :)


(some answers i guess)

"so java and javascript are different languages?"
> yes.

"wait, which one is for web dev again?"
> technically both can be used for web dev but javascript is the most common of the 2.

"someone may just decide that python 3 is too old-fashioned before i even get a chance to learn it."
> based on my knowledge of the topic, this is unlikely since they are not planning a new version of python but regardless of that XD eh kid i use C++ and assembly and those 2 languages are freaking dinosaurs so it's not the age of the programming languages that matters.

"are they like cousins or something?"
>in a round about way yes, they all stem from 1 languages. the all mighty and powerful C :) just careful if you do dip your toes in C cause that how your hair turns all grey and you get a beard the length of a football field.

I've started playing like 30 mins ago but this is amazing, makes me actually want to give coding another try like mc


thats crazy, but, did i NOT ask?

(1 edit) (+1)

This was very intriguing to play. I applaud you guys for trying something like this. Usually when I think of coding, I automatically think of boring courses I took in college, but this actually peaked my interest. I'm not sure if coding is for me, but I showed this game to one of my relatives and they loved it. 

Anyway, here's my attempt to Learn to Code:

Hi Random Robo,

Thanks for making this video and we are glad you enjoyed the game!


This game is actually a really neat developer/ programmer simulator and actually teaches about the different programming languages through the quizzes. I only just started learning c# in the last quarter of 2021 and this game actually gives me insight on the different languages more. The story is engaging and it was quite educational for me. Thank you for making this game!


Hi Allekid,

Thanks for making this video and we are glad you enjoyed the game!

Hello I'm playing the game and I like it so far! It's really helping me with some basic coding concepts. 

I found a typo in one of the questions.

The question is: "The set of instructions that specifies a computation (in) known as.."

in should changed to "is"

Thank you for creating this game for us coding newbies!

Good catch, thanks!

(1 edit)

Hello, I really love this game and i have a lot of fun playing it. I'm playing it with that build in text to speech feature cus i'm blind, and i've found a problem. When scrolling through the story when there are longer sentences tts just reads the beginning and then cuts it out and reads everything again. It's quite annoying but doesn't discourage me from playing cus i've never played anything cool like that before. I'm happy to test the accessibility of this game and give suggestions, but i have problem figuring github out, that's why i'm writing it here with hope someone from the development team will see this. Thank you for making that game, and good luck!

Hi VIPPotato,

Lynn here - thanks for the comment!

We are working on improving the accessibility features and have created a GitHub issue dedicated to those.

We will keep you posted about updates to the TTS feature :)

when i the game was completing dwnlding from the web it suddenly stopped claiming that it doesnt have permisiion how do i fix this....help me please

(1 edit)

Hi mike.sylevester,

Lynn here - May I ask what’s your computer’s OS? Please follow the instructions below. Let me know if it works and I’d be happy to assist more.

Windows: LearnToCodeRPG-1.0-pc.zip

1. Unzip the file
2. Open the folder that appears after unzipping
3. Double click on the application LearnToCodeRPG.exe

Mac: LearnToCodeRPG-1.0-mac.zip

1. Unzip the file by double-clicking
2. Double click on the application that appears after unzipping. If you run into an error about "an unidentified developer", refer to [this Apple support article](https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unidentified-developer-mh40616/mac).

Linux: LearnToCodeRPG-1.0-linux.tar.bz2

1. Unzip the file
2. Open the folder that appears after unzipping
3. Run LearnToCodeRPG.sh, you may have to change execution access

my OS is windows10*64-bit

Wow! Amazing game! I will spend a bit of time each day to play this through.

I love the art and UI/UX a lot!

Glad you enjoyed it :D

(3 edits)

Hi, I have installed the app and gave permission to the unidentified developer issue but I have never been able to start the app. It crashes the moment I click to open. I see a screen coming up and it fades out.

On the terminal, the error I get is as follows:


Last login: Mon Dec 20 18:09:36 on ttys001

/Applications/LearnToCodeRPG.app/Contents/MacOS/LearnToCodeRPG ; exit;

(base) ahmet@Ahmets-MacBook-Air ~ % /Applications/LearnToCodeRPG.app/Contents/MacOS/LearnToCodeRPG ; exit;

zsh: abort      /Applications/LearnToCodeRPG.app/Contents/MacOS/LearnToCodeRPG

Saving session...

...copying shared history...

...saving history...truncating history files...


Deleting expired sessions...none found.

[Proces voltooid]


I hope I can play this game and learn soon on my Mac. Thanks a lot for all of your efforts.

Hi ahimek,

Lynn here - thanks for the detailed report.

May I ask about your Mac’s hardware version and OS version? We’ve tested M1 Mac on Catalina as well as older Macs on older OS and they seem to work. 😅

I’ve searched around and this Reddit post mentioned something about the AMD card causing issue. Here is their solution using an Nvidia card.

RenPy needs access to performance counters and is being denied by the default setting. Mine was an NVidia card but there should be a similar setting for you AMD folks.

Open Nvidia Control Panel (Not Experience)

Click on Manage GPU Performance Counters (If the Developer section isn't there, click on Desktop at the top -> Enable Developer Settings)

Click on Allow access to the GPU performance counters to all users


If this doesn’t work, it’s still possible to play the game by downloading the source code from GitHub and the Ren’Py Launcher app and directly launching the code from Ren’Py. (And if Ren’Py launcher crashes, that’s definitely a hardware or OS problem 😅)

I’ll keep following up on this. Hope you get to play the game soon :D


Thanks for the answer and other option.

I do not any graphic cards on this Mac because it is a MacBook Air. If that is a requirement, I will try the other option you mentioned. Other info about my Mac:

  Model-ID:    MacBookAir5,2 ( of Mid 2012)

  Processor name:    Dual-Core Intel Core i5 ( Not Apple M1).

I have a Linux PC where I will try it then before I go with the RenPy.

Thanks again :)

Hi FreeCodeCamp. First of all, Thanks for this accessible game.

there are some issues that I've pointed out.

first. I'm a windows user. and using NVDA screen reader. but in this game, TTS only works with native screen readers, that is narrator in my case. but narrator is not responsive as NVDA is. so, it would be better to give option to the user about choosing the screen reader. specially if user is using windows.

second, currently, it's not possible to change the speed of the TTS from the game. it is better to have this option for the users so they can play the game on their own speed.

third, there was a question in HTML about ins tag, but TTS wasn't speaking the options of that question.

fourth, there could be some shortcut keys to control the volumes of the sound and music. for example, Page Up for increasing the music volume. Page down for decreasing the music volume. etc.

and lastly, in the settings, there should be a slider with percentage in the options like text speed bar, sound volume, and music volume etc. when we increase the volume, it could say, music volume 50%.

Thanks. and again, a lot of appreciations for this accessible video game.


Hi arqamgrt,

Lynn here - thanks so much for your thoughtful feedback! We are glad that you enjoyed the game.

I’ve consolidated your feedback into our open GitHub issue about improving TTS. We will work on that :D

Hi freeCodeCamp,

I am excited to play this game on Windows 10! However, Microsoft Defender SmartScreen won't let me run the application because it says that the game is an unrecognized app after I double-clicked LearnToCodeRPG.exe. I followed the Installation directions by unzipping the file, double-clicking the folder after unzipping, and double-clicking the LearnToCodeRPG.exe.

Just to make sure, is this game safe to run on Windows?

Image description: This is a screenshot of the LearnToCodeRPG-1.0-pc folder and an alert popup window.  The alert popup window says: "Windows protected your PC. Microsoft Defender SmartScreen prevented an unrecognized app from starting. Running this app might put your PC at risk. App: LearnToCodeRPG.exe, Publisher: Unknown publisher".

Thank you!


Hi jenerator,

Lynn here - thanks for the note!

Yes, this game is safe to run on Windows. This warning shows up only because the publisher is unknown - in other words, we (freeCodeCamp) haven’t registered ourselves as a Windows developer.

In case you still have concerns :) feel free to check out our source code on GitHub

Ya windows is both picky and not picky enough when it comes to that stuff.

i just did a scan myself and turned out ok but i don't have the file that this person has.
it could possibly have gotten corrupt.

i'd suggest trying to redownload the file and see if it still triggers the anti-virus.
if it does it's likely just windows being windows again XD



I would first like to thank you for implementing an accessibility mode for blind people. It is really appreciated and really well done.

Here I would like to report a few problems and make a few suggestions. Let me know if GitHub is a better place to continue the discussion.

First, repeating text.

There is currently a small problem with all story text in game. The TTS starts reading a message, and then mid way stops and starts again, this time finishing successfully however so it is not a huge problem.

What I suspect is happening here is the text appears on screen, TTS starts reading, and then the text finished scrolling and is now fully available so speech interrupts and restarts to read the completed text.

I have no usable vision though so this is only my guess. If it is indeed the case, it would be better for TTS to start reading only when  the text is fully available and thus avoid this problem. If my explanation is not clear enough, I can submit a recording demonstrating this.

Second, it would be really nice to be able to spell any text with left and right arrow keys moving letter by letter, for example. As it stands, with many TTS engines, git add filename and git add <filename for example sounds exactly the same.

That's all for now, and once again I thank you for a very well designed game and for keeping accessibility in mind.


Hi nidza07,

Lynn here - thanks so much for your thoughtful feedback!

It’s my first time using this game engine (Ren’Py)’s TTS feature, and your feedback is very valuable to me.

I’ve created a GitHub issue based on your comment and will work on improving the TTS and updating the game.

Hi there. If screen reader is repeating the text, try my trick. I’ve increased the text speed bar to full. And now, it’s fine here.


Hi everyone - Lynn here. I had great fun building this game :D Everything in this game is free and open-source, so feel free to use any part of the code in your project.

You can find the source code here on GitHub.

I’ll be posting more open-source Ren’Py code on my personal GitHub.



Great game! My favorite part was discovering the truth about Mint. 😉