egomassive's Knytt Stories Plus mod

  • 1005 Replies
  • 303922 Views
Re: Knytt Stories: External sprite-sheets for standard objects
« Reply #15 on: September 30, 2010, 09:36:20 »
Yay, more KS mods!
Lurk more.

*

Offline egomassive

  • 1703
  • 233
    • View Profile
    • egomassive games
Re: Knytt Stories: External sprite-sheets for standard objects
« Reply #16 on: September 30, 2010, 12:21:55 »
@ LPChip: Some of the additions I've made are only to improve the way we already use KS. My main issue with Shifting between identical rooms is animated objects reset. Currently it's best to avoid using animated objects on such screens, but the little animations are a big part of KS's charm. Triggers will allow designers to add something to playing field while maintaining the condition of all the water, decorations, meanies, projectiles, etc.

Triggers now spawn objects at the same z-depth. I put a "Marker" object off-screen. When a Trigger activates the Markers z-depth is set to the Trigger's z-depth. Then, the spawn is set to the Marker's z-depth. This works because there is only one marker. For those who don't know, MMF2 uses pointers liberally. That's fine, but trying to find a specific instance of an object is a pain. Maybe there's an easy way I don't know yet. I only picked it up 2 weeks ago.

There's an issue where multiple Triggers of the same ID break the spawn location. I'd like designers to be able to use a wall of Triggers the same way they use a wall of Shifts. I'll be looking into this.

@ Purple Pineapple: The ability to make override COs harmless is partly inspired by your Angel object. I also hope to implement something like your slider bar in level selection.

