Million Tile Engine Beta Release

That’s great news! Out of curiosity, were you running it at 30 or 60fps? I’d think with it’s overclocked Tegra 3 the Ouya could handle 60fps.

After fiddling around with isometric(staggered) maps I’ve decided to shift my focus to true isometric maps. My reason is that staggered maps do not visually fit to the actual data in an easily visualized or understood fashion. For example, moving a sprite from location 1,1 to 1,2 to 1,3 and so forth causes the sprite to move in a zigzag pattern rather than a straight line. In order to move diagonally across the screen you must move the sprite in a bizarre 1 to 2 to 1 to 2 stepping pattern such that it’s true movement against the map data is something like a sharp 15 degree angle. On even tile rows the Up direction is to the right, while on odd rows the Up direction is actually to the left. As you move through the map the orientation of the sprite in its local environment flips wildly around. 

True isometric maps are so much easier for the end user to use. Taking into account that everything is rotated, up is always up, left is always left, etc. Moving a sprite in a straight line will, in fact, move the sprite in a straight line! Those of you using A* algorithms won’t have a near-impossible situation to contend with. It really is just a square map rotated 45 degrees and squashed slightly. 

The plan currently is for all of MTE’s movement functions to conform to the isometric projection of the map data. So, if you set your Y velocity to 10, the sprite will move at an angle down screen along the Y axis of the isometrically projected map rather than straight down the screen (which would be diagonal movement through the map data).

Isometric and Isometric(staggered) maps are visually indistinguishable except at the map edges. Staggered maps are square, while isometric maps are diamond shaped. Tiled v0.9 supports both map types.

That sounds great!

We are really looking forward to the isometric support.

MTE loaded a map directly from a .tmx file for the first time today! The coming update will support both Tmx map files and their corrosponding Tsx tileset data files.

What this means, is that folks don’t necessarily have to worry about exporting their maps to Json files anymore, nor setting up the same properties on the same tileset used across several different maps. Reading the XML data from these files currently takes about 3 times as long on the first load, but it is as yet unoptimized, and of course preloaded maps will load as quickly from memory as they would in any case.

The new MTE update will be available next Friday (Sep 20)!

@Dyson-  I’d just like to voice my appreciation for your tile engine.  I know it’s getting bigger and bigger, which probably means much more work.  My game wouldn’t have had all the little extra things without your hard work and dedication to your project.  Thanks a ton and I’ll keep you posted of any bugs or cool small extras you can add (though I don’t want to create too much work for you).  Thanks again!

I do appreciate that cjc83486, and you’re so very right about the complexity of the engine feeding back on itself. Adding Isometric support requires changes throughout the code. For example, if MTE did not include camera constraints, I would not have to update camera constraints to work with Isometric maps. Iterate this logic across several releases, and pretty soon minor changes require significant work.

I do have some neat things I’d like to add in addition to the new map support. I’m looking into importing Tiled’s terrain data and having updateTile optionally obey those rules. I think some other RPG makers call it automapping, you know, you paint a tile and it automatically adds the corresponding edge tiles around it. The data is stored in the XML format, so I figure I might as well add TMX map support to eliminate the need for json exporting as well.

The other thing I’ve mentioned here and there is perlin noise. I like perlin noise. As a major fan of such games as Terraria and Minecraft, I just love perlin noise. I already have a perlin noise function sitting around from MTE’s predecessor Terraria-clone-in-abandoned-progress, so I’ll be adding that. What people do with it is up to people. If you feed it 2D noise it will spit out delightfully natural cave shapes or world map continent shapes, depending on the setup perimeters. 1D noise will yield a pseudo-random series useful for animating the motion of… I don’t know, falling leaves? Snowflakes? Killer bees? It has its uses.

These are on the sidelines right now. The task at hand is getting MTE’s convert function to work with Isometric maps. It isn’t easy work, but it is satisfying to conquer these roadblocks as they rear their ugly heads. When the main work on MTE is finished I can divert some of my time to Coronastein3D, or maybe even use my engine to actually make a game myself. That would sure be nice!

But do definitely let me know if you encounter bugs. Bugs deserve to be squashed with extreme prejudice. 

This is amazing work! Incredible stuff, making the purchase soon. I have a question about it’s compatibility with other LUA - engines. If I were to port a Corona made game into something like say, Löve, what features from the MTE library wouldn’t transfer over easily? I imagine the Corona specific APIs and libraries. I apologize if I’m not terribly knowledgable on the process, still deciding if I should fully invest in Corona development and wondering about porting games to Mac/Pc.

Hello jpwilliams,

I’ve mused occasionally about porting MTE to other LUA-based frameworks like Love! I would have done so already if I had the time. The engine’s mostly a colossal collection of arithmetic and if-then statements which wouldn’t need much in the way of modification. I can’t think of any real show stoppers to converting it over to Love, and such a thing could probably be done relatively quickly by someone familiar with both frameworks.

Off the top of my head, MTE relies on API calls to the Corona display library, it makes use of display groups, it uses Corona’s built-in json library for decoding maps, and it employs Corona’s event framework here and there. I’m sure Love has it’s own versions of all these things.

This is great! Awesome work just bought a copy. I noticed you had videos of a lighting effect test. Will you be including this sometime in the future? Looks like a great feature. 

Looking forward to the update!

Thanks Czepta! 

Which video are you talking about?

This one: http://www.youtube.com/watch?v=DJsHMH2eJyE

Working on the Isometric sample project for next release. This will be a three map, storyboard sample.

1uz8.png

Oh! Yes, that one. The video shows an unfinished game of mine predating MTE, from which I adapted the current engine. I do love lighting of this type, and exploration/cave games in general, but at the time of the MTE BETA release people seemed less interested in it than a speedy BETA release.

I haven’t given the lighting system much thought since then. I’ll have to look into it, see what kind of work it would involve. I had no immediate plans to bring it over, but of course that will change if there’s demand for it!

Cool well its got my vote. Particularly liked the day/night transition. The lighting effects really make a huge difference in your video. Everything suddenly comes alive. Really looking forward to diving into MTE as it looks like it solves many of the issues I was having with designing my game from my limited knowledge. Being able to layout nice big levels will be great. I’m an artist and looking forward to having a go making some tile sets. 

Thanks again!

dyson, awesome work. now you only need to tell me that pathfinding, a* will be included for enemies :slight_smile:

Have you seen this game? It’s what came to mind when I saw your lighting video: http://www.robotloveskitty.com/LoD/

Also I saw in corona graphics 2.0 they have normal maps so they would work perfectly together.

I’m thinking of including the Jumper library for pathfinding in one form or another. Ill have to look into it further, but it appears to be a well developed and relatively mature library. 

The Isometric sample project is coming along nicely. In this case I’m also using it as a test bed to develop and debug the rest of the features, so Isometric support is not quite ready for prime time. Still, it’s coming along.

[media]http://www.youtube.com/watch?v=4nJNlVRcycw[/media]

Wow, cool as Dyson! Slightly annoying because when you release this I will have to fiddle with it at the cost to my other projects :rolleyes:

dyson, awesome! do you think it will be possible to have enemies with collision detection and all? its really amazing what you did, this is a hell lot of work you did!

I have seen that game, and I think it looks great!

Quick status update: I’ll be igniting a petroleum product at zero hundred hours to get this update finished for release tomorrow. It was not quite as ready as I though it was earlier this week.