Monster Paw - HTML5 3D Game Engine

Started by
7 comments, last by Jean d'Arc 11 years, 7 months ago
Greetings,

I've been working on a HTML5 3D Game Engine called Monster Paw for a couple of months now, which I am hoping will allow quick and easy prototyping and development of fun casual 3D web games.

The engine is written in pure JavaScript and makes use of the 2D Canvas context for rendering and JigLib port for physics and currently works on Chrome and FireFox rather well, mileage will vary with other browser.

I'd love to get some feedback from game developers about interest in such a project, is a plugin-free web based 3D game engine something you would use?

What features would you like to see?

  • Better physics
  • WebGL
  • 3D audio (Mod music playback)
  • Animation
  • Support for more browsers

Any feedback is much appreciated biggrin.png
Advertisement
Just out of curiosity: why are you using the 2D context, rather than the 3D (webGL) context?
One benefit i can see is, that its capable of running on mobile devices, but the performance for 3D rendering through webGL is much better.

What are the advantages of your engine compared against three.js?
Hi Paratron,

You are correct in that my aim was to target multiple different platforms from desktops to tablets to mobiles, from the benchmarks I have run on some devices I will need to do some further optimizations to make it work and scale across mobiles.

WebGL is a technology I am playing with and it will be the next feature I develop after the audio stuff I'm working on, the thing that bugs me about WebGL is that, unlike the 2D canvas context, WebGL is not part of the HTML5 spec and is unlikely to become widely adopted for a while if ever (blink.png looking at you Microsoft). Heck some browsers that do support WebGL have it disabled by default... what's up with that (blink.png looking at you Opera and Safari)?

three.js is a very impressive solution and I have much respect for the team behind it. I will be looking at using it for the WebGL stuff, however my motivation is to create a simpler and easier to use engine and associated HTML5 based tool-set, geared specifically towards the creation of casual games and game prototypes quickly and easily.

However a game engine is much more than just rendering... we are talking audio engine, physics engine, input, networking, AI, editors, scripting, resource management, packaging, deployment and so on.

The last but probably most important reason is... for fun biggrin.png I love programming and pushing the boundaries of what is possible. Never in a million years did I ever think JavaScript would be able to run a 3D engine in a browser at decent frame-rates... so when HTML5+Canvas+Chrome+V8 showed up and blazed a trail I had to see how far it could be pushed.
Fun is the most valuable reason you can get :D
Thats why I am currently creating a 2D Tilebased engine + an Asset Loader, too ^^

Let me throw a few links at you which might be interesting for you:
http://www.schillmania.com/projects/soundmanager2/
http://createjs.com
http://thinkpixellab.com/pxloader/
http://box2d-js.sourceforge.net/

maybe you can incorporate a few of those into your engine to speed development up :)
Thanks Paratron, those links look interesting. However SoundManager2 has a Flash fallback and I am avoiding plugins like the plague.

I've managed to figure out Audio playback on Chrome using Web Audio, sadly Firefox implements its own audio variant and thus I had to redevelop (or try to redevelop) some of the coolness in Web Audio such as 3D panning. Here is progress so far if anyone is interested...

http://www.zynaps.co...mpaw/audio.html
The sad truth about HTML5 audio: It just isn't ready. So if you are of sane mind, you just HAVE to incorporate a Flash fallback for audio. We all hate flash like its from hell, but in case of media playback you really can rely on it.
HTML5 audio is sadly broken (and unperformant) on >80% of the browsers and devices currently.
I am writing a 3D game engine in JavaScript huh.png my sanity left the box a looooong time ago tongue.png

Having said that, if you could elaborate a bit more about your experiences with HTML5 audio being broken and those browsers and devices you refer to, I think we could all learn something valuable from it.

Gracias
Well, to be honest - I hadn't had the chance to play with HTML5 audio in any project for now. But I've read a couple of articles about it, especially from the guys who created the HTML5 version of "cut the rope" (google for it, if you don't know it - its great!).

I will take a look around and see if I can recover some of the articles regarding HTML5 audio.
The biggest problem is that nearly every browser implements other audio formats. So you have to provide a varity of different file formats for ONE sound file to make sure they work in every major browser. But this also got better since it now looks like every browser (but IE) supports WAV files. On the other hand, WAV files are insanely huge and not very web (and mobile) friendly.

The next problem which makes sound un-attractive for games is that there seems to be a lag when you try and play/skip/stop sounds. Think about a game where you fire a laser cannon and the sound is 300ms delayed. This feels nasty to the player.
Its possible that problems are solved by now - as I sayed, I have to look around again for articles :)
Other than a few glitches here and there during playback so far Chrome has proven rather stable. Will be interesting to see how Firefox stacks up once I create an audio manager for it. I guess instability is the price one must pay for using bleeding edge technology.

This topic is closed to new replies.

Advertisement