Oct 17, 2011 at 7:30 PM
Join Date: Oct 17, 2011
Location:
Posts: 3
Hi there,
I've created a 40% complete port of Cave Story in HTML5. You can play it in the latest version of Chrome or Firefox, or in Safari if you enable WebGL. Opera may also work, but I have not tested it.
Play it in your browser
http://cavestory.rickyromero.com/itsasecrettoeverybody/
I emailed Pixel about this, and he does not want me to proceed with the port, so I will not work on it further. I would, however, at least like to share it and to have some feedback on what I've done, because I worked on it for a month and a half and it just feels like a bit of a waste otherwise.
Please:
I will need to take it offline if it is shared outside of this group of enthusiasts.
With that said, let's get on to the details!
WHAT ISN'T WORKING?:
Sounds and music were not implemented. I could have used the new raw audio APIs in Firefox and Chrome, but I put that off. Pressing Escape or opening the Map System will throw a JS exception and you'll need to reload the page. You'll also find that some of the AI does not behave exactly as it does in the original Cave Story, due to differences in NXEngine itself.
You may also get a small initial hiccup in Firefox when you first load it. That's just how Firefox deals with loading in images. Be patient, you'll get the full framerate after it's all done loading everything in.
CONTROLS:
Same as with normal Cave Story.
WHAT CAN I DO?:
Pretty much everything is implemented until you get to Sand Zone, where things start to get a little wonky and unstable. Other than that, the game is by-and-large bug free and you can do almost everything you can in the normal game up until that point.
Additionally, the game makes use of the localStorage API, which means you can save your game (and you have the ability to do so in one of five game save slots).
WHY DID YOU CREATE THIS?:
Most of what you see done in HTML5 are just simple toys. My ambition was to create a showcase for HTML5 technologies and demonstrate that you can build some seriously advanced things with them. Also, I love Cave Story's enthralling gameplay. Unfortunately, since I don't have Pixel's permission to continue, I can't show this to nearly as large an audience as I had hoped.
I had also wanted to open-source it so that anybody could improve it.
TECH:
This port was created using NXEngine as a base, but I converted all of the source code to JavaScript. The rendering engine is crudely done in WebGL. It could be optimized quite a lot (I'm not even batching quad draws), but I never got around to it.
From there, I had to fiddle around with a lot of the source code to get it working, as there are a lot of touchy little differences between C++ and JavaScript.
The game files themselves (maps and so on) are read in using XMLHTTPRequest and then parsed by jDataView. As for the sprites, they've all been converted to PNGs.
I've created a 40% complete port of Cave Story in HTML5. You can play it in the latest version of Chrome or Firefox, or in Safari if you enable WebGL. Opera may also work, but I have not tested it.
Play it in your browser
http://cavestory.rickyromero.com/itsasecrettoeverybody/
I emailed Pixel about this, and he does not want me to proceed with the port, so I will not work on it further. I would, however, at least like to share it and to have some feedback on what I've done, because I worked on it for a month and a half and it just feels like a bit of a waste otherwise.
Please:
- do not consider this to be a release.
- do not share the link beyond this tribute site's forum.
- do not download the source code and mirror it.
- do not pester Pixel on my behalf.
I will need to take it offline if it is shared outside of this group of enthusiasts.
With that said, let's get on to the details!
WHAT ISN'T WORKING?:
Sounds and music were not implemented. I could have used the new raw audio APIs in Firefox and Chrome, but I put that off. Pressing Escape or opening the Map System will throw a JS exception and you'll need to reload the page. You'll also find that some of the AI does not behave exactly as it does in the original Cave Story, due to differences in NXEngine itself.
You may also get a small initial hiccup in Firefox when you first load it. That's just how Firefox deals with loading in images. Be patient, you'll get the full framerate after it's all done loading everything in.
CONTROLS:
Same as with normal Cave Story.
WHAT CAN I DO?:
Pretty much everything is implemented until you get to Sand Zone, where things start to get a little wonky and unstable. Other than that, the game is by-and-large bug free and you can do almost everything you can in the normal game up until that point.
Additionally, the game makes use of the localStorage API, which means you can save your game (and you have the ability to do so in one of five game save slots).
WHY DID YOU CREATE THIS?:
Most of what you see done in HTML5 are just simple toys. My ambition was to create a showcase for HTML5 technologies and demonstrate that you can build some seriously advanced things with them. Also, I love Cave Story's enthralling gameplay. Unfortunately, since I don't have Pixel's permission to continue, I can't show this to nearly as large an audience as I had hoped.
I had also wanted to open-source it so that anybody could improve it.
TECH:
This port was created using NXEngine as a base, but I converted all of the source code to JavaScript. The rendering engine is crudely done in WebGL. It could be optimized quite a lot (I'm not even batching quad draws), but I never got around to it.
From there, I had to fiddle around with a lot of the source code to get it working, as there are a lot of touchy little differences between C++ and JavaScript.
The game files themselves (maps and so on) are read in using XMLHTTPRequest and then parsed by jDataView. As for the sprites, they've all been converted to PNGs.