To add to this, if you don't like the visual editor, don't use it. I do most of my Unity development in code. I use the visual editor to layout UI, but that's about it. You can pretty much anything in code if that's what you want. I haven't personally used it, but you may want to check out Fusion, a 2D toolkit for Unity from @MattRix, who's worked on a bunch of titles (most recently, Disco Zoo for iOS and Android) https://github.com/MattRix/Futile I haven't used the Unity 2D toolset so I can't comment on that. I will say that 2D Toolkit, a plug-in for Unity, HAS been around awhile, and is absolutely solid. Another Unity plugin besides 2D Toolkit that I consider invaluable, is HOTween, which is a lightweight (free) library that can be used for, well, tweening objects (moving/scaling/rotating an object over time) Unity makes sense to me (among other reasons) because it has massive developer support/community behind it. It feels like a fully-baked, multi-platform solution. I tried to get into cocos2d-x, but I never felt like it was quite ready.
Haha no, that's not me! Even though I have to admit that I'm adicted to Monkey and actually I'm customer #1. It depends what you want to achieve. Personally I've build my own small framework but have purchased Ignition as well. It's an impressive framework and I really can recommend it! The only external stuff I use is fontmachine which is just an awesome extension for text stuff. And it's basically free.
Well whether a visual editor increases speed or not depends on the task of course. But yes, Unity is quite a nice tool, but for 2d stuff I still think it's a bit of a mess and too complicated. Monkey has this build once and release everywhere as well. And yes you just code once and just hit the build button and have an Android APK which is installed on your device and the logcat output is visible in the editor then. Sorry for this thread derailment but I think it's an important discussion. As most of you might know Unity but almost noone knows Monkey, here's just a full functioning code snippet that simply loads an image and displays it. This is Monkey code and translates with just one click to HTML5, Flash, Android, Ouya, iOS, Windows/Mac, Windows Phone, Playstation portable... Code: Strict Import mojo Function Main:Int() New Game() Return 0 End Function Class Game Extends App Field _image:Image Method OnCreate:Int() _image = LoadImage( "image.jpg" ) SetUpdateRate(30) Return 0 End Method Method OnUpdate:Int() Return 0 End Method Method OnRender:Int() Cls() DrawImage( _image, 0, 0 ) Return 0 End Method Method OnSuspend:Int() Return 0 End Method Method OnResume:Int() Return 0 End Method Method OnBack:Int() Return 0 End Method End Class Can't be simpler, eh?
I am still very much undecided on this. I think the best way is to make my mind up for myself. I'll probably find a 2D tutorial for Unity and then go on to see if i can do the same in Monkey. Following that, I'm hoping ill have a decent idea of which way today.
It sounds like Monkey X is good at porting, but Unity is just as easy. It's literally Build Settings > Choose Target (Windows, iPhone, Android, etc... ) and click Build. If you want an iOS build, you'll need an Apple laptop (and for Windows, you'll need a Windows machine) but other than that, it's literally one click to deploy to any platform you want. More info about Unity's multi-platform support http://unity3d.com/unity/multiplatform
Same is true for Monkey X. You just select your target in the IDE from a drop down menu and click build. That's it. If you are not shy to really code, you won't find any better for 2d(!) games. An empty Android apk has a size of about 60kb (yes, kilobytes) compared to 8MB for an empty Unity APK. At least if you care about app sizes like I do.
Yes, that's about what I'd go with as well. Unity was clearly not built for 2D in mind and wastes some power. We've been running into issues and tracking odd losses of performance on a variety of 2011-2012 medium range smartphones with this middleware, whlist thinking our problem was in the C# code (we were unfortunate to be too confident about the tool), until we ran tests and benchmarks with a variety of the most basic and empty apks possible and still noticed unaccetapble spikes of resource consumption which had nothing to do with the C# code but with the way Unity runs. So I couldn't agree more to use MonkeyX for 2D (or Coco2D-x). The multiplatform support is a huge gain as well.
What you gain in accessibility and speed, you lose in precision and efficiency. Unity is also quite expensive and it only becomes good when you acquire several plugins, which can easily reach into the extra $300~400. On the other hand, if you totally suck at coding, you can acquire visual scripting plugins, although I'd say C# isn't terribly complicated to get into. Aside from the tricks of any language you only learn with experience, it's the language that can put you off.
Oh and if you really want to do 2D with Unity, for the moment you'll obtain more from the 2Dtoolkit plugin than from the 2D tools of Unity 4.x. It is indeed robust, but still runs on Unity, alas.
That simply isn't true. I hadn't spent a single cent on a plugin until I bought UnityCar (which, TBH, I kinda regret). Unity is free and the only time I have ever wanted the pro version was when hitting performance issues, so I could use the profiler. With a bit of old-school debugging, though, it's perfectly fine. It's also extremely simple to do a 2D game out of the box. Sure, you can buy plugins if you aren't capable of doing something yourself, but that goes for pretty much every development environment.
This is a joke. Some of the best 2D games were made in unity without any plugins. My fav is the classic zombieville series. If you aren't comfortable with C# syntax javascript is there an has access to complete functionality.
Everyone, this is a fantastic discussion on the topic. As a dev who has used neither MonkeyX or Unity for a commercial project, I've decided I will write the next project using Unity. Just got a few updates to get finished for Circix first. I'll be sure to report back on my findings
That doesn't change the fact that Unity is simply poorly designed for making 2d games. It was not just made for that. And of course you can make a 2d game with Unity as well as I can make a 3d game with Monkey. I just don't see the reason to torture myself trying to make a 2d game with Unity when it's much much easier to achieve with Monkey (or even Cocos, Corona...) with better performance AND smaller package sizes. But maybe that's just my point of view, but I know Monkey in and out as well as Unity. I use both. For "visual" guys and artists, Unity is the way to go. For programmers like me, Unity is just a blocker in some cases.
I'm definitely more a GUI guy but I can get by with code (relatively proficient, but no pro at C/C++). I'm actually tempted to try Monkey, now. From memory I think it was made by a Kiwi crowd. Will look into it as I have a few ideas for 2D games... I do know my way around Unity and can do what I need to to do 2D stuff but there are definitely workarounds involved.
HAHA lol. Yes, it's done by a "Kiwi". Again, I think Unity is really great. Maybe the tool itself just doesn't matter, you can create great games with many tools, but I just wanted to point you that there is a world beside Unity. That Kiwi-guy is really awful when it comes to marketing. That's why almost no one knows Monkey yet (beside that the name "Monkey" itself is ... well...). All my apps are made with Monkey with the exception of my current 3d submarine game (which is still in development).
Yeah, I think he's one of the guys behind Super Skidmarks for Amiga/Mega Drive. I remember being blown away when I found out they were Kiwis (Acid Software) NO ONE here in NZ was making games back then. Massive industry here now...
You guys have put some great arguments across. I find myself once again considering the MonkeyX option. I need: -Facebook integration -Potentially twitter integration -Potentially iAd and Admob support -Potentially GameCenter -Potentially Google Play Services Are there API's provided for Unity and MonkeyX and if so how much are they and how easy to integrate? Will i need to write any native code for any of the above?
Monkey has ("build in" means it's there by default, where "user module" is made from the community): - [build in] admob support for Android and iOS (WP8 easy to add, no iAd but there is a user module for this I think) - [build in] Gamecenter - [build in] inapp purchases for iOS, Android and WP8 - [user module] Google Play Services (partially, stuff like leaderboards, achievements) - [user module] Facebook and Twitter (don't know the current state but it works ok as far as I can see) I think Unity can nothing of these out of the box but there are of course many plugins for this via the asset store. You won't have to write any native code for this. Just check out the free version of Monkey (which can build HTML5 and desktop targets) to see if it's ok for you. It's pretty easy to add own modules for Monkey (including the needed native code). Personally I work on a Amazon IAP module and a photon networking module.