200 likes | 342 Views
Making a Web-Based MMO in Your Attic With Shockwave. Introduction. 3D browser based fantasy MMO created in Shockwave Very small, independent cottage industry developer no funding started as a hobby attracts over a million unique monthly visitors revenue generated from banner ads
E N D
Introduction • 3D browser based fantasy MMO created in Shockwave • Very small, independent cottage industry developer • no funding • started as a hobby • attracts over a million unique monthly visitors • revenue generated from banner ads • independent of large portals or publishers • MaidMarian.com and SherwoodDungeon.com represents • about 60% of traffic • Other multiplayer games: Tank Ball, Club Marian, Moon Base • (One community with multiple experiences)
Sherwood Dungeon • casual / social fantasy MMO • traditional hack-n-slash PVE with influences from Rogue • no classes / no level cap • infinitely deep dungeon • six themed islands • quests and merchants • crafting system that uses runes and scrolls • no emphasis on competition between players • XP levels don’t affect PVP • pets and horses that purchased for real money • (*new feature released this week)
Shockwave • Shockwave Penetration June 2008 • 59.2% in mature markets • U.S., Canada, UK, France, Germany and Japan • 34.2% in emerging markets • China, S.Korea, Russia, India and Taiwan • Flash's forgotten older bastard step-brother • Flash doesn't do 3D (3D add on’s for Flash still fall short) • Shockwave penetration rate higher than most other 3D browser technologies (like Unity) • Java’s 3D technology also getting good in recent years • worth considering
Shockwave 3D • Mac (Intel) and Windows (Vista / XP) • DirectX7, DirectX9 and OpenGL • Lingo or JavaScript syntax for scripting • Solid first generation T&L 3D engine • No pixel / vertex shaders • No “next-gen” rendering features • Exporters available from Maya / 3DS Max / Lightwave etc. • I use Maya 7.0 • Excellent lossy compression scheme for: • Meshes • Skinned meshes with bones • Textures with embedded alpha • Animation • Very small resulting file sizes
Shockwave 3D – cont. • Dynamic Lighting • Directional, Ambient, Spot, Point lights • CBV Lighting (baked lighting) is not supported by exporters but is accessible from code • Textures • variety of RGB formats (8888, 4444, 5551, etc.) • text, video, flash, vector, bitmaps can be converted into textures at run-time • Director’s Imaging Lingo very fast and useful for 3D • blur, bevel, glow, drop shadow, HSV, perlin noise • added to Director 11
Shockwave 3D – cont. • Shaders • specular, emissive, shininess, diffuse, ambient attributes • Up to 8 layers of texture (Blend, multiply, subtract, replace) • useDiffuseWithTexture very useful in Sherwood • Model resources (meshes) • weighted skin with bones or static meshes • Sherwood Avatars: 3500 polys (tris) • 4 Skin weights, 26 bones, ~1000 anim frames • create your own model resources with lingo • ( Height mapping / CBV lighting ) • Groups and Models (easy instancing)
Shockwave 3D – cont. • Automatic LOD Modifier (Level of Detail) • Progressive Mesh reduces polygon count of a model based on distance from the 3D camera • Great for performance • Mesh Deform Modifier • Allows you to alter an existing model resource’s geometry at runtime. (Vertex and normal information) • Ray Casting • Works well, but you need to optimize • Don’t cast straight down - vector(.001,-.999,.001) • If using Ageia PhysX Xtra, use it’s raycaster instead • potentially 5-10 times faster
Shockwave 3D – cont. • Vector Math Stuff • normalize, pointAt, dotProduct, angleBetween, crossProduct, distanceTo, getWorldTransform, etc. • Cameras • All the usual stuff plus: • Overlays (HUD User interface elements) • worldSpaceToSpriteSpace • Animation • Bones player • Animation Blending • Play lists and animation queue • Undocumented features • Director / Shockwave has many • member().fileSaveMode=#saveAll • Useful for art builds and optimization routines
Physics Xtra • Ageia PhysX replaces Havok Xtra for Director 11 • Xtras install automatically but not part of initial install. • Physics, MMOs and Latency – very tricky combination • I faked it with Tank Ball, but with compromises • Rigid bodies / Collision detection • static concave, convex hull, box, sphere • Terrains • Constraints • Springs • Linear Joint or Constraint • Angular Joint or Constraint • 6 DOF joints • RayCasting
Multi User Solutions • MUS Xtra (Client side Multiuser Xtra) • Binary protocol developed for the SMUS • Supports Blowfish-like packet encryption • Supports Peer-to-Peer connections • SMUS (Shockwave Multiuser Server) • discontinued with Director MX 2004, but still used • Server side scripting and database functionality • 2000 simultaneous players – but can be slow • Hacker vulnerable for larger games • Smart Fox Server • Uses embedded Flash movie • Most popular solution lately - Worth a serious look • MMMUS (Maid Marian Multiuser Server – our solution) • in-house proprietary solution • SMUS-like, but written in C# (. net) • SQL Server 2005 / Microsoft Membership libs • Hacker resistant (packet validation, anti-flood)
Sherwood Tech Stuff • How does one person make enough content for an MMO? • How do you keep it small enough to run in the browser? • Our approach? • Procedural Content or • Forced seed randomized content • Use the random seed like a database index for: • Dungeon digger / Maze generator • Randomized height map / Island generator • Quest generator / Item generator, etc. • Same approach as Rogue-type games used in the 80s • Faster than loading or streaming • virtually instant retrieval of a zone or area • Sherwood Dungeon Shockwave client only 2.7mb • less than 2 floppy disks
Tech Stuff cont. • Procedural / Randomized Content cont. • Forces you into a different workflow • Updates to generators ripple through all content • (As a former Technical Art Director, I love this.) • Allow you to stay ahead of users • Best when smartly layered with designed content • (I’m not so good at this yet) • A-Star path finding data generated at the same time • Grey Scale Textures • 90% of Sherwood textures are gray scale / BW with color applied at runtime • Allows for constant reuse
Business Model • We’re fiercely independent ( too independent ?) • No work for hire, No licensing • IP is retained - No publisher or outside funding • But we’re nice about it and will talk to anyone • Not really into that “angry independent” thing. • Banner ads • Under game ads perform at 4% click through • Reasonably good CPMs • Various ad networks • No in house sales • Any site welcome to embed Sherwood with IFRAME • As long as they show our ads • 100s of smaller game sites collectively represent a viral distribution network • Linking site can monetize other space on the page • New! Launching Pets and Mounts in Sherwood this month. • Sold on an RMT model ($5 a pet for one years use) • This is a BIG change for us ! (baby steps first)
Sherwood History • Started as a hobby in 2000 (Sherwood launched 2003) • Inspired by Dungeons & Dreamers • Richard Garriot and other solo game developers • No master feature list or minimum scope • Only knew what the next feature was • vague idea of what I wanted • Players knew from day one that this was an experiment • kept coming back just to see what I added • traffic grew organically • First guild appeared in 2003 (Black Death) • No guild features in the game – emerged organically • Sherwood full of guilds, clans, orders • Many guild sites, trick and tips, fan sites • Players complained when swords starting doing damage • more about "Play or Pretend fighting“
Questions? • Gene@MMORPG.ca • MaidMarian.com • SherwoodDungeon.com