2009scape-website/services/m=devblog/view_post41e4.html
2020-11-24 12:27:36 -05:00

250 lines
15 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/m=devblog/view_post.ws?post_id=5&tag_id=1&page=1 by HTTrack Website Copier/3.x [XR&CO'2010], Sun, 18 Jul 2010 10:51:20 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="../../site/favicon.ico">
<link rel="SHORTCUT ICON" href="../../site/favicon.ico">
<link rel="apple-touch-icon" href="../../site/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 - Mod John A continues development work on the new dwarf quest.">
<meta name="title" content="New Dwarf Quest - Coding and Writing">
<title>New Dwarf Quest - Coding and Writing</title>
<style type="text/css">/*\*/@import url(../../site/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="../../site/css/kbase-6.css" media="all">
<link rel="stylesheet" type="text/css" href="../../site/css/devblog-2.css" media="all">
<link rel="stylesheet" type="text/css" href="../../site/css/sifr-0.css" media="all">
<script type="text/javascript" src="../../site/css/sifr_core-0.js"></script>
<script type="text/javascript">
var Trajan_Pro_Bold = { src: 'http://site/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="../../site/title.html" id="home" class="tl"><span class="ts">Home</span></a></li>
<li class="top"><a id="play" class="tl" href="https://github.com/2009scape/2009Scape/releases/latest/download/2009Scape.jar"
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="https://github.com/2009scape/2009Scape/releases/latest/download/2009Scape.jar" 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="../../site/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="../../site/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="../../site/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="../../site/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="../../site/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="../../site/kbase/guid/rules_of_conduct.html" class="fly"><span>Rules</span></a></li>
<li><a href="../../site/kbase/guid/lore.html" class="fly"><span>Lores</span></a></li>
<li><a href="../../site/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="../../site/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="../../site/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="../../site/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="../../site/kbase/guid/Customer_Support.html" class="fly"><span>Customer Support</span></a></li>
<li><a href="../../site/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="../../site/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="../../site/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="https://github.com/2009scape/2009Scape/releases/latest/download/2009Scape.jar" class="HoverImg" id="playBannerNoad"><img src="../../site/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="../../site/title.html"><img alt="English" title="English" src="../../site/img/main/layout/en.gif" /></a>
<a href="../../site/l%3d1/title.html"><img alt="Deutsch" title="Deutsch" src="../../site/img/main/layout/de.gif" /></a>
<a href="../../site/l%3d2/title.html"><img alt="Fran&ccedil;ais" title="Fran&ccedil;ais" src="../../site/img/main/layout/fr.gif" /></a>
<a href="../../site/l%3d3/title.html"><img alt="Portugu&ecirc;s (BR)" title="Portugu&ecirc;s (BR)" src="../../site/img/main/layout/br.gif" /></a>
</div>
</div>
</div></div>
<div class="navigation">
<div class="location">
<b>Location: </b> <a href="../../site/title.html">Home</a> &gt;
<a href="index75d4.html?tag_id=1&amp;page=1"><span>Developer Blogs</span></a> <span class="divider">&gt;</span>
<span><span>New Dwarf Quest: Coding and Writing</span></span>
</div>
</div>
<div id="content"> <div id="article">
<div class="sectionHeader">
<div class="left">
<div class="right">
<h1 class="plaque_medium">
New Dwarf Quest: Coding and Writing
</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="index75d4.html?tag_id=1&amp;page=1">&lt; Back to archive</a></div>
<h2>
Coding and Writing
<br/>
by <a href="index590c.html?author_id=2">Mod<EFBFBD>John<EFBFBD>A</a> 28-May-2009
</h2>
<div class="content"><p>The implementation phase involves two main tasks. I've got to write the code to make everything work, and I've got to write all the in-game text. One of the exciting things about this job is that the same developer gets to do both of these tasks, whereas in other games companies they might be divided between different people.</p><p></p></div><div class="hr"></div><h3>Coding</h3><div class="content"><p>You may know that RuneScape is written in Java - our company name, Jagex, stands for <span class="uline">JA</span>va <span class="uline">G</span>ames <span class="uline">EX</span>perts. It may come as a surprise, then, that my job as a content developer involves no Java at all.</p><p>We write in a scripting language called RuneScript, which our <span class="strong">Game Engine</span> team has created specifically for making RuneScape content. The Java-based game engine then reads this RuneScript code and makes it all work. RuneScript is constantly being changed and expanded as we add new features to it to allow it to do new things.</p><p></p></div><div class="hr"></div><h3>Writing</h3><div class="content"><p>Writing the in-game text (character dialogue, messages, item descriptions, etc) requires a different set of skills and techniques from writing the code. It is also difficult to know when it is good enough. A piece of code either works or doesn't work, but a piece of dialogue can be quite bad without being wrong in any definite way. It's a delicate balancing act conveying all the necessary information, while also being entertaining and dramatic, and doing all that in the smallest amount of text that I reasonably can.</p><p>Most of the time, I write dialogue straight into the code as I am coding it. For some of the more important passages, I plan them out first in a text file using a screenplay-like format. Whichever technique I use, it's important to then test the dialogue in the game to see how it looks.</p><p>One of the trickiest parts of writing is making sure that each character has their own voice. I have to be aware of that character's personality traits, how they are feeling, and their relationship to whoever they are talking to. This is especially tricky when dealing with existing characters such as Commander Veldaban, who already have some dialogue in the game.</p><p></p></div><div class="hr"></div><h3>Placeholder graphics</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/ra3/placeholder_graphics.jpg"><img src="images/ra3/placeholder_graphics_thumb.jpg" alt="Blue placeholder graphics" /></a></div></div></div></div></div></div></div></div><a href="images/ra3/placeholder_graphics.jpg">Blue placeholder graphics</a></div><div class="content"><p></p><p>The new quest involves NPCs, objects and areas that the <span class="strong">Graphics</span> team haven't created yet. I need to be able to test the content I'm writing, so I'm using placeholder graphics to stand in for them. These placeholder graphics tend to be bright blue and blocky; they're designed to be clearly visible rather than to look good. They're a little like a 'blue screen' in movie-making.</p><p>Once I've got the quest working with these placeholders, the <span class="strong">Graphics</span> team will go through and replace them with the final graphics for the quest. In a later diary, I<>ll be able to show screenshots that give a better idea of what the final quest will look like.</p><p>Right now, the 'bare bones' of the quest are just about playable using these placeholder graphics. It's ugly and obviously incomplete, but it basically works. My task now is to fill in all the gaps and add polish, which is a larger job than getting it working in the first place.</p><p></p></div><div class="hr"></div><h3>Graphical rework</h3><div class="content"><p>Last time, I told you that we were planning to graphically rework all dwarf NPCs, but I didn't know whether or not this rework would go live with the new quest. Since then, it has been decided that the dwarf graphical rework will not be going live with the quest; the quest will go live with old-style dwarf graphics, and the dwarf NPC rework will happen later. This means that the <span class="strong">Graphics</span> team now have time to rework every dwarf in the game, without having to worry about getting them ready in time for this quest.</p></div>
<br class="clear" />
<div id="meta">
Project: <a href="index024d.html?project_id=1">New Dwarf Quest</a><br />
Tags:
<a href="index629a.html?tag_id=3">development</a>, <a href="index1782.html?tag_id=2">dwarf</a>, <a href="index230c.html?tag_id=1">quest</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> under AGPL<br />
Use of this website is subject to our <a href="../../site/terms/terms.html">Terms &amp; Conditions</a> and <a href="../../site/privacy/privacy.html">Privacy Policy</a>.
</div>
<a class="jagexlink" href="../../www.jagex.com/index.html" target="_blank">
<img src="../../site/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/m=devblog/view_post.ws?post_id=5&tag_id=1&page=1 by HTTrack Website Copier/3.x [XR&CO'2010], Sun, 18 Jul 2010 10:51:20 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"><!-- /Added by HTTrack -->
</html>