Exactly why would Corona be faster than Unity for a basic 2D RPG?

Background
* I am a hobbyist developer
* Already have base (non-pro) Unity license to deploy to IOS/Android
* Interested in developing/publishing a very basic RPG, in 2D. An example would be something like “The Secret of Grisly Manor” http://itunes.apple.com/us/app/the-secret-of-grisly-manor/id384282298?mt=8# say (not saying this game is very basic hey)
* Was just about to start experimenting in Unity with 2D but then come across Corona.
* Have googled and and read a lot of people saying Corona would be best for 2D games as this is it’s focus - this sounds good - however for me it would be extra $$$ per year (noting I already have the base IOS deployment Unity license)

Questions I was hoping someone who had tried both Corona and Unity for 2D are:

Q1 - Main question is why would it be quicker to develop a 2D game (say like the one I mention above) in Corona versus in Unity? So what aspects exactly in corona would be quicker and can you give a quicker overview of why? I ask this as I’ve read many general statements saying it’s quicker but these don’t really help me understand why. Happy to get a detailed technical response here…

Q2 - Any advise re (for the game I mention above) how much faster (quantitatively) corona would be over Unity? The bottom line for me is weighing up say the (a) extra cost of Corona, and the ability if I go unity to have some ability to go 3D when I want to versus (b) quicker development times with Corona for 2D.
thanks heaps [import]uid: 140210 topic_id: 24460 reply_id: 324460[/import]

I have played with Unity a bit and for 3D I’d say it can’t be beat - but for 2D, yeah, Corona is what you want. They are comparable for making 2D apps beyond the standout points;

  1. With Corona you can use your own Splash screen whatever license you own

  2. Corona is significantly faster.

Now, I’m a developer too but I also work for Ansca - so I wouldn’t blame you for thinking I’m biased and am hoping others might have tried Unity and also have some insight for you.

That said, if they don’t, you can get a feel for this yourself - make a basic 2D game - say a square moving around using a D pad - in Unity, then make it in Corona. You will immediately see why Corona is faster for development.

Another option is to read through some tutorials for making apps in 2D with Unity; compare the time to doing the same thing in Corona and again, you will see why Corona is the best option.

Also Corona made apps remain on the store whether or not you have an active license so if you make an app and decide to switch you only have to renew if you want to update the app using Corona - you aren’t locked in.

Again though for 3D Unity is certainly the way to go and far faster than using Obj-C and Xcode.

I hope this helps!

Peach :slight_smile: [import]uid: 52491 topic_id: 24460 reply_id: 98948[/import]

Wow didn’t know Unity requires active license to KEEP the games in store…
I love both Unity and Corona, although decided to go with Corona myself. I was a bit frustrated after some time of working in Unity’s version of type-strict Javascript as it was throwing erors that I couldn’t track, and couldn’t find help online. I never used C#, but I had lot of experience with Javascript, ActionScript and C++ before I started working in Corona.
Corona has a very straightforward and simple API, and LUA itself is a scripting language that might appear a bit weird at first (first 2-3 hours), but then it is amazingly flexible. Although it is not OOP language by default, using the flexibility of table object you can create classes and organize code very neatly.

Currently, if we put side by side apps made in Unity and Corona and compare quality, Unity apps are in general so better looking and polished, that almost any comparison seems ridiculous. However, it is not (only) due to differences in engines, but difference in user base. Unity has been in the game for a very long time, and it has been adopted by game studios that operate on greater budgets. Unlike Unity, Corona has mostly been adopted by novice programmers because it’s simplicity, but it doesn’t mean it is a beginners-only SDK. Corona is both simple and smart.
Also Unity allows for using of filters and shaders, which greatly improves the look of the apps. Corona is currently is not supporting filters and most of the apps look a bit flat, but the team is working on it, and it might be there soon.

Another current advantage of Unity is that allows export to a greater range of platforms including desktop PC, MAC and Flash. However, PC and MAC export for Corona is currently in the making, so things will be equal in this department too.

Performance wise, I don’t know if there is any comparative study that would put side-by-side same performance test in Corona and Unity. I have seen comparison between Unity and Moai, which is another game engine in Lua, that has apparently very fast performance.
However, I wasn’t really happy with Moai because their Lua API is almost an 1:1 equivalent of OpenGL, which is cool if you want flexibility and know OpenGL, but then it is so low level then I woud rather simply just go ahead and write C++ instead Moai’s version of Lua.

Finally, I am not sure what to tell you… Best you can do is dedicate a week worth of spare time and try Corona and see how it feels. Don’t get fooled by silly examples of “game in 5 minutes”, because
while these examples are good to attract novice programmers, they are the reasons why serious game developers look down on Corona like if it was a child’s toy.

And trust me, it’s no toy. It IS simple and fun, but can be very powerful, too.

