egomassive's Knytt Stories Plus mod

  • 1097 Replies
  • 454203 Views
*

Offline sergiocornaga

  • 1286
  • 131
    • View Profile
    • Sergio's Games
Re: egomassive's Knytt Stories Plus mod
« Reply #600 on: January 01, 2014, 07:32:38 »
I've got an idea to let designers designate which music tracks should loop. Then, you wouldn't need to use an ambiance track for looping songs. I'll also be taking a look at the World.ini issue that makes levels like Define load slowly.

Some sort of MusicType attribute actually might be pretty cool. I'd suggest also including some states that force playing to the end of the track even if the player leaves the area containing the song.

*

Offline egomassive

  • 1852
  • 250
    • View Profile
    • egomassive games
Re: egomassive's Knytt Stories Plus mod
« Reply #601 on: January 01, 2014, 07:46:44 »
I proudly present:

Knytt Stories Plus 1.0.7 and Level Editor Plus 1.0.1.

new features:
  • Looping Music (see Cut tab in editor)
  • Mouse wheel bug fix in editor
  • Altered golden creature behaviors from version 1.0.6 (Thanks GrayFace)

Some sort of MusicType attribute actually might be pretty cool. I'd suggest also including some states that force playing to the end of the track even if the player leaves the area containing the song.
Interesting Idea, I'm not sure how useful that would be though. I think tying music to a location works well. I was tossing around the idea of having music play randomly like in Knytt or Night Sky. All I added, was the ability to loop just like an ambiance track. I was really hoping to be able to skip an intro part on subsequent plays, but it's not a native function and I was afraid that I couldn't get smooth playback managing it from the program logic.
« Last Edit: January 01, 2014, 07:48:24 by egomassive »

*

Offline GrayFace

  • 805
  • 61
    • View Profile
    • my site
Re: egomassive's Knytt Stories Plus mod
« Reply #602 on: January 01, 2014, 23:09:13 »
I'll also be taking a look at the World.ini issue that makes levels like Define load slowly.
It requires fixing Ini++ somehow. Shouldn't be hard with source code.

*

Offline egomassive

  • 1852
  • 250
    • View Profile
    • egomassive games
Re: egomassive's Knytt Stories Plus mod
« Reply #603 on: January 02, 2014, 02:00:39 »
I proudly present:

Knytt Stories Plus 1.0.8

This version introduces song intros. Simply make the song intro into a separate file named Intro#.ogg and drop it in the Music folder of your level. "#" is the number of the song the intro precedes. This is mainly intended to be used with looping songs.

It requires fixing Ini++ somehow. Shouldn't be hard with source code.
I thought I might try to use the normal ini extension for everything. If it's possible it would be a tremendous amount of work, so I think I'll forget about it since this project is supposed to be finished anyway.
« Last Edit: January 03, 2014, 02:22:39 by egomassive »

*

Offline sergiocornaga

  • 1286
  • 131
    • View Profile
    • Sergio's Games
Re: egomassive's Knytt Stories Plus mod
« Reply #604 on: January 02, 2014, 06:20:56 »
Simply make the song intro into a separate file named Intro#.png and drop it in the Music folder of your level.

I presume you mean .ogg rather than .png?

*

Offline GrayFace

  • 805
  • 61
    • View Profile
    • my site
Re: egomassive's Knytt Stories Plus mod
« Reply #605 on: January 02, 2014, 15:44:27 »
I thought I might try to use the normal ini extension for everything. If it's possible it would be a tremendous amount of work, so I think I'll forget about it since this project is supposed to be finished anyway.
This will cause a major slowdown. Ini++ is cached, so accesses don't cost much. It's a badly reinvented wheel though, hence the loading slowdown. I tested with cached ini from Delphi, it loads Define's World.ini in an instant.

*

Offline egomassive

  • 1852
  • 250
    • View Profile
    • egomassive games
Re: egomassive's Knytt Stories Plus mod
« Reply #606 on: January 03, 2014, 02:22:18 »
I thought I might try to use the normal ini extension for everything. If it's possible it would be a tremendous amount of work, so I think I'll forget about it since this project is supposed to be finished anyway.
This will cause a major slowdown. Ini++ is cached, so accesses don't cost much. It's a badly reinvented wheel though, hence the loading slowdown. I tested with cached ini from Delphi, it loads Define's World.ini in an instant.
I suspected as much. It takes so long I suspected it created a search index too. So, is there any reason not to replace ini++ with Delphi's extension?

Simply make the song intro into a separate file named Intro#.png and drop it in the Music folder of your level.

I presume you mean .ogg rather than .png?
Yes I do. *edits original post*

