{"id":4,"date":"2007-01-31T09:50:00","date_gmt":"2007-01-31T14:50:00","guid":{"rendered":"http:\/\/www.theoworlds.com\/blog\/2007\/01\/nickelodeon-launches-nicktropolis-a-quick-look-under-the-hood.html"},"modified":"2007-01-31T09:50:00","modified_gmt":"2007-01-31T14:50:00","slug":"nickelodeon-launches-nicktropolis-a-quick-look-under-the-hood","status":"publish","type":"post","link":"https:\/\/www.theoworlds.com\/blog\/2007\/01\/nickelodeon-launches-nicktropolis-a-quick-look-under-the-hood.html","title":{"rendered":"Nickelodeon launches Nicktropolis. A quick look &quot;under the hood&quot;."},"content":{"rendered":"<p><a onblur=\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href=\"http:\/\/bp1.blogger.com\/_0W9lPURnTVs\/RcDCxKbjuFI\/AAAAAAAAAAM\/NaLlfRqmKDU\/s1600-h\/nicktropolis_logo.gif\"><img decoding=\"async\" style=\"margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;\" src=\"http:\/\/bp1.blogger.com\/_0W9lPURnTVs\/RcDCxKbjuFI\/AAAAAAAAAAM\/NaLlfRqmKDU\/s320\/nicktropolis_logo.gif\" alt=\"\" id=\"BLOGGER_PHOTO_ID_5026231334014793810\" border=\"0\" \/><\/a><span style=\"\"><o:p><\/o:p><\/span>  <\/p>\n<p class=\"MsoNormal\" style=\"\"><b><span style=\"\"><o:p> <\/o:p><\/span><\/b><\/p>\n<p><span><span>A couple of hours ago Nickelodeon Online launched the Nicktropolis website \u2013 an online 3d chat community for kids. I tested it as soon as it became available.<\/p>\n<p>My interest is easy to explain: 3D worlds, in particular online chats, are one of the things we do well at <a href=\"https:\/\/www.theoworlds.com\/\">Theoworlds<\/a>. We even developed our own isometric engine.<\/p>\n<p>What drove my interest even father is the fact that back in November 2004 Nickelodeon actually purchased the bundle of <a href=\"https:\/\/www.theoworlds.com\/theosdk.html\">TheoSDK<\/a>\/<a href=\"https:\/\/www.theoworlds.com\/theoavatarsdk.html\">TheoAvatar SDK<\/a> products from us. Both products are based on <a href=\"https:\/\/www.theoworlds.com\/tie.html\">our own isometric engine<\/a>. The first one is for building games like \u201c<a href=\"https:\/\/www.theoworlds.com\/games\/os\/\">Office Space<\/a>\u201d.  And <a href=\"https:\/\/www.theoworlds.com\/theoavatarsdk.html\">TheoAvatar SDK<\/a> is for building 3D chats like <a href=\"https:\/\/www.theoworlds.com\/avatar\/\">TheoAvatar<\/a>.<\/p>\n<p>Basically, TheoAvatar SDK  is a fully functional 3D flash chat with basic features.  It comes with a map editor, all the sources, and the documentation. It\u2019s a kit that can help you create your own 3D chat without building it from scratch. A jump-starter, if you will.<\/p>\n<p>Sure, after the sale, I was looking forward to see how Nickelodeon would use it (if at all), but nothing happened after that \u2013 I didn\u2019t see any 3d chats created by Nickolodeon Online.<\/p>\n<p>But here we are, about two years later, in 2007 and Nicktropolis comes out, so my natural question was: Did they use any ideas from our engine or may be they just built something totally new.  I went to their site, registered, entered my \u201cparent\u2019s email address\u201d (well, those things are made for thirteen years old, what do you expect?) and before I knew it &#8211; I was in.<\/p>\n<p>I can\u2019t speculate about how much of TheoAvatar SDK code\/ideas are used there (sure I can, that\u2019s what blogs are for), so I\u2019ll just share my observations.<\/p>\n<p>First thing I looked at was the 3D engine itself. Well, it\u2019s actually an isometric engine \u2013 Flash doesn\u2019t do any real 3D (unlike Shockwave). I\u2019m talking about the main functionality \u2013 the engine that builds the map\/rooms, places objects on it and allows characters to move in pseudo-3D space. You would think they all look the same &#8211; \u201cwell, it\u2019s all similar code, but the graphics are different from one chat to another\u201d. But trust me, when you build your own, you start to notice all the differences. For example, there are tile-based engines, and coordinate-based ones (no, it\u2019s not an official classification, I just invented it). There are engines that support big maps with scrolling visible area and ones with the maps that fit inside the main screen\u2026 And so on\u2026<\/p>\n<p>Nicktropolis uses a tile-based engine, with characters moving in 4-directions (that\u2019s why they move weirdly in a zig-zag manner, when going in non-diagonal directions)\u2026<\/p>\n<p><span style=\"font-weight: bold;\">Nicktropolis:<\/span><br \/><\/span><\/span><a onblur=\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href=\"http:\/\/bp2.blogger.com\/_0W9lPURnTVs\/RcEULKbjuJI\/AAAAAAAAAA8\/5qMRlXyGgCw\/s1600-h\/nick1.jpg\"><img decoding=\"async\" style=\"margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;\" src=\"http:\/\/bp2.blogger.com\/_0W9lPURnTVs\/RcEULKbjuJI\/AAAAAAAAAA8\/5qMRlXyGgCw\/s320\/nick1.jpg\" alt=\"\" id=\"BLOGGER_PHOTO_ID_5026320841133242514\" border=\"0\" \/><\/a><br \/><span><span><span style=\"font-weight: bold;\">TheoAvatar:<\/span><br \/><\/span><\/span><a onblur=\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href=\"http:\/\/bp0.blogger.com\/_0W9lPURnTVs\/RcEUSqbjuKI\/AAAAAAAAABE\/wNE5Df28n9I\/s1600-h\/nick2.jpg\"><img decoding=\"async\" style=\"margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;\" src=\"http:\/\/bp0.blogger.com\/_0W9lPURnTVs\/RcEUSqbjuKI\/AAAAAAAAABE\/wNE5Df28n9I\/s320\/nick2.jpg\" alt=\"\" id=\"BLOGGER_PHOTO_ID_5026320969982261410\" border=\"0\" \/><\/a><br \/><span><span>      There are a lot of similarities, down to the details. Same character customization options (\u201chair\/shirt\/pants\/shoes\u201d), same navigation and even tile size. Sure, those can all be coincidences. Or may be they got some of the ideas from the same sources we did \u2013 there are so many implementations out there. I don\u2019t remember even who we \u201ccloned\u201d initially (all right, we all started by trying to replicate Habbo Hotel). <\/p>\n<p>Below are some details for the technical guys. All the other normal people please feel free to skip it (just jump to \u201cWHATEVER\u201d).<\/p>\n<p><span style=\"font-size:85%;\">There are some details that are more difficult to spot, unless you coded them. For example, the synchronization algorithm. The one that compensates the internet latency, and makes sure that all the users see about the same on their screens. I remember I implemented the Dead Reckoning algorithm in TheoAvatar. It requires less data to be exchanged between clients and, generally, is pretty simple to implement. I also kept the collision-detection between characters (can be turned off) \u2013 some chats just prefer to let the characters walk on top of each other.   <\/p>\n<p>Dead Reckoning works pretty well, as you can see. Sure, the higher the internet lag &#8211;  the bigger the synchronization issues. You end up with a character in one corner of the screen, while in reality, he is in another one already \u2013 the information about his movement came way too late.   TheoAvatar comes with latency emulation mode, that, when turned on, can delay the packages between the clients and the server by a given amount of time.   It comes in pretty handy when you need to test it locally.<\/p>\n<p>Anyway, in cases when data on the client side is \u201cout of sync\u201d \u2013 you see a character in a totally different position than it really should be \u2013 there are a couple of ways to fix it. The usual, \u201cbrutal\u201d way, is to just instantly reset the data, and place the character into the right location (you will see a character just \u201csnapping\u201d instantly to another position). But in TheoAvatar we also support another way \u2013 we modify the speed of the characters in order for them to \u201ccatch up\u201d with their real position. Instead of \u201csnapping\u201d characters around the map, we just accelerate them temporarily without breaking the movement flow. It\u2019s just a nice simple trick.<\/p>\n<p>Then there is the path-finding algorithm \u2013 you can\u2019t build a 3D world without it. Ours is pretty simple. Nothing like A* or anything like that. But it\u2019s blazingly fast and works fine on simple maps. It uses some simple human-like logic \u2013 it will try one direction, and if failed, tries another (well, I meant normal human logic). So there is some typical behavior that is easy to spot when you know where to look.     <\/span><\/p>\n<p>Well, \u201cWHATEVER\u201d, using the teenage jargon\u2026<\/p>\n<p>So all those things seem to work similar in Nicktropolis. Can\u2019t say I\u2019m surprised. Why reinvent the wheel? The whole idea of TheoAvatar SDK is to serve as pre-built wheels for your new car model.<\/p>\n<p>Instead of that, Nickelodeon significantly extended their 3D chat functionality. In fact, it\u2019s a full online community. <\/p>\n<p>Naturally, there is the usual registration, customization, buddy list and all that. Plus, the pretty much standard, shopping layer \u2013 users can buy objects and use them to decorate their own rooms. A nice way to teach a teenager the value of the virtual buck, while training their consumer reflexes.      Besides that, Nickelodeon added various mini games you can play with your characters, themed areas (visit \u201cNicktoons Boulevard\u201d) and just a lot of other features. You just can go ahead and explore. It\u2019s actually, pretty funny.<\/p>\n<p><\/span><\/span><a onblur=\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href=\"http:\/\/bp1.blogger.com\/_0W9lPURnTVs\/RcEUY6bjuLI\/AAAAAAAAABM\/8dIOZMzA-R0\/s1600-h\/nick3.jpg\"><img decoding=\"async\" style=\"margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;\" src=\"http:\/\/bp1.blogger.com\/_0W9lPURnTVs\/RcEUY6bjuLI\/AAAAAAAAABM\/8dIOZMzA-R0\/s320\/nick3.jpg\" alt=\"\" id=\"BLOGGER_PHOTO_ID_5026321077356443826\" border=\"0\" \/><\/a><br \/><span><span>There are some small visual bugs. And I\u2019m not a fan of their graphics (especially the characters). But, generally, it works smoothly. Plus, hey, it\u2019s still a beta!<\/p>\n<p>Sure, building something huge like <\/span><\/span><span><span>Nicktropolis <\/span><\/span><span><span>is not an easy task. I bet they had a big team brainstorming on this one (and, maybe, it took two years). But it doesn\u2019t mean you can\u2019t start something like that on your own. Starting small and then just adding new features is a way to go.<\/p>\n<p>And if you don\u2019t feel like reinventing the wheel, and want to jump straight to the \u201ccooler\u201d features outside walk\/talk \u2013 TheoAvatar SDK could be a solution for you. At least Nickelodeon never complained about their purchase (no, we didn\u2019t move our legal address).<\/p>\n<p>Feel free to email our team at  <a href=\"mailto:info@theoworls.com\">info@theoworls.com<\/a> .<\/p>\n<p>P.S. Nickelodeon, Flash, Shockwave, etc. \u2013 you know who\u2019s trademark are those and who they are registered by.<\/p>\n<p>-Sergei<br \/><\/span><\/span><span style=\"\"><span style=\"\">  <\/span><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A couple of hours ago Nickelodeon Online launched the Nicktropolis website \u2013 an online 3d chat community for kids. I tested it as soon as it became available. My interest is easy to explain: 3D worlds, in particular online chats, are one of the things we do well at Theoworlds. We even developed our own [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[4,6,3,5],"tags":[],"class_list":{"0":"post-4","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-3d-chats","7":"category-flash","8":"category-isometic-engines","9":"category-online-communities"},"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.theoworlds.com\/blog\/wp-json\/wp\/v2\/posts\/4","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.theoworlds.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.theoworlds.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.theoworlds.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.theoworlds.com\/blog\/wp-json\/wp\/v2\/comments?post=4"}],"version-history":[{"count":0,"href":"https:\/\/www.theoworlds.com\/blog\/wp-json\/wp\/v2\/posts\/4\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.theoworlds.com\/blog\/wp-json\/wp\/v2\/media?parent=4"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.theoworlds.com\/blog\/wp-json\/wp\/v2\/categories?post=4"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.theoworlds.com\/blog\/wp-json\/wp\/v2\/tags?post=4"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}