Uriopass / Egregoria

3D City Builder without a grid
http://douady.paris/blog/
GNU General Public License v3.0
1.53k stars 52 forks source link

coherent asset style #93

Open Katschej opened 1 year ago

Katschej commented 1 year ago

Right now there are quite a few different asset styles in the game. While this is good to compare and experiment with different styles, I think the game would look a lot better if it had a coherent style.

I would categorise the assets currently in the game like this:

"flat"

flat

The vast majority of the game looks like this (cars, trains, predestrians, etc). My example is very flat. There could for example be a normal, metallic or roughness texture (or different materials) for aditional detail, while still keeping the flat look (as is done with the trains).

"pixelated"

pixel

Only the bakery looks like this. It is very quick to modell and quite a novel look.

"textured"

textured

The solar panels, flour factory, coal power plant, and wheat farm look like this. Since most of the game is spent relativly far away from the modells, there actually isn't that much detail needed, to look relativly convincing / good.

The oil pump in the "flat" version was made by replacing the texture from "textured" with the palette.png and adjusting the UVs. Going from "textured" to "flat" is only really a matter of texture. That means the currently "flat" assets should be relatively easily converted (maybe a bit more detail is needed, for example side mirrors for the cars, etc.) and vice versa.

"textured" version (my personal favorite) in game: screen

blend file: side_by_side.zip (I needed to duplicate some faces and flip the normal so that they would be visible form both sides in the game)

Zireael07 commented 1 year ago

My vote is for textured (textures of this sort are relatively easy to find and edit* yourself, it's what I do for my own racer game)

Uriopass commented 1 year ago

Textured is absolutely the goal! I went for flat/pixelated assets for some of them because I didn't have the time to make proper models. The bakery is very bad, it is a very old model. The trees can be textured but they must stay low poly until we get Tree Impostors (#89). In your examples I think they are.

Thank you for your work and the models, it looks very good! The trees could probably be a bit greener (lighter), the best would be to have different colors depending on the region and variations but that's a whole new thing

Uriopass commented 1 year ago

(I needed to duplicate some faces and flip the normal so that they would be visible form both sides in the game)

I used to support double sided materials but I was very worried about this since by default blender doesn't enable backface culling so it would incur big performance loss for nothing. I could add a custom property to have it for the few models that need it.

Katschej commented 1 year ago

Textured is absolutely the goal! I went for flat/pixelated assets for some of them because I didn't have the time to make proper models. The bakery is very bad, it is a very old model. The trees can be textured but they must stay low poly until we get Tree Impostors (#89). In your examples I think they are.

That's good to know. I think I will do some more models (the missing ones are probably the priority I'd assume). The tree was just the pine with a different texture. I should be able to make it a bit greener / lighter. Is there any performance disadvantage to alpha channels?

Thank you for your work and the models, it looks very good! The trees could probably be a bit greener (lighter), the best would be to have different colors depending on the region and variations but that's a whole new thing

Thank you! I could try to make some other tree types with ~ 50-100 tries (or is that to high?). Although I probably can't implement them, apart from replacing the pine.

I used to support double sided materials but I was very worried about this since by default blender doesn't enable backface culling so it would incur big performance loss for nothing. I could add a custom property to have it for the few models that need it.

I don't think you need that, duplicating faces isn't that time consuming. Although I don't know if there is any performance disadvantage to that (over just duplicating the faces). If there is it might be usefull.

Uriopass commented 1 year ago

Is there any performance disadvantage to alpha channels?

Not really, but the engine doesn't really support transparency in the models, only alpha cutouts but that's fine for foliage. (so like transparent/opaque is ok but nothing in between)

Although I probably can't implement them, apart from replacing the pine.

Yeah, I could definitely support more trees. Trees would need some metadata so we can tell which trees should appear to stay consistent. Should be an issue on its own.

~ 50-100 tries (or is that to high?)

Current model is 36 tris but I'd say 50-100 is fine. Better trees can also mean that less density still looks better.

Although I don't know if there is any performance disadvantage to that

There is a small performance disadvantage since the gpu needs to process a bit more vertices rather than just disabling backface culling, but it's more than fine.

Uriopass commented 1 year ago

I'm not sure how to ratify the "textured" decision. Maybe this issue is enough?

Katschej commented 1 year ago

I think it is.