Ponykart
-
- Minaton
- Posts: 921
- Joined: Sat Jul 31, 2010 6:29 pm
- Location: Belgium
- x 80
Re: Ponykart
The artwork is really good.
And now, also the gameplay mechanics seem to fall in place.
What approach to pathing are you using exactly? I take it you were using a waypoint system.
I can see the carts swaying in curvy bends on the video, which fits the cartoony look quite well (but care must be taken not to make the opponents too easy to beat).
Ofcourse you could make difficulty levels in it, so small kids can attempt to beat the wobbly swaying opponents.
Did you have a look at recast/detour for pathfinding. It's crowd pathfinding might have what you need. If you're familiar with opensteer you will get a hang of it quickly. There's even an ogre sample project for it.
And now, also the gameplay mechanics seem to fall in place.
What approach to pathing are you using exactly? I take it you were using a waypoint system.
I can see the carts swaying in curvy bends on the video, which fits the cartoony look quite well (but care must be taken not to make the opponents too easy to beat).
Ofcourse you could make difficulty levels in it, so small kids can attempt to beat the wobbly swaying opponents.
Did you have a look at recast/detour for pathfinding. It's crowd pathfinding might have what you need. If you're familiar with opensteer you will get a hang of it quickly. There's even an ogre sample project for it.
Developer @ MakeHuman.org
-
- Gnome
- Posts: 363
- Joined: Wed Feb 25, 2009 6:15 pm
- Location: UK
- x 8
Re: Ponykart
Waypoint combined with a system that tries to keep karts to their side of the road. It's still a work in progress and the karts tend to start steering too late, which is why they "wobble" side to side.duststorm wrote:The artwork is really good.
And now, also the gameplay mechanics seem to fall in place.
What approach to pathing are you using exactly? I take it you were using a waypoint system.
I can see the carts swaying in curvy bends on the video, which fits the cartoony look quite well (but care must be taken not to make the opponents too easy to beat).
Ofcourse you could make difficulty levels in it, so small kids can attempt to beat the wobbly swaying opponents.
Did you have a look at recast/detour for pathfinding. It's crowd pathfinding might have what you need. If you're familiar with opensteer you will get a hang of it quickly. There's even an ogre sample project for it.
I'll need to add "biases" to the "checkpoints" so they try to take the turns sharply instead of going really wide.
I can't say I've heard of recast, detour, or opensteer, but I can give them a look
-
- Minaton
- Posts: 921
- Joined: Sat Jul 31, 2010 6:29 pm
- Location: Belgium
- x 80
Re: Ponykart
Recast is a wonderful open-source but commercial quality implementation of navigation mesh pathfinding. The thing that SHOULD be used in every modern game for pathfinding (classic waypointing is passé).
Have a look on this forum for some interesting topics about it:
http://www.ogre3d.org/forums/viewtopic.php?f=11&t=57487
http://www.ogre3d.org/forums/viewtopic.php?f=16&t=52455
http://www.ogre3d.org/forums/viewtopic.php?f=5&t=62079
This is the project page:
http://code.google.com/p/recastnavigation/
And this is the developers blog:
http://digestingduck.blogspot.com/
As you can see it's still alive and active.
A video that shows what the detour crowd algorithm is capable of (it replans the route when the road gets blocked):
[vimeo]27143809[/vimeo]
Have a look on this forum for some interesting topics about it:
http://www.ogre3d.org/forums/viewtopic.php?f=11&t=57487
http://www.ogre3d.org/forums/viewtopic.php?f=16&t=52455
http://www.ogre3d.org/forums/viewtopic.php?f=5&t=62079
This is the project page:
http://code.google.com/p/recastnavigation/
And this is the developers blog:
http://digestingduck.blogspot.com/
As you can see it's still alive and active.
A video that shows what the detour crowd algorithm is capable of (it replans the route when the road gets blocked):
[vimeo]27143809[/vimeo]
Developer @ MakeHuman.org
-
- Gnome
- Posts: 363
- Joined: Wed Feb 25, 2009 6:15 pm
- Location: UK
- x 8
Re: Ponykart
oh wow, neat
-
- Gnome
- Posts: 363
- Joined: Wed Feb 25, 2009 6:15 pm
- Location: UK
- x 8
Re: Ponykart
Overhauled background ponies some more so now they're colored almost entirely through shaders. This way we don't need to make separate textures for each one.
Threw together this little program about two days ago for tweaking combinations and stuff. Downloads are here: http://ponykart.net/node/32
Also we finished some more karts: http://ponykart.net/node/31 and http://ponykart.net/node/29
Threw together this little program about two days ago for tweaking combinations and stuff. Downloads are here: http://ponykart.net/node/32
Also we finished some more karts: http://ponykart.net/node/31 and http://ponykart.net/node/29
You do not have the required permissions to view the files attached to this post.
-
- Minaton
- Posts: 921
- Joined: Sat Jul 31, 2010 6:29 pm
- Location: Belgium
- x 80
Re: Ponykart
Nice little tool.
I did a similar thing to color the cylinders I'm using in the recast demo I did. I only have two greyscale textures, and I multiply them with a color to create variations. Only I didn't use a shader but a simple material script.
I assume that since you are passing different shader params to each different pony you will still have at least one batch for each color of pony?
I did a similar thing to color the cylinders I'm using in the recast demo I did. I only have two greyscale textures, and I multiply them with a color to create variations. Only I didn't use a shader but a simple material script.
I assume that since you are passing different shader params to each different pony you will still have at least one batch for each color of pony?
Developer @ MakeHuman.org
-
- Gnome
- Posts: 363
- Joined: Wed Feb 25, 2009 6:15 pm
- Location: UK
- x 8
Re: Ponykart
I... guess?duststorm wrote:I assume that since you are passing different shader params to each different pony you will still have at least one batch for each color of pony?
The overhaul was to speed up the creation of additional bg ponies rather than increase rendering speed
-
- Minaton
- Posts: 921
- Joined: Sat Jul 31, 2010 6:29 pm
- Location: Belgium
- x 80
Re: Ponykart
Batching only becomes an issue when you have a very large amount of background ponies.
Each entity in the scene manager adds a new batch to the render process (or multiple, if it has more than one submesh).
Using geometry instancing you can group repeating meshes together in one single batch (which is what the instancing manager and for example paged geometry does). Using instancing you could reduce the batch count to one batch per pony color, where all ponies with the same color are rendered in one single batch.
But, like I said, unless you intend to create a stand full of 100s of ponies it's probably not an issue.
Each entity in the scene manager adds a new batch to the render process (or multiple, if it has more than one submesh).
Using geometry instancing you can group repeating meshes together in one single batch (which is what the instancing manager and for example paged geometry does). Using instancing you could reduce the batch count to one batch per pony color, where all ponies with the same color are rendered in one single batch.
But, like I said, unless you intend to create a stand full of 100s of ponies it's probably not an issue.
Developer @ MakeHuman.org
-
- Gnome
- Posts: 363
- Joined: Wed Feb 25, 2009 6:15 pm
- Location: UK
- x 8
Re: Ponykart
each one is made of 5 meshes (6 if they have wings or a horn) - body, hair, mane, tail, and eyes. There are stands for them to sit on but they won't be that packed. I was going to spread them around the track more.
Also had an idea where the pegasi could respawn item boxes by dropping them down or something
Also had an idea where the pegasi could respawn item boxes by dropping them down or something
-
- Minaton
- Posts: 921
- Joined: Sat Jul 31, 2010 6:29 pm
- Location: Belgium
- x 80
Re: Ponykart
Watch your batch count then. This means that 20 ponies already make for 100 batches if you're doing it naively.Pyritie wrote:each one is made of 5 meshes
Given the fact that recent GPU's can crunch really a lot of verts, batch count is a lot more important than vertices count these days. I would not let the batch count (= the number of drawcalls) get over 500 (ballpark number) in total. If you're using something like the sample application with SDKTrays, under the FPS counter you see vertices count and batch count. Keep an eye on them

