Prince of Persia in JavaScript
princejs.com
princejs.com
My 8 yo son is playing it now, he knows all the modern consoles, but this is challenging him. He is frustrated things are hard from the beginning, jumps don't work right away and he stopped after a few minutes. I remember my perseverance as a kid.
I was thinking about that lately, I see my kids don't have this strong motivation as I had, not for anything. Everything works for them and is layed out. For example, when I was young I had a lego technic motor, but the wires sometimes got oxidatid or just broke, and I had to fix it. My son has a new lego set, and the motor always works, except when the wireless remote runs out of battery. Same with gaming, it always works, while in the past even getting a game to run could be a challenge on its own. And when he gets stuck in a game he watches a YouTube. No hours of frustration and endless searching and figuring for a solution.
I see my kids don't have much of these challenges, everything works for them.
Don't know how this will affect them on the long run. Now it's only my observation.
The digital world is mostly done. Everything, from social networks, to videogames is studied to avoid frustration, be addictive, and generate a dopamine rush. When not, like competitive gaming and so... the skill gap is too big and the entrance barrier too high
Manual labor cannot be so easily simplified and automatized. Yes, you need to perform a task and, if it's common enough, you'll have a Youtube tutorial at one click reach. But that's not so easy in the real world, because you'll eventually find obstacles and unforeseen problems. Usually, the uploader is a skilled guy for whom, some situations, are not even worth mentioning, but will be a problem for a newbie.
Furthermore many basic manual task are not to be found in Youtube, because they're too specific. Yes, you can find a tutorial on how to hang something to a wall, but you need to hang an object of an specific shape, between two walls corner, where some other object is an obstacle.
In those cases, you're mostly on your own, but the task is achievable
So it could be that the children are both ok and broken in new ways, like our generation was.
I played Prince of Persia as a kid, the game is amazing for its time. But game design has evolved in these 30 years, and it shows. When we were kids we didn't have better games to play so we had to persevere with PoP.
Nowadays, if you want hard platforming you can play Super Meat Boy or Celeste and fight with your ability to perform the required movements, not with the clunky controls.
If you want to explore an unknown world you can play Hollow Knight or Ori and enjoy a much larger and more developed setting.
Neither of these games are easy, but they have much more well crafted learning curves for example. PoP simply drops you in a dungeon and you have to die there until you manage to get the timing of the jumps, while Celeste has an "easy" first level and constantly ramps up the difficulty.
If you're interested in understanding some of why Celeste is so important to a lot of people but don't feel up for playing it yourself, these two video essays are a great watch:
And in fact, I don't think anyone would be surprised if that very same teenager looks up YouTube videos about how to beat the most difficult parts, find all the secrets, and so on.
Even less like the hard old games, Celeste comes with an assist mode:
> Assist Mode allows you to modify the game’s rules to fit your specific needs. This includes options such as slowing the game speed, granting yourself invincibility or infinite stamina, and skipping chapters entirely. Celeste is intended to be a challenging and rewarding experience.
To some extent I only realized this late in life myself. I don’t play a musical instrument, schoolwork through undergraduate never required really hard work and as an athlete I was a lackluster football player who never really put in the time to get better. But as an adult, computer programming and crossword puzzles were things which I applied myself to and was astonished to see how much better I could get at them by putting in the time and effort. (That being said I am an awful teacher - as an autodidact myself, I often - unfairly - feel that others aren’t putting enough effort in.)
Throngs of well-rehearsed, talented, yet ignored musicians cannot agree. ;)
If you haven't played Getting Over It, it's a tremendous meditation on failure, and Bennett's narrations as you struggle are brilliant from a philosophical standpoint. He talks about how the challenge and failure and difficult ARE the point for a certain class of gamer and how that's the game he wanted to build.
For another take, Super Hexagon provides that same "this is impossible but I'm getting closer to possible and that feels good."
Also when I was a kid, early childhood I just couldn't really play the harder games, late childhood I could play the hard games. When they're just too hard you stop playing. Also different kids have different strengths and they will gravitate to games that play to their strengths. I have below the mean reaction times so I just did bad in reaction time platformers and eventually gravitated towards games that weren't hard because of reaction times, like RPGs, strategy games, installing linux on my computer and troubleshooting it and what not.
There are also new 'hard' games out there that demand a lot out of their players, and be careful if your kid gets obsessed about them. Like many esports games.
> Don't know how this will affect them on the long run. Now it's only my observation.
I realize that you're only talking about your own kids, but I have a feeling that many people on here consider this to be some kind of general rule for all kids, akin to the "back in my day" rhetoric of the generations before us.
I think it's good to consider that your kids will likely live in a world where this attitude is actually a very effective one:
* Instead of spending days trying to solve some problem yourself, download an app that solves it for you in minutes.
* Instead of coming up with a very well informed opinion about everything relevant in today's politics, listen to trusted others who have taken the time to form opinions on the matter.
* Instead of trying to "earn" that promotion by working 80 hour weeks and "keeping your head down" at your office, apply for a different job elsewhere that offers better pay and work/life balance.
As most of us here are programmers, we all know the benefits of greedy algorithms vs brute-force solutions. Yes, sometimes a brute force solution can be very satisfying, but taking "smart" shortcuts in life really does pay off, whether we like it or not.
And before you tell me that I'm probably one of those millenials who doesn't do anything and thinks everything will just be handed to them: well.. yeah, that's kinda true. I've never worked at a single job for more than a year, I've never really put more effort into my education than what was strictly needed to pass (and sometimes less), and now I'm a data engineer at Apple.
There is always a generational tendency to point out that the next one has it easy or that they are weak because $OBSERVATION. I would like more folks to counter that. I’m a millennial but absolutely love how Gen Z is incredibly adept at navigating the always online culture, calling bullshit on dated traditions around work ethics and so on.
You can look at change and either pat yourself on the back for being better for having overcome challenges they didn’t have to. Or you can see what other generations bring to the table and work with that.
Suddenly anyone in the future with the ability for critical thinking and problem solving beyond "do they have an app for that?" is going to inherit the Earth.
We don't do our laundry manually anymore either for the most part in the developed world, and we are fine!
Also if you talk to your parents, you'll find out you probably had many instances of a lack of 'grit' in early childhood, but you forgot.
I think the reason the "head down" strategy doesn't work so well now is at least partially because it's still the dominant approach. Some time after it becomes the exception, it may become the path to success it once was.
The first successful code I wrote was the following:
10 input a 20 input b 30 print a+b
I was around 12, without manual or online help and it was trial and error for an entire weekend until I got this right. Very few people I know today used to tech would have such perseverance.
That’s why it’s your parental responsibility to start playing games with your kid early, starting with the oldest consoles up to modern times: https://medium.com/message/playing-with-my-son-e5226ff0a7c3
If my daughter wants to know how something works she can find a brilliant well-produced video on YouTube of an expert explaining it, and she can easily buy tools and supplies from anywhere in the world for esoteric hobbies.
From what I see the next generation are far more practical and hands on and involved in constructive and creative hobbies than mine was. When I see young people’s resumés today they are frighteningly practical and talented in advanced hobbies.
Sometimes I worry about how to keep up and compete with them!
This is one of the reasons I recommend teaching kids C++ early.
Between build systems, ABI issues, compiler error messages, and undefined behavior it really builds perseverance and a great sense of accomplishment when your program compiles and runs correctly.
I am not aware of any other production language that gives that sense of accomplishment and requires that level of perseverance.
There is an effort we can put in teaching our kids c++ and even better if we can start them on leetcode at an early age
This will help them improve their problem solving ability and they will also get frustrated when they are not able to solve a hard graph problem.
But the hardest problem never is the problem itself, but the inability to keep on going when the problem seems very hard.
When kids learn how to handle that and when all the kids in the world know how to handle that, then surely we are looking at a future generation that will help solve all the hard problems that we are not able to solve like World Proverty, income inequality and global warming.
Modern games which I've played are more like movies with a limited amount of interactivity. Maybe it's just generational but I do think there's a good amount of "dumbing down" in not just games but educational and other content in general.
Apart from that, I was tickled at playing this. I used to smuggle this game from friends at school on 2 5.25" double density disks. There was so much trouble to get games and play them. Damaged disks, the fear of getting caught by the school staff, "friends" who would give me games other than the ones we agreed upon. Hard to imagine a world like that in a world where I can type a URL into a browser and play the game.
I dislike Roblox since at that point you might as well open up Unity and ship your own game. That's how I learned to program in my early twenties, a bit later than most of y'all
[edit]
Looks like there were many ports with similar looking graphics: https://www.mobygames.com/game/apple2/prince-of-persia/scree...
As I can remember, my approach was the first one: "bottom up in literally translating instructions and assuming it will lead to same results if translated accurately enough". That was not to difficult to achieve.
The funny thing was that Jordan Mechner used every bit of available memory in the Apple II computer, so I had to be very careful ;-)
Then the hard part: create the input and output codes that were totally different on the two computers, then the code for sounds and music also totally specific and then I wanted to have better graphics. So I ended up by creating a sprite editor, in assembly language, for my graphic artist colleague so that we can recreate all graphic assets and put color in it...
[1] Fortiche Productions, a small Paris-based studio who specializes in creating animated projects with a unique blend of 2D and 3D art. src https://www.techradar.com/news/inside-arcane-netflixs-animat...
Here is a link to interesting and creative French game people and projects (it is in French, so here is a Google translated version: https://gamingcampus-fr.translate.goog/tomorrow-lab/gaming-i...)
Outside of Paris are also great teams like the Asobo teams in south west of France who developed Microsoft Flight Simulator 2020...
With Broderbund I worked on:
- Showoff (https://www.whatisthe2gs.apple2.org.za/show-off-/), a kind of PowerPoint software
- Downhill Challenge (port from Atari to Apple II GS - https://www.youtube.com/watch?v=6V5JZGHox7I)
- Prince of Persia (port from Apple II to Atari ST)
I expected after finishing level 1 to see the “page 4 line 2 character 6” challenge room, where you were supposed to prove you owned the official manual.
When I was a kid we had it on floppy disk but never had the original book, and I remember diligently filling in a table of failures each time I drank the wrong letter and died. Eventually I got them all!
Because of this I remember level 1 extremely well :D
Use the Shift key to pick up the sword. And I think Space to attack and the Up cursor key to block when you get to the swordsman.
the movement controls are very intuitive. they don't hit accurately but they work in an intuitive way. i tapped the four directions and four quadrants of the play screen. and the character responded as i expected.
i am with you though. i have no idea how i will use the sword when i get it.
This is when using Firefox on Linux, and using a standard 101-key external keyboard.
Edit: figured it out, tap on the center and swipe to the left/right to walk.
https://princejs.com/?level=2&health=3&time=59&strength=100&...
You can change the parameters here.
https://jordanmechner.com/store/the-making-of-prince-of-pers...
My notes about it:
Oh, and playing at 3840x1200 means that every original 320x200 pixel is ... 144 pixels!
(remember when Roku was going to be a Wii competitor, with the fancy motion remote?)
https://github.com/lvcabral/Prince-of-Persia-Roku
It has a 9 screen (3x3) mode that is pretty cool to see on a big TV.
Phaser.GAMES[0].state.getCurrentState().ui.player.addLife()
Is this open source?
And yet, I still sometimes go to places like flingtrainer.com when a game "feels too hard" for me (and therefore is also not fun... the recently-released 2021 "Dark Alliance" is one example)
I think editing game state should be "difficult, but not impossible". The thing is, if it's "difficult", then someone somewhere's just going to make a free save editor...
"Fun" is a delicate balance in these things and probably varies by person. For example, I CANNOT STAND inventory management in games (it's not immersive, it's WORK!) so Skyrim became 100% more fun once I figured out how to console up my carryweight (and installed a mod to make the inventory UI searchable/sortable by type). To me, all this did is prevent me having to spend time traveling in-game back to a home stash to retrieve some odd thing and then traveling all the way back... that's literally "work, inside a game" to me, and takes away time better spent exploring, questing, fighting etc. Similarly, I have no idea why Blizzard limits Diablo 2 stash size (I mean... the extra database cost has to be practically... negligible for them?) because all it does is cause lots of login/logout churn for them as people switch off to mule characters to hold all their set items/uniques/runes/etc.
Which is open source.
https://en.wikipedia.org/wiki/Aztec_(video_game)
The basic idea is the same in Aztec: you control a character that descends into a multi-level tomb. Like in PoP, there isn't any sideways scrolling. You step from screen to screen sideways, or fall through traps or go down stairs and such.
Now, would someone kindly reimplement the Railroad Tycoon? Pretty please?...
Transport Fever?
I played the game 10 years ago in an DOS emulator and while the feeling was a bit different (details hereafter), the graphics are spot on.
About the mechanics, the kid shouldn't get killed instantly while beginning to run over an already triggered pike. furthermore, there is a a bug in level 4 where the game freezes while attempting a jump over the gap that takes us to the mirror room. Also the fat guard on level 5 seems to be less reactive than in the original game. I'm saying that because the level 8 guard is still as annoying as in the original game if not more :D
Maybe I'm rusted but I ran out of time at level 8
https://github.com/oklemenz/PrinceJS/blob/master/assets/web/...
And also see the <meta name="viewport" ... values in the page itself.
I used to love two games at the time, this and Zak McKraken and the Alien Mindbenders. I managed to played the latter to completion in my teenage years, but I never finished PRINCE.EXE, perhaps it's time...
There is a link in the description of the video you shared to an extended version showing more how the animations were created from videos.
On macOS and mobile, the vast majority of users are used to controlling the volume with hardware buttons. There are many media players that do not include a volume control precisely because of this (eg: Apple's podcast player for the web).
On Windows and Linux, users do not always have hardware volume controls so the majority of users are accustomed to doing that in the media players themselves.
If it's some music/podcast isn't it more handy to have a known volume knob on that instead of finding one on every website?
I don't care about the right opinion. I'm just curious about scenarios where lack of volume control is a problem.
I know where my computer's volume controls are - and if I have a keyboard with volume controls, that's what they work on. I almost never want to touch a specific app's or website's volume control... unless its volume is way too soft even at max system volume.
Basically, I don't need a gazillion interfaces. One suffices. Just don't go out of your way to make that generic, system-wide interface insufficient for your app and it'll be fine.
Audio is also things like warning sounds, it isn't just music and games.
A year ago I wanted to really finish it the intended way, so I did a challenge - I'd play the game, but whenever I died, I start from the beginning. Took me about two days to get a no death run, but I managed to do it. Had about 18 minutes left of the ingame clock.
?level=1 &health=9 &time=59 &strength=100 &width=0I'm not sure things are so different now, perhaps we are looking at the past through rose colored glasses.
I am still amazed by the animations. They are still looking very good. Great game.
Feels exactly the same.
It appears that this is using http://phaser.io/ and is a complete rewrite of the original game.
Are there any controls besides the arrow keys? None of the other keys I pressed seemed to do anything.
http://www.abandonia.com/files/extras/26916_Extra%20document...
Is it? Num7/9 don't work regardless if num lock is on or not.
* I think I'm still somewhat afraid of sliding doors ;)
https://www.news24.com/channel/tv/news/the-story-behind-the-...