2009scape-website/site/kbase/guid/diary_dwarf04.html
2020-11-24 12:27:36 -05:00

366 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 site/kbase/guid/diary_dwarf04 by HTTrack Website Copier/3.x [XR&CO'2010], Sun, 18 Jul 2010 10:50:15 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="../../favicon.ico">
<link rel="SHORTCUT ICON" href="../../favicon.ico">
<link rel="apple-touch-icon" href="../../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="dev,development,diary,new,dwarf,quest,red,axe,sequel">
<meta name="description" content="Mod John A reveals his next project after concluding the goblin quest series.">
<meta name="title" content="RuneScape - MMORPG - New Dwarf Quest: Part 4 - Coding and Writing">
<title>RuneScape - MMORPG - New Dwarf Quest: Part 4 - Coding and Writing</title>
<style type="text/css">/*\*/@import url(../../css/global-34.css);/**/</style>
<script type="text/javascript" src="../../../www.jagex.com/js/jquery/jquery_1_4_2.js"></script>
<script type="text/javascript">
$(function(){
$("#play, #playExisting, #playBannerNoad").each(function(){ this.href += "?j=1"; })
})
</script>
<style type="text/css">/*\*/@import url(../../css/kbase-6.css);/**/</style>
<script type="text/javascript" src="../../css/kbsearchfill-0.js"></script>
<script type="text/javascript">
new_subcat=add_subcat(4, 5, "Postbag from the Hedge", -1 == 5);new_subcat=add_subcat(4, 6, "Players' Gallery", -1 == 6);new_subcat=add_subcat(4, 19, "God letters", -1 == 19);new_subcat=add_subcat(775, 892, "How do I get started?", -1 == 892);new_subcat=add_subcat(775, 798, "Controls", -1 == 798);new_subcat=add_subcat(775, 795, "Combat", -1 == 795);new_subcat=add_subcat(775, 776, "Skills", -1 == 776);new_subcat=add_subcat(775, 7, "Quests", -1 == 7);new_subcat=add_subcat(775, 1, "Achievement Diary", -1 == 1);new_subcat=add_subcat(775, 10, "Activities", -1 == 10);new_subcat=add_subcat(775, 38, "Distractions and Diversions", -1 == 38);new_subcat=add_subcat(775, 831, "Miscellaneous Guides", -1 == 831);new_subcat=add_subcat(775, 881, "Area Guides", -1 == 881);new_subcat=add_subcat(20, 32, "A New Look RuneScape: Part 1", -1 == 32);new_subcat=add_subcat(20, 21, "Graphics Team - NPC Improvement Project", -1 == 21);new_subcat=add_subcat(9, 127, "Billing", -1 == 127);new_subcat=add_subcat(9, 126, "Technical", -1 == 126);new_subcat=add_subcat(9, 827, "Safety & Security Guidelines", -1 == 827);new_subcat=add_subcat(9, 872, "Other", -1 == 872);
</script>
<meta name="language" content="en, de, fr">
<meta name="description" content="Mod John A reveals his next project after concluding the goblin quest series.">
<style type="text/css">
.links {
font-style: italic;
}
#ddLogo {
float: left;
margin-left: 1px;
}
#ddBanner {
margin: 1em 0;
}
.subarticleHeader {
margin: 1em 0 4px;
border: 1px solid #ccbe99;
text-align: center;
}
.bigquote { font-size:medium; font-weight:bold; font-style:italic; text-align:left; }
.mod { font-weight:bold; }
.team { font-weight:bold; }
.quote { font-style:italic; }
.quest { font-style:italic; }
.caption { font-size:85%; font-weight:bold; }
</style>
</head>
<body id="navcommunity" class="bodyBackground">
<a name="top"></a>
<div class="bodyBackgroundHeadAdvert">
<div id="headAdvert">
<iframe name="Advert" src="../../../services/m%3dadvert/banner5052.html?size=730" allowtransparency="true" width="766" height="96" scrolling="no" frameborder="0"></iframe>
<script type="text/javascript">
setTimeout(function() {
var url = "http" +
(/https:/.test(document.location.href) ? "s" : "") +
"://beacon.scorecardresearch.com/scripts/beacon.dll" +
"?c1=8&c2=6035824&c3=1271511541440201100" +
escape(document.location.href) +
"&c8=" + escape(document.title) +
"&c9=" + escape(document.referrer) +
"&c10=" + escape(screen.width+'x'+screen.height) +
"&rn=" + (new Date()).getTime();
var i = new Image();
i.src = url;
}, 1);
</script>
<noscript>
<img src="https://beacon.scorecardresearch.com/scripts/beacon.dll?c1=8&amp;c2=6035824&amp;c3=1271511541440201100&amp;x=NOJAVASCRIPT" alt="" />
</noscript>
</div>
<div id="menubox">
<ul id="menus">
<li class="top"><a href="./../../../index.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="if(!this.j){this.href+='?j=1';this.j=true;}"><span class="ts">Play Now</span></a>
<ul>
<li><a href="./../../../secure.runescape.com/m=create/index.html" class="fly"><span>New Users</span></a></li>
<li><a href="https://github.com/2009scape/2009Scape/releases/latest/download/2009Scape.jar"
onclick="if(!this.j){this.href+='?j=1';this.j=true;}" class="fly"><span>Existing
Users</span></a></li>
</ul>
</li>
<li class="top"><a id="account" class="tl" href="./../../../404.html"><span class="ts">Account</span></a>
<ul>
<li><a href="./../../../404.html" class="fly"><span>Upgrade Your Account</span></a></li>
<li><a href="./../../../secure.runescape.com/m=create/index.html" class="fly"><span>Create New
Account</span></a></li>
<li><a href="./../../../404.html" class="fly"><span>Account Management</span></a></li>
</ul>
</li>
<li class="top"><a id="guide" class="tl" href="./../../../site/kbase/guid/manual.html"><span class="ts">Game
Guide</span></a>
<ul>
<li><a href="./../../../site/kbase/guid/manual.html" class="fly"><span>Manual</span></a></li>
<li><a href="./../../../site/kbase/guid/quests0.html" class="fly"><span>QuestHelp</span></a></li>
<li><a href="./../../../404.html" class="fly"><span>Grand Exchange</span></a></li>
<li><a href="./../../../404.html" class="fly"><span>Rules</span></a></li>
<li><a href="./../../../404.html" class="fly"><span>Lores</span></a></li>
<li><a href="./../../../404.html" class="fly"><span>What is RuneScape?</span></a></li>
</ul>
</li>
<li class="top"><a id="community" class="tl" href="./../../../404.html"><span class="ts">Community</span></a>
<ul>
<li><a href="./../../../404.html" class="fly"><span>Forums</span></a></li>
<li><a href="./../../../404.html" class="fly"><span>Hiscores</span></a></li>
<li><a href="./../../../404.html" class="fly"><span>Player Submissions</span></a></li>
<li><a href="./../../../404.html" class="fly"><span>Adventurer's Log</span></a></li>
<li><a href="./../../../404.html" class="fly"><span>Polls</span></a></li>
<li><a href="./../../../404.html" class="fly"><span>Downloads &
Wallpapers</span></a></li>
</ul>
</li>
<li class="top"><a id="help" class="tl" href="./../../../404.html"><span class="ts">Help</span></a>
<ul>
<li><a href="./../../../404.html" class="fly"><span>Customer Support</span></a></li>
<li><a href="./../../../404.html"
class="fly"><span>Password Recovery</span></a></li>
<li><a href="./../../../404.html"
class="fly"><span>Locked Account Recovery</span></a></li>
<li><a href="./../../../404.html" class="fly"><span>Appeal Bans & Mutes</span></a></li>
<li><a href="./../../../404.html" class="fly"><span>Submit a Bug Report</span></a></li>
<li><a href="./../../../404.html" class="fly"><span>Parents' Guide</span></a></li>
</ul>
</li>
<li class="top"><a href="https://github.com/2009scape/" id="login" class="tl"><span class="ts">Source
Code</span></a></li>
</ul>
<br class="clear" />
</div>
<div id="scroll">
<div id="head"><div id="headBg">
<div id="langAndLogin">
</div>
<div class="navigation">
<div class="location">
<b>Location: </b> <a href="../../index.html">Home</a> &gt;
<a href="dev_diary-2.html">Development Diaries</a> &gt; New Dwarf Quest: Part 4 - Coding and Writing<br />
</div>
</div>
</div></div>
<div id="content">
<div id="article">
<div class="sectionHeader">
<div class="left">
<div class="right">
<h1 class="plaque_medium">
New Dwarf Quest: Part 4 - Coding and Writing
</h1>
</div>
</div>
</div>
<div class="section">
<div class="article_theme_1">
<div class="article">
<div class="topshadow">
<div class="bottomborder">
<div class="leftshadow">
<div class="rightshadow">
<div class="leftcorner">
<div class="rightcorner">
<div class="bottomleft">
<div class="bottomright">
<div class="links"></div><br/>
<img id="ddBanner" style="margin:1em auto; display:block;" src="../../img/varrock/devdiary/diaryDwarf/banner.jpg" alt="Development Diary - New Dwarf Quest" />
<div class="headings">
<span class="headertitleleft"><span class="headertitleright">28th May 2009 - Coding and Writing</span></span>
</div>
<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 style="text-align: center;"><b>Coding</b></p>
<p>You may know that RuneScape is written in Java - our company name, Jagex, stands for <u>JA</u>va <u>G</u>ames <u>EX</u>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="team">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 style="text-align: center;"><b>Writing</b></p>
<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 style="text-align: center;"><b>Placeholder graphics</b></p>
<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">
<img src="../../img/varrock/devdiary/diaryDwarf/placeholder_graphics.jpg" alt=""/ width=320 height=240>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
Blue placeholder graphics
</div>
<p>The new quest involves NPCs, objects and areas that the <span class="team">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 <20> 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="team">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>
<div class="clear"></div>
<p style="text-align: center;"><b>Graphical rework</b></p>
<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="team">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>
<p><b><i>Mod John A<br>RuneScape Content Developer</i></b></p>
<div class="clear"></div>
<div class="backtotop"><a href="#top">Back to the top</a></div>
<br/>
<center><img src="../../img/main/kbase/hr.png" alt=""/></center>
<table class="bottomlinks">
<tr>
</tr>
<tr>
<td class="bot"><p><div class="bold">More articles in
<a href="dev_diary-2.html">Development Diaries</a>
</div></p>
<ul class="bold">
<li>
<b>New Dwarf Quest: Part 4 - Coding and Writing</b>
</li>
<li>
<a href="diary_emergent.html">Tools for Games</a>
</li>
<li>
<a href="diary_runenergy02.html">Run Energy: Part 2 - Test'n Musicians</a>
</li>
<li>
<a href="diary_runenergy.html">Run Energy: Part 1 - Rest and Musicians</a>
</li>
<li>
<a href="diary_fairy02.html">Fairy Graphics: Part 2 - Modelling</a>
</li>
</ul>
</div>
</td>
</tr>
<tr>
<td colspan="2">
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="search">
<div class="searchtop">
<div class="bottombordershad">
<div class="leftshadow">
<div class="rightshadow">
<div class="topleft">
<div class="topright">
<div class="bottomleftshad">
<div class="bottomrightshad">
<div class="searchtext">
<p style="text-align: center;font-size:11px;font-weight:bold; margin-bottom: 0px;"><img src="https://runescape.wiki/images/f/f4/Red_partyhat.png?7ed30"></p>
</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="../../terms/terms.html">Terms &amp; Conditions</a> and <a href="../../privacy/privacy.html">Privacy Policy</a>.
</div>
<a class="jagexlink" href="../../../www.jagex.com/index.html" target="_blank">
<img src="../../img/main/layout/jagexc20a.png?12" alt="Jagex" />
</a>
<br class="clear"/>
</div>
<br class="clear"/>
</div>
</div>
</div>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol)?"https://ssl.":"http://www.");
document.write(unescape("%3Cscript src='"+gaJsHost+"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 site/kbase/guid/diary_dwarf04 by HTTrack Website Copier/3.x [XR&CO'2010], Sun, 18 Jul 2010 10:50:16 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"><!-- /Added by HTTrack -->
</html>