Gathering Knowledge

  • 39 Replies
  • 34403 Views
*

Offline LightningEagle

  • 242
  • 0
  • Who's the wacko, you say?
    • View Profile
Gathering Knowledge
« on: December 13, 2009, 01:14:34 »
As Level editing in Saira appears to be just about as difficult as Nifflas told us I suppose we might as well begin to gather the information we learn about editing in order to establish a kind of knowledge base.

I guess...

Anyway, please add what you learn here.

This is assumptions based on the structure of the episode included with the game:

Episode Folder structuring
Spoiler: (click to show/hide)

Galaxy
Spoiler: (click to show/hide)

That's it for the Galaxy. And we haven't even come to the editor yet. Come on people, help me expand this.  :)

I might add to this tomorrow, after I've worked on my school assignment which I ditched today in order to play Saira  :).
« Last Edit: December 13, 2009, 14:51:49 by LightningEagle »

*

Offline Exp HP

  • 259
  • 2
  • 1 in 166 children
    • View Profile
Re: Gathering Knowledge
« Reply #1 on: December 13, 2009, 01:30:23 »
ARGH, you just posted all the stuff I was working on.  I too was looking at stuff in the root level of the episode folder (especially Credits.ini and Galaxy.ini).  Though I got beaten to the chase, I might as well share what work I did finish compiling.  It's not formatted, but I don't really care now that you already wrote about it.

This is my notes on Credits.ini.  They're pretty much complete.


CREDITS.INI NOTES

This file is pretty easy to figure out just by looking at it.  This file
controls the credits sequence, which is a series of scrolling lines.



[General]


End Delay=[[Integer]]
 Default: About 50
This corresponds to the amount of time the game will wait after the last
line of credits scrolls off the screen before returning to the main menu.
The number does not seem to be a number of milliseconds to wait, but rather
a number of additional rows of pixels to scroll.
If you set this to 0, the credits will not play.

Background=[[PNG FILE]]
 Default: No image
Set an image to use as a background for the credits.
Recommended image size is 1024x600 px.
If your image is not 1024x600, it will be stretched to fit.

Music=[[OGG FILE]]
 Default: No sound
A sound file to play during the credits.  It will play once, without looping.

Music Volume=[[INTEGER]]
 Default: 100
This doesn't seem to be at any particular scale.  All you can do is experiment
with this number until you get it right.
Make sure your actual sound file is pretty loud, because it will get a lot
quieter in-game. 100 seems to be the max value for Volume, and even that is
much quieter than the sound file's actual volume.




