Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411516 Posts in 69376 Topics- by 58431 Members - Latest Member: Bohdan_Zoshchenko

April 27, 2024, 08:29:03 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)2D Isometric tile rendering, engine, etc
Pages: [1]
Print
Author Topic: 2D Isometric tile rendering, engine, etc  (Read 10739 times)
Bad Sector
Level 3
***


View Profile WWW
« on: April 27, 2009, 01:25:39 PM »

I've messed a bit with isometric rendering:



Its a very simple editor wanna-be (actually just a test for the algorithm, but adding "editing" was easy, however there isn't save/load :-P). You can get the exe and source from right here.

Also a more detailed blog post about this :-)
Logged

~bs~
Skirvir
Level 0
**

As below so above.


View Profile WWW
« Reply #1 on: April 29, 2009, 08:08:14 PM »

Hey good job, I like it. I never tried isometric because my art skills are so very, very basic and that just seemed harder, but I've always loved the look of isometric games like Transport Tycoon or SimCity 2000, stuff like that.

I'd suggest getting that saving/loading going sooner than later, I've found it's much easier to handle that as early on as you can rather than wait for later, not that it can't be done, I just think it takes more time and rework. Also, once it is working, you can then save/load your own work which is a time saving in itself, depending of course what your planning to do Smiley
Logged

Schtee
Level 0
***


View Profile
« Reply #2 on: April 30, 2009, 05:11:43 AM »

Dealing with storage sooner rather than later forces you to think about file formats, which IMO is a good thing. I've tried to make map editors several times, and given up when it came to thinking up a file format for my tiles/tilesets/maps, as I hadn't thought about it enough from the off. But I give up on most things  Panda
Logged
Bad Sector
Level 3
***


View Profile WWW
« Reply #3 on: April 30, 2009, 01:09:14 PM »

That was actually a test for rendering the map, nothing more. Adding the "editing" part was a matter of a few minutes.

However, honestly, i'm playing Fallout more than what i expected and i'm becoming interested in the whole RPG genre - although i can't say i'm drawn to the fantasy RPG settings and most of RPGs are in fantasy settings.

I've started reading about RPG design, comments, etc though and thinking about how i could construct an open world in an RPG setting and maybe i might try a few things. Well, i'm going to get a job soon, which means i won't have all the time i have now and certainly not enough time to finish the FPS i was working on. But a "simple" RPG might be doable.

Fortunately i also have a pool of story ideas and i can come up with decent ideas any time. My daydreaming at school paid off and my imagination is quite rich :-P.
Logged

~bs~
Bad Sector
Level 3
***


View Profile WWW
« Reply #4 on: May 01, 2009, 06:55:13 AM »



I tried to add objects. As i said in the blog post, it was as simple as just drawing them above the tile when the tile was drawn :-).
Logged

~bs~
Bad Sector
Level 3
***


View Profile WWW
« Reply #5 on: May 01, 2009, 09:20:25 AM »

Also


Prerendered 3D chars look nicer than what i initially thought. I had to modify them a bit in GIMP but they're ok.

Also a new blog entry about the objects.
Logged

~bs~
Skirvir
Level 0
**

As below so above.


View Profile WWW
« Reply #6 on: May 01, 2009, 11:53:03 AM »

Nice, very cool looking stuff! You planning on implementing your saving/loading and making an outright game with this or are you just experimenting with isometric stuff for the time being?
Logged

Bad Sector
Level 3
***


View Profile WWW
« Reply #7 on: May 01, 2009, 12:15:21 PM »

Currently i'm just experimenting to see if i can do a game with this :-). It needs much more than rendering to make a game (besides, if i make a game i'll probably write it in C instead of FreePascal/Lazarus and make the isotile program a proper map editor).

I'm concerned about making the assets actually. I dont mind making pixel art for static objects (or very simple animations such as flames or doors), but i find making character animations *much* harder in pixel art, especially isometric chars which need a bunch of different angles for each frame. For this i'm thinking to use prerendered 3D models like those in the above screenshot. However my modelling skills suck - but on the other hand only a handful of pixels will be needed and as long as i have the overall shape right, it should work. Another problem is converting the 3D models to sprites. The above were done by hand, but i think that i should figure out a method to use Blender's Python scripting to render each keyframe for each animation from all eight angles, edit the rendered image to add a slight outline like i did for the woman model (which looks better than the rough outline i did for the man model and it is probably easier to done "programmaticaly") and save each image in a separate PNG file ready to be consumed by the editor and maybe the game if i make one.
Logged

~bs~
Mikademus
Level 10
*****


The Magical Owl


View Profile
« Reply #8 on: May 01, 2009, 04:32:03 PM »