Developer @ MakeHuman.org
-
- Gnome
- Posts: 363
- Joined: Wed Feb 25, 2009 6:15 pm
- Location: UK
- x 8
Re: Ponykart
So even though they share a lot of the same meshes I couldn't really instance them very well (especially if I want them to be animated well)?
-
- Minaton
- Posts: 921
- Joined: Sat Jul 31, 2010 6:29 pm
- Location: Belgium
- x 80
Re: Ponykart
You can if you instance them.
All parts that have the same material can be rendered in one batch.
The resulting number of batches when instanced will be the number of material instances (a material instance is one material or shader with set parameters). This means that, for example, if you manage to reuse the same material for all different types of tails, you will only need one drawcall (batch) to draw all the tails.
It's the same as they do on Bigfly Baseball.
They randomly generate characters out of separate parts. But all parts with the same color or texture are rendered in one batch, which might even be better in terms of batchcount than if characters were just made of one single part. Because you don't really notice that the same head (or one with the same texture) is reused a lot, as long as the combination of character parts differs.
About color variations within one shader, maybe you could drop the shader parameters and assign all color parameters as vertex colors? This way all materials that have the same texture, even if they have different colors, can be rendered in one batch if instanced.
The negative side of this is that you cannot share the same mesh for all ponies, as the vertex colors need to differ. I think this will only increase the CPU RAM usage, as once the geometry is offloaded to the GPU all shared meshes are duplicated (I could be wrong on this one, though..) Also, I would probably assign these vertex colors using code so that you don't need to create duplicate .mesh files just with different vertex colors. Unfortunately you will not be able to store the color information in the material properties anymore, but if you are using ogre's .scene format you could add them as custom parameters to your mesh.
With a lot of animated ponies I would also add hardware skinning.
All parts that have the same material can be rendered in one batch.
The resulting number of batches when instanced will be the number of material instances (a material instance is one material or shader with set parameters). This means that, for example, if you manage to reuse the same material for all different types of tails, you will only need one drawcall (batch) to draw all the tails.
It's the same as they do on Bigfly Baseball.
They randomly generate characters out of separate parts. But all parts with the same color or texture are rendered in one batch, which might even be better in terms of batchcount than if characters were just made of one single part. Because you don't really notice that the same head (or one with the same texture) is reused a lot, as long as the combination of character parts differs.
About color variations within one shader, maybe you could drop the shader parameters and assign all color parameters as vertex colors? This way all materials that have the same texture, even if they have different colors, can be rendered in one batch if instanced.
The negative side of this is that you cannot share the same mesh for all ponies, as the vertex colors need to differ. I think this will only increase the CPU RAM usage, as once the geometry is offloaded to the GPU all shared meshes are duplicated (I could be wrong on this one, though..) Also, I would probably assign these vertex colors using code so that you don't need to create duplicate .mesh files just with different vertex colors. Unfortunately you will not be able to store the color information in the material properties anymore, but if you are using ogre's .scene format you could add them as custom parameters to your mesh.
With a lot of animated ponies I would also add hardware skinning.
Last edited by duststorm on Sun Jun 10, 2012 7:37 pm, edited 1 time in total.
Developer @ MakeHuman.org
-
- Gnome
- Posts: 363
- Joined: Wed Feb 25, 2009 6:15 pm
- Location: UK
- x 8
Re: Ponykart
I'm not sure if that would work for me though - I have to recolor an AO texture and add an outline as wellduststorm wrote:You can if you instance them.
All parts that have the same material can be rendered in one batch.
It's the same as they do on Bigfly Baseball.
They randomly generate characters out of separate parts. But all parts with the same color or texture are rendered in one batch, which might even be better in terms of batchcount than if characters were just made of one single part. Because you don't really notice that the same head (or one with the same texture) is reused a lot, as long as the combination of character parts differs.
About color variations within one shader, maybe you could drop the shader parameters and assign all color parameters as vertex colors? This way you could use one pony material instance (at least per body part) for all parts, which if instanced results in just one single batch!
-
- Minaton
- Posts: 921
- Joined: Sat Jul 31, 2010 6:29 pm
- Location: Belgium
- x 80
Re: Ponykart
Maybe it's really overkill.
You're probably not going to have hundreds of different pastel color schemes anyway. The fact that they are all separate parts can even help as you can recombine them in different ways without upping the batch count (just like in BigFly).
Just make sure all parts that have the same texture and color are instanced as one batch. (so you make only one drawcall for all pink tails, for example).
You're probably not going to have hundreds of different pastel color schemes anyway. The fact that they are all separate parts can even help as you can recombine them in different ways without upping the batch count (just like in BigFly).
Just make sure all parts that have the same texture and color are instanced as one batch. (so you make only one drawcall for all pink tails, for example).
Developer @ MakeHuman.org
-
- Gnome
- Posts: 363
- Joined: Wed Feb 25, 2009 6:15 pm
- Location: UK
- x 8
Re: Ponykart
and then there's their butt symbols as well...
-
- Minaton
- Posts: 921
- Joined: Sat Jul 31, 2010 6:29 pm
- Location: Belgium
- x 80
Re: Ponykart
Yes, I noticed in the editor screenshot.
How do you create them currently? As a separate submesh of the torso bodypart with transparent texture?
How do you create them currently? As a separate submesh of the torso bodypart with transparent texture?
Developer @ MakeHuman.org
-
- Gnome
- Posts: 363
- Joined: Wed Feb 25, 2009 6:15 pm
- Location: UK
- x 8
Re: Ponykart
second set of UV coordinates
source is here if you want to take a peek http://ponykart.svn.sourceforge.net/vie ... materials/
I didn't want to divide the meshes because the model's already a bitch to animate with all of the attachments (or so my modeler says)
source is here if you want to take a peek http://ponykart.svn.sourceforge.net/vie ... materials/

