Difference between revisions of "Creating Ages"

(Common issues: add some common issues)
 
(16 intermediate revisions by 5 users not shown)
Line 1: Line 1:
Creating [[Category:Ages|Ages]] is a main, but not the only activity of our community's members. Besides the actual modelling, there is a lot to do, and this page aims to collect the necessary information and resources.
+
First of all, there are three different ways to create Ages for the various [[Uru|versions of Uru]]:
  
First of all, there are to totally different modelling programs you can use to create your age for different [[Uru versions|versions of Uru]]:
+
* Using [[Blender]] with [[Korman]] to produce ages for Myst Online: Uru Live's [[CyanWorlds.com Engine]], Uru: Complete Chronicles, and Uru: Ages Beyond Myst.
* Using [[Blender]] with [[PyPRP]], which targets [[Uru: Complete Chronicles]] and [[Uru: Ages Beyond Myst]].
+
* Using [[Blender]] with [[PyPRP]], which targets Uru: Complete Chronicles and Uru: Ages Beyond Myst.
* Using [[3DS Max]] with the Cyan Worlds [[Max Plugin]], which targets the most recent version of the [[CyanWorlds.com Engine]]. However, using [[Drizzle]], these ages can be converted to [[Uru: Complete Chronicles]].
+
* Using [[3ds Max]] with the Cyan Worlds [[Max Plugin]], which targets the most recent version of the [[CyanWorlds.com Engine]]. However, using [[Drizzle]], these ages can be converted to Uru: Complete Chronicles.
  
 
For details on those plugins, please consult their specific documentation. Below you can find information about parts of age creating that are independent of the modelling tool used.
 
For details on those plugins, please consult their specific documentation. Below you can find information about parts of age creating that are independent of the modelling tool used.
Line 9: Line 9:
 
Before you start, check the list of [[Free and useful tools to help in Age writing]]. Most notably, it is quite likely that you will need [[PlasmaShop|PlasmaShop 2]], so it's a good idea to install it right away.
 
Before you start, check the list of [[Free and useful tools to help in Age writing]]. Most notably, it is quite likely that you will need [[PlasmaShop|PlasmaShop 2]], so it's a good idea to install it right away.
  
= Filename and sequence prefix =
+
== Filename and sequence prefix ==
  
Both the filename of your age and the sequence prefix must be globally unique for the age to be installable alongside all the other ages. Before you start writing an age, you need to reserve a name and a number. I suggest to even do that for local test ages since it is really hard to change the name or sequence prefix of your age later. Also, never change either of them without changing the other, that will confuse Uru!
+
All ages must have a '''filename''' and a numerical '''sequence prefix'''. Both the filename of your age and the sequence prefix must be globally unique for the age to be installable alongside all the other ages. Before you start writing an age, you need to reserve a name and a number. I suggest to even do that for local test ages since it is really hard to change the name or sequence prefix of your age later. Also, never change either of them without changing the other, that will confuse Uru!
  
For [[CC]]/[[TPOTS]], you can register a sequence prefix in the [[TPOTS_Sequence_Prefixes|TPOTS Sequence Prefixes list]].
+
For CC/TPOTS, you can register a sequence prefix in the [[TPOTS Sequence Prefixes|TPOTS Sequence Prefixes list]].
 
+
= Writing python scripts =
+
  
 +
== Writing python scripts ==
 