And by the way, another thing is that working in 2D with sprite sheets I think is incomparably more budget-friendly than working on a game in 3D. 3D requires so much work on modeling, texturing and setting up IK that it can be overwhelming task, especially for small studio. and trust me, I have been doing 3D modeling on a very advanced level for almost 18 years, and published already one game in 3D, and while I occasionally get an itch to do it again, I am not sure this enormous amount of time and cost would justify adding one more D to my current 2D setup :slight_smile: [import]uid: 80100 topic_id: 24460 reply_id: 98970[/import]

@nosheet thanks for a great response - what’s your take by the way on time it takes to develop a basic 2D app between the two tools, and why?

(have been starting to read through Corona doco - haven’t seen and major gems so far that lead me to think Corona would be a lot faster than Unity, but I’m only 10% in :). ) [import]uid: 140210 topic_id: 24460 reply_id: 98974[/import]

>>>Q1 - Main question is why would it be quicker to develop a 2D game (say like the one I mention above) in Corona versus in Unity?

Write fewer lines of code with Corona API. Lua is very easy.
>>Q2 - Any advise re (for the game I mention above) how much faster (quantitatively) corona would be over Unity?

Good question. Don’t know. What I do know it does what I want performance wise. Simple API, simple LUA language and it’s fast. I was able to create a platform game for android devices and these types of games need speed in order to play good :wink:

If I can do that with Corona I doubt you need that much speed for your 2d RPG.

Bottom line -> I think you just need to decide what you really want to do. 2d or 3d?

Answer

  • 2d Use -> Corona
  • 3d Use -> Unity
    [import]uid: 38820 topic_id: 24460 reply_id: 98976[/import]

@glennbjr - thanks - but like Unity has a scripting language too (or you can go strong typed with C#) so I don’t really see how Lua would make the difference here(?) [import]uid: 140210 topic_id: 24460 reply_id: 98978[/import]

I cant possibly compare, because I havent done anything serious in Unity.
However, although both have scripting, I think Corona api is simply much smaller, because its focused on 2d and simplicity. If you want to rotate stuff, just say rotate, no need to write transform.quaternionSomething(0,30,0). I am paraphrasing the synthax of unity javascript here, but it was an off-putting impression that i had: that unity api is unfortunately bloated, there are simply too many functions and properties for some things that could so obviously be structured in a more simple way. Partly because its a 3d engine so that means more features, but very often because simplicity is not easy to achieve.
I have been working very intensely with corona for about a year, and while i do lack some features, overall balance between features, simplicity and performance is very good.

[import]uid: 80100 topic_id: 24460 reply_id: 98981[/import]

hey greg here i go again :slight_smile:
obviously this topic of unity vs. corona sticks to my mind because every now and then i get an itch to do a 3d game and i come back to unity only to be frustrated, and now i took some time to think about WHY i am s0 frustrated by unity?

so here’s why: i get annoyed by unity because they have a FANTASTIC product and platform, but they messed it up by complete lack of focus on their side.

for example: why on earth I would want to choose between 3 scripting languages ? If I pay for an engine, I want them to say to me: “Look, THIS is the BEST solution we have, so THIS is what you need to use.” I want focused and optimized solution, but instead they say “Ok, so if you want full performance, you have option A), and then if you’re lazy we have option B) and then we also have option C) but we have no idea why we still support it.”

This may look as a joke, but this is exactly the message I get from Unity documentation, reading almost literary from every page of their scripting reference (which again is meticulously written in 3 versions, lots of wasted time again on their part! )
They try to mask the fact that they have 3 languages as a FEATURE, but it’s their own inability to consolidate their market strategy and come up with a solution. They want to do so much, and they are doing most things very correctly.
But when it comes to scripting? OH, come on…

First they have C# (which is a strange choice in itself), which offers full performance. They also put Javascript for people who don’t want to work with C#, which is about 90% of game developers. But then people said “Yeah we dont want C# but we want performance” so they started patching Javascript in order to bring more performance, and they made CRAP.
I can stand behind that strict-type mutant version of Javascript and C that they came up is complete CRAP. Yes, one can learn to work with it, but come on… I spent other day 4 hours online trying to find an answer on how to make a type-strict array AND NOBODY HAD AN ANSWER! Neither documentation nor entire community couldn’t agree on single solution on something so simple.
And they have that misfortunate Boo script for backward compatibility.

In general, Unity is a mature solution that’s been around for 7 years or so since version 1.0, and seems that they kept adding stuff without making a proper API cleanup ever, and they ended up with a complete mess on that side too…

All this rant against Unity is because I so much want to like it, but this terrible terrible lack of focus on side of Unity’s developers makes me confused and really distracts me from thinking clearly.
The best thing about Corona is that the API gives me confidence that the ANSCA team is confident about the architecture they want to create. Sometimes they do mess up things (but only in pre-release daily builds, never final version) as it’s a natural in the process, but at least it’s almost never with API, if something is messy it’s something behind the curtain and it’s fixed soon without me having to bang my head about things they should care about.

If I had to say what my favorite engine would be, it would be a UNITY CORONA, a mix of the two ! :slight_smile:
I want 3D with shaders of Unity, and I want simple API of Corona!!!
Cheers :slight_smile:
[import]uid: 80100 topic_id: 24460 reply_id: 98987[/import]