[Credit #]


Delay=[[Integer]]
 Default: 50
Increasing this number increases the length of whitespace above this credit
page.  Any zero or positive integer is accepted, but there is something to
note:  Unless the previous credit doesn't have any Names, there will always
be at least one full line of blank space, meaning values below the
height of one line of text (12?) will automatically be increased.

Title=[[String]]
 Default: (empty string)
The bold line of text at the top of a page of credits.

Name #=[[String]]
 Default: (STOP)
Standard-face lines of text that appear in the order defined under the title.
Start with Name 0 and then do Name 1, Name 2, etc.
If you skip a number, the numbers after it will not show at all.
(Meaning, if you define lines 0, 2, 1, 3, 6, and 7, lines 6 and 7 won't show).




There is something interesting to note about the behavior of Delay when
no Names have been defined in the previous credit:  You can set a Delay under
12 without the game automatically increasing it to 12.
The reason is presumeably to give you a method to have multiple bold lines
in a row.  See example.

Spoiler: Example (click to show/hide)
[/pre]

My work on Galaxy.ini (which is incomplete) is not worth sharing in it's current form, but I'll summarize what's in my notes that you don't have:


Music: This does loop (unlike music in the credits)

Volume:  Like for the Credits, this is a number 0 to 100 (with numbers above 100 making no difference)
  Unlike in the credits, music at volume 100 is a bit louder than the original file.

Background:  Like with credits, size is 1024x600, and it will be stretched to fit if it's any other size.


Also, here's a test that I did not yet add to my notes because I was in the middle of it when you posted this thread:
What I did:  Make a copy of Game.ccn with the name Gjkl.ccn, then add the line "Gjkl Label = Gjkl" to the bottom of Galaxy.ini.
What happened: Gjkl did not appear in the list of apps in the lower right corner of the Starmap.
What I think it means: You'll have to edit the starmap subapp in MMF2 to add new subapps to the list in the lower right of the starmap.


My notes on the Galaxy images is not worth sharing since it's pretty much the same conclusion you came to.

And last but not least, .ccn files are Macromedia Fusion 2 Subapplications.  If you want to change the puzzles or any of that stuff, you're going to need to have MMF2.  I don't.
« Last Edit: December 13, 2009, 02:04:50 by Exp HP »
(secretly hoping nobody will mention the object compendium)
My stars:   :hiddenstar:(Object Compendium):hiddenstar:(By PM)
Check out my Youtube channel for some terrible Let's Plays by a socially inept nerd!

*

Offline LightningEagle

  • 242
  • 0
  • Who's the wacko, you say?
    • View Profile
Re: Gathering Knowledge
« Reply #2 on: December 13, 2009, 01:47:26 »
This is great. I should mention that I haven't tested anything. I just assumed.  :oops:

*

Offline Exp HP

  • 259
  • 2
  • 1 in 166 children
    • View Profile
Re: Gathering Knowledge
« Reply #3 on: December 13, 2009, 02:17:15 »
That makes me feel a bit better, because when I came here and saw this thread, I was thinking to myself "am I really that slow?"  Now that I'm looking it over, I see that our findings do complement each other rather than repeat or cancel each other out.  So I don't feel as upset now and I'm motivated to keep on "gathering knowledge". :)


Right now, I'm looking at the editor.  I'm not really looking at any specific part of it.  I'm just finding out how the editor works and how it can be used to work with layers, sprites, and objects in a regular, non-cutscene planet.  I'll tell what I find.
« Last Edit: December 13, 2009, 02:22:42 by Exp HP »
(secretly hoping nobody will mention the object compendium)
My stars:   :hiddenstar:(Object Compendium):hiddenstar:(By PM)
Check out my Youtube channel for some terrible Let's Plays by a socially inept nerd!

*

Offline Exp HP

  • 259
  • 2
  • 1 in 166 children
    • View Profile
Re: Gathering Knowledge
« Reply #4 on: December 13, 2009, 03:01:55 »
Alright.  Here's some stuff about what you can edit with the Editor.  I didn't do a lot of experimenting with this.


There are three types of things you can edit in a screen in the Editor: Tiles, Objects, and Sprites.

Tiles should be a familiar concept.  Saira only has one layer of Tiles, and it is very similar in comparison to layer 3 in Knytt Stories:  It is a grid of tiles that are solid to the player.  I have not yet tested this, but I assume they have automatically-generated collision maps just like in KS.
All tiles are solid in this game.  No ifs, ands, buts, or BG tiles.

Objects are decorations.  They are not restricted to a grid, but rather they can be moved,* rotated and scaled with a high degree of precision.  In Object mode of the editor, all the switches and buttons and doohickeys at the bottom control the currently selected object on the screen.  There are 11 layers to put objects on.  The "layer" you put something on affects its Z display order and scrolling speed.
Looking through Objects.ini, I see something special called "controllers."  I want to look into these with more depth in a future update, but it seems that these apply graphical effects on the objects, such as fading transparency, smoke generation, or glow.

Sprites are special objects that affect the player.  Some are items (like Tape).  Some are enemies.  Some are entry points to a level.  Some are environmental things that affect the player, like water.  And some are invisible things you can interact with using "D" (those sprites are usually placed atop objects to give the illusion of interacting with them; for instance, puzzle sprites are usually put on top of computer objects).
Sprites are not too complicated themselves.  Their behaviors are defined by Sprites.ini, which is not too difficult to make sense of.... but that's because the more complicated ones implicitly call subapps, meaning you need MMF2 to change them.


* This is not obvious, but the way you create an object is by holding Control and clicking - this duplicates the selected item.  I found this by chance.
Use this method to move objects; hold control as you click the desired location to duplicate it, then delete the original.  If it's not quite in the spot you want, you can fine-tune its location to a limited extent by moving the target in the Offset box (the box in the lower left).
EDIT: Now that I've been messing around with controllers some, let me recommend that you not use the Offset box to fix the object's location if the object rotates, because by changing the offset you change the center point for rotation.


Nifflas wasn't kidding about cutscenes, by the way.  They really are just like regular planets.  I have not tested this fact yet, but after looking at how Sprites.ini initiates cutscenes (which it does by teleporting the player to a cutscene planet), I don't think it's required that cutscene planets be in a star called "_cutscenes".  I think they could be put in any star, just like regular planets.



I think I'm going to look at those "controller" things I noticed in Objects.ini next, because they sparked my interest.  I'm going to find out what types of controllers exist, what they do, how they're used, and what parameters they have. That will involve a lot of experiments and tests, though, so it will take a while...


EDIT: Small status update: Controllers. Are. Not. Fun.
But I'm making some progress.
EDIT: I'm done with my research, now I'm just writing it up.
« Last Edit: December 13, 2009, 07:06:36 by Exp HP »
(secretly hoping nobody will mention the object compendium)
My stars:   :hiddenstar:(Object Compendium):hiddenstar:(By PM)
Check out my Youtube channel for some terrible Let's Plays by a socially inept nerd!

*

Offline AA

  • 510
  • 23
  • Was ITA84
    • View Profile
    • Insight on Videogames
Re: Gathering Knowledge
« Reply #5 on: December 13, 2009, 09:18:12 »
Tiles should be a familiar concept.  Saira only has one layer of Tiles, and it is very similar in comparison to layer 3 in Knytt Stories:  It is a grid of tiles that are solid to the player.  I have not yet tested this, but I assume they have automatically-generated collision maps just like in KS.

I haven't tried the editor yet, but every tileset seems to have an associated mask file: is it generated automatically by the editor?
Videogames are for everyone, by everyone

*

Offline LightningEagle

  • 242
  • 0
  • Who's the wacko, you say?
    • View Profile
Re: Gathering Knowledge
« Reply #6 on: December 13, 2009, 10:04:31 »
I haven't tried the editor yet, but every tileset seems to have an associated mask file: is it generated automatically by the editor?

I don't think so. I assume they are made manually both. The mask file is just the collision layer of the actual tileset.

If it works in that way, you wouldn't have to think about which tiles should be collision and which shouldn't. That setting would be defined by whether or not the tile have collision on the mask. Also, this will allow us to make rugged edges on the tiles while keeping their collision a smooth transition.

Additionally, if the mask was generated automatically, why would it be in the first place? It would just be the original tileset except it's in 2 colors. An automatic generation wouldn't be able to discriminate between what should be smooth and what should follow the original edges of the tileset.
In that case we would've been just as well off with just the actual tileset.

*

Offline SiamJai

  • 706
  • 31
    • View Profile
    • A gaming blog like no other.
Re: Gathering Knowledge
« Reply #7 on: December 13, 2009, 11:05:08 »
I have not yet tested this, but I assume they have automatically-generated collision maps just like in KS.
When you change the terrain using the tileset in the editor, the collision map for that screen is automatically updated.

I tested this with the default Austra/Lomond level. When I added an extra hump to the first screen on that level and played the level, Saira was able to climb and stand on the extra terrain. Looking at the collision map from within the game also confirms this (see attachment).

I tend to agree with LightningEagle that the collision mask itself is made manually rather than automatically from the tileset. I also agree that this is a handy way to add smooth contact to rough-looking graphics. I guess there is only one way to find out for sure... ;)

* This is not obvious, but the way you create an object is by holding Control and clicking - this duplicates the selected item.  I found this by chance.
Use this method to move objects; hold control as you click the desired location to duplicate it, then delete the original. 


It's easier to move stuff by holding down the Shift button instead... ;)
« Last Edit: December 13, 2009, 11:11:26 by SiamJai »

*

Offline AA

  • 510
  • 23
  • Was ITA84
    • View Profile
    • Insight on Videogames
Re: Gathering Knowledge
« Reply #8 on: December 13, 2009, 11:07:01 »
Additionally, if the mask was generated automatically, why would it be in the first place?

Sorry, I meant it like there could be some function in the editor to automatically generate a tileset mask from a tileset's transparency mask, so that you could edit it afterwards to suit your needs (instead of starting from scratch). But I guess that, on second thought, any decent drawing application could do that already.
Videogames are for everyone, by everyone

*

Offline LightningEagle

  • 242
  • 0
  • Who's the wacko, you say?
    • View Profile
Re: Gathering Knowledge
« Reply #9 on: December 13, 2009, 11:14:13 »
But I guess that, on second thought, any decent drawing application could do that already.

I guess the easiest is to create the tileset, make a copy, color the solid stuff in the copy and smooth the edges etc. etc.
This should be doable in any application, even mspaint. But I guess one with layers would be the best choice as you could place the original in the background as a reference.  :)

