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:
https://www.microsoft.com/en-us/p/prince-of-persia-the-crystal-castle/9mvtg0wfq2q9
More platforms hopefully coming soon!
Overview
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.
History
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!
Fun Facts
· 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!
Technical Specifications
· 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:
https://www.microsoft.com/store/productId/9MVTG0WFQ2Q9
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!
Release the Level Editor?
Bugs/Suggestions
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:
https://forms.gle/nnW8zM6e6EWBj5y29
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 hgrebnev@uw.edu indicating what you believe
needs correcting.