I didn't want to divide the meshes because the model's already a bitch to animate with all of the attachments (or so my modeler says)
-
- Greenskin
- Posts: 104
- Joined: Wed Feb 29, 2012 11:50 am
- x 1
Re: Ponykart
It's looking awesome but why pony 

-
- Ogre Magi
- Posts: 1255
- Joined: Sat Dec 25, 2010 2:55 pm
- Location: Macedonia
- x 81
Re: Ponykart
Because to many people ponies are awesome, and friendship is magic!themean wrote:It's looking awesome but why pony

BitBucket username changed to iboshkov (from MindCalamity)
Do you need help? What have you tried?
- xavier
---------------------
HkOgre - a Havok Integration for OGRE | Simple SSAO | My Blog | My YouTube | My DeviantArt
Do you need help? What have you tried?
- xavier
---------------------
HkOgre - a Havok Integration for OGRE | Simple SSAO | My Blog | My YouTube | My DeviantArt
-
- Gnome
- Posts: 363
- Joined: Wed Feb 25, 2009 6:15 pm
- Location: UK
- x 8
Re: Ponykart
Really easy to get artists and promote the gamethemean wrote:It's looking awesome but why pony
but oh god don't even start with the fanbase
-
- Greenskin
- Posts: 104
- Joined: Wed Feb 29, 2012 11:50 am
- x 1
Re: Ponykart
But ponies are for girls and cart are for boys. What is the prime target of this game.
-
- Gnome
- Posts: 363
- Joined: Wed Feb 25, 2009 6:15 pm
- Location: UK
- x 8
Re: Ponykart
The prime target is FUN
-
- Bugbear
- Posts: 819
- Joined: Wed May 05, 2010 4:59 am
- Location: Auckland, NZ
- x 69
Re: Ponykart
Boys + Girls ?themean wrote:But ponies are for girls and cart are for boys. What is the prime target of this game.
-
- Greenskin
- Posts: 115
- Joined: Thu Jun 09, 2011 5:41 am
- Location: Melbourne, Australia
- x 5
Re: Ponykart
Wowee!
Looks really polished.
We're making a "toony" game for school, Did you guys use any special shaders? Or is it done using textures? A mix of both?
I've been looking into how to get that look by looking at Torchlight's media, they seems to have just used textures to get their look.
For what parts are you using Lua?

We're making a "toony" game for school, Did you guys use any special shaders? Or is it done using textures? A mix of both?
I've been looking into how to get that look by looking at Torchlight's media, they seems to have just used textures to get their look.
For what parts are you using Lua?
-
- Gnome
- Posts: 363
- Joined: Wed Feb 25, 2009 6:15 pm
- Location: UK
- x 8
Re: Ponykart
An edge shader (like mario galaxy has) combined with colored AOYati wrote:We're making a "toony" game for school, Did you guys use any special shaders? Or is it done using textures? A mix of both?
A whole bunch of unrelated things but mostly stuff associated with game object spawning. Like when one of those apple containers is spawned, a lua script fills it with apples.For what parts are you using Lua?