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.
Isome - 3D isometric tile-based engine
- Taehl
- Dreaming in associative arrays
- Posts: 1025
- Joined: Mon Jan 11, 2010 5:07 am
- Location: CA, USA
- Contact:
Isome - 3D isometric tile-based engine
Last edited by Taehl on Sun Jan 29, 2012 10:01 pm, edited 3 times in total.
Earliest Love2D supporter who can't Love anymore. Let me disable pixel shaders if I don't use them, dammit!
Lenovo Thinkpad X60 Tablet, built like a tank. But not fancy enough for Love2D 0.10.0+.
Lenovo Thinkpad X60 Tablet, built like a tank. But not fancy enough for Love2D 0.10.0+.
Re: Isome - 3D isometric tile-based engine
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?
I have a question: What format are the saves in? CSV?
And will this work with 0.7.0, and how embeddable is it?
Hello, I am not dead.
Re: Isome - 3D isometric tile-based engine
Well done! I'll definitely be pointing people to this.
Re: Isome - 3D isometric tile-based engine
Looks awesome, I'm definitely going to play with this.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.
@rynesaur
- Taehl
- Dreaming in associative arrays
- Posts: 1025
- Joined: Mon Jan 11, 2010 5:07 am
- Location: CA, USA
- Contact:
Re: Isome - 3D isometric tile-based engine
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?
It works just fine in Love 0.7. What do you mean by embeddable?
Earliest Love2D supporter who can't Love anymore. Let me disable pixel shaders if I don't use them, dammit!
Lenovo Thinkpad X60 Tablet, built like a tank. But not fancy enough for Love2D 0.10.0+.
Lenovo Thinkpad X60 Tablet, built like a tank. But not fancy enough for Love2D 0.10.0+.
Re: Isome - 3D isometric tile-based engine
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...
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
...is what I was thinking!anjo wrote:
Mïnecräft, anyone?
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.
- Taehl
- Dreaming in associative arrays
- Posts: 1025
- Joined: Mon Jan 11, 2010 5:07 am
- Location: CA, USA
- Contact:
Re: Isome - 3D isometric tile-based engine
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*
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*
Earliest Love2D supporter who can't Love anymore. Let me disable pixel shaders if I don't use them, dammit!
Lenovo Thinkpad X60 Tablet, built like a tank. But not fancy enough for Love2D 0.10.0+.
Lenovo Thinkpad X60 Tablet, built like a tank. But not fancy enough for Love2D 0.10.0+.
Who is online
Users browsing this forum: No registered users and 0 guests