N-racer Blog


Could marble be a spinning ball with animal? At least player's one? Or it is a complete stupid idea?
 
quasist said:
Could marble be a spinning ball with animal? At least player's one? Or it is a complete stupid idea?
Heh, everybody who pre-orders gets their avatar on their own custom marble!

Edited to add: just a joke, this is not a commercial game
 
Last edited by a moderator:
Dzz said:
fusion_power said:
Impressive marble effects for a GP2X, very nice. :)
Your method looks superb, maybe to good for just a quick racing game. :lol: For max. performance, maybe the spheres could be less round and while high-speed rolling, a more simple animation method could be used. In a fast racing game, the marbles would spin very fast, so you don't see a rotating texture, just blurring or light effects like fading light hue and brightness and so on at the surface of the marble. And what is not seen, is not needed to be animated I think. The "cheapest" way would be a non rotating sphere with a "looped" little texture animation at the surface - not calculated in real time, just something, that gives the effect of a fast spinning marble. maybe in combination with light effects. This could come in handy, when the marble spins very fast. With low speed, your detailed method could be used. :) -Just an Idea to save processor Power....maybe... ^^
As I had envisioned the game prior to starting (such visions never survive intact, but still), there would be sections of a track where (because of obstacles, tight turns or other reasons) the marbles would have to roll slowly -- to give a contrast between slow movement and giddy roller-coaster-like movement. However, you're right that at high speed the way they are drawn is probably not the best because the texture flickers instead of blurring. That's an issue for later but it's an important one, because the player will have their own marble spinning fast right in the middle of their view for most of the game, so that should look decent.


Just have different versions of your textures that would be more or less motion-blurred and in game use them depending on the speed of the ball :)
 
Last edited by a moderator:
Dzz said:
quasist said:
Could marble be a spinning ball with animal? At least player's one? Or it is a complete stupid idea?
Heh, everybody who pre-orders gets their avatar on their own custom marble!

Edited to add: just a joke, this is not a commercial game


If I pre-order now can I have a cube instead of a sphere ? ;)
:lol:
 
Last edited by a moderator:
A_SN said:
Just have different versions of your textures that would be more or less motion-blurred and in game use them depending on the speed of the ball :)
Yeah, that might work, thanks! The problem is that the marbles roll at arbitrary orientations and in arbitrary directions so the blurring should be different, but it might be helpful to just blur the texture in a general way. I'll give it a try sometime in the future unless a better idea occurs.

Ideally, here's what I'd LIKE to do: For a particular rendering, compute the rotation matrix at both the start and end of the timeframe, which provides starting and ending texture coordinates for the point. Sample the line in the texture that connects those coordinates, and average the samples. Unfortunately, that will be far too slow. Even just doing just two or three samples (say, each endpoint and the midpoint between them) will be too expensive.
 
Last edited by a moderator:
but but but...

wouldn't the bit of track just under the ball (closest to the camera) need to be blurred as much as the the marble itself? or the "middle" of the marble, since the marble wouldn't blur evenly. assuming it's moving forward in the Z direction with camera following, i think a YZ cross-section dead center will have the fastest linear speed, and the ends will have the least.

obviously your method of calculating each point would take care of that, but my point is that it might look a little strange if the ball blurred but not the track.

one solution might be to do (what i think is called) temporal anti-alias... keeping the last couple of frames handy and drawing them on top with some transparency. though that'd be intensive as well. which might explain why the psp was designed to do this right in the screen hardware :D

of course if the frame rate is high and matches the vsync, there might not be noticeable flicker anyway.*

anyway good luck dzz.

*edit: what i meant there is: maybe no blurring is needed at all.
 
rokdcasbah said:
wouldn't the bit of track just under the ball (closest to the camera) need to be blurred as much as the the marble itself? or the "middle" of the marble, since the marble wouldn't blur evenly. assuming it's moving forward in the Z direction with camera following, i think a YZ cross-section dead center will have the fastest linear speed, and the ends will have the least.

obviously your method of calculating each point would take care of that, but my point is that it might look a little strange if the ball blurred but not the track.





I'm sure, the Track also will be blurred or gets a texture that look good enough for slow and fast speed....or track textures also change when speed increases. :) The blurr of the ball is not because of his movement but because of his fast rotating and spinning. :)

Maybe, speed-boost fields on the track could give the marbles a lightning tail and the balls don't spin anymore but fly over a straight piece of track - would be the cheapest way to fake speed without much Ball-animation I think.

Oh, and will the game have variable camera angles? maybe, when jumping over a free, empty space in the track layout, the Cam could move more over the marble and we see the endless space under the marbles...
heart attack moments when we see, how close the balls are at the abyss :lol: A racetrack in free space has it's advantages. :)
 
Last edited by a moderator:
I don't really have answers to these questions at this point. I do know that I intend to take shortcuts for the sake of efficiency when needed, which may impact game features. I also know that the "feature set" will be limited because my attention span is limited and my ambition is only to make goofy little games.

I might play around with different ways of drawing the rolling ball before moving on to thinking about the track just to make sure that something workable can be done.
 
I think blur effects will be very slow(even three-buffering one)

