Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /var/sites/s/saturn-design.co.uk/public_html/index.php:43) in /var/sites/s/saturn-design.co.uk/public_html/libraries/joomla/session/session.php on line 423

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/sites/s/saturn-design.co.uk/public_html/index.php:43) in /var/sites/s/saturn-design.co.uk/public_html/libraries/joomla/session/session.php on line 423

Warning: Cannot modify header information - headers already sent by (output started at /var/sites/s/saturn-design.co.uk/public_html/index.php:43) in /var/sites/s/saturn-design.co.uk/public_html/libraries/joomla/session/session.php on line 426

Warning: Cannot modify header information - headers already sent by (output started at /var/sites/s/saturn-design.co.uk/public_html/index.php:43) in /var/sites/s/saturn-design.co.uk/public_html/templates/rt_vertigo_j15/rt_styleswitcher.php on line 32
Ross Mackenzie
   
Home Blogs Ross Mackenzie

Newsfeeds

feed-image Feed Entries
Ross Mackenzie
Animations in NWN2
Written by Ross   
Monday, 22 February 2010 18:03

Scripting is the name of the game this week, and we're busy putting in the dialogue we wrote actually into the engine. Once this is done, along with a few scripting tweaks like area transitions and such, we'll have an alpha to time-test internally. Fun!

So anyway, firing off animations in dialogues is easy, but there are multiple ways of doing it. The easiest way is to just specify an animation for the tag in the list below the conversation tree on the animations tab. However, going to the actions tab and adding a ga_play_custom_animation or a ga_play_animation script will allow much more control, including speed, duration, and delay.

play_custom_animation is easy. Just add the script and hit refresh, then input the tag of the character you want to animate for sTarget, the name of the animation (which can be found on the animations tab), whether you want it to loop (1) or not (0), and the number of seconds before the animation plays when the conversation hits that node. This allows you to set off an animation right at the start of a node, say of someone talking, or near the end, as they get hit by an arrow or somesuch. This gives the dialogue the feeling that it is an actual conversation happening in real-time rather than a series of lines of text.

play_animation is slightly more effort, but gives you even more control than play_custom_animation. The sTarget works in the same way, just the creature's tag, but instead of loop you have a duration setting, a speed setting (where 1.0 is normal speed, 0.5 is half speed, etc.) and a delay setting. This means you can cut an animation off before it has finished playing, which I used to take the first half of the 'tired' animation (knuckling his forehead) and cut off the second part (yawning). Without the yawn, knuckling his forehead makes it look like he feels ill, which is the effect I was looking to achieve.

The problem with play_animation is that instead of using a string for the animation and taking it's name from the animation tab, it calls it directly by its integer value. To find these values, go to the script editor, and click on the 'globals' tab in the script assist on the right hand side. If you then search 'animation' it will filter the results, and finding the integer for each animation is as simple as clicking on it and reading the script preview box. Slightly more effort, but if you need to control the speed of an animation or cut it off before the end, it is invaluable.

Well, that's all from me. Scripting time!

 
2010 & Blogging Again
Written by Ross   
Monday, 01 February 2010 16:19

Yeah... quite a while since I last blogged. In fairness, Christmas was mostly for scripting and portfolio assignments, but we haven't been slacking on the team project front either! The levels are basically done, with only a couple of optimisation and aesthetic changes to be made, and they're looking pretty good in my opinion. I made the mage's tower basement, filled with mystical artefacts and historical debris for the bard character to talk about.

Speaking of which, the next milestone is scripting, as in both story scripting and logic scripting. I'll probably be carrying on with the mage tower level, scripting that up for Samuel the bard to wax lyrical about the world narrative. It makes sense, seeing as I designed and made that level, and I wrote a lot of the world narrative, so it'll all fit together nicely.

Of course, that's not set in stone - we'll be discussing exactly what's happening next meeting. This milestone is being headed by me, being the team's sort of scripting specialist, and I don't forsee any real problems on the logical scripting side, not for the kind of things we want to accomplish. The story scripting will be harder, as it needs to be spot on for our narrative-based NPCs especially, but we have several good writers in the team, so this shouldn't be a massive headache either.

Alright, that's enough from me, see you all next meeting!

- Ross

 
Livin' in a fantasy world...
Written by Ross   
Tuesday, 17 November 2009 18:10

So, we've had the title of our project accepted, and we're ready to get down to business. First milestone is coming up, and I think the plan is to have our world narrative ready for it.

