Edit: Somehow, I uploaded a slightly older version.
This SWF should be (a little) less buggy.
Hey guys!
So I was pretty inspired when Playshapes first released Legend of K, and got to work pretty quick messing with it. I
realized from the start that I couldn't do everything the game needed, but thought it would be a fun chance to learn
how something like this worked, and improve my AS/general flash skill.
When I first stumbled on this forum, I thought "Oh cool, but it probably isn't going anywhere." Then I saw some of the
stuff you were making and an eyebrow went up (in a good way). Then I saw Vixentamer's stuff and my jaw hit the
floor. The organization could still be tricky, but you guys have the potential for something really cool here. With that
in mind, I humbly submit the results of my tinkering, in the hope that some bits or pieces from it might benefit the
general effort.
I'll also go into more detail on what I changed/added below in case anyone's interested. But it's gonna be a wall of
text, so be warned. Feel free to just skip ahead to the download.
So most of the changes I made were behind the scenes, tweaks or complete overhauls in how the fla was structured, or the
actionscript written. This file (As you'll notice once you open the FLA) is actually completely re-built from the
ground up, rather than simply being a tweak of the original.Mostly I did this because the original was so top-heavy it
was impossible to work with, but I had the chance to improve a lot of small things along the way. Here's a few of the
problems I tried to improve:
a. Simplified the main time linePlayshapes original file had something like 400 layers on the main time line. With due respect to him, this made me
want to shoot myself. Mine has roughly 18, and many of these could be cut. What's important here though is the reason
behind the numbers: basically, there was a new layer for every object in the original. This was bad because it took
forever to find something, and especially in a collab. project like this, clear, understandable organization is
very, very important. The core, important layers in my new file are:
-Label layer (Like before)
-Two script Layers (One just stops things, could probably be eliminated with better actionscript)
-An interface layer (for the buttons, exp points, etc)
-A shadow layer (should be combined with the next two eventually)
-A Foreground layer (stuff in front of Krystal)
-Krystal's layer
-A Background Layer (stuff behind Krystal)
There are other layers, but they're mostly sloppy left-overs that could and should be blended into the others.
These layers, combined with a lot of movie clips (no more raw shapes everywhere) make it easy to find what you're
looking for, and to understand where it is in relation to everything else. Heavy use of "Bring to front" also helps
.
b. Massively simplified Krystal's movement mechanismA lot of my changes were actionscript ones, and this was one of the biggest. In flash, certain things are better done
with actionscript, others with movieclips. I felt like this was clearly an AS problem, and could be done much more
easily if I let it do all the heavy lifting.
To review, Playshapes had an intricate system where he would have two avatars on each screen and activate one of them
depending on which way you entered the screen and detect when you were at the edge of the screen with hit detection
on two invisible movie clips and have them forward you. So to be clear, we had four movie clips PER SCREEN dealing
with the movement mechanism, each with their own independent actionscript that had to be hunted down and changed if new
rooms were to be added or changes made. Again, with respect, desire to shoot myself rising.
The new system uses one movie clip. One. I have Krystal's avatar on a separate layer that passes through all the
others with no keyframes. Then I use actionscript on the main AS layer to move her, and to keep track of two things:
where she is (x coordinate) and what room we're in. When she "hits" either side of the current room, it shows up
as either a particularly low or high x number, and the script catches it. It then
-decides whether we're going right or left (based on whether that x number is low or high)
-increments the room variable accordingly
-checks to see which room we should be in based on the new variable and a table it has and
-puts us in that room.
The massive advantage this system has, apart from visual simplicity, is that everything is in one central place. Want
to change her movement speed, for example? Tweak the code once. In the old system you'd have to change code on every
screen. Again, this is just good programming, but it's especially important when people are going to collaborate.
c. Invented a standardized dialogue boxI strongly feel that dialogue boxes should be standard. Again, this means using a little more actionscript. In the
new system, the dialogue is stored in an AS table, then fed out to a Dynamic text field. This means formatting stays
consistent, and that it's easier to add new lines: all you have to do is add to the table, rather than add new frames
and painstakingly type in the new stuff, struggling to make sure you don't screw up the formatting somewhere. Even
better, with a few tweaks you can copy-paste this dialogue box clip wherever you need one, without having to re-invent
the wheel for each new time the characters talk.
Admittedly, my design may be a little basic, but that's just cosmetic: the look is a separate sub-clip: feel free to swap
it out.
d. Toyed with a new game mechanicThis is more experimental, and you can make of it what you will. I enjoyed the original L of K, but most of the fun came from simply exploring. Which was fine, but I wanted to try to add a little challenge to the game. So I created something called the corruption system.
In the original, if I remember correctly, if Krystal is too messy she doesn't get any xp. I decided to run with that and expand it. Now messiness actually makes you gain xp faster, but with a downside: the messier you are, the faster you accumulate corruption. Max out corruption and you lose. So it's a struggle between trying to level fast and without tipping the corruption over the top. And if you want to avoid racking up corruption too fast, you can bathe and reset the messiness (I've actually added fast travel to that screen for just this reason).
At the same time, xp is more varied now. The fancier/more brutal acts give more xp (and also more corruption). Some of them are so intense that you have to be sparkling clean before hand or you'll lose by default.
Along with this, I also designed a few different "Bad ends" to appear depending on exactly how you fail. This adds to the replayability, and also to the challenge as players try to find them all. There are only three at the moment, one of which I've disabled because there's no way to avoid it yet, and the animation for the other two is a little rough: they're meant as rough proof-of-concept.
Anyhow, just an idea I was toying with. Like I said, make of it what you will. Oh, and there's more that a few minor bugs, or things that aren't quite finished. Hopefully it'll still prove interesting/useful.
SWF (see above)
FLA