+1 Coronity!! [import]uid: 21331 topic_id: 24460 reply_id: 98989[/import]

Hi nosheet / all

Just came across this. Not sure if this alters any options

Unity 2D Gameplay Tutorial

http://unity3d.com/support/resources/tutorials/2d-gameplay-tutorial.html [import]uid: 140210 topic_id: 24460 reply_id: 99036[/import]

If you want to make a 2d game I would pick Corona, that’s why I dropped Unity.

When I started my game, I started using Unity. This was before they had the free android/iOS versions, so you couldn’t even test on device unless you bought the license. They had the Unity Remote which sends video to your phone and doesn’t even actually test it on the phone so I didn’t like any of that.

So basically the reasons I switched over.

  1. Being able to use Corona trial version while I learn how to code.
  2. Being able to test on device!
  3. The community, I’ve learned so much from the people here.
  4. The price.
  5. I wanted to make a 2D game, 3d games are more involved and require more time and people if you’re not also the 3d artist.
  6. I could use a custom splash screen.
  7. You need a pro version to strip out parts of the Unity engine you’re not using to help keep your build size down.

When ever the level editor comes out it’s just going to make Corona even that much better and easier to use.

But I guess it really comes down to you. You should try and make a quick mockup and see which one you like better. I know I liked Corona better.

I’m just hoping in the future we get some 3D in corona that would make the perfect engine.

EDIT: I’ve read the .pdf and some of the .pdf’s that Unity has put out as tutorials but for me they weren’t enough they felt so dry and boring.

Also have you checked out the videos here? The how to make a game in 8 minutes is pretty good to see how quickly you can get stuff working in Corona

http://blog.anscamobile.com/videos/

And this website has a lot great of stuff:
http://www.learningcorona.com/index.html
[import]uid: 123298 topic_id: 24460 reply_id: 99041[/import]

@miguelrico3d - thanks very much for replying - very interesting.

Re “You need a pro version to strip out parts of the Unity engine you’re not using to help keep your build size down” - Would you be able to expand on exactly what things you were referring to in your point 7? This sounds like a real negative and one of few I’ve heard yet.

Just as a way to check I’m understanding things, if I review your points as things stands now:

* 1,2,4 - Price related - Now things seem the other way around - that is I can build/test/deploy to IOS & Android for free with Unity at the moment but not with Corona. I’m talking non-pro Unity version here of course & plus the recent free offers they had for IOS & Android licenses.

* 3 - Community - well I know/see Unity have their own forums - not sure if they are any worse than here

* 5 - re 3D being more involved creating in Unity - but if you were using Unity for a 2D game this item would drop away no?

* 6 - Custom splash screen - arr this was mentioned before - I’ll have to check out Unity’s splash screen & see what the big deal is here - do they make you have a big Unity icon on it or something? Still wouldn’t be a big deal would it?

* 7 - “You need a pro version to strip out…” this seems a worry, put my question on this item back to you at the top

thanks again for taking the time to respond

[import]uid: 140210 topic_id: 24460 reply_id: 99074[/import]

For the price ones, yeah if you’re going with the free version then it would be cheaper. But if you want to go with Pro Version, I believe you need to buy Unity Pro and then either Android Pro or iOS pro for a whopping $3,000.

For 3, it always seemed to be a while for me to get help in the forums. And back then I couldn’t get specific help for android or iOS because you had to buy the license before you can test for those.

  1. Well, if you went with something like in the tutorial you posted. That’s all 3d. Those are still models that had to be modeled, textured and characters had to be rigged and animated.

You can go the sprite route but it seemed trickier at the time to be able to set up sprites in Unity.

Also if you are just making a 2d game there still is more steps involved in unity than there is in Corona. You have to use a plane, make a material and add the 2D image as a texture to that material in the diffuse channel and give your .tga file an alpha channel.

In Corona:
[lua]local ball = display.newImage(“ball.png”)
ball.x = 50;
ball.y = 50;[/lua]

That’s all you do to put your image in the game.

  1. Well, we all like having it look more professional by including our company name or logo instead of “Powered by Unity” with their big ol’ logo. I feel this might make players look up Unity rather than your company.

  2. Yeah check this link out: http://unity3d.com/unity/licenses#iphone

It’s in the Deployment section. “Build Size Stripping”. Only Pro versions get that.

And if you’re making a 2d game your build might be bloated with stuff you’re not using.

I don’t work for Ansca, not trying to make a sale here, lol. It’s what best works for you and I’m really glad I found out about Corona. [import]uid: 123298 topic_id: 24460 reply_id: 99079[/import]

thanks miguelrico3d - you’re really swaying me :slight_smile: [mainly was as a hobbyist I could save a few $$ sticking with Unity, as opposed to the $$/year model, however having said that it’s probably worth it to me even as a hobbyist if it make things that much simpler]
[import]uid: 140210 topic_id: 24460 reply_id: 99087[/import]