*

Offline GrayFace

  • 805
  • 61
    • View Profile
    • my site
Re: egomassive's Knytt Stories Plus mod
« Reply #607 on: January 05, 2014, 03:46:12 »
So, is there any reason not to replace ini++ with Delphi's extension?
The fact that it's not an extension. Delphi is a programming language :)

*

Offline egomassive

  • 1852
  • 250
    • View Profile
    • egomassive games
Re: egomassive's Knytt Stories Plus mod
« Reply #608 on: January 05, 2014, 23:48:56 »
So, is there any reason not to replace ini++ with Delphi's extension?
The fact that it's not an extension. Delphi is a programming language :)
Well, I feel silly. :oops:

*

Offline egomassive

  • 1852
  • 250
    • View Profile
    • egomassive games
Re: egomassive's Knytt Stories Plus mod
« Reply #609 on: January 06, 2014, 23:01:56 »
A tiny update:

Knytt Stories Plus 1.0.9

The only new thing here is KG's Define and other levels with enormous World.ini files will load better. This isn't an ultimate solution. You still have to wait when you start/continue the level, but you wont have to wait after each cutscene.

@ GrayFace: I made the Ini++ a global object. It's one of its options. Then, I only load the World.ini if the global string "Cutscene" is set to "Intro" or the game is running in test mode. Finally, I set "Cutscene" to "Intro" when loading a saved game. I'm not sure if it's necessary but I dropped a global Ini++ object in my background window to make sure it always exists.
« Last Edit: January 06, 2014, 23:03:57 by egomassive »

*

Offline Firecat

  • 370
  • 52
  • Every bit is important.
    • View Profile
Re: egomassive's Knytt Stories Plus mod
« Reply #610 on: January 09, 2014, 02:41:01 »
I wonder, could you add an INI value determining how many CO scripts there are? (with the default being 255) If I read the Define thread correctly that might reduce the load on KS+ optimized levels a little.
There's 110011 kinds of people in the world. Those who understand binary, Those who don't, and those who confuse it with ASCII.

*

Offline egomassive

  • 1852
  • 250
    • View Profile
    • egomassive games
Re: egomassive's Knytt Stories Plus mod
« Reply #611 on: January 09, 2014, 04:55:35 »
I wonder, could you add an INI value determining how many CO scripts there are? (with the default being 255) If I read the Define thread correctly that might reduce the load on KS+ optimized levels a little.
I was speculating that the CO caching was the issue, but I was wrong. Loading the World.ini was causing the slowdown. This latest update of KS+ still caches the CO's upon starting and after every cutscene, but I've been playing Define with it and there is only extended loading time upon start when the World.ini loads.

*

Offline Firecat

  • 370
  • 52
  • Every bit is important.
    • View Profile
Re: egomassive's Knytt Stories Plus mod
« Reply #612 on: January 11, 2014, 04:28:29 »
I seem to not have explained my idea correctly. You said the big load comes from loading the World.ini 255 times to search for Custom Objects. I was wondering if you could reduce the amount of searches based on the last CO actually written on the World ini, for example:

Code: [Select]
[Custom Object 1]
Image=Example.png
[Custom Object 2]
Image=Test.png
[Custom Object 3]
Image=Sample.png
[Custom Object 5]
Image=noobjectfourlol.png
[World]
LoadObjects=5

The last code basically telling the program to search for the first 5 objects.
There's 110011 kinds of people in the world. Those who understand binary, Those who don't, and those who confuse it with ASCII.

*

Offline egomassive

  • 1852
  • 250
    • View Profile
    • egomassive games
Re: egomassive's Knytt Stories Plus mod
« Reply #613 on: January 11, 2014, 17:00:52 »
I seem to not have explained my idea correctly.
I understood, and it would be a good idea if the CO caching loop took a long time, but it doesn't take very long at all. It doesn't load the World.ini 255 times, it just searches it 255 times. I was afraid all those searches could take a while with a large World.ini, but it's not significant.

Your idea is still a good one. Even tiny performance tweaks are good.

Edit: Discovered a bug: One of the golden creatures is misaligned in the inventory. I'm not sure how this happened since I'm sure they used to line up correctly. I'll fix it soon.
« Last Edit: January 17, 2014, 21:17:16 by egomassive »

*

Offline egomassive

  • 1852
  • 250
    • View Profile
    • egomassive games
Re: egomassive's Knytt Stories Plus mod
« Reply #614 on: January 27, 2014, 06:55:06 »
New version:

Knytt Stories Plus 1.1.0

This includes fixes for the golden creature which was misaligned in the inventory, and you can no longer collect any golden creatures while dead.