Hello Guest, please login or register.
Did you miss your activation email?
Login with username, password and session length.

Pages: 1 ... 3 4 [5] 6 7 8   Go Down

Author Topic: [ABANDONED - All data released] Spirit's Quest  (Read 50023 times)

0 Members and 1 Guest are viewing this topic.
Re: The Legend of Zelda: Spirit's Quest
« Reply #80 on: March 10, 2011, 06:21:15 am »
  • AKA "Micah DS"
  • *
  • Reputation: +9/-0
  • Offline Offline
  • Gender: Male
  • Posts: 1347
I like. I like!  May I make a suggestion dealing with Ice?  If I were you I would put a friction variable in a parent object for all ground objects.  This would be the standard friction when you are on normal ground.  When you are on top of a given ground object, you would call that ground objects friction variable and adjust your characters movement accordingly, then all you have to do is lower that variable in the Ice Ground Object (a child of the standard ground object), and wha la!  You have ice, you could even make a more sticky platform by creating a child with increased friction.  I have yet to try this myself.  I actually wish I did this in my Smash Bros Game, but I didn't think of it until after the fact...  Oh well....  Maybe you already have a system that works well for you though???  No matter I am sure it will turn out very nice!

edit:  Welcome back by the way!  XD

I have it check if the player is on ice, in the air, in water, etc, all at the very beginning of the movement code (before it moves the player). Depending on what the player is standing on or in, it will set the acceleration, deceleration, etc. Then the movement code uses these variables to figure out how to move the character. For example, in the air, deceleration is VERY small, while acceleration is pretty much the same as on ground (little less), but in water pretty much everything is slow, and your maximum speed is also less. All of these variables are figured out before the movement happens, and it is all called upon in the Player object.

It sounds like you were advising me to set variables in the solids themselves? I don't see any point in setting variables in solids if I can set them in the player (since there is only 1 player and multiple solids). This is the way I've been doing it. I feel it actually is a more efficient way to do it, but parents sound like a good idea if this works...

SO HERE'S MY PONDERING ABOUT PARENTS:
Honestly, I've never used parents. I have 5 solids with ice characteristics (one block and 4 various slope angles). So I'm wondering, if I have the slopes set their parent as the "Ice" object, then could I ask in the Player object if place_meeting(x,y+1,Ice), and it would return ALL 5 of the objects? Meaning I wouldn't have to ask the same question for all of them?

I guess I could just test this out (thought if you knew then you could easily give me a quick answer), but I'm not at the ice test part yet. I've almost got the stairs working.

I've got it so that, in order to climb stairs, you must jump up on them and land on them. What I mean is that Link will always go down stairs by default if he meets both up and downward stairways at the same time.

Quote from: Stairway Example
\
  \
    \_____ <--- If Link walks this way, he will decline stairs, not go up them
    /
  /
/

Also, if Link is walking along the ground and comes to the base of a stairway, he will walk passed the stairs, NOT go up them. It's super annoying to make him walk up them by default, and jumping on them feels natural to me (heck, it's a platformer).

Does that sound right to you guys? I will give out a physics and collisions demo as soon as I get everything in there. I hate how game maker detects collisions so I've been taking a while to work on collisions. I've had unforeseeable difficulties because my character has a huge head and a tiny body, but I've been making good progress just the same (even though it may not look it).

CURRENT TO-DO LIST:
- Fix up glitches in stairs and dropthrough platforms (pretty much complete, should get it done tonight if nothing unexpected happens).
- Add ice with speed increases going down slopes and speed reductions going up slopes.
- Add moving drop-through platforms that are able to move in any direction.
- Add liquid (water, lava).
- Add muck (sinking sand, swamp water).
- Add climbable.

PLANNED DEVELOPMENT PROCESS:
After that I move on to adding Link's sprites and basic animations. Then I add pushing/pulling blocks, which I realized my current sprites need to be revised because Link leans too much and his arms don't need to go that far out. Which is good because I had a hard time trying to make his arms not look stretched, so they will look more natural now, lol. :P Anyway, after I get Link pushing and pulling, I will make the item/menu mechanics, then I'll add in each item one at a time until I've got all of Link's items functional. Somewhere in there I'll add in the HUD functionality and then Link's fairy's ai and her own magical powers. So that's mostly how I plan on going about this. I might decide to make the introduction sequence of the game somewhere in the middle of the item coding, possibly after. We shall see what we shall see.