*

Offline LightningEagle

  • 242
  • 0
  • Who's the wacko, you say?
    • View Profile
Re: Gathering Knowledge
« Reply #10 on: December 13, 2009, 11:25:30 »
Sorry about double-post but this is a different subject, yet still related to the overall topic

As in Knytt Stories levels/episodes appear to be ordered alphabetically by the name of the folders. First I though, maybe the numbers, but I think they're meant to be specific to each level creator.

Meaning:
When creating a new level the folder you create should be named:
*Author name* - *episode number* - *episode name*

For instance:
Nifflas - 000 - Teleporters
LightningEagle - 000 - Playground
LightningEagle - 001 - Saira meets Winnie the Pooh
Lightni...

you get it...  ;)

Another approach could be to have the episodes related to each other have the same number. Actually I guess it's pretty open.
Say I did several episodes following each other, I don't think anything bad would happen if I did this:

Nifflas - 000 - Teleporters
LightningEagle - 000 - 00 - Playground
LightningEagle - 000 - 01 - Playground
LightningEagle - 000 - 02 - Playground
LightningEagle - 001 - Saira meets Winnie the Pooh
Lightni...

in that way the episodes related will be sorted next to each other.

Not possible.

Tested and found that:

Episodes are recognized by the sequence:
*something* - *something* - *something*

