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 find its first release on the Microsoft store at:
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:
∑ 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, Xbox, 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 but not published yet.
3. iOS: not built yet.
4. Desktop DirectX (for any Windows OS): built but not published 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. But thatís for another time.
∑ 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 email me at email@example.com indicating what you believe needs correcting.