I think it looks cool
Larry
www.TinyTapApps.com [import]uid: 11860 topic_id: 32457 reply_id: 130072[/import]
I think it looks cool
Larry
www.TinyTapApps.com [import]uid: 11860 topic_id: 32457 reply_id: 130072[/import]
Thanks, Larry. Keep an eye out, there’s more cool stuff coming.
Thanks for the files, richard9. I think it is safe to say at this point that MTE will probably look and work differently than Lime when it comes to setting up maps and writing the code. Off the top of my head I can say that tiles with extruded borders will be important to avoid ugly artifacts, though I realize how much work it would be to change a pre-existing large tileset.
I’ve been working on less glamorous things like the converter functions recently, making sure they work on both flat maps and maps with scaled parallax layers. After that I’ll be taking a break from the mundane to add a more advanced lighting system. [import]uid: 99903 topic_id: 32457 reply_id: 130351[/import]
Thanks, Larry. Keep an eye out, there’s more cool stuff coming.
Thanks for the files, richard9. I think it is safe to say at this point that MTE will probably look and work differently than Lime when it comes to setting up maps and writing the code. Off the top of my head I can say that tiles with extruded borders will be important to avoid ugly artifacts, though I realize how much work it would be to change a pre-existing large tileset.
I’ve been working on less glamorous things like the converter functions recently, making sure they work on both flat maps and maps with scaled parallax layers. After that I’ll be taking a break from the mundane to add a more advanced lighting system. [import]uid: 99903 topic_id: 32457 reply_id: 130351[/import]
I’m literally not needing the lighting system but it is an exciting extra for down the road! The reason why my tilesets were not much of anything is because I wanted a sturdy platform first. I can always make the pretty-looking stuff later with TexturePacker.
Can’t wait to get onboard. [import]uid: 41884 topic_id: 32457 reply_id: 130369[/import]
I’m literally not needing the lighting system but it is an exciting extra for down the road! The reason why my tilesets were not much of anything is because I wanted a sturdy platform first. I can always make the pretty-looking stuff later with TexturePacker.
Can’t wait to get onboard. [import]uid: 41884 topic_id: 32457 reply_id: 130369[/import]
In that case I’ll keep working through the important stuff and think about adding less important nifty effects some time later. [import]uid: 99903 topic_id: 32457 reply_id: 130711[/import]
In that case I’ll keep working through the important stuff and think about adding less important nifty effects some time later. [import]uid: 99903 topic_id: 32457 reply_id: 130711[/import]
Hi dyson122,
what you’re doing is pretty neat. I am really considering to buy this when it’s done. But you should focus on performance and maybe you have to temper your ambitions/features in favor of stable perfomance. We all know that corona sdk is far from being blazing fast on graphics (alas). Besides tiles/world scroll there are plenty of other things computed in realtime or animated. If most CPU cycles are eaten by engine - than it rends it much useless in my humple opinion.
Regards,
Yuri [import]uid: 188897 topic_id: 32457 reply_id: 130941[/import]
Hi dyson122,
what you’re doing is pretty neat. I am really considering to buy this when it’s done. But you should focus on performance and maybe you have to temper your ambitions/features in favor of stable perfomance. We all know that corona sdk is far from being blazing fast on graphics (alas). Besides tiles/world scroll there are plenty of other things computed in realtime or animated. If most CPU cycles are eaten by engine - than it rends it much useless in my humple opinion.
Regards,
Yuri [import]uid: 188897 topic_id: 32457 reply_id: 130941[/import]
I’m back to work on the engine after enjoying Thanksgiving. I’m adding in the functions supporting sprite and objects not part of the Tiled map, but I also wanted to demonstrate the performance of the engine’s core functionality. I threw together a 400 x 300 or 120000 tile world map in Tiled:
I put together a simple test program which, like all my previous tests, scrolls the map around in random directions. The tiles are scaled from native 48x48 to 32x32. A tap on the screen will move to a random location.
display.setStatusBar( display.HiddenStatusBar )
local mte = require "MTE.mte"
mte.loadMap("corruptionMap.json", "json")
mte.goto(107, 81, 32)
local velX = 1
local velY = 1
local timer = 0
local gameLoop = function(event)
mte.moveCamera(velX, velY)
mte.debug()
timer = timer + 1
if timer \> 200 then
velX = math.random(-2, 2)
velY = math.random(-2, 2)
timer = 0
end
end
Runtime:addEventListener("enterFrame", gameLoop)
local screenTouch = function(event)
if event.phase ~= "ended" then
mte.goto(math.random(1, 400), math.random(1, 300), 32)
velX = math.random(-2, 2)
velY = math.random(-2, 2)
end
end
Runtime:addEventListener("touch", screenTouch)
Then I dug my old iPhone 3GS out of it’s crypt.
http://www.youtube.com/watch?v=8Aw0v7z1_tM
The video lags here and there, but the performance in person is excellent. I also had success with larger numbers of smaller onscreen tiles. The iPhone 3GS can run the engine’s core components competently with headroom for game logic, even on it’s archaic hardware. [import]uid: 99903 topic_id: 32457 reply_id: 133564[/import]
Great to see you’re still working on it! I really can’t underline enough that I would use it today if I could get my hands on it. (And damn, those big maps must have been a pain in the ass to draw out)
It’s cool that you tested versus the 3GS. I have a pretty good hunch that it will be deprecated come next October, but it’s nice to see how your code works against bad performance profiles. (Having just switched to an iPhone 5, the fillrate difference is enormous)
How do you handle map removal? Say I need to jump storyboard scenes or load a different map - are you handling that cleanup? (I just wonder when I see that you’re using a lot of command logic without the variables to go with it)
[import]uid: 41884 topic_id: 32457 reply_id: 133568[/import]
This is pretty cool. I watched the demos a couple weeks back, and meant to chime in then.
Is the pre-level loading doing anything radically different versus once the level is running, or could you hypothetically load up a window around you and then stream in everything outside that? (Obviously with restrictions on goto and scaling…)
Do you do any tile aggregation? Even if it’s running fine, (automatic) metatiling might give you some free compression (at the cost of a slower unpack). [import]uid: 27791 topic_id: 32457 reply_id: 133593[/import]
I’m back to work on the engine after enjoying Thanksgiving. I’m adding in the functions supporting sprite and objects not part of the Tiled map, but I also wanted to demonstrate the performance of the engine’s core functionality. I threw together a 400 x 300 or 120000 tile world map in Tiled:
I put together a simple test program which, like all my previous tests, scrolls the map around in random directions. The tiles are scaled from native 48x48 to 32x32. A tap on the screen will move to a random location.
display.setStatusBar( display.HiddenStatusBar )
local mte = require "MTE.mte"
mte.loadMap("corruptionMap.json", "json")
mte.goto(107, 81, 32)
local velX = 1
local velY = 1
local timer = 0
local gameLoop = function(event)
mte.moveCamera(velX, velY)
mte.debug()
timer = timer + 1
if timer \> 200 then
velX = math.random(-2, 2)
velY = math.random(-2, 2)
timer = 0
end
end
Runtime:addEventListener("enterFrame", gameLoop)
local screenTouch = function(event)
if event.phase ~= "ended" then
mte.goto(math.random(1, 400), math.random(1, 300), 32)
velX = math.random(-2, 2)
velY = math.random(-2, 2)
end
end
Runtime:addEventListener("touch", screenTouch)
Then I dug my old iPhone 3GS out of it’s crypt.
http://www.youtube.com/watch?v=8Aw0v7z1_tM
The video lags here and there, but the performance in person is excellent. I also had success with larger numbers of smaller onscreen tiles. The iPhone 3GS can run the engine’s core components competently with headroom for game logic, even on it’s archaic hardware. [import]uid: 99903 topic_id: 32457 reply_id: 133564[/import]
Great to see you’re still working on it! I really can’t underline enough that I would use it today if I could get my hands on it. (And damn, those big maps must have been a pain in the ass to draw out)
It’s cool that you tested versus the 3GS. I have a pretty good hunch that it will be deprecated come next October, but it’s nice to see how your code works against bad performance profiles. (Having just switched to an iPhone 5, the fillrate difference is enormous)
How do you handle map removal? Say I need to jump storyboard scenes or load a different map - are you handling that cleanup? (I just wonder when I see that you’re using a lot of command logic without the variables to go with it)
[import]uid: 41884 topic_id: 32457 reply_id: 133568[/import]
This is pretty cool. I watched the demos a couple weeks back, and meant to chime in then.
Is the pre-level loading doing anything radically different versus once the level is running, or could you hypothetically load up a window around you and then stream in everything outside that? (Obviously with restrictions on goto and scaling…)
Do you do any tile aggregation? Even if it’s running fine, (automatic) metatiling might give you some free compression (at the cost of a slower unpack). [import]uid: 27791 topic_id: 32457 reply_id: 133593[/import]
Thanks for the feedback. At the moment I’m working on setCameraFocus and other things related to the camera and Sprites.
I don’t expect people to target the 3GS for their games, really, but in the past the Android performance of Corona has been… not up to par with iOS. I haven’t gotten my hands on the iPhone 5 yet, but I have seen one in action playing Invaders from Space. It’s a tribute to Coronalabs that games published a year and a half ago still run after two iOS updates and multiple new hardware devices without needing an update.
At the moment I handle map removal by not handling map removal. Loading a map clears out all of MTE’s map arrays and refills them with the new information. Now that you mention it I should probably allow users to handle this themselves if, for example, they want to hold the world map in memory while going into a town to reduce loading times between the two. That shouldn’t be too difficult to implement.
StarCrunch,
The engine reads the map json file, decodes it, and loads the entire map into memory. For the older Corona SDK Engine Demo 5- the first video in the first post in the thread- the world is generated or loaded in chunks in an ever-expanding area around the player. This was necessary because the level was being generated on the fly using perlin noise functions which take an enormous amount of computing power compared to… everything else in the demo. This isn’t in MTE yet and is less important for the new purpose of supporting classic-style RPG’s with relatively static predefined maps I think, but I guess I could add it in eventually.
What do you mean by tile aggregation and metatiling? I’m not too worried about the size of the app at this point, but then again I’ve never worked on RPG’s in Corona and I’m not sure whether size becomes a problem with them.
[import]uid: 99903 topic_id: 32457 reply_id: 134039[/import]
> MTE: Advanced Perspective and Layer Lighting
> http://www.youtube.com/watch?v=ajkAaYqA5r8
This is great! Loong time ago I made something similar in Corona SDK ( just like this: http://stephband.info/jparallax/demos/index.html ) for top-down GTA clone ( http://www.youtube.com/watch?v=KYhTmJI5oHk ) but it was completely unplayable on device!
What about isometric (2.5D) engine?
Best regards! [import]uid: 12704 topic_id: 32457 reply_id: 134064[/import]
Okay, cool. I asked about the streaming since at least one of the videos had a loading screen and I wondered if that was strictly necessary.
“Metatile” is a “tile of tiles”, e.g. recurring n-by-n tile patterns. Example lower down On some older consoles it was a rather common compression methods, what with ROM space at such a premium, though better schemes have obviously come along.
It probably complicates the drawing process and may not help much (indeed, it may hurt). I was curious mostly because in the screenshots there were some obvious patterns going on. [import]uid: 27791 topic_id: 32457 reply_id: 134079[/import]
Thanks for the feedback. At the moment I’m working on setCameraFocus and other things related to the camera and Sprites.
I don’t expect people to target the 3GS for their games, really, but in the past the Android performance of Corona has been… not up to par with iOS. I haven’t gotten my hands on the iPhone 5 yet, but I have seen one in action playing Invaders from Space. It’s a tribute to Coronalabs that games published a year and a half ago still run after two iOS updates and multiple new hardware devices without needing an update.
At the moment I handle map removal by not handling map removal. Loading a map clears out all of MTE’s map arrays and refills them with the new information. Now that you mention it I should probably allow users to handle this themselves if, for example, they want to hold the world map in memory while going into a town to reduce loading times between the two. That shouldn’t be too difficult to implement.
StarCrunch,
The engine reads the map json file, decodes it, and loads the entire map into memory. For the older Corona SDK Engine Demo 5- the first video in the first post in the thread- the world is generated or loaded in chunks in an ever-expanding area around the player. This was necessary because the level was being generated on the fly using perlin noise functions which take an enormous amount of computing power compared to… everything else in the demo. This isn’t in MTE yet and is less important for the new purpose of supporting classic-style RPG’s with relatively static predefined maps I think, but I guess I could add it in eventually.
What do you mean by tile aggregation and metatiling? I’m not too worried about the size of the app at this point, but then again I’ve never worked on RPG’s in Corona and I’m not sure whether size becomes a problem with them.
[import]uid: 99903 topic_id: 32457 reply_id: 134039[/import]
> MTE: Advanced Perspective and Layer Lighting
> http://www.youtube.com/watch?v=ajkAaYqA5r8
This is great! Loong time ago I made something similar in Corona SDK ( just like this: http://stephband.info/jparallax/demos/index.html ) for top-down GTA clone ( http://www.youtube.com/watch?v=KYhTmJI5oHk ) but it was completely unplayable on device!
What about isometric (2.5D) engine?
Best regards! [import]uid: 12704 topic_id: 32457 reply_id: 134064[/import]