I made my first change to the original functionality of 1.2.1. For Shifts set to save on touch, I deactivate the save ability after the first touch. (Inspired by ACO's save on warp function.) It's to prevent continuous saving when "auto-saving" is used. I understand this is a big performance issue when running KS from flash drives. If anyone can think of a reason this shouldn't be a default behavior or know of an existing level this would break, please let me know.
« Last Edit: September 30, 2010, 12:37:39 by egomassive »

Re: Knytt Stories: External sprite-sheets for standard objects
« Reply #17 on: September 30, 2010, 14:38:55 »
@ Purple Pineapple: The ability to make override COs harmless is partly inspired by your Angel object. I also hope to implement something like your slider bar in level selection.
:awsum:

If anyone can think of a reason this shouldn't be a default behavior or know of an existing level this would break, please let me know.
Depends on whether or not two of the same type of shift on the same screen don't auto save, or whether it only blocks double saving whilst triggering the exact same shift.
Lurk more.

*

Offline egomassive

  • 1703
  • 233
    • View Profile
    • egomassive games
Re: Knytt Stories: External sprite-sheets for standard objects
« Reply #18 on: September 30, 2010, 21:02:56 »
^: The Shifts are changed individually. I had to do some fancy programming to get sets of Triggers to act as one. It's much easier to treat objects separately (from within their behaviors that is.) But, you made me think of a scenario that could be an issue.
  • Auto-save at the entrance to a room.
  • Overcome great obstacles to get a key from the opposite side of the room.
  • Auto-save while leaving through the entrance.

My adjustment would prevent the second save. I'll change it to save once while overlapping Juni. If she leaves the Shift area and comes back, then it will save again. I'm already doing something similar with the advanced Signs, so it shouldn't be too hard.

Update, I added more functionality to the Triggers. By default a group of Triggers with the same ID; A, B, or C; will act one time. This can simulate using a wall of Shifts. Deactivate this feature with: TrigAsOne(A)=False. When declared the same object will be spawned for each Trigger separately. Originally they all would have spawned in the same location, but now you can have Objects spawn  relative to the Trigger by declaring: TrigAbsoluteTarget(A)=False. Unlike with Shift, absolute targeting is true by default.

*

Offline sergiocornaga

  • 1239
  • 130
    • View Profile
    • Sergio's Games
Re: Knytt Stories: External sprite-sheets for standard objects
« Reply #19 on: October 01, 2010, 02:40:42 »
I was recently thinking of making a level devoid of actual savepoints (so I guess it would use shift saving entirely) meaning that change sounds a little problematic to me. Is it, or am I worrying over nothing?

*

Offline egomassive

  • 1703
  • 233
    • View Profile
    • egomassive games
Re: Knytt Stories: External sprite-sheets for standard objects
« Reply #20 on: October 01, 2010, 14:23:47 »
^: "None" is still a choice for Shift sounds. In fact you could make levels with my mod exactly as you make them now without noticing any difference in design or play. The only thing I've changed from the original is how Shift auto-saving on touch is executed. I've eliminated excessive saving which should reduce lag experienced by flash drive users. Users playing from a hard drive probably won't notice the improvement.

On that subject, I altered my restriction on touch-auto-saving to once per touch. Before it was first touch only.

Edit: According to the agreement with the Knytt source, I will have to get permission from Nifflas before I can include this next modification. I made the playable character from Knytt a playable character in this mod. Just add Character=Knytt to the World.ini. The hologram still shows Juni. That should be an easy fix. I want to implement color changing, but I'm not sure what to do about the pink in his cheeks. The pink may cause some strange results if I calculate it's difference from his skin. The animations are ripped directly from Knytt, but he moves like Juni. The only place this seems to be a problem is with walking. He looks too fast. I altered it a bit, but I think it needs more tweaking. I'll leave it for now.
« Last Edit: October 01, 2010, 21:20:26 by egomassive »

*

Offline Whistler

  • 71
  • 1
  • The hero of the Knytt people, Juni!
    • View Profile
Re: Knytt Stories: External sprite-sheets for standard objects
« Reply #21 on: October 01, 2010, 21:40:45 »
I could really use triggers in my KS level. To see what I mean click the link in my signature.
Another idea in "Timers". They can move objects (like shifts) around the screen after a certain period of time.
Another idea is moving platforms. They, well, you know, move up and down and side to side.
Ok, I'm done.

*

Offline egomassive

  • 1703
  • 233
    • View Profile
    • egomassive games
Re: Knytt Stories: External sprite-sheets for standard objects
« Reply #22 on: October 02, 2010, 05:00:53 »
^: Timers I've been considering. I could add a delay to Shifts and Triggers maybe. I'm not sure how much use they'd be.
Moving platforms are a staple of side-scrollers. However, KS was not designed for them. I'd probably have to rewrite the entire movement engine. There are so many factors to consider. If Juni's crushed by a platform does she die? And, how do I determine if she's been crushed while allowing legacy wall-swims? If the platform is moving left and she's running left can she exceed her max velocity? What should platforms look like? Constant velocity or elliptical? I'll probably look into it, but I really doubt it'll make it into the mod.

Update: The Knytt character can change colors now, but I'm not satisfied with the inner workings. Like Juni's two tone skin, I'm calculating the Knytt's two facial colors based on the body color. Basically I add or subtract the difference. I have checks in place to ensure nonsense numbers don't result, those below 0 or above 2563. The problem is if you have a color like orange, RGB(255, 127, 0), and I add a little gray, RGB(20,20,20), to lighten it then The result is green, RGB(19, 148, 20). To check for scenarios like this will require a lot more math, more code, and possibly storing more values. Or, I could leave it up to level designers to determine appropriate colors through trial and error.

*

Offline sergiocornaga

  • 1239
  • 130
    • View Profile
    • Sergio's Games
Re: Knytt Stories: External sprite-sheets for standard objects
« Reply #23 on: October 02, 2010, 17:59:55 »
Is it possible to make the colour in Juni's hair changeable too? I have often wanted to make it completely black, and I'm sure others have too.

Also, I was thinking about your advanced signs. What if I need a shift at some point in the midst of the messages, for example to show some sort of visual change? It would be helpful to be able to trigger a shift (after the last message of a sign, I think), or to trigger one of your newly added 'triggers'. I think the arrow you've added to the message box should appear on this last message if it precedes a shift. Hopefully this is possible!

Somewhat similar to my prior suggestion, I'd also like the ability to append the arrow onto a normal sign. That way, signs that are placed on the same tiles as shifts or 'triggers' won't be visually different from the advanced signs, which behave in superficially the same way. This would also be good because it clears up an issue I've had with many Knytt Stories levels: not knowing which messages indicate the possibility of interaction.

The ability to make Juni invisible/visible after a shift would also be helpful, it would save the trouble of having to hide her behind a custom object.

Here end my requests/suggestions... I think they are in line with what you are trying to achieve with this project, but feel free to disagree.

*

Offline egomassive

  • 1703
  • 233
    • View Profile
    • egomassive games
Re: Knytt Stories: External sprite-sheets for standard objects
« Reply #24 on: October 02, 2010, 21:47:48 »
^: That's an interesting idea about the sign. Conversations do often end in an event, but I'm trying to keep things simple for level designers. If there's only one message and then a shift, Just put them on the same tile. To get an arrow on the first message make a second. The player wont see the second message because they'll shift when they press down.
Example:Sign(A)=This looks suspicious.
Sign2(A)=Write anything here. It wont be seen.
ShiftYMap(A)=1
ShiftVisible(A)=False

There's a special object on my to do list. It's purpose is to allow an on screen animation of Juni. I envision shifting Juni into the object's location. At which point she is made invisible, a CO is spawned, and a timer starts. When the timer ends, Juni is shifted back to the screen or a different one. Programing it will require the commands needed for shifting, spawning the animation, and timing the event. The advantages over the current method would be reduced object flash, precision timing, and no Juni briefly appearing in the wall. I still haven't messed with timed events yet, so don't get your hopes up.

Currently I'm working on the Knytt hologram. It wont look left even though it's programed exactly like Juni's hologram. Frustrating! I was going to make a screen shot of the issue when I figured out how to order actions within an event. I had no idea how MMF2 decided which order to execute actions for different objects in a single event until now. It's simply the order they're declared, which isn't visible in the Event Editor. You have to open the Event List Editor. Frustrating!


« Last Edit: October 02, 2010, 21:50:19 by egomassive »

*

Offline Ultigonio

  • 323
  • 58
  • I'm sleepy!
    • View Profile
Re: Knytt Stories: External sprites for standard objects and other mods
« Reply #25 on: October 03, 2010, 17:02:05 »
Actually, I had one suggestion which may or may not be very easy to put in.
What about an object that you can place which restores your double jump?  This would go along with an old idea of mine.  It could be interesting (or just very silly).

EDIT:  In case you still aren't pleased with your arrow design, here's my suggestion for the orientation and look for the arrow on the multi-message boxes.  Animation should probably either be down 1 up 1 or down 2 up 2, and it really shouldn't go very fast at all.  Just my two cents.
« Last Edit: October 03, 2010, 17:12:38 by Ultigonio »
Indefinitely Held Off:
Pouring
Complete:
This Level Plays Itself!

My SoundCloud

*

Offline sergiocornaga

  • 1239
  • 130
    • View Profile
    • Sergio's Games
Re: Knytt Stories: External sprite-sheets for standard objects
« Reply #26 on: October 03, 2010, 20:14:35 »
If there's only one message and then a shift, Just put them on the same tile. To get an arrow on the first message make a second. The player wont see the second message because they'll shift when they press down.

This is quite a brilliant idea. Although, am I correct in understand that you have no current plans to make it possible to shift upon pressing down on the last message in a series of advanced signs?

Your special object sounds interesting, but there are some things I don't understand. Does the CO spawn in the same spot as the object, or do you specify where? If it's the latter, it has occurred to me that if you gave a CO a really strange offset, you could make Juni shift to a different location than where the CO appears to be. The idea of the math involved annoys me, but it would be possible... so either way could work, I guess.

I still think it could be useful if shifts could alter Juni's visibilty as it opens up possibilities for interactive, shift-based animations outside of the side-on, KS visual style... ones that are devoid of a flashing Juni.

Also, since KS message text is fixed width, an arrow inside the box should be possible if you want to go in that direction. See attached.

*

Offline egomassive

  • 1703
  • 233
    • View Profile
    • egomassive games
Re: Knytt Stories: External sprites for standard objects and other mods
« Reply #27 on: October 04, 2010, 15:43:53 »
Spoiler: Lengthy Update (click to show/hide)

Edit: I forgot to address some questions.

@ Sergiocornaga: Changing the stripe in Juni's hair is definitely possible. I'm not sure how much of an asset it would be. Like I mentioned in the lengthy update, color changing adds bulk. How much bulk is too much? In black and white levels the blue highlights can be the only shed of color, but it's not that noticeable really.

@ Ultigonio: Infinite double jumping falls under what I consider "inappropriate" for KS. It's just too powerful and it makes no sense whatsoever (not that double jumping makes sense in the first place.) It wouldn't look like flying or swimming or any other rationale I can think of. But, as I'm writing this response I'm realizing infinite double jumping would make a really awesome cheat mode. Huh. I guess this is going on the to-do list.
« Last Edit: October 04, 2010, 16:11:42 by egomassive »

*

Offline sergiocornaga

  • 1239
  • 130
    • View Profile
    • Sergio's Games
Re: Knytt Stories: External sprites for standard objects and other mods
« Reply #28 on: October 04, 2010, 19:33:52 »
@ Sergiocornaga: The default behavior of a Trigger is to spawn an object at the 0:0 screen tile position. You declare TrigSpawnX(A) and TrigSpawnY(A) to pick a new location. If you declare TrigAbsoluteTraget(A)=False, then TrigSpawnX(A) and TrigSpawnY(A) indicate how many tiles from Trigger(A) to position the new object. The only offset commands you can declare are TrigEffectX(A) and TrigEffectY(A). These can move the spawn effect (same as shift effect) for creatures larger than 24x24 pixels.

I was more asking about the special object on your to-do list allowing animation of Juni, but since they would probably work in about the same way I feel my questions are answered.

@ Sergiocornaga: Changing the stripe in Juni's hair is definitely possible. I'm not sure how much of an asset it would be. Like I mentioned in the lengthy update, color changing adds bulk. How much bulk is too much? In black and white levels the blue highlights can be the only shed of color, but it's not that noticeable really.

You're right, it's probably trivial.

This mod seems fantastic. I'd like to see it become an official Knytt Stories update for some weird reason...

*

Offline egomassive

  • 1703
  • 233
    • View Profile
    • egomassive games
Re: Knytt Stories: External sprites for standard objects and other mods
« Reply #29 on: October 04, 2010, 22:38:00 »
^: Oh. It seems obvious you were asking about the "special" object when I re-read your comment. I should come up with a name. Anyhow, on further thought about the Special object I decided not to include Trigger elements. It will act as a timed Shift, a Sticky, a No Climb, and a No Jump, and it will make a CO cover unnecessary. In that light I decided it could be used in concert with a Trigger if you wish to create an animation.

Edit: I'm going to be away for a couple days, so I thought I'd leave you with a movie before I go. I made this hastily so the quality is bad, sorry. You will see: safe cyan lava, a trigger in action, color replaced leaves, color shifting, custom shift sounds, advanced signs, the Knytt character doing various moves, Knytt character color shifting, and character shifting.

Mod Video

I noticed a mistake while making the video. When switching characters with the hologram on, the new character isn't semi-transparent. It's an easy fix.
« Last Edit: October 04, 2010, 23:57:12 by egomassive »