Because our project is about how narrative and gameplay elements each affect a player, we're going to need a good backstory for the game world we're creating. Not least because one of the characters, the Bard NPC, is going to have world narrative exposition as their main 'selling point' to the player. What we decided is to attack this in three stages. Firstly, Lloyd, Luke and I will write some fairly generic info for a medieval/fantasy world. We decided on medieval/fantasy both because the Neverwinter Nights 2 engine is specifically set to handle that kind of world, and most western RPG's tend to fall into that category anyway. Equally, we need to create our own narrative instead of using a well-known one to avoid any preconceptions our test players might have about the world we might choose.

Once that's done, we'll come together and do some research on what makes good narrative, rather than just what we personally like about each narrative. Then, using the data collected and the backstories we've written, we should be able to splice together some good stuff. Once that's out of the way, we can concentrate on fleshing out the narrative for the NPC's themselves, and write up a first-draft of how we went about making these narratives, for use in our final documentation at the end of the project. Little by little is the best way to do this kind of thing, and then we can show it to lecturers and get feedback from it, too.

Alright, back to the grindstone! :D

- Ross

 
New news!
Written by Ross   
Sunday, 01 November 2009 15:16

They say no news is good news, but I still think it's high time I updated! I've been looking into papers detailing the human fear of mortality, how people cope with death and the idea of death, and how that would relate to characters dying in a game environment. The problem is, there's plenty of papers on the subject, but not really any that I can relate to games design! It's all grief and bereavement and the reasons why people fear death, but not really anything about the fear of others dying, and how emotional attachments affect this.

It's been interesting, no doubt, and there's a couple of things I've picked up that I'm sure we can use, but ultimately it's not worth a wiki page explaining it. I put a couple of papers up if anyone wants to have a quick read, but they're only partially useful I'm afraid :\

Otherwise, we've been working on our design doc, and that's going quite well. Today's plan of action is to finish that off with academic references, and to discuss a few points that Brian and Phil brought up last time we spoke to them. I'm fairly confident we can sort everything out!

- Ross

 
Not like a can
Written by Ross   
Wednesday, 14 October 2009 11:20

Well, this week I have been mostly investigating... the 'Uncanny Valley'. There's a small wiki page up on it now, with a couple of decent academic papers linked from it, and some of my ramblings, so things are going OK. I'll almost certainly put more into the page as I think of new things to say on the subject, it's just hard to narrow down to what is actually useful to us in the context of NPC creation, rather than just writing about the field in general. I think I'll be marking that page as 'ongoing' in my mind, and add things as my brain fully digests all the information I've been feeding it - the best stuff always comes from random flashes of insight.

Anyway, today is our team meeting, so I'll be reporting in as usual. Lots to do, but we seem to have a handle on it, and I believe on the agenda for this week is a way of making us more organised than ever. Gantt charts gooooooo! ;P

- Ross

 
FIRST
Written by Ross   
Friday, 09 October 2009 09:35

Hello, hello! Ross Mackenzie reporting in!

This will be my first blog post, because last week my graphics card helpfully decided to die on me, and the new one refused to play ball with my current power supply. Still, I managed to make a team logo and send it to Lloyd before all this happened, so it's not all bad. Plus, my laptop is now up and running on a fresh install of XP, so I can actually start working again.

First thing on my list is to add my referenced papers and such to the wiki, which I will be doing shortly after writing this post. Also, I'll try and remember all the psychological studies I learned about at A-Level, and put in any that are relevant and useful to our current task - Henri Tajfel's study on in-groups and out-groups at least, which I mentioned in my project proposal.

My assigned task this week is to look into the "uncanny valley", and find any research on the subject that may be useful. The "uncanny valley" is an interesting subject, because it will become more and more prevalent as the graphical ability of games increases. When your avatar is just a yellow circle with a slice missing, you can identify with it fairly easily - not deeply perhaps, but well enough. However, give a player something that looks almost human, but not quite, and feelings of revulsion are quick to follow, an evolutionary response to seeing a person who is gravely ill, or otherwise not normal - something that would have kept our ancestors alive during times of plague or other troubles.

Well, I find it interesting, anyway. Expect some helpful links and such incoming over the weekend. Aside from that, everything seems to be going smoothly for Team Saturn at the moment, so I'll stop writing here and get back to some maaaad Googlin'.

- Ross