Page 1 of 1

Looking for a programmer as discussion partner

Posted: Wed Jun 24, 2015 10:30 am
by Ryue
I know the title of the thread will lead to a few raised eyebrows but I found no better short summarization of what I need.

So then. What is this here about. I've created an open source 3d dungeon crawler engine for renpy (written in renpy). The link is further below.
The engine is quite good at displaying walls, canopies of trees, ... . But one of the persons who want to use the engine pointed out a problem with smaller objects like
lamp posts, cars, ... thus single objects which do not use the entire width of the mapcell they are in (a bed of flowers on the other hand works just fine).
What this means is that the way I went down has a few downsides when it comes to this type of objects. Thus I'm currently considering options of how this could be rectified (either by doing it all in a new way or doing this sort of objects in a different way than the walls).

As I'm currently almost automatically thinking of the old way (so to say I'm a bit stuck atm there) I would need someone to discuss things through to get a new idea there. IT is NOT about programming details or so, but more about ways how such things could be handled for that. OR what was used in the past times where textured 2d images were the way to go instead of polygon graphics.

Here the link to the open source project thread for the 3d dungeon crawl engine:
http://lemmasoft.renai.us/forums/viewto ... 51&t=32260


If you are interested in helping me out with the discussions or have questions let me know by either pm here, or a post here or give me a call on the renpy irc chat (I'm Ryue there)

Re: Looking for a programmer as discussion partner

Posted: Wed Jun 24, 2015 11:02 am
by citizen6350
I read your linked thread.

From what I can tell there is no valid reason you cannot do what you want. However, again without looking at the code, from what I read in the thread it sounds like the map data you hold onto only resolved down to the "tile" level. Whereas the things you want to show (lamp, car, etc) are sub-tile. Consider how you are storing the map data, and how you would add more resolution than tile level.

Perhaps something like lamp { x: 3.2, y: 4.2 } where 3,4 is the tile, and .2,.2 is the location within the tile the lamp goes. Or tiles [ { lamp : { x:0.2, y:0.2 } } ] etc.

Once you have the data problem solved, its just a matter of writing code to render the object correctly from which ever direction you're looking, which shouldn't be that difficult if you've already done walls.

Re: Looking for a programmer as discussion partner

Posted: Wed Jun 24, 2015 2:00 pm
by Ryue
citizen6350 wrote:I read your linked thread.

From what I can tell there is no valid reason you cannot do what you want. However, again without looking at the code, from what I read in the thread it sounds like the map data you hold onto only resolved down to the "tile" level. Whereas the things you want to show (lamp, car, etc) are sub-tile. Consider how you are storing the map data, and how you would add more resolution than tile level.

Perhaps something like lamp { x: 3.2, y: 4.2 } where 3,4 is the tile, and .2,.2 is the location within the tile the lamp goes. Or tiles [ { lamp : { x:0.2, y:0.2 } } ] etc.

Once you have the data problem solved, its just a matter of writing code to render the object correctly from which ever direction you're looking, which shouldn't be that difficult if you've already done walls.
I fear the problem is not only a data problem but also a representation problem. If I don't do subtiles with sub images (aka splitting for example a lamp post into slices) but even then I have the problem with how to best put it on screen.
If I use the current mechanism: Putting the front pic at the corrent location and then the side pic just beside it....it works well for walls but for lamps,... I get the following result:
Image

Re: Looking for a programmer as discussion partner

Posted: Wed Jun 24, 2015 4:50 pm
by citizen6350
Consider the technique of 'billboarding' from full 3d graphics. An image that always faces the viewer directly, from all sides. This works out for many things like trees, rocks, a fountain, etc. Even some things which are asymmetrical work, because the viewer doesn't really _care_ that the words on a sign are on the correct side of the sprite whether you're looking at it from the north or the south.

So, in the example you gave, even without tweaking the art of the lamp to be 'head on' to make it more symmetric, you could probably get away with billboarding it in your scene. By simply adjusting placement and scale you can also simulate depth.

Meanwhile for things like cars, its a little more tricky, since there are 4 distinct sides and depending which side of the street you're on you expect to see the appropriate side. So you'll need to ask yourself, how important is it to accurately render things vs can you get away with just billboarding them.

Image

Re: Looking for a programmer as discussion partner

Posted: Thu Jun 25, 2015 2:08 am
by Ryue
so that would be the classic variant with just 1 image displayed for such objects? (if I remember that correctly you had to position it in the center of the "image" as much as possible so that it doesnt stand out too much if viewed from specific angels)

Re: Looking for a programmer as discussion partner

Posted: Thu Jun 25, 2015 4:44 pm
by citizen6350
The individual billboards would be positioned based in their bottom center as origin.

Not quite sure I understand you last question but the image in my last post should have demonstrated what I mean

Re: Looking for a programmer as discussion partner

Posted: Fri Jun 26, 2015 4:31 am
by Ryue
The bottom center positining was what I had meant.

Re: Looking for a programmer as discussion partner

Posted: Wed Sep 09, 2015 4:44 am
by Ryue
Got an idea there. How does this instead of a real billboarding sound?:

Taking the lamppost example:
From south the front is a lamp turned right. Sidepic is empty
From north its a lamp turned left. Sidepic is empty
From west/east its a lamp turned to/from you. And a empty sidepic

Similar for tiles
Cave entrace

South/north. Fromt is wall+entrance. Side is just a wall.
West/north has a cave wall as its fromt and the entrance pic as its side pic.


How does that sound? Feaseable?