2009scape-website/website-HTML/services.runescape.com/m=devblog/view_post984d.html

250 lines
16 KiB
HTML
Raw Blame History

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Mirrored from services.runescape.com/m=devblog/view_post.ws?post_id=7&page=7 by HTTrack Website Copier/3.x [XR&CO'2010], Sun, 18 Jul 2010 10:52:30 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"><!-- /Added by HTTrack -->
<head>
<link rel="icon" type="image/vnd.microsoft.icon" href="../../www.runescape.com/favicon.ico">
<link rel="SHORTCUT ICON" href="../../www.runescape.com/favicon.ico">
<link rel="apple-touch-icon" href="../../www.runescape.com/img/mobile.png">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Language" content="
en,
English
">
<meta name="keywords" content="RuneScape Developers' Blogs">
<meta name="description" content="RuneScape Developers' Blogs - Dungeon maps coming soon...">
<meta name="title" content="World Map Update - Dungeon Maps">
<title>World Map Update - Dungeon Maps</title>
<style type="text/css">/*\*/@import url(../../www.runescape.com/css/global-34.css);/**/</style>
<script type="text/javascript" src="../../www.jagex.com/js/jquery/jquery_1_3_2.js"></script>
<script type="text/javascript">
$(function(){
$("#play, #playExisting, #playBannerNoad").each(function(){ this.href += "?j=1"; })
})
</script>
<link rel="stylesheet" type="text/css" href="../../www.runescape.com/css/kbase-6.css" media="all">
<link rel="stylesheet" type="text/css" href="../../www.runescape.com/css/devblog-2.css" media="all">
<link rel="stylesheet" type="text/css" href="../../www.runescape.com/css/sifr-0.css" media="all">
<script type="text/javascript" src="../../www.runescape.com/css/sifr_core-0.js"></script>
<script type="text/javascript">
var Trajan_Pro_Bold = { src: 'http://www.runescape.com/img/sifr/Trajan_Pro_Bold.swf' };
sIFR.activate(Trajan_Pro_Bold);
sIFR.replace(Trajan_Pro_Bold, {
selector: 'h2',
css: '.sIFR-root { font-weight: bold; font-size: 23px; text-align: center; opacity: 0.95; leading: -1; color: #411f13; }'
+ ', .sIFR-root a { color: #411f13; }'
+ ', .sIFR-root a:hover { color: #411f13; }',
wmode: 'transparent'
});
</script>
</head>
<body id="nav" class="bodyBackground">
<a name="top"></a>
<div class="bodyBackgroundHead">
<div id="menubox">
<ul id="menus">
<li class="top"><a href="../../www.runescape.com/title.html" id="home" class="tl"><span class="ts">Home</span></a></li>
<li class="top"><a id="play" class="tl" href="../../www.runescape.com/game.html"
onclick="try{pageTracker._trackPageview('/play_game/menu/top')}catch(x){}; try{_pageTracker._trackPageview('/play_game/menu/top')}catch(x){}"
><span class="ts">Play Now</span><!--[if gt IE 6]><!--></a><!--<![endif]-->
<!--[if lte IE 6]><table><tr><td><![endif]-->
<ul>
<li><a href="../../secure.runescape.com/m%3dcreate/index.html" class="fly"><span>New Users</span></a></li>
<li><a href="../../www.runescape.com/game.html" id="playExisting"
onclick="try{pageTracker._trackPageview('/play_game/menu/existing')}catch(x){}; try{_pageTracker._trackPageview('/play_game/menu/existing')}catch(x){}"
class="fly"><span>Existing Users</span></a></li>
<li><a href="../../www.runescape.com/options.html" class="fly"><span>Java Options</span></a></li>
</ul>
<!--[if lte IE 6]></td></tr></table></a><![endif]-->
</li>
<li class="top"><a id="account" class="tl" href="../../www.runescape.com/account_management.html"><span class="ts">Account</span><!--[if gt IE 6]><!--></a><!--<![endif]-->
<!--[if lte IE 6]><table><tr><td><![endif]-->
<ul>
<li><a href="../../secure.runescape.com/m%3dweblogin/members/members.html" class="fly"><span>Upgrade Your Account</span></a></li>
<li><a href="../../secure.runescape.com/m%3dcreate/index-2.html" class="fly"><span>Create New Account</span></a></li>
<li><a href="../../www.runescape.com/account_management.html" class="fly"><span>Account Management</span></a></li>
</ul>
<!--[if lte IE 6]></td></tr></table></a><![endif]-->
</li>
<li class="top"><a id="guide" class="tl" href="../../www.runescape.com/kbase/guid/manual.html"><span class="ts">Game Guide</span><!--[if gt IE 6]><!--></a><!--<![endif]-->
<!--[if lte IE 6]><table><tr><td><![endif]-->
<!--[if lte IE 6]><iframe src=""></iframe><![endif]-->
<ul>
<li><a href="../../www.runescape.com/kbase/guid/manual.html" class="fly"><span>Manual</span></a></li>
<li><a href="../../secure.runescape.com/m%3dweblogin/loginform802b.html" class="fly"><span>QuestHelp</span></a></li>
<li><a href="../m%3ditemdb_rs/frontpage.html" class="fly"><span>Grand Exchange</span></a></li>
<li><a href="../../www.runescape.com/kbase/guid/rules_of_conduct.html" class="fly"><span>Rules</span></a></li>
<li><a href="../../www.runescape.com/kbase/guid/lore.html" class="fly"><span>Lores</span></a></li>
<li><a href="../../www.runescape.com/splash.html" class="fly"><span>What is RuneScape?</span></a></li>
</ul>
<!--[if lte IE 6]></td></tr></table></a><![endif]-->
</li>
<li class="top"><a id="community" class="tl" href="../m%3dforum/forums.html"><span class="ts">Community</span><!--[if gt IE 6]><!--></a><!--<![endif]-->
<!--[if lte IE 6]><table><tr><td><![endif]-->
<!--[if lte IE 6]><iframe src=""></iframe><![endif]-->
<ul>
<li><a href="../m%3dforum/forums.html" class="fly"><span>Forums</span></a></li>
<li><a href="../m%3dhiscore/hiscores.html" class="fly"><span>Hiscores</span></a></li>
<li><a href="../../www.runescape.com/kbase/guid/Player_Submissions.html" class="fly"><span>Player Submissions</span></a></li>
<li><a href="../m%3dadventurers-log/index.html" class="fly"><span>Adventurer's Log</span></a></li>
<li><a href="../m%3dpoll/index.html" class="fly"><span>Polls</span></a></li>
<li><a href="../../www.runescape.com/kbase/guid/Downloads_and_Wallpapers.html" class="fly"><span>Downloads &amp; Wallpapers</span></a></li>
</ul>
<!--[if lte IE 6]></td></tr></table></a><![endif]-->
</li>
<li class="top"><a id="help" class="tl" href="../../www.runescape.com/kbase/guid/Customer_Support.html"><span class="ts">Help</span><!--[if gt IE 6]><!--></a><!--<![endif]-->
<!--[if lte IE 6]><table><tr><td><![endif]-->
<!--[if lte IE 6]><iframe src=""></iframe><![endif]-->
<ul>
<li><a href="../../www.runescape.com/kbase/guid/Customer_Support.html" class="fly"><span>Customer Support</span></a></li>
<li><a href="../../www.runescape.com/loginapplet/loginappletb4b5.html?mod=www&amp;dest=loginapplet/loginapplet.ws?mod=accountappeal&amp;dest=passwordchoice.ws" class="fly"><span>Password Recovery</span></a></li>
<li><a href="../../www.runescape.com/loginapplet/loginappletef7e.html?mod=www&amp;dest=loginapplet/loginapplet.ws?mod=accountappeal&amp;dest=lockchoice.ws" class="fly"><span>Locked Account Recovery</span></a></li>
<li><a href="../../secure.runescape.com/m%3dweblogin/loginform14d4.html?mod=offence-appeal&amp;dest=index.ws" class="fly"><span>Appeal Bans &amp; Mutes</span></a></li>
<li><a href="../m%3dbugtracker_v4/index.html" class="fly"><span>Submit a Bug Report</span></a></li>
<li><a href="../../www.runescape.com/parents.html" class="fly"><span>Parents' Guide</span></a></li>
</ul>
<!--[if lte IE 6]></td></tr></table></a><![endif]-->
</li>
<li class="top"><a href="../../secure.runescape.com/m%3dweblogin/loginform53bb.html?mod=www&amp;ssl=0&amp;dest=index.ws" id="login" class="tl"><span class="ts">Log In</span></a></li>
</ul>
<br class="clear" />
</div>
<div id="bannerNoad">
<a href="../../www.runescape.com/game.html" class="HoverImg" id="playBannerNoad"><img src="../../www.runescape.com/img/main/skins/default/playnowc20a.png?12" alt="Play Now" /></a>
</div>
<div id="scroll">
<div id="head"><div id="headBg">
<div id="langAndLogin">
<div id="lang">
<a href="../../www.runescape.com/title.html"><img alt="English" title="English" src="../../www.runescape.com/img/main/layout/en.gif" /></a>
<a href="../../www.runescape.com/l%3d1/title.html"><img alt="Deutsch" title="Deutsch" src="../../www.runescape.com/img/main/layout/de.gif" /></a>
<a href="../../www.runescape.com/l%3d2/title.html"><img alt="Fran&ccedil;ais" title="Fran&ccedil;ais" src="../../www.runescape.com/img/main/layout/fr.gif" /></a>
<a href="../../www.runescape.com/l%3d3/title.html"><img alt="Portugu&ecirc;s (BR)" title="Portugu&ecirc;s (BR)" src="../../www.runescape.com/img/main/layout/br.gif" /></a>
</div>
</div>
</div></div>
<div class="navigation">
<div class="location">
<b>Location: </b> <a href="../../www.runescape.com/title.html">Home</a> &gt;
<a href="index235c.html?page=7"><span>Developer Blogs</span></a> <span class="divider">&gt;</span>
<span><span>World Map Update: Dungeon Maps</span></span>
</div>
</div>
<div id="content"> <div id="article">
<div class="sectionHeader">
<div class="left">
<div class="right">
<h1 class="plaque">
World Map Update: Dungeon Maps
</h1>
</div>
</div>
</div>
<div class="section">
<div class="article">
<div class="topshadow">
<div class="bottombordershad">
<div class="leftshadow">
<div class="rightshadow">
<div class="leftcorner">
<div class="rightcorner">
<div class="bottomleftshad">
<div class="bottomrightshad">
<div id="post">
<div class="devblog">
<div class="devblogHead">
<div class="devblogFoot">
<div id="archives"><a href="index235c.html?page=7">&lt; Back to archive</a></div>
<h2>
Dungeon Maps
<br/>
by <a href="index58ad.html?author_id=4">Mod<EFBFBD>Ash</a> 02-Apr-2009
</h2>
<div class="content"><p>Hello. I'm <span class="strong">Mod Ash</span>, one of the RuneScape Content Developers. In this diary I'll be writing about a forthcoming update to the in-game world map: Dungeon Maps.<br />Underneath Yanille</p><p></p></div><div class="hr"></div><h3>Development</h3><div class="imgright"><div class="topbord"><div class="bottombord"><div class="leftbord"><div class="rightbord"><div class="toplcorn"><div class="toprcorn"><div class="bottomlcorn"><div class="bottomrcorn"><a href="images/world_map/image1.jpg"><img src="images/world_map/image1_thumb.jpg" alt="Underneath Yanille" /></a></div></div></div></div></div></div></div></div><a href="images/world_map/image1.jpg">Underneath Yanille</a></div><div class="content"><p></p><p>It doesn't sound complicated. At first glance, it looks like we just need to define a load more maps, add a menu for switching between them, maybe let players click on a dungeon icon to open the map of that dungeon... Easy, huh?</p><p>Well, it<69>s not quite that easy. The unusual thing about RuneScape is that it's a Java game developed by people who don't use Java. <span class="strong">Andrew</span> created a scripting language ("RuneScript") for Content Developers to use. His compiler turns the script into Java code. That's really great for my team, since it means we can create the content we design without needing to delve into the Java, but it also means we can't do things that RuneScript doesn't currently support.</p><p><span class="strong">Andrew</span>'s <span class="strong">Game Engine</span> team (<span class="strong">Mod Michael</span>, <span class="strong">Mod Rushton</span>, <span class="strong">Mod Slake</span> and <span class="strong">Mod Chris E</span>) are constantly adding new features to the scripting language and overhauling older bits of the game engine, such as the recent route-finding update. Recently, <span class="strong">Mod Chris E</span> has been creating new game engine features to let me produce this Dungeon Maps update.<br /><ul><li>RuneScape's mapping hasn't always been laid out consistently. For example, Waterbirth Island's dungeon is spread across three separate areas of the game's space, yet we need to display it on one single map. <span class="strong">Mod Chris E</span> had to update the map definition systems to let me define maps composed of different areas all joined together.</li><li>Sometimes we need to show separate levels of a dungeon. At the moment, the world map just presents RuneScape's surface - its ground floor. It doesn<73>t show upstairs or downstairs, but that's no good for areas like the Lair of Tarn Razorlor, which uses three levels. <span class="strong">Mod Chris E</span> had to make the map definition systems handle that. But now that maps cared about which level is which, I had to update the "You are here" arrow to handle players standing on a level that isn<73>t currently mapped!</li><li><span class="strong">Mod Chris E</span> also had to rewrite the way map icons work in order to let me make map icons that do stuff when you click on them. I'm using them for making links between different maps, such as the link between the maps of Lumbridge Swamp Caves and Dorgesh-Kaan.</li></ul></p><p></p></div><div class="hr"></div><h3>Testing</h3><div class="imgleft"><div class="topbord"><div class="bottombord"><div class="leftbord"><div class="rightbord"><div class="toplcorn"><div class="toprcorn"><div class="bottomlcorn"><div class="bottomrcorn"><a href="images/world_map/image2.jpg"><img src="images/world_map/image2_thumb.jpg" alt="Brimhaven Dungeon map" /></a></div></div></div></div></div></div></div></div><a href="images/world_map/image2.jpg">Brimhaven Dungeon map</a></div><div class="content"><p></p><p>All these new game engine features needed a considerable amount of testing, tweaking, adjusting, etc. For example, now that I'd got dozens of unique dungeon icons that linked to dungeon maps, I needed to ask <span class="strong">Mod Chris E</span> for more engine support. I wanted to make all these unique dungeon icons flash simultaneously when you click on the picture of a normal dungeon icon in the key.</p><p>Anyway, that's mostly done now, and the rest of the project is progressing nicely. I'm aiming to launch nearly thirty new maps as a start, focusing on training dungeons rather than quest-specific areas. Mapping all the stairways in the Lair of Tarn Razorlor and the portals in the Chaos Tunnels was quite a fiddly job! As a little bonus, I've added a button for toggling the "You are here" arrow on or off.</p><p>Finally, <span class="strong">Mod Wayne</span> and <span class="strong">Mod Marx0i0</span> are working on graphical improvements to the dungeons that are being mapped. Many of these dungeons were never designed to be seen from above, so their edges looked kinda tatty. When they<65>re done, we'll send the project off for testing. Hopefully, it'll be with you soon and you'll find it helpful.</p></div>
<br class="clear" />
<div id="meta">
Project: <a href="indexf407.html?project_id=2">World Map Update</a><br />
Tags:
<a href="index629a.html?tag_id=3">development</a>, <a href="index56f0.html?tag_id=10">dungeon</a>, <a href="indexa017.html?tag_id=9">world map</a></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br class="clear"/>
</div>
<div id="footer">
<div class="contain">
<div class="footerdesc">
This website and its contents are copyright <20> 1999 - 2010 Jagex Ltd<br />
Use of this website is subject to our <a href="../../www.runescape.com/terms/terms.html">Terms &amp; Conditions</a> and <a href="../../www.runescape.com/privacy/privacy.html">Privacy Policy</a>.
</div>
<a class="jagexlink" href="../../www.jagex.com/index.html" target="_blank">
<img src="../../www.runescape.com/img/main/layout/jagexc20a.png?12" alt="Jagex" />
</a>
<br class="clear"/>
</div>
<br class="clear"/>
</div>
</div>
</div>
<script type="text/javascript">
document.write(unescape("%3Cscript src='"+(("https:"==document.location.protocol)?"https://ssl":"http://www")+".google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var _pageTracker=_gat._getTracker("UA-2058817-15");
_pageTracker._setDomainName(".runescape.com");
_pageTracker._trackPageview();
}catch(x){}
</script>
<script type="text/javascript">
try {
var pageTracker=_gat._getTracker("UA-2058817-2");
pageTracker._setDomainName(".runescape.com");
pageTracker._trackPageview();
}catch(x){}
</script>
</body>
<!-- Mirrored from services.runescape.com/m=devblog/view_post.ws?post_id=7&page=7 by HTTrack Website Copier/3.x [XR&CO'2010], Sun, 18 Jul 2010 10:52:30 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"><!-- /Added by HTTrack -->
</html>