Oooo, it's prettified! (<-- My Firefox spell-checker thinks this is a correct word! Shocked)
Logged

\\\"There\\\'s a tendency among the press to attribute the creation of a game to a single person,\\\" says Warren Spector, creator of Thief and Deus Ex. --IGN<br />My compilation of game engines for indies
Bad Sector
Level 3
***


View Profile WWW
« Reply #9 on: May 01, 2009, 06:45:00 PM »



Converting 3D stuff to 2D tiles isn't going to be as easy as i thought it seems. Well the problem currently is making the render look "good". I wrote a Python script that can render the selected object(s) in isometric form, but the rendering needs tweaking. The non-antialized rendering looks better for now (the script disables antialiasing for objects that have a name beginning with 'naa_') but there isn't much detail in there for characters. On the other hand, even the smallest antialiasing level makes things too blurry and the automatic cropping/outline generation doesn't produce that good results (although this is also a byproduct of the blurry thing).

I think i'll try to render without antialising in a bigger image and do manually a bilinear resize. But that tomorrow, now i need rest - its already 5:44 AM here :-P
Logged

~bs~
astrospoon
Level 4
****


Andy Hull


View Profile WWW
« Reply #10 on: May 01, 2009, 08:24:28 PM »

yeah-

you almost always will get better results by rendering larger and using something like Photoshop to scale down. It will keep the image sharper as it scales to the size you need.
Logged

Bad Sector
Level 3
***


View Profile WWW
« Reply #11 on: May 02, 2009, 05:57:09 AM »

I don't want to do a manual resize. I need it to be as automatic as possible. If i want to render a character from eight angles, with eight frames per animation for eight animations, i'll need to do 512 manual image resizes :-P. No, i want this to be automatic - select an object, run the script and done - ready to be used :-).

I've modified the script to do manual resize (manual in this context means that the resize code is written in Python). As i expected, Blender's OSA added a lot of blurringness to the outline which made my algorithm for adding a sane outline to the object (so it'll only be totally opaque or totally transparent) to produce 'fat' results. With the manual resize, the outline is almost perfect :-)



In the above image, the first object is without antialiasing, the second with Blender's antialiasing and the third without antialiasing, rendered in higher (double) resolution and scaled down using bilinear filtering to the resolution i want it.

Also i changed the camera configuration to match better the isometric perspective and modified the color of the circles around the object to make them stand out better.
Logged

~bs~
JoeHonkie
Level 8
***


RIP Major Sebastian Bludd


View Profile WWW
« Reply #12 on: May 02, 2009, 06:11:12 AM »

I don't want to do a manual resize. I need it to be as automatic as possible. If i want to render a character from eight angles, with eight frames per animation for eight animations, i'll need to do 512 manual image resizes :-P. No, i want this to be automatic - select an object, run the script and done - ready to be used :-).

Photoshop/etc. resizes don't need to be manual.  You could do a few test runs to get the settings and then create a batch job or something in most of those programs.
Logged
Bad Sector
Level 3
***


View Profile WWW
« Reply #13 on: May 02, 2009, 06:59:34 AM »

Indeed. That's what i did with GIMP actually but instead of creating a batch job for GIMP to do it, i created a Blender script that does (almost) the same thing. I saved a couple of extra steps this way (besides in both programs i would use Python anyway).

Although i hope Blender had better functionality for images. Currently is *very* limited.
Logged

~bs~
astrospoon
Level 4
****


Andy Hull


View Profile WWW
« Reply #14 on: May 02, 2009, 07:35:11 AM »

yeah- obviously I did mean to automate it with Photoshop- I batch stuff all the time. If I had to guess too, you would probably get the best quality with Photoshop, because you can really tweak the settings. I can't imagine that Blender is as good at it.
Logged

Bad Sector
Level 3
***


View Profile WWW
« Reply #15 on: May 02, 2009, 07:57:38 AM »

Blender's image support sucks (i made a topic on the Blender Python forums about this). I just grab the pixel data and do the manipulation myself (in code). So its as good as my code is and thankfully such stuff are easy :-)
Logged

~bs~
Bad Sector
Level 3
***


View Profile WWW
« Reply #16 on: May 02, 2009, 09:57:51 AM »

I've automated the process of making all the sides for a single animation frame. Also i've confirmed my assumption of not really needing a detailed model for these. Here is the result so far:



These guys were made from this model:



which i made in a few minutes by making a bunch of boxes, subdividing them, smoothing them and painting with vertex paint. I've got most of the shape right, although obviously it isn't right (especially in up-front view). However since this is just a proof of concept, its enough for me and can be used to add some animation in there in order to write the animation exporting part :-)
Logged

~bs~
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic