Dragon Quest WIP
Displaying 1-20 of 21 total.
12
next
rpgking
|
Well, the demo I've wanted to upload is finally up. Thanks grue!
http://www.verge-rpg.com/files/detail.php?id=700
I'm interested in seeing how fast the wagon following works for whoever tests this out. Also, I want to know how fast/stable the menu system is. There is an in-depth description of the controls and what's present in the demo in the Readme.
Posted on 2006-12-18 21:09:19 (last edited on 2006-12-18 21:10:07)
|
choris
|
The wagon-party did move a bit slower in the world map, is wasn't terrible but you can notice it compared to the town map. You could always pretend you did it on purpose, when I first saw it I thought to myself: "Yah I guess you would move slower with a big wagon". :D
Posted on 2006-12-19 14:47:54
|
rpgking
|
Just to clarify, I did purposely lower the walking speed on the overworld compared to the town map. I didn't want people running around quick on the overworld. ^_^
But I was just wondering if the wagon followers themselves ever fell behind the main character, since there is custom code running that keeps them in place (main character still runs on the default Verge3 movement code). Some people who tested it reported that the followers fell behind, but when I run it, they always keep up (unless I hold down the ~ key that jacks up the timer speed...).
Posted on 2006-12-19 19:42:06 (last edited on 2006-12-19 19:42:30)
|
Gayo
|
Frontpage'd! Man, that is some sexy shit. I couldn't see a problem anywhere, but I'll give it a more thorough looking-over later.
Posted on 2006-12-20 00:58:01
|
IkimashoZ
|
I had the experience where the two people on either side of the wagon got "left behind". Did satan harvest their souls? No, they were just froze in place on the world map and I had to move some distance away from them before bloop! There they were again. I'd like to be helpful and say I was paying more attention to what I was doing. Try reversing your walking direction really quick or making a lot of quick turns or something.
Posted on 2006-12-22 18:13:17
|
Syn
|
This is a very polished system you have there rpgking. I haven't played any of the Dragon Quest games yet, but it really feels like I'm playing something on a snes emulator. Good job! What are you planning to do with this engine?
About the wagon people, they seem to always keep up on my comp. Btw, I love the fact that the characters on the side switch places when you walk in different directions on the world map. Meaning if a character is on the left of the wagon, he is always there.
Posted on 2006-12-23 23:38:18
|
rpgking
|
Ikimasho, do you have a relatively modern PC? What is the clock speed, RAM, etc.?
And Syn, thanks for the kind words. I hope to use this engine to make an actual game. :D
Posted on 2006-12-24 20:59:22
|
IkimashoZ
|
I'm afraid I'm a software/programming junkie and I take little interest in the inside of my computer beyond it letting me do the stuff I want to do.
My comp is a year and a half old (bought it just before I came to Japan in 2005) and it's got a 1.4 ghz processor and 760 megs of RAM. If you need more specific info than that (not sure exactly what you mean by clock speed), you'll have to give me specific instructions as to how to find it.
Posted on 2006-12-25 01:23:13
|
JL
|
Quote:Originally posted by IkimashoZ
I had the experience where the two people on either side of the wagon got "left behind".
I notice the same thing. I can consistently get them stuck by pressing the Enter key on the world map ("...examines the ground beneath his feet"). In most cases, they get themselves unstuck in a few seconds, but if you get them stuck between some obstructors, they seem to get stuck permanently.
(My computer's 2.4Ghz, so I doubt that's the problem. And the movement algorithm really shouldn't be dependent on processor speed in any case...)
Posted on 2006-12-25 12:03:08 (last edited on 2006-12-25 12:04:38)
|
rpgking
|
The movement algorithm is synchronized with the Verge timer, which should be independent of processor speed. This is why it puzzles me how some people get characters that lag behind.
Posted on 2006-12-25 13:16:44 (last edited on 2006-12-25 13:17:04)
|
IkimashoZ
|
I'd say log their x,y coords and then go into the game and press enter like JL says and see what happens
For me it wasn't a kind of "oh, they're a few steps behind the group" so much as it was that the two characters froze in place, didn't move at all no matter what I did, and then suddenly a few seconds later, BAM, they're back with the group.
Posted on 2006-12-25 17:37:39 (last edited on 2006-12-26 22:25:55)
|
Omni
|
Is the movement system HookRetraced or in a custom game loop?
Posted on 2006-12-25 21:17:22
|
rpgking
|
It's hookretraced. The basic concept of this movement system is that there are "anchor entities" on the upper left and upper right sides of the wagon that the side followers will follow. The hookretraced function just updates the position of these anchors.
Posted on 2006-12-26 12:20:31
|
Omni
|
I can only say this because I have no clue how it works and thus when proven incorrect I can feign ignorance...
But it is possible that has something to do with it, since while Verge's timer will be speed-constant across different computers, the HookRetrace's framerate-dependent execution may not be.
For many implementations I'd say maybe that's the problem. However, you have a very ingenius way of doing the movement -- using invisible target entities to be 'chased' is something I never thought of. I'm not really sure what the error would be there.
And if it turns out something about that is framerate dependent, the only solution would be to custom code their movement. Since I don't we can easily or readily rewrite the anchor-following code in the V3 source. (Well, I imagine for some of us, it's doable, but it's probably better to not mess with it unless there's some hideous game-breaking problem).
Have you tried turning your anchor entities into real entities and watching their positions while stress-testing it on Turbo speed? That could prove to you whether or not your anchor-updating code is working right.
I'd try to figure out how to alter your code to make the anchors update correctly at Turbo speed (you did mention earlier that this was a known case in which they misbehave). I bet that would fix whatever problem is normally occuring.
Posted on 2006-12-26 20:02:40
|
rpgking
|
Those are some very good debugging ideas there Omni. I never even thought about turning my anchor entities into real entities to see how their positions are updated. And getting them to update correctly at turbo speed is a good idea too.
If I'm not mistaken, turbo speed just ramps up the timer speed doesn't it? Or does anyone know exactly what goes into the turbo speed?
You're definitely right in that hookretrace could affect the way it's running since the speed is machine-dependent. But then again, I'm always checking against the timer(I just might not be doing this part correctly).
But anyway, very good ideas. Thanks a lot for the suggestions! :)
UPDATE: I just quickly tried turning my null anchor entities into horses, and it turns out that the anchor entity positions are always exactly where they should be even in turbo mode. The characters just don't keep up, which shows that the way I'm syncing' with the timer must not be correct...
Posted on 2006-12-26 21:31:51 (last edited on 2006-12-26 21:41:07)
|
Overkill
|
Post your way of synching the timer, and I can probably tell you if it'll actually be able to catch up for slow processors or for people in fast-forward.
Posted on 2006-12-27 10:35:47
|
Omni
|
Well, if the anchors are fine...then something must be wrong with the implementation of your chasing entities. How exactly do you do this?
I would imagine that your HookRetraced code would update the anchor entities alone, and that the chasing entities would be left to follow their anchors on their own using V3's movement engine.
The fact that you stated that there's a problem though, indicates that maybe either A) the implementation is more complex than I thought, or B) V3's default entity chasing is faulty.
I'm assuming A, since simply entity chasing should Just Work. You must have a method of coding it that I haven't thought of. So now we'll turn our attention to the code controlling the actual character entities which must follow the anchor entities.
It is also possible that C) you're doing a simple implementation (updating anchors only and leaving the chasers to fend for themselves with V3's native movement system), and V3's default entity chasing ISN'T faulty, but it merely doesn't function when used in tandem with manual VC-code controlled movement of the anchor entities (and thus you are forced to VC-code your own routines to update the character entities as well, and it is this code which is faulty).
But, alas, we lack information.
Posted on 2006-12-28 11:20:53
|
pthaloearth
|
yeah at this point I'd personally suggest posting the movement/chasing code so we could perhaps help out. It's kind of interesting because they always end up catching back up when I've tested it, so my guess is a timing issue with the hook.
Posted on 2006-12-28 11:51:26
|
Overkill
|
Okay, never mind. I neglected to realize you included the source with your DWL tech demo. Basically, the problem was because you use an if() where a while() is needed in dwl_UpdatePartyAnchors() in dwl_party_system.vc. So simply change that and we're left with this, which will always keep in synch.
//set entities to chase anchors...at a universal speed
while(dwl_follow_timer256>>8 < timer){
if(entity.face[dwl_party_sprites[2]] != entity.face[dwl_party_sprites[0]] &&
entity.face[dwl_party_sprites[3]] != entity.face[dwl_party_sprites[0]])
dwl_follow_timer256+=225; //1.76 450
else dwl_follow_timer256+=112; //0.88 225
dwl_EntityChase(dwl_party_sprites[2], dwl_party_anchor1);
dwl_EntityChase(dwl_party_sprites[3], dwl_party_anchor2);
}
But this doesn't quite solve the problem where entities occasionally get "stuck" in one spot and you need to move a certain distance before they move back to you.
Posted on 2006-12-28 13:46:14 (last edited on 2006-12-28 13:51:03)
|
rpgking
|
As Overkill discovered, I included all the source code. It's just in a separate subdirectory.
Thanks for the fix Overkill. For some reason, I assumed that changing the if to a while would stall the engine as long as the while is being processed. I guess in a hookretrace, this is not the case...
I have yet to reproduce the bug where entities occasionally get stuck in one spot...
Posted on 2006-12-29 13:45:54
|