- All object names begin with sNNN, where NNN is your shell/page number. For example, the name of an object in shell 111 would begin with s111.
- All materials begin with sNNN.
- All texture records begin with sNNN, and all texture files begin with sNNN.
- All objects are within the bounds of your shell walls. (The walls are on the layer 4 of your shell Blend file)
- All Python scripts begin with sNNN, and all classes within the scripts begin with sNNN.
- If you have any global variables, declare them within a Python file named sNNNGlobals.py. This will put them in the sNNNGlobals namespace.
- If your Python classes are subclasses of ptModifier, then set self.id equal to 189NNNX, where NNN is your shell number, and X is a number from 0 to 9 - this depends on how many ptModifier subclasses you have.
Now, I think this needs to be slightly revisited.
My strategy so far has been to prefix everything with my shell number (410).
So I have 410Wal, 410Flr, 410Tree, 410BStr, etc. All of my textures start with 410- and all of my materials start with 410-. When you look at my .prp file in PRPExplorer, everything starts with 410.
Except the few materials that are known to be global. The shell wall, the shell roof, the stairs, the lights, and the grass are used by all of the shells and are located in the age's _Textures.prp file. (if this is going to change, let me know Aloys).
I exported all of the material and texture objects from a clean install of Ahra Pahts, and imported them into my completed shell file. They don't start with 410, but rather with MatSh-. Unless this will cause a problem with other shells, I was planning to leave them as they were. I do want to know however if it would be better to rename absolutely every object in the .prp to use the 410- prefix.
Another issue is sounds. Sounds traditionally start with the age as a prefix. Which works well in Ages that don't have a tonne of developers all working on different things. Currently my sound files start with Pahts410-. Looking at Cyan's files, it might be better to use a name such as pahts410_main.ogg rather than Pahts410Main.ogg. We're probably also going to need to address the number of sounds that a shell can contain/distribute.
I haven't used any Python in my shell, and I don't intend to, so I can't offer suggestions there; however I would like to propose the following new shell naming guidelines:
- All geometry objects are named beginning with the 3 digit shell number.
- All materials and meshes are named beginning with the 3 digit shell number.
- All textures are named beginning with the 3 digit shell number.
- All colliders, regions, softvolumes, soundemitters, seekpoints, etc. are named beginning with the 3 digit shell number.
- All objects defined using AlcScript are named beginning with the 3 digit shell number.
- All sound objects are named beginning with the 3 digit shell number. (The ability to rename sound objects will become available in the near future)
- All sound files are distributed in .ogg format and named beginning with "pahts", the 3 digit shell number, an underscore, and a name.
- All nexus files start with "prin" instead of the shell number.
It's known already that all shells will need to be updated to work with the new plugin release, this seems more intuitive than the older method and should be easy to implement in existing files.
Anyone have any feedback?