Particle system would be looking much better.(If player don't mind these little pieces of dirt floating aroung as he advances fast forward)
 
I think I have the rotation stuff worked out well enough for the moment. New demo:

http://www.dzzgames.com/nr4.gpe

In this version, drive the marbles with the joystick like you might expect to drive around. Zoom in/out is on VOL+ and VOL-. And finally A/B moves the light source around a bit.
 
Dzz said:
A_SN said:
Just have different versions of your textures that would be more or less motion-blurred and in game use them depending on the speed of the ball :)
Yeah, that might work, thanks! The problem is that the marbles roll at arbitrary orientations and in arbitrary directions so the blurring should be different, but it might be helpful to just blur the texture in a general way. I'll give it a try sometime in the future unless a better idea occurs.

Well, have different versions of your texture depending on the orientation of the rotation! Make your calculations based on how much RAM you case use for that, and see if you can interpolate those different versions for more smoothness. I think blurring the whole thing is a terribly bad idea. A preferable solution to the cheap solution of blurring the whole texure would be to just as cheaply motion blur the texture and to make sure it always goes in the direction the ball goes.

QUOTE
Ideally, here's what I'd LIKE to do: For a particular rendering, compute the rotation matrix at both the start and end of the timeframe, which provides starting and ending texture coordinates for the point. Sample the line in the texture that connects those coordinates, and average the samples. Unfortunately, that will be far too slow. Even just doing just two or three samples (say, each endpoint and the midpoint between them) will be too expensive.



haha, yeah, nah, it's almost like convolution.
 
Last edited by a moderator:
A_SN said:
Well, have different versions of your texture depending on the orientation of the rotation!
Alas, since the orientation of the rotation is arbitrary, the "versions" would have to uniformly sample a half sphere, which would probably end up being a lot. Plus, one blurred texture only corresponds to a particular speed. I could imagine as many as 16 textures per marble being acceptable, but not much more than that.

I'll think on this problem for a little while before moving on to the very large task of rendering the track.
 
Last edited by a moderator:
Thinking on it a bit more, it might be good enough to make high-speed motion blur textures for a representative set of orientations and blend one of them with the normal texture proportionally as speed increases... I'll try something like that as one of the options. I'm still amused by this sub-piece of the development so I don't mind dawdling on the marbles for a while yet.
 
Dzz said:
Thinking on it a bit more, it might be good enough to make high-speed motion blur textures for a representative set of orientations and blend one of them with the normal texture proportionally as speed increases... I'll try something like that as one of the options. I'm still amused by this sub-piece of the development so I don't mind dawdling on the marbles for a while yet.
If you think blur + sharp = half blurry then you got it wrong. But it might be better if you blend with a few different speeds, I'd say 4 might suffice..
 
Last edited by a moderator:
Well I haven't tested any blur options yet, but in case anybody is interested to see what the issue is, here's a version of the marble program with a maximum rotational speed that is about what I expect will be needed for the rolling distance to match the tracks:

http://www.dzzgames.com/nr5.gpe
 
Dzz said:
Well I haven't tested any blur options yet, but in case anybody is interested to see what the issue is, here's a version of the marble program with a maximum rotational speed that is about what I expect will be needed for the rolling distance to match the tracks:

http://www.dzzgames.com/nr5.gpe



Yupp, I see, what you mean. The Speed itself is ok but without motion blur its not looking "real" somehow.
But the movement is nice and fast, now the Marbles have a mass, "feels" very good. :)

Would it be possible to do a quick dirty (self running) demo where you can roll a marble along a track + the space -background? I would like to see, how the marbles will look in their game environment. :)
 
Last edited by a moderator:
Dzz said:
Well I haven't tested any blur options yet, but in case anybody is interested to see what the issue is, here's a version of the marble program with a maximum rotational speed that is about what I expect will be needed for the rolling distance to match the tracks:

http://www.dzzgames.com/nr5.gpe



Cool stuff, but you know what would help make it cooler, besides motion blur? Pre-rendered anti-aliased alpha!
 
Last edited by a moderator:
QUOTE

Would it be possible to do a quick dirty (self running) demo where you can roll a marble along a track + the space -background? I would like to see, how the marbles will look in their game environment.


That's what I'm working toward... the track is really the "hard part" as it will consist of thousands of polygons, which means my 3D engine needs a fair bit of work, and I need to think about how I can profitably "cheat" to get the CPU cost down. I'll probably try one or two ideas for rendering the marbles at speed, then move on to the track.
QUOTE

Cool stuff, but you know what would help make it cooler, besides motion blur? Pre-rendered anti-aliased alpha!


I'm not sure exactly what you have in mind here. Do you mean anti-aliasing the edge of the marbles? Or do you mean some sort of translucency effect? Or something else?
 
Here's one possible blurring scheme that I can use if I don't use texture maps. Using this method (which is basically the method that I said I wanted to do ideally) has too many cache misses when using a texture and is too slow, but looks pretty decent.

http://dzzgames.com/nr6.gpe

I have been toying with the idea of not using textures on the track itself (again, to conserve CPU power); maybe the non-textured marbles would mix okay with the non-textured track.

I think I'll leave it like this for the moment and revisit it in the future if the non-textured track/marbles end up looking too cheezy.

nr6.png
 
Back
Top