COMMUNITY INVOLVEMENT:
Btw, I may have stated this a while back, but I do have plans to allow anyone to help out with the project if they want to, and I think it will be a nice organized system where I don't rely on anyone much and there isn't the pressure of responsibility to get things done if someone decides that they don't want to do whatever it is that they said they would do. But I'm getting ahead of myself, ha ha, back to programming! XD
« Last Edit: March 10, 2011, 06:23:30 am by Frozen炎 »
Logged
  • My Music
Re: The Legend of Zelda: Spirit's Quest
« Reply #81 on: March 11, 2011, 12:37:24 pm »
  • AKA "Micah DS"
  • *
  • Reputation: +9/-0
  • Offline Offline
  • Gender: Male
  • Posts: 1347
Well, I got the stairs working, FINALLY. I've been working on just that for literally 8+ hours. ::)

Anyway, here's a dev video... or maybe it's a "devideo"... :-\
<a href="http://www.youtube.com/watch?v=nfQ-R0FdPIw" target="_blank">http://www.youtube.com/watch?v=nfQ-R0FdPIw</a>

Stairs were the hard part, seriously, all the rest of the collisions and physics should get done real fast. If you can't tell by my to-do list (on the last post), I chose to code what I thought would be the most difficult things first.

Anyway, feedback is always nice, so if you see something you like or don't like, let your voice be heard!

....  :o i have a bad habit of staying up late (4:30am here)
Logged
  • My Music
Re: The Legend of Zelda: Spirit's Quest
« Reply #82 on: March 11, 2011, 02:00:00 pm »
  • *
  • Reputation: +3/-0
  • Offline Offline
  • Gender: Male
  • Posts: 3374
After hearing the music to go with that I'm not just gonna limit myself to chiptunes :P. Seems like it's working nicely though.
Logged
Quote from: Jason
Your community is a bunch of stuck up turds.
Re: The Legend of Zelda: Spirit's Quest
« Reply #83 on: March 12, 2011, 10:28:22 am »
  • AKA "Micah DS"
  • *
  • Reputation: +9/-0
  • Offline Offline
  • Gender: Male
  • Posts: 1347
Yeah, that music is actually from the "Essence of Lime" Zelda music project. There's some quality music in there. The songs are usually a good hybrid mix of realistic instruments and chippy synths. I love 'em. XD


Anyway, I've got ice coded already! The player now slips and slides and you can get more momentum than ever before if you slide down an icy slope (oh the possibilities for death defying long jumps)! THANK YOU AERO88! I can't believe I've never noticed the power of parents before. I used it with ice and the result is much less code and thus less clutter. Good good good!

I did notice that my friction has a flaw though. The character doesn't take into account "parts" of a pixel. An example of this: If an object is set at a constant motion of 1.25, the object should move 1 pixel the first three cycles, but on the 4th cycle the object should move 2 pixels because the ".25" adds up to a 1 (i.e. 1.25, 1.5, 1.75, 2). Right now, if I had my character set at the constant rate of 1.25, he would always go 1 pixel, no matter what. D:
Shouldn't be too hard of a fix. I know what's wrong, I just need to think about how to translate it into code. I know it's gotta be pretty simple, I've just fried my brain for the day and can no longer think. :P
Logged
  • My Music
Re: The Legend of Zelda: Spirit's Quest
« Reply #84 on: March 12, 2011, 11:17:39 am »
  • *
  • Reputation: +3/-0
  • Offline Offline
  • Gender: Male
  • Posts: 3374
