java v. shockwave - browser mmo

Started by
25 comments, last by lefnirex 16 years, 10 months ago
I want to make a browser-based mmorpg and want it browser-based for 3 reasons. 1) it's somewhat novel-- i can think of only a couple of popular ones: runescape and dofus. with so little competition it's worth a shot (i've got no chance in the desktop arena). 2) players can play at any connected terminal-- hence the popularity of runescape. Plus cross-platform compatibility 3) most importantly, i can make the game free by using ads. any site that's worth visiting, even just for a peek, lives on ad-based revenue. I, for one, am constantly on the lookout for top flash, shockwave, and java-based browser games. I'll play them even if they suck, just to try it out. i think this makes for a more effective revenue model that many content-based sites out there. So here's my dilemma. flash has great browser penetration, java has good, shockwave ok, and java3d none. If i want the game to be 3d, i need hardware acceleration or awesome software acceleration. shockwave has hardware acceleration, but mediocre browser penetration. java doesn't have hardware acceleration (except through java3d, which i can assume is NOT installed in public locations--an important consideration), and in order to make a 3d game i'd have to build my own software rendering system (like jagex did with runescape). But, java has better browser penetration than shockwave. flash has nothing on 3d. as far as 2d goes, shockwave would be pointless--it would be between flash and java, both which have good enough browser penetration. So the question is whether I should do 3d or 2d. It seems if I do 3d, i will reach fewer players because neither shockwave nor java3d can be assumed to be installed in public locations. If i do 2d, i'll reach fewer players because only a few of us enlightened mmo players search for good-content games, and everyone else searches for quick-fix eye-candy. so, (1) which is a more important consideration in order to reach a larger audience: browser penetration, or 3d? (2) which do you think, in this case, favors one solution over the other? (3) am i missing something important that will allow me to have the best of both worlds? (aka, CAN shockwave be assumed to be installed in public locations, or IS THERE a free software-rendering system for java that doesn't require clients to download)
Advertisement
Forgot Java3D, another option is JOGL. You can have fully accelerated opengl in a java applet. See:

https://jogl-demos.dev.java.net/applettest.html

The main problem with 3d graphics in web browsers is the size of the assets.

I'll be keeping an eye on this thread as it's something I've thought about in the past.
yeah, i was looking at jogl but i couldn't get it to work for the demos that had dependencies (the demos with textures and shaders, etc -- they gave me an error). the demo you posted is just mesh, which is totally doable (runescape, as far as i can tell, is just mesh). Do you know if using jogl with assets requires installing anything extra?

the other thing i was thinking is that for larger demos, webstart is used. webstart downloads & decompresses on the machine, and it asks for permission. what does this mean in the face of restricted accounts installed on public machines?

you're right about assets. I tried a couple of shockwave games that have the full get-up (textures, cell-shading, etc). It took a bit to load (1-2 minutes). that's another consideration, is if users would be willing to wait that long. I think they would, but they might not be.
after a bit of research, here is what i've concluded so far:

jogl and lwjgl weren't working on my computer because there is an nvida on vista bug, not because i was lacking packages. I tried the demos on xp with no video card & nothing but standard jvm and it worked fine. as i'm assuming anything java can do an applet can too (bad assumption?), i think webstart is unecessary and all these demos could be placed into applets. so....

1) if you go 2d, use flash. better browser penetration for comparable performance to applets.
2) if you go 3d, (tentative statement) go jogl/lwjgl because better browser penetration than shockwave. grapevine says that shockwave is better with asset loading, and more seamless with hardware acceleration, but java is more ubiquitous and it integrates more smoothly with the backend (which is definitely a consideration with an mmo).

feel free to flame me, i'm still looking for opinions.
You should also take into consideration that Director has a serious pricetag and that the good stuff is tightly coupled with 3DSMax, which adds up to a nontrivial investment. I've done quite some things with it, but in the end I have to draw the conclusion that Director/Shockwave failed to take over the net, largely because of the ever expanding capabilities of its little brother Flash.
If you choose flash be prepared to use TCP as UDP is not supported. Also make sure you're good with programming and don't expect amazing visual effects as flash can't handle them. However, if you are really good at culling the rendering you'll be fine.

I'd go with JOGL and Java. I've seen amazing projects made with it, so I know it can handle a lot of processing, even if you go with 2D.
ha, i'd thought about Director's pricetag, but totally spaced 3dsMax's. no blender importing in shockwave?

well, price aside do you think shockwave has any graphics optimization over jogl/lwjgl?

Sirisian, good graphics not too big a priority. Heck, i'll be lucky to compare to runescape, and that game's fugly. the way i see it, browser-based mmo is a hot enough hit to warrant any ol' game, and added visual effects come later. And no TCP/UDP!? wtf? why? and how does dofus get around that i wonder.

I, too, have seen some awesome jogl demos, so i think i agree-- i'll go with java until otherwise convinced.

thanks for the input guys, awesome advice.
read what I wrote again. I said it only has TCP. There is no UDP support.
oh, right. but from my nehe and dx days, seems tcp was the agreed-upon-protocol for mmos anyway?

so check it.. what about WPF or silverlight? as far as wpf goes, 3d with hardware acc. in browser (maybe no gain over jogl, and possibly only loss since it's not x-platform.. but something worth researching).

but here's my reasoning on silverlight. there have been 3d samples, though it's not hardware acc. -- nor is runescape. but silverlight is so new that any game developed within it's beta period would be bound to hit the showcase list. showcase make for many visits, so in this case it might be more difficult to accomplish (might have to develop a good software-rendering solution), but the payoff might higher.

just brainstorming out loud.
Quote:Original post by lefnirex
oh, right. but from my nehe and dx days, seems tcp was the agreed-upon-protocol for mmos anyway?


No MMO uses TCP. Real-time aspects simply aren't reliable enough given the traffic requirements.

Quote:as i'm assuming anything java can do an applet can too (bad assumption?), i think webstart is unecessary and all these demos could be placed into applets. so....


Webstart is the way to go. If you go Java, go all the way. WebStart isn't just applet in a window. It's a whole patching/updating/streaming system. You gain nothing whatsoever by limiting yourself to an applet. You just lose a lot. Unless you intend to provide MS Java compatibility, but then you're stuck with Java 1.0, so forget JOGL and the rest.

Quote: but silverlight is so new that any game developed within it's beta period would be bound to hit the showcase list. showcase make for many visits, so in this case it might be more difficult to accomplish (might have to develop a good software-rendering solution), but the payoff might higher.


Ok, so you spend 6 months working on the 3D engine. Congratulations, you just wasted 6 months. When will you start making the game? When does the beta end? Will you have an apealing, playable and eye-catching game ready by then? Will you consider it worthy as showcase?

The problem with 3D isn't in rendering. It's making assets. How many meshes, textures, models, animations? How will you test them to make sure they meet performance goals?

And when you're done with that, you need to consider the important aspects - style, lighting, various texture fitting issues, etc.

And then, there's still an entire game to make.

Consider this: Runescape didn't make it big because of 3D or Java or running in browser or having good graphics or anything as such. Look into what made Runescape big.

Do you really need 3D, hardware acceleration and whatnot?

This topic is closed to new replies.

Advertisement