Welcome to the official page of my finally completed 8-year long project Prince of Persia: The Crystal Castle. This game is a fan made sequel to the original DOS 1989 and 1993 games Prince of Persia and Prince of Persia: Shadow and the Flame in which you can continue playing as the heroic prince of Persia, scaling towering height, avoiding traps, and finally come to terms with the Prince’s most challenging adversary yet! It runs on over 24,000 lines of C# code written using the Monogame framework and SDKs, and you can download it either from the Microsoft store or the Amazon android store:
Amazon store: https://www.amazon.com/gp/product/B08R2CJBPM (preview only, to get the game you must install the Amazon store app on your phone and then install the game from within)
More platforms hopefully coming soon!
The game’s story continues after the events of the second DOS Prince of Persia: Shadow and the Flame game in which the prince faces his new arch enemy: the evil witch who mysteriously appeared at the end of the previous game. The play and feel of the game are exactly the same as in the originals, except with additional support for Xbox controller and touch screen. The goal in most levels is to navigate the terrain and find the gate in the wall that leads to the next level, overcoming any obstacles in the way. As with all of the Prince of Persia games, time plays an essential role in this game since after a bit of gameplay the story will introduce a time limit that the game has to be completed in. The game also offers a menu system which includes the ability to save your progress in case you want to quit and come back later to it.
In 1989 Jordan Mechner released the original Prince of Persia game and in 1993 he and Broderbund Software released its sequel Prince of Persia: Shadow and the Flame. Then in 1999 Red Orb Entertainment published Prince of Persia 3D which unlike its two previous predecessors is a 3-dimensional game. A large prince of Persia fan community has grown around these original games since then (see for example https://popuw.com/) and in 2014, when I was 15, I decided to make a sequel to the first two games. My game was going to be called Prince of Persia 2.5 because on the timeline of things, the story in it takes place in between the events of the second game Shadow and the Flame and the third game Prince of Persia 3D. It was a large project to take on, but I knew that in the process I was going to learn a lot including programming, animation, game design, how games work in general, etc. Eight years later I finally finished!
· I play the evil witch! The process for how I accomplished this was the following.
1. First, my brother filmed me dressed as a witch. Drawing on my obvious natural talents for costume design, in order to look like a witch I decided to dress myself in a pink bed sheet and use a bright orange marker as my “wand.”
2. After that I wrote and applied a “cartoonify” filter to the video’s frames to try to make them seem less photorealistic.
3. Finally, I redrew my face in all of the frames since I decided that my face wasn’t scary looking enough. You can go to the homepage of this website to see if you agree with my decision 😊. I also recolored the marker brown in order to make it look more like a magical wand. The result:
· The picture of the Persian kingdom in the opening sequence of the game contains around 1,400 little houses in it. They were placed randomly by a program since it would have taken an enormous amount of effort to do that by hand!
· The columns and potted plants in the game are placed randomly each time you restart a level. The reason for that is that I created those two decorative elements after I finished making all of the levels and I didn’t have the effort to go through each level again and place them by hand. So I decided to let probability do the work for me!
· There are quite a bit of parabolas and cosines in the code for this game. Cosines in particular appear whenever there is any kind of oscillation. A clear demonstration that math is useful, if I say so myself!
· The game was written in C# from scratch using the Monogame framework 3.7.1. I hope to upgrade to Monogame 3.8 soon as that might provide me more platforms for which I can release this game to.
· With the 3.7.1 framework I’m currently able to make the following builds:
1. Universal Windows Application: built and published. Please see:
Platforms include Desktop with Windows 10, Windows Phone 10, and Xbox One. I only tested it on the Desktop version though since I don’t own any of the other platforms listed. If you’ve tested it on one of the other platforms, please let me know that it works there. I’m eager to know!
2. Android: built and published! I’ll try to see if I can host the game in a few other locations as well. For now, you can download it from within the Amazon store app. To preview the game, visit
To actually get the game you must install the Amazon store app on your phone and then install the game from within.
3. Desktop DirectX (for any Windows OS): built but not published yet. This will probably be my next release.
4. iOS: not built yet.
5. Desktop OpenGL (Windows/Mac/Linux): built but not published yet.
6. I’d like to try to port my game to the Unity engine. That would very exciting since then I’d be able to make a web version of my game.
· Thinking about cheating? Think again! In this project I learned how and implemented a checksum defense of the player data and hall of fame files using the standard C# SHA256 hash algorithm library. So if you’re considering editing those files manually, don’t say I didn’t warn you!
If you’d like to report any bugs that you encounter in the game or would like to leave a friendly suggestion, please go to:
All input will be very much appreciated!
Note: I make every attempt to make the above information as complete and accurate as possible. If you find that I omitted something, please contact me indicating what you believe needs correcting.