Page 1 of 1

Smooth Scrolling?

Posted: Wed Jan 14, 2004 2:02 am
by Ingmar
I hope this isn't too stupid a question, but has there being any thought given to the practicality of a smooth (1 pixel at a time) map scrolling option rather than the game's 1 tile at a time scroll?

Re: Smooth Scrolling?

Posted: Wed Jan 14, 2004 7:20 am
by Andrea B Previtera
I think that, given the number of "walk" frames the characters currently have, with the screen scrolling smoothly, they would look like they're moonwalking.

Re: Smooth Scrolling?

Posted: Wed Jan 14, 2004 8:05 am
by Ingmar
Yeah, I didn't mean that the scroll should be slower or anything, just that the intermediate positions would be shown. I agree that the walks are limited but they would still occur once per tile (assumption on my part) and just as fast as at present (which already doesn't give you very long to observe how they actually move). I just notice that I find the jerkiness quite tiring on the eyes, and I can't play as long as I might otherwise.

Part of my interest is because I am looking at U7 (or a close facsimile) to use as an example to develop an engine for the GBA. Similar GBA games tend to scroll by the pixel.

But so far I haven't worked out how the rendering works in Exult so I don't know how practical my notion was (in Exult).

Re: Smooth Scrolling?

Posted: Wed Jan 14, 2004 11:56 am
by Colourless
Smooth scrolling in exult would require a substantial rewrite of much of the engine so it's not going to happen.

-Colourless Dragon

Re: Smooth Scrolling?

Posted: Wed Jan 14, 2004 4:40 pm
by Tristan de Inés
I don't want to question your know-how on exult's inner workings, but I would think that the main problem with this is that in U7 the frame rate is the same as the speed at which the game world runs.

But shouldn't it be possible to have an extra "mini-loop" in the main game loop that makes NPC's "slide" from one tile to the next every time they move? At a 1 pixel movement and tiles being 8 pixels across, this would mean increasing the new framerate to 8 frames per "game-tick", but tweaking the drawing algorithm a bit should make this work.
You would also only require one new variable for all the NPC's in the world, since every moving NPC will have "travelled" the same amount of pixels every frame (together with the NPC facing and position, this would make clear where between two tiles to draw the NPC sprite).

Since the Avatar is always centered, a little bit of extra work would be required to make the world "slide" right for Avatar movement.

So, the way I think it works, I believe that it should be doable and that it could be a major cosmetic improvement, but maybe I actually have no idea and what I'm saying is completely over the top...

Re: Smooth Scrolling?

Posted: Wed Jan 14, 2004 4:45 pm
by Tristan de Inés
Hmm, I forgot about running, chariots and moving horizontally.

Okay, I guess this is more complicated than I thought. But I guess it would work for NPC's that ONLY move horizontally or vertically and ONLY one tile at a time... well, it was fun for a moment ;)

Re: Smooth Scrolling?

Posted: Wed Jan 14, 2004 4:47 pm
by Tristan de Inés
Damn... in the above post, I mean that:

I forgot abount running, chariots and moving DIAGONALLY...

okay, okay, I'm going to sleep already... it's almost 3 AM over here... ;)

Re: Smooth Scrolling?

Posted: Wed Jan 14, 2004 11:32 pm
by Colourless
For a second time: Smooth scrolling in exult would require a substantial rewrite of much of the engine so it's not going to happen.

It's not just a simple as changing the rendering loop in Exult. If it were I would have done it long ago. Exult's main problem is it doesn't really have an idea of individual game frames. Things are controlled using a timer based system and attempting to change that is likely to cause you all types of pain.

-Colourless Dragon

Re: Smooth Scrolling?

Posted: Thu Jan 15, 2004 4:31 am
by Ingmar
Colourless Dragon: Well, you ought to know. Shame, but thanks for a definitive answer.

Re: Smooth Scrolling?

Posted: Thu Jan 15, 2004 9:23 am
by drcode
Okay, it's definitely not going to happen in the near future. But, I see our releases having the following goals:

1.0: Ability to get through the complete plots of the games, even if the mechanics are fairly rough.
1.2: (Coming soon) Major code cleanup and bug fixes. Playability is as close as possible to the originals. (I just played BG and SI all the way through without cheating, and had far fewer problems than when I played the original games.)
1.4/2.0?: Modernize engine: Put all constants in data files; rewrite savegame format so you can have more than 1024 shapes; possibly support more than one map and/or maps of different sizes. So maybe we could redesign the game loop as Colourless suggested.

Of course, one challenge during a rewrite is to keep the game small and fast enough so it can still run on small devices like the Zaurus.

Re: Smooth Scrolling?

Posted: Fri Jan 16, 2004 12:41 am
by Andrea B Previtera
> Of course, one challenge during a rewrite is to keep the game small and > fast enough so it can still run on small devices like the Zaurus.

Hmm... I somewhat disagree to such a coding/maintenance approach:
I think that once you accomplish the goal of porting a certain application
to a small device like the zaurus, you should plan the next one with
superior limits in mind.

It's ok for version 1.0...1.1...1.2...1.X to mantain such a compatibility, but
probably a from-scratch or new-engine 2.0 version should aim higher and
think to the future (when, for sure, said small devices will be improved
and more powerful)

Just my couple eurocents :)

Re: Smooth Scrolling?

Posted: Fri Jan 16, 2004 1:04 am
by SB-X
Trying to write small fast apps that can run on a Zaurus is aiming higher. Well at least the Zaurus users should agree here. :)

Re: Smooth Scrolling?

Posted: Fri Jan 16, 2004 5:10 am
by artaxerxes
I agree! ;-)

You said, the future should be the aim. Well it is! If you can run Exult on PDA, then you are properly aiming the future. Best now if you could even play Exult on a cellphone!

Artaxerxes