meaning 2 dashes and 3 areas in which you can write.
however, it appears that you are not limited as to what you can write in any of the areas.
« Last Edit: December 14, 2009, 14:05:06 by LightningEagle »

*

Offline LightningEagle

  • 242
  • 0
  • Who's the wacko, you say?
    • View Profile
Re: Gathering Knowledge
« Reply #11 on: December 13, 2009, 15:57:43 »
Triple post, bear with me. I'll add this to my first post, when I find this piece satisfying.

Star systems/Solar systems
We've now browsed into one of the star-system-folders found in the root/galaxy directory of the episode in mind.

Files
Here we have several files once again. Let's split them into categories:

  • .ccn files, Puzzler.ccn, I can't say much about this one by now but probably someone will decipher their use and implementation at some point.
  • Folders These appear to be what makes planets visitable. More on this later.
  • .ini files, Star.ini, Defines the position of the planets in the system and the location of the star system itself on the galaxy map.
  • .png files, these appear to be separable into 4 subcategories
    • Planet Images, The visual of the planet when browsing the map in the star system. These images are named after the planet they represent.
    • Star.png, this appear to be the visual of the star system when browsing the galaxy map.
    • System Layer #.png, 3 layers creating the star systems background.
    • Star Avatar.png, A picture present in the Radio together with a description of the currently visited star system. The description is stored in the Star Info.txt file.
  • .txt files, Star Info.txt, This file appear to be a description of the star system and it's planets. The description is present in the Radio when visiting the given Star system.

Folders
As mentioned above, folders are planets. More accurately they appear to be accessible planets.
This conclusion is derived from the fact that the planet Gass Lividus, which is the inaccessible planet in the Polvere star system, doesn't have any special parameters in the Star.ini file. Only parameter difference is "Note=You cannot land here!" which would be unlikely to do the trick.
Gass Lividus, however, doesn't have a folder unlike any other planet (or moon) in the games first released episode.

