Grassparty-BE released

Community Forums/Showcase/Grassparty-BE released

SabataRH(Posted 2007) [#1]

Grassparty-Blitz3D Edition -

Grassparty-BE is a revolutionary code library for Blitz3D programmers.
This remarkable library allows the developer to insert 'instant' land coverings.
The core engine was designed with one thing in mind; speed! We made sure
this library was ready for the most stressful scenarios imaginable. Rather
you need light grass coverings or lush, thick foliage covers; Grassparty-BE can assist.



For more information and a demo download visit http://www.gothasoft.com/Default.aspx?tabid=105


SabataRH(Posted 2007) [#2]
Added a 2nd demo for those wanting to see more FOV.

Listed as GP-Castle demo.
http://www.gothasoft.com/Default.aspx?tabid=105


puki(Posted 2007) [#3]
I bought it.

Woof, woof.


puki(Posted 2007) [#4]
Are we supposed to be able to make .gp files? If so, how?


puki(Posted 2007) [#5]
I notice that the grass in between the furthest and the nearest grass is not always drawn.

I increased gp_AddViewDist from 200 to 1,000 - really looks lush. However, when standing on a hill, I can see grass on the horizon, but there are 'bald' patches - If I walk towards the horizon, then those bald patches fill in. It's almost like the problem is with grass below your height - ie the grass on the horizon might be on another hill, so you can see it.


SabataRH(Posted 2007) [#6]
I'll check into that now.

make the gp file witht he function gp_SavegpMap(file$).


puki(Posted 2007) [#7]
I think the bald patches might be to do with the 'zoning' (grid) system you use - possibly nothing to do with the height of the grass compared to the camera.


puki(Posted 2007) [#8]
I got treeparty and grassparty running together, I just used the camera pivot the grass thingy.

Not found any problems yet with combining the two together.


SabataRH(Posted 2007) [#9]
I think you may be experencing alpha errors, i'll double check the grid routine however.

Yah i tested treeparty with grassparty extensively before relesing it. It should be 100% compatible now. If you notice anything funny when combing the two please let me know.


puki(Posted 2007) [#10]
What's the chance of having a modification whereby the grass is created, on-the-fly, from in front of the camera as you move.

I'm thinking that the current system is fine, but you have to load a hell of a lot of grass to cover a big area.

How about an additional function to create random grass as the camera moves - ie it creates and fills-in grass ahead of the player randomly at a user defined distance? This is totally random - so, if the player turned round and went back the way he came - it would technically be new grass - but if it were thick/dense grass, the player would never know.

This would be far less of an overhead - I'd certainly welcome this feature.

I hope you understand what I mean.

EDIT:
The previous grass is just killed as the player walks - again, for a user-defined distance, so you could walk back so far and have exactly the same grass positions.


puki(Posted 2007) [#11]
To cover an area of -500, -500, 500, 500 - which isn't all that big - I am having to use half a million grass clumps with the grid points value maxed.

This seems incredible overkill. I was surprised that I would need that much grass for that size area.

Another problem is the time it takes to create half a million grass clumps.

Kind of bolsters my idea in the post above.

I like my idea.

:)


puki(Posted 2007) [#12]
Just in case you are struggling to comprehend my half a million grass units, compared to your 1,000 grass units in your level (which actually is bigger than my test area).

The tiny little, white, cube on your landscape is actually (in real-life terms) a 2 by 2 by 2 metre block - ie it is 2 metres high, wide and deep.

All my stuff is scaled in terms of 1 Blitz unit = 1 metre. In my world your stuff is huge. A lot of people use the 1 Blitz unit = 1 metre rule.


braxton(Posted 2007) [#13]
I really like this and treeparty both awesome modules, is there any chance of implementing a billboarding 2d sprite grass feature such as in Grandia 3 and Final Fantasy etc which limits the player to a bounded path.

Another nice addition would be 'firefly' trails such as those from Zelda and Final Fantasy that randomly appear throughout the scenery and provide a great sense of depth, not sure which module this would be better suited to though, but would be a nice addition to the falling leaves.


SabataRH(Posted 2007) [#14]
puki,
Your random grass idea is noted, im actually starting to work on a function to handle this. But as you say, it'll be completely random so each time you run a map or travel over an area that 'was' out of distance, the grass will be planted in new spots. I never liked the idea of that as I prefer grass to have properties and be bound to a map level editor by means of consistency, but I certainly understand the use of your idea in 'wide-open' situations. One million grass entities isn't all that bad for a map as the footprint for a single grass entity is very minor. Once you get the grass the way you like it use gp_SaveGpMap() to save the image then reload your grass map with gp_LoadGpMap(), the load time is reduced 99.9%.

Edit: one problem that has occurred while implementing your method puki is the grass system really has no way to determine the Y-height to place the grass entity. Line picking the placement in real-time will be considerably slow and limiting the feature to blitz terrains is rather useless as well as I don't think many people use blitz terrains anymore?

Puki:
Found what was causing your grass to appear out of order, as I read you was using the max grid points allowed I decided to test that further and noticed that with 1million entites and max grid points the load cycle needs to be increased to adjust for the 'rush'. To fix your proplem simply increase the global cycle var.
Global gp_LoadPerCycle= ;-- this allows you to throttlel the rate at which entites are dumped into an open grid point, lower numbers are usually best as they eliminate jumpy grid swapping
Set it to like 15 or so, play with it to make the grass appear faster on stressed maps.


Braxton,
Another great idea, particles to add depth to the layers. I'll see whats possible.

Thanks guys.


SabataRH(Posted 2007) [#15]
Just released version 1.1
A new demo is available on the website http://www.gothasoft.com/Default.aspx?tabid=105

Many many improvements and customer-requests added. Added a new feature called ExtendedView, this feature displays a % of distant grass nodes which smooths out the pop-in considerably.

The new demo exhibits multi-object interaction with the grass, using the mario demo - fire the weapon to scorch the grass. Check out the new demo!

Version 1.1

* Fixed: Sound playing when ideling standing on flattened grass
* Changed: Wind speed is no longer passed to (gpLoad()/gpSave()) saved maps
* Increased load times ( non-gpLoadmap() ) times by 20%
* Increased grid point lookup by 20%
* Changed: Animations nonw have their own cycle, distance grass nodes will no longer animate ( optimization )
* Improved the algo to determine proper EntityAutoFade() values
* Added: Extended View feature - this feature will all for much further viewing distances at no additional cpu power.
* No animations will be prefromed outisde the clip range now ( optimization )
* Optimized the savefile format, it now saves grass maps 50% smalelr than before
* Optimized the load time within gpLoadMap()
* New global: gp_AddAnimDist# - increase/decrease the animaiton distance with this value ( 0 = default )
* New global: gp_ExtendedViewMulti - multiplyer for the distance of the extended view, should be value 1 - 10 ( 10 - furthest extendview possible )
* New global: gp_ExtendedView - a percent from 1%-100%, 0= Extended View OFF. If turned 'on', the engine will place addiitonal LOD grass nodes just out of the general clip view to give a more fuller look. ( the precent is how much % of grass parented to the grid pivot you wish to display, usually 10% is suffiecent)


puki(Posted 2007) [#16]
How about being able to load a grass mesh with the textured already applied to the mesh - ie not a blank mesh?

'gp_LoadGrass' insists on having a separate texture. I have a lot of grass meshes that already have a texture applied. I can easily separate them. However, it might be useful to be able to use 'gp_LoadGrass' without a texture - or is this not advisable with the engine?

EDIT:
Having said that, the engine uses 'skinname$' a lot.

Disregard my request - I can easily separate my meshes and textures.


SoggyP(Posted 2007) [#17]
Hello.

Swampdonkey: For consistent 'random' grass placement consider using fractals and other mathematical equations. It means that the placement of the grass will stay the same whenever loaded and also that you don't have to store a placement map, just a function.

I'm pretty sure someone else has done this with their grass system. It makes sense, donchya know :o)

Goodbye.


puki(Posted 2007) [#18]
Heh, I love this.

I found that not only can I lay down plants and bushes etc, but also things like rocks etc (ie static objects).


puki(Posted 2007) [#19]
Is there a chance of having an improvement where the engine checks for a collision prior to placing a mesh?

For example, if you are using Treeparty and Grassparty together, you don't want Grassparty to insert a grass mesh in the area of a tree mesh.

Although, Grassparty can technically lay down a static object like a rock, having it lay down a grass mesh on the same spot is unsightly.


SabataRH(Posted 2007) [#20]
Puki, "For example, if you are using Treeparty and Grassparty together, you don't want Grassparty to insert a grass mesh in the area of a tree mesh."

Aye, that's pretty much up the map designer to position the entities where he likes but to improve calibration between the two systems i do have an update im working on, it'll shadow tint grass objects that are underneath trees so adding a simple check to see if the grass is sitting 'on' a tree can be preformed.

More later.


puki(Posted 2007) [#21]
I haven't got a map designer.

It's just me doing the coding.

I don't like creating terrains and placing objects and stuff like that.

I sort of want an automatic engine that does all that for me - ie create the terrain, multi-texture it, lay down roads and tracks, slap in trees and plants, etc.


SabataRH(Posted 2007) [#22]
well if your using blitz terrains it'll be easy for me to add a randomizer the the system. One that places the grass out ahead of the player as he moves. I got a project going on this week for something else, but give me a few days and i'll post 1.11 with this in it.