Yeah, that music is actually from the "Essence of Lime" Zelda music project. There's some quality music in there. The songs are usually a good hybrid mix of realistic instruments and chippy synths. I love 'em. XD
I thought I recoginized it, sounded like hylian lemon's style. My favourite song from the album would have to be water from fire. Love the symmetry city theme :D
Logged
Quote from: Jason
Your community is a bunch of stuck up turds.
Re: The Legend of Zelda: Spirit's Quest
« Reply #85 on: March 13, 2011, 07:48:38 am »
  • AKA "Micah DS"
  • *
  • Reputation: +9/-0
  • Offline Offline
  • Gender: Male
  • Posts: 1347
Alright, well that was simple. I fixed my movement to include "part-pixel" movements. However, I noticed that I need to fix my character's maximum speed and there is a small issue where the character almost never actually comes to a complete stop (but may be going at 0.02 or something). Easy fixes, I just need to revise my acceleration and deceleration code. But it feels loads smoother with the part-pixel movements! For example, stops feel much less abrupt. I'm pretty happy with how this is turning out so far. :3

Here's part of the code that may or may not show you what I mean about part-pixel movements...

It WAS like this:
Code: [Select]
// X MOVEMENT AND HILL MOVEMENT
repeat (abs(floor(xspeed))){
 (movement code follows)
 blah blah blah blah etc etc etc

NOW it includes more code before it, and looks like this:
Code: [Select]
// CODE FOR GETTING "PART-PIXEL" MOVEMENT
// xcount number = last fraction of xspeed plus current xspeed
xcount = frac(xcount) + abs(xspeed);

// X MOVEMENT AND HILL MOVEMENT
// Do movement only if xcount = 1 or over
if xcount >= 1{
    repeat (abs(floor(xcount))){
    (movement code follows)
 blah blah blah blah etc etc etc

That seems to work perfectly (unless someone smarter tells me otherwise). The code repeats single pixel movement checks (not shown) the number of times = to your speed. Simple really, but I'll release that code later, once I get it commented better and possibly figure out a way to shorten some of it (trying to be as efficient as possible). :P

Another thing I noticed outside of the coding is that my animations for Link need a bit of revision as well. I just wanted everyone to know that I've noticed this and that I plan to fix the sprites up. But the best way to fix them is to test them in the engine, so I just need to a few more things done here get a few more things done and then I start testing Link's actions! That shouldn't be too far off!

EDIT:
Strikeout the fail. Perhaps sleep is necessary. :P
« Last Edit: March 13, 2011, 08:57:28 am by Frozen炎 »
Logged
  • My Music
Re: The Legend of Zelda: Spirit's Quest
« Reply #86 on: March 13, 2011, 01:12:35 pm »
  • *
  • Reputation: +9/-0
  • Offline Offline
  • Gender: Male
  • Posts: 3725
4Sword used a similar method for movement in the MCS engine. It has been in there for a long time already.
Logged
Re: The Legend of Zelda: Spirit's Quest
« Reply #87 on: March 14, 2011, 08:38:56 am »
  • AKA "Micah DS"
  • *
  • Reputation: +9/-0
  • Offline Offline
  • Gender: Male
  • Posts: 1347
Been a little busy, so practically no progress on the engine itself. HOWEVER, check out the beginning post of this topic. I revamped it and loaded it with good stuff! :D !
I pretty much just got it all organized and set up for future development updates. To make it easy on everyone, including myself. XD

Btw, to any mod listening: Is my project going along good enough to get moved to Zelda Projects? Technically, I don't have any "trailers" because the videos I do have just show the engine off. I don't mind waiting for a move until I actually start to put in the pretty graphics if that would make it more official. I should get to that point pretty soon though.
Logged
  • My Music
Re: The Legend of Zelda: Spirit's Quest
« Reply #88 on: March 14, 2011, 11:36:57 am »
  • *
  • Reputation: +9/-0
  • Offline Offline
  • Gender: Male
  • Posts: 3725
Actually, these days you need to create a project page in the new project system. It will automatically transfer you to the Zelda projects. That is if it still works since the boards reorganization. I don't think anyone has tested it yet.
Logged
Re: The Legend of Zelda: Spirit's Quest
« Reply #89 on: March 16, 2011, 09:39:20 am »
  • AKA "Micah DS"
  • *
  • Reputation: +9/-0
  • Offline Offline
  • Gender: Male
  • Posts: 1347
Ah, I see. Things have changed a bit since I've been gone. Well, I checked it out, I just don't see how I can link the project back to this page or if it automatically starts a new topic (for the "discuss this project" link). I'd like to keep this topic rather than start a new one. Guess I'm just a little confused on how that works. :/ Anyway, I've decided that I'll wait to create a project page until after I've gotten to the point where I add in Link's animations. That way the game will be far enough along to "look" like a game.

Update:
Good news and bad news, and then some possible good news on the bad news: I fixed the all the speed issues and I only see one more problem before I move on to code the moving platforms. Bad news is that one problem is a glitch where the character may hover over ground if you hit a slope just right. The good news on this bad news is that I think I've narrowed down where the problem is and it shouldn't be too hard to fix once I look it over a bit.

Heh, I probably spend more time testing than I do programming. :P
Logged
  • My Music
Re: The Legend of Zelda: Spirit's Quest
« Reply #90 on: March 17, 2011, 01:01:41 pm »
  • AKA "Micah DS"
  • *
  • Reputation: +9/-0
  • Offline Offline
  • Gender: Male
  • Posts: 1347
I just added in the "Steps of Development" sub-section to the first post. It's where you can easily see what I've got done, what I'm doing, and what my next steps are in the development process. ^,^
Logged
  • My Music
Re: The Legend of Zelda: Spirit's Quest
« Reply #91 on: March 17, 2011, 01:15:47 pm »
  • *
  • Reputation: +3/-0
  • Offline Offline
  • Gender: Male
  • Posts: 3374
I think I'll go find my old tunes I was writing for this and fine tune them.
Logged
Quote from: Jason
Your community is a bunch of stuck up turds.
Re: The Legend of Zelda: Spirit's Quest
« Reply #92 on: March 18, 2011, 10:07:14 am »
  • AKA "Micah DS"
  • *
  • Reputation: +9/-0
  • Offline Offline
  • Gender: Male
  • Posts: 1347
Awesome, sounds great Dark, though the game is not really there yet. :P
I'd just hate for you to make awesome music that didn't fit with the game.


UPDATE! YAY ^,^ !!!


I fixed the y movement issue. It was the stupidest most simplest thing, I couldn't believe I missed it. Anyway, at least now I don't feel like WHAT THE $%#$^#&!? IS IT DOING THAT FOR?!

Also, here's a vid to show off the ice and the newly-added moving platforms:
<a href="http://www.youtube.com/watch?v=1Pht1W1s5QE" target="_blank">http://www.youtube.com/watch?v=1Pht1W1s5QE</a>
Note: The music in the vid was made by me ages ago, when I only had awful samples at my disposal.

I think the only thing that I might revise at this point is the speed at which the character drops off of ledges.
And, yeah, the moving platforms all do the same thing, but it's all the movement I needed to code to make sure any movement would work, so why waste time making it look pretty? ... So maybe I'm a tad bit lazy, but hey, I made it happen and that's what counts.

Next thing on the to-do list is the liquid type (i.e. a swim-able substance), which should take a tad bit longer than the moving platforms (those took me a few minutes :P). I just need to figure out exactly what I want to do with swimming, and maybe fool around with making swimming sprites to see if i need to have another collision mask or not. Things like that.


Btw, when I get to the point where I add in the HUD, I will put Spirit's Quest in the Zelda Projects category. Hopefully I can transfer this thread over there and not have to start a new one. But I guess it won't matter either way, as long as this one is locked or something (don't want people to get confused).
« Last Edit: March 18, 2011, 10:23:22 am by Frozen炎 »
Logged
  • My Music
Re: The Legend of Zelda: Spirit's Quest
« Reply #93 on: March 18, 2011, 12:01:08 pm »
  • *
  • Reputation: +3/-0
  • Offline Offline
  • Gender: Male
  • Posts: 3374
Awesome, sounds great Dark, though the game is not really there yet. :P
I'd just hate for you to make awesome music that didn't fit with the game.
Yeah I was going to say the music I made earlier probably won't fit in too well :p really need to see what the graphics are like/beta test before I can write music that suits it.
Logged
Quote from: Jason
Your community is a bunch of stuck up turds.
Re: The Legend of Zelda: Spirit's Quest
« Reply #94 on: March 18, 2011, 06:28:00 pm »
  • ...---^^^---...
  • *
  • Reputation: +6/-0
  • Offline Offline
  • Gender: Male
  • Posts: 616
Wow, I haven't checked back in for a while, but I am really liking what I am seeing.  Yeah my suggestion for placing the friction variable in the ground object, really only helps if you make use of parent structures, and you have a lot of types of grounds in your game.  It looks like what you have done works very well.  Parent structures can be extremely valuable when you have a lot of objects that need to inherit a certain piece of code or even events.  That way you don't have to recode for every object that could otherwise be in a parenting structure.  I can't wait to see what this will look like with your spirits quest graphics!
Logged
Re: The Legend of Zelda: Spirit's Quest
« Reply #95 on: March 20, 2011, 05:43:56 am »
  • AKA "Micah DS"
  • *
  • Reputation: +9/-0
  • Offline Offline
  • Gender: Male
  • Posts: 1347
Alrighty! Water (and any other liquid that Link can swim in) is done! What does this mean?

A screenshot of some water is worth 986 words:


What you see in the screenshot is Link swimming in water! And no, Link isn't animated yet at all; the sprite of Link was just a test.

The water is NOT an object; it is drawn. I went the object route at first because it gave me a bit more flexibility with placing water at various levels, but the object count was so high that the fps dropped to 29, which was enough to tell a difference in speed and that's just unacceptable. Less is more.

Instead, I'm using a variable called "liquid_level" to tell it where the water starts. This is a pretty cool thing because, with water done this way, it keeps things simple for saving and loading water in a randomly generated room. All I have to do is save the water level variable as opposed to saving a layer of water in an array or something. Also, the water level can be changed super easy (useful for buttons that raise and lower water levels). It's got it's pros and cons, but this way is definitely best overall.


Now I just need to code muck and climbable types before moving on to the next big step! ^_^
Logged
  • My Music
Re: The Legend of Zelda: Spirit's Quest
« Reply #96 on: March 20, 2011, 05:59:56 am »
  • *
  • Reputation: +3/-0
  • Offline Offline
  • Gender: Male
  • Posts: 3374
I probably would have gone about the multi level water problem by having an array which holds points that define a water area. But whatever :P
Edit: Nevermind, I read the whole post after and saw you considered doing that.
« Last Edit: March 20, 2011, 06:05:39 am by Dark光 »
Logged
Quote from: Jason
Your community is a bunch of stuck up turds.
Re: The Legend of Zelda: Spirit's Quest
« Reply #97 on: March 20, 2011, 06:19:57 am »
  • AKA "Micah DS"
  • *
  • Reputation: +9/-0
  • Offline Offline
  • Gender: Male
  • Posts: 1347
I probably would have gone about the multi level water problem by having an array which holds points that define a water area. But whatever :P

Yeah, guess I could do that, but with the way the game is designed there really isn't much point in having multiple bodies of water per room anyway. Also, it's going to be hard enough to do the randomly generated thing without having more to think about. For me, it's all about getting the perfect balance between simplicity and flexibility: I don't want to go for more options than necessary because it will just slow the progress of the game down and may even make things just too much for me to handle, but at the same time I don't want the game so simple that the randomly generated part doesn't offer enough different scenarios to actually make the game feel new every time. But yeah, in the grand scheme of things, I feel that one body of water per room is a good compromise.

Honestly though, I'm a bit of a newb when it comes to arrays. I've never used an array, I've only read a bit on arrays and seen some code for one in C++, so I just have some basic knowledge on how to set an array up. I'm just not at the point in the project where I need to learn that stuff yet. :P
Logged
  • My Music
Re: The Legend of Zelda: Spirit's Quest
« Reply #98 on: March 20, 2011, 07:43:27 am »
  • *
  • Reputation: +16/-0
  • Offline Offline
  • Gender: Male
  • Posts: 1633
Arrays are a godsend when you have an large/variable number of (identical) variables. One advantage is that you can very easily loop through stored data. It is probably learn about them early on so you know what options are available! Discovering them later on and having to recode sections is a timely affair. Trust me, I know XD

An array example:
Code: [Select]
....

for (argument[1]=0; argument[1] < obj_Master_Control_Tile.body_sprite_count; argument[1]+=1)
{
     draw_sprite_ext(
                    obj_Master_Control_Tile.body_sprite[argument[1]],
                    image_single, floor(x), floor(y), 1, 1, 0,
                    obj_Master_Control_Tile.body_pallet[obj_Master_Control_Tile.Equipment_B3,argument[1]],
                    argument[2])
};

...

What you see here is a part of the script I use to draw my character (= first example that came to mind).

First just a little description of it's use. What this coding does for me is that I can switch between tunics/frozen/stone appearances on the fly. When I want another set of colors drawn I change Link's tunic variable. If I want to add, remove or alter a set of colors it is as simple as altering the arrays going into this coding. This all makes it so I do not have to physically alter every Link-sprite used when I want to change his colorpallets or when I add/remove a tunic and so on.

First I predefined how many layers my character will consist of using the variable body_sprite_count (There is also a function like Ubound(insert array, insert array dimensionindex) that can also be used, but I prefer using a variable). The sprites I wish to draw are defined in the body_sprite array, which has only one dimension. The colors I wish to use are defined in the body_pallet array which has one dimension to determine what set of colors to use and a second to pick the actual color.

So I circle through a preset number of sprites. For every sprite I wish to draw I retrieve it's reference from body_sprite and draw it in the color associated with the current tunic and sprite.

The arrays used are defined like so:
Code: [Select]
// Layer count
body_sprite_count = 5;

// Body sprites [pallet number ; sprite]
body_sprite[0] = sprite_Link_Body_A;
body_sprite[1] = sprite_Link_Body_B;
body_sprite[2] = sprite_Link_Body_C;
body_sprite[3] = sprite_Link_Body_D;
body_sprite[4] = sprite_Link_Body_E;

// Body colors [pallet number ; color]

// B0. [Default tunic];
body_pallet[0,0] = make_color_rgb(248,248,248); // white
body_pallet[0,1] = make_color_rgb( 56,144,104); // dark green
body_pallet[0,2] = make_color_rgb( 64,216,112); // light green
body_pallet[0,3] = make_color_rgb(136, 88, 40); // arms
body_pallet[0,4] = make_color_rgb( 80,144, 16); // dark green

// B1. [Water tunic];
body_pallet[1,0] = make_color_rgb(248,248,248); // white
body_pallet[1,1] = make_color_rgb(  0, 96,208); // marine
body_pallet[1,2] = make_color_rgb(136,160,232); // light blue
body_pallet[1,3] = make_color_rgb(200, 96, 32); // arms
body_pallet[1,4] = make_color_rgb(192,168, 72); // dark yellow

..... and so on

The only problem with Gamemaker is that it can't handle anything beyond two dimensions.
Logged
Re: The Legend of Zelda: Spirit's Quest
« Reply #99 on: March 20, 2011, 10:27:59 am »
  • AKA "Micah DS"
  • *
  • Reputation: +9/-0
  • Offline Offline
  • Gender: Male
  • Posts: 1347
The only problem with Gamemaker is that it can't handle anything beyond two dimensions.

Actually, you can get up to 14 dimensions if you have a pro version of GM7 or 8 and if you use this golden deliciousness:
http://gmc.yoyogames.com/index.php?showtopic=480656

 XD

Luckily, I have pro, so I can choose to use an array or a data structure, depending on the situation. So that means I could use the stuff from that link if I find it is necessary. But I definitely need to read up a lot more. I'm finding all this very interesting though and I can already see that my game will benefit GREATLY from learning all this.
Logged
  • My Music
Pages: 1 ... 3 4 [5] 6 7 8   Go Up

 


Contact Us | Legal | Advertise Here
2013 © ZFGC, All Rights Reserved



Page created in 0.145 seconds with 89 queries.