Page 1 of 1

Isome - 3D isometric tile-based engine

Posted: Fri Dec 10, 2010 4:40 pm
by Taehl
Isome is a 3D (logically and spatially, 2D graphically), tile-based engine. It could easily be used for platformers, RPGs, puzzle games, or, really, just about anything. It's very optimized, and can easily show over 100,000 tiles without slowing down. It has a realtime editor (with the ability to save and load maps to/from files) with some neat features.

Since Isome is meant to be built upon, I wrote it to be easily expanded, include useful and flexible functionality (including a code profiler and debug message system), and, most importantly, every file is filled with comments and documentation. The whole thing totals only about 650 lines of code, including comments, example snippets, and some demonstration maps.

Time for screenies.

Image
Image
Image
Image


It's /meant/ to also have multiplayer support, however, the networking module is taking me too long to write, so I thought I'd just release the singleplayer version for now. It's perfectly stable as is.

Want to give it a try? Download it here.

Want to test its ability to load maps from files? The map from the fourth screenshot is here. Put it in your AppData\Roaming\LOVE\Isome folder (or whichever you use, depending on your OS), run Isome in Love, Hit F3 to enable the editor, and press KP/.

I know it's not perfectly optimal (the trace function, for example, could be done better, but I don't know the math to do it), so I'd be happy to hear any comments, critique, or improvements you may come up with.

Re: Isome - 3D isometric tile-based engine

Posted: Fri Dec 10, 2010 8:18 pm
by zac352
It sounds nice.

I have a question: What format are the saves in? CSV?
And will this work with 0.7.0, and how embeddable is it?

Re: Isome - 3D isometric tile-based engine

Posted: Fri Dec 10, 2010 9:12 pm
by Lap
Well done! I'll definitely be pointing people to this.

Re: Isome - 3D isometric tile-based engine

Posted: Fri Dec 10, 2010 10:15 pm
by Ryne
Taehl wrote:Isome is a 3D (logically and spatially, 2D graphically), tile-based engine. It could easily be used for platformers, RPGs, puzzle games, or, really, just about anything. It's very optimized, and can easily show over 100,000 tiles without slowing down. It has a realtime editor (with the ability to save and load maps to/from files) with some neat features.

Since Isome is meant to be built upon, I wrote it to be easily expanded, include useful and flexible functionality (including a code profiler and debug message system), and, most importantly, every file is filled with comments and documentation. The whole thing totals only about 650 lines of code, including comments, example snippets, and some demonstration maps.

Time for screenies.

It's /meant/ to also have multiplayer support, however, the networking module is taking me too long to write, so I thought I'd just release the singleplayer version for now. It's perfectly stable as is.

Want to give it a try? Download it here.

Want to test its ability to load maps from files? The map from the fourth screenshot is here. Put it in your AppData\Roaming\LOVE\Isome folder (or whichever you use, depending on your OS), run Isome in Love, Hit F3 to enable the editor, and press KP/.

I know it's not perfectly optimal (the trace function, for example, could be done better, but I don't know the math to do it), so I'd be happy to hear any comments, critique, or improvements you may come up with.
Looks awesome, I'm definitely going to play with this.

Re: Isome - 3D isometric tile-based engine

Posted: Sat Dec 11, 2010 12:39 am
by Taehl
zac352, save files are in, at the moment, pure Lua code. Back in Love 0.60 I used to zip them (which really helped), however, newer versions of Love somehow broke the file-reading in just such a way that my zipper won't work any more. *Sigh*

It works just fine in Love 0.7. What do you mean by embeddable?

Re: Isome - 3D isometric tile-based engine

Posted: Sun Dec 12, 2010 6:44 pm
by bmelts
So, uh...

Mïnecräft, anyone?

On a more serious note, this looks amazing. May need to mess around with it a bit once finals are over...

Re: Isome - 3D isometric tile-based engine

Posted: Sun Dec 12, 2010 7:08 pm
by headchant
anjo wrote:
Mïnecräft, anyone?
...is what I was thinking!

This looks and feels great. The jumping and gravity stuff is awesome.

What bugs me is the flickering shadow of the player when he moves. It seems to have an issue of not being in the correct z-order or something.

Re: Isome - 3D isometric tile-based engine

Posted: Sun Dec 12, 2010 9:40 pm
by Taehl
He he, isometric Minecraft would be amusing.

I know the shadow thing you're talking about, redlock. I decided to trade-off the ability to properly depth-sort objects with graphics that go below (on the screen, not 3D) their origins to gain a significant performance increase. The fastest way to fix it is to change two lines in Isome\engine\engine.lua to these:

line 209: lgdraw(v.si, math.round(rx-cam.x), math.round(ry-cam.y)-6, 0, 1,1, 8,4)
line 214: lgdraw(v.i, math.round(rx-cam.x), (ry-cam.y)-6, 0, 1,1, 16,32)

Note the new -6 on the y-coordinates - that moves the graphic upwards a bit, so they won't be clipped by the next row in the depth sort. However, that can make precision jumping a little bit harder. *Shrugs*