Uru uses [http://www.python.org/ Python] for everything which can not be controlled directly within Blender/3ds Max. You want a door that opens after pressing buttons in a specific order, or a timer that gives players five seconds to pass a bridge before it breaks down? You want the fog of your age to change over time, journals to be shown, link explorers to other ages? For all that, you will need to write python scripts.
 
Uru uses [http://www.python.org/ Python] for everything which can not be controlled directly within Blender/3ds Max. You want a door that opens after pressing buttons in a specific order, or a timer that gives players five seconds to pass a bridge before it breaks down? You want the fog of your age to change over time, journals to be shown, link explorers to other ages? For all that, you will need to write python scripts.
  
 
You can find various tutorials for Python in the web. Here is a list of some links that document the Uru-specific parts:
 
You can find various tutorials for Python in the web. Here is a list of some links that document the Uru-specific parts:
  
* [[Plasma Python API]]
+
* [[Plasma:Python API]]
 
* [[Creating a Python File]]
 
* [[Creating a Python File]]
 
* [[Global Python Scripts]]
 
* [[Global Python Scripts]]
Line 28: Line 27:
 
* [[MultiDialogToggle|Toggling Multiple GUI Dialogs]]
 
* [[MultiDialogToggle|Toggling Multiple GUI Dialogs]]
  
= Common issues =
+
== Common issues ==
 +
There are some issues and bugs that regularly re-appear in new ages:
  
There are some issues and bugs that regularly re-appear in new ages. You can think of this as a checklist.
+
* Your age runs too slow? Have a look at the [[Performance Optimization|Age performance optimization]] possibilities.
 
+
* You want your age to work [[Shard|online]]? There are some extra pitfalls here, please see [[Writing Ages for Shards]].
* Be careful with linking: Linking is a complicated matter, and it is hard to get right. Also see [http://forum.guildofwriters.org/viewtopic.php?f=93&t=5004 this thread] for some more information.
+
* If you write several independent ages, make sure that there is no file contained in both ages' archives. If someone installs them both  
* If you write several independent ages, make sure that there is no file contained in both age's archives. If someone installs them both and then removes one, those files will be missing. If two ages belong closely together, the best idea is to put them into one age archive.
+
and then removes one, those files will be missing. If two ages belong closely together, the best idea is to put them into one age archive.
 
* Make sure that you ship all sound files your age needs, and no superfluous sound files (unless, of course, you want to hide some bonus material here ;-)
 
* Make sure that you ship all sound files your age needs, and no superfluous sound files (unless, of course, you want to hide some bonus material here ;-)
* Make sure your age's fni file contains fog settings (which it usually should woth modern versions of the plguins). If it does not, the age will look different depending on whether people get there from Relto or Nexus.
+
* Make sure your age's fni file contains fog settings (which it usually should with modern versions of the plugins). If it does not, the age will look different depending on whether people get there from Relto or Nexus.
* Double-check your SDL file's syntax! Uru does not complain about bad syntax, but sometimes it just does not work. Servers are often much more picky and might reject the age.
+
 
+
= Releasing the age =
+
  
The common way to release an age for CC is to [[UAM#Releasing_an_age_via_UAM|make it available via UAM]].
+
== Releasing the age ==
 +
This is covered in the article on [[Distributing Ages]].

Latest revision as of 17:55, 13 November 2024

First of all, there are three different ways to create Ages for the various versions of Uru:

For details on those plugins, please consult their specific documentation. Below you can find information about parts of age creating that are independent of the modelling tool used.

Before you start, check the list of Free and useful tools to help in Age writing. Most notably, it is quite likely that you will need PlasmaShop 2, so it's a good idea to install it right away.

Filename and sequence prefix

All ages must have a filename and a numerical sequence prefix. Both the filename of your age and the sequence prefix must be globally unique for the age to be installable alongside all the other ages. Before you start writing an age, you need to reserve a name and a number. I suggest to even do that for local test ages since it is really hard to change the name or sequence prefix of your age later. Also, never change either of them without changing the other, that will confuse Uru!

For CC/TPOTS, you can register a sequence prefix in the TPOTS Sequence Prefixes list.

Writing python scripts

Uru uses Python for everything which can not be controlled directly within Blender/3ds Max. You want a door that opens after pressing buttons in a specific order, or a timer that gives players five seconds to pass a bridge before it breaks down? You want the fog of your age to change over time, journals to be shown, link explorers to other ages? For all that, you will need to write python scripts.

You can find various tutorials for Python in the web. Here is a list of some links that document the Uru-specific parts:

Common issues

There are some issues and bugs that regularly re-appear in new ages:

  • Your age runs too slow? Have a look at the Age performance optimization possibilities.
  • You want your age to work online? There are some extra pitfalls here, please see Writing Ages for Shards.
  • If you write several independent ages, make sure that there is no file contained in both ages' archives. If someone installs them both

and then removes one, those files will be missing. If two ages belong closely together, the best idea is to put them into one age archive.

  • Make sure that you ship all sound files your age needs, and no superfluous sound files (unless, of course, you want to hide some bonus material here ;-)
  • Make sure your age's fni file contains fog settings (which it usually should with modern versions of the plugins). If it does not, the age will look different depending on whether people get there from Relto or Nexus.

Releasing the age

This is covered in the article on Distributing Ages.