The folder of a planet (or moon) should have the exact same name as in the Star.ini file.

Star.ini
The Star.ini file is structured in the following way
Code: [Select]
[Location]
X Position=
Y Position=
[Orbit #]
Planet=
Note=
X Center=
Y Center=
Diameter=
Orbit Position=
Items=
Quote
Location
The location of the star in the galaxy overview map, I presume. This position is defined by x and y coordinates.
Quote
Orbit #
Orbit indicates planets in the star system. By giving # a number starting from 0 you can add several planets.
Quote
Planet=
This parameter sets the planets name. I suspect that this name is the one used to address all related files. That means the .png containing the visual of the planet in the star system overview and the possible folder containing the planets map-structure.
Quote
Note=
Based on the way it worked with Gass Lividus I assume that this parameter is a note which is shown when hovering the planet.
Quote
X Center= / Y Center=
The coordinates of the orbital center.
For planets this should be the same for all. They orbit around the same star after all.
For moons these coordinates are used to place the orbit around a planet.
Quote
Diameter=
Values range: 100-500
This is the orbital rings diameter. Values dividable by 100 have circles associated. My guess is that you can make your can maybe make you own circles and add you you want something in between. But I guess it isn't necessary.
Quote
Orbit Position=
Values range: 0-360.
The position of the planet in the orbit ring.
0 is 3 o'clock position. 90: 12 o'clock. 180: 9 o'clock. 270: 6 o'clock
Quote
Items=
The number of items to be found on the planet/moon/space station/whatever.
Note that the mechanism counting the things you've gathered on a planet doesn't care about this number and works somewhere else.



Parameters Note and Items can be left out if they're not used for anything.

Images

Quote
System Layer #.png
We have 3 layers, which when panning around the star system overview. move independently creating depth.
Quote
Layer 1:
The Background.
Quote
Layer 2:
A layer of stars which will appear closer as they move more when panning.
Quote
Layer 3:
The star of the star system is placed here in most cases.
« Last Edit: December 18, 2009, 14:39:09 by LightningEagle »

*

Offline AA

  • 510
  • 23
  • Was ITA84
    • View Profile
    • Insight on Videogames
Re: Gathering Knowledge
« Reply #12 on: December 13, 2009, 16:15:16 »
    • Star Avatar.png, I don't know what the function of this picture is yet, as I don't remember it appearing in the game at any time.
    • Star Info.txt, This file appear to be a description of the star system and it's planets, which I don't remember seeing in the game either.

    The Star Avatar.png and Star Info.txt files are both displayed in the Radio screen.
    Videogames are for everyone, by everyone

    *

    Offline LightningEagle

    • 242
    • 0
    • Who's the wacko, you say?
      • View Profile
    Re: Gathering Knowledge
    « Reply #13 on: December 13, 2009, 16:18:56 »
    Ah, thank you  :)

    *

    Offline Exp HP

    • 259
    • 2
    • 1 in 166 children
      • View Profile
    Re: Gathering Knowledge
    « Reply #14 on: December 13, 2009, 17:48:56 »
    I have not yet tested this, but I assume they have automatically-generated collision maps just like in KS.
    When you change the terrain using the tileset in the editor, the collision map for that screen is automatically updated.

    [. . .]

    I tend to agree with LightningEagle that the collision mask itself is made manually rather than automatically from the tileset.
    I meant collision mask. XD  I'm sorry if anybody took my sentence to literally mean the screen's collision map.  :oops:
    So I guess I was wrong about that, and that there is an external mask image file for each tileset.

    I'm almost done with Controllers.  My work has had a lot of testing done, so I'm writing it in an authoritative voice (like a guide).
    « Last Edit: December 13, 2009, 17:55:35 by Exp HP »
    (secretly hoping nobody will mention the object compendium)
    My stars:   :hiddenstar:(Object Compendium):hiddenstar:(By PM)
    Check out my Youtube channel for some terrible Let's Plays by a socially inept nerd!