41
I built Codegame for developers to create programming games with Markdown
Project: https://github.com/pyrustic/codegame
Hi Devs !
I am excited to present the Codegame Platform
to you.
Imagine being able to:
write in a
Markdown
dialect (Litemark
[1]) a text that gratifies the intellectual curiosity of the reader;gamify [2] the process by transforming each page into a level with the possibility of giving the reader a test to move from one level to another;
don't worry about implementing what is said in the previous line: just write Markdown with your favorite text editor;
without writing a single line of code that will be executed on the reader's computer, evaluate the solution that the user submits to a test;
turn a reader into a player, a set of Markdown files into a serious game (a codegame);
see a preview of what the future player will see with a command "preview" from a CLI;
turn your project into a distribution package, publish it (thanks to GitHub Releases Assets) and monitor the number of downloads and stargazers simply with 3 commands ("build", "publish, "info remote") from a CLI;
promote your project simply by sharing the URL of your repository or the "owner/repository" shortcut that users can simply paste into the search bar of a GUI (Codegame Platform);
download the packaged project (the codegame) as a user and use it with the same application that allowed you to create, package and publish this same project ...
I imagined the above lines during this month and just posted the first implementation on Github.
First, I developed Litemark
, a dialect of Markdown. I wanted something that would allow the creator of a codegame to insert images, links and also source code (read-only). It would be a plus if the creator is comfortable with the markup language. Markdown is a good candidate and on top of that a lot of people can write Markdown. I also wanted to be able to use my Pyrustic Framework
which is not made for the web. And no question of using a HTML rendering engine ! I could have used Pandoc
but it's also exciting to do projects from scratch. After Litemark, I wrote the library Codeval
[3] which allows you to test code according to a given specification (input, output, maximum execution time). Then I developed Codegame Platform
.
Having written Litemark
from scratch allowed me to make some quick changes to meet the needs of the Codegame Platform. Example: The Litemark distribution package has a Viewer that can hide a given codeblock. This is the trick I use to hide the test specs from the player.
I think this project is suitable for:
teaching programming, algorithms, data structures;
teaching ethical hacking;
building a well-articulated chain of puzzles with an exciting story behind it;
automating coding interviews [4];
fun, and more...
This is a work in progress. I would love to know what you think [4] about it, any suggestions, reviews, fixes, if you would have liked to use an app like this when you were new to programming, if you would like to create codegames and why, or if you would like to play codegames and why, or if you would like to implement the concept in another programming language or still with Python with another framework and why, if you know a similar project, etc ...
Project: https://github.com/pyrustic/codegame
41