My thoughts on Flash and its recent events

Update : Unity3D has set up an exporter to target Flash which works very well! Without doubt they are working on an exporter for HTML5 too. This technology seems to be promising, I’ve added it on my to learn list!

I wouldn’t come back on the Adobe announcements, everyone know what’s happened and it has already been discussed everywhere. I just would like to share my student point of view about the future.

I started to develop and learn programming with AS3 5 years ago. It was in 2007, AS3 was just out. AS3 is really a cool language to learn programming. I know that purist doesn’t like it and say that it’s shit… but most of them have never taken a look on it. AS3 is OOP programming language, it’s easy to manage picture/shape, memory too (yeah the GC isn’t perfect, and you have to learn good practice but for the best), no pointer, simple listener on events, work with diversified media : video/sound/3D/game… and finally we can use frameworks which are available in other languages such as Box2D.

So yeah, flash as3 is a good language to have good programming skills, but you can’t stop on it. During my first 2 years training, I have also learned xHTML/CSS/JavaScript/Php/SQL. One year later, when I was in a computer science school I have learned “decent” programming language : C/C++/Java, some VHDL & VBA & Ruby too… and certainly I forget some of them. I can’t say that I remember each of them, at this moment I’m not able to write a “Hello World” in Ruby, but when we learn a new language its not only our specific language skill which is improved, but our skills as a developer. A mathematician does not work only on trigonometry for example, but on many other things too, even if he is specialized in trigonometry. Because everything is just ONE simple box. And finally when you have good programming skills, and know the concept behind the programming language that you want to learn, it isn’t really hard : it’s about one week to be operational.

I loved learning C: managing memory, C++ :writing complex OOP (multi-heritage, operator overloading…), Java which has a syntax close to AS3 (yeah, I know its just the opposite 😉 ) and its difference on constructor, listeners…
Since last year, I’m back in the web and works essentially with AS3, and I feel really stronger than before because I learned newest things form other languages.

So what’s up now? Flash isn’t dead yet, and probably not in the next five years. But we couldn’t say that it’s always popular, don’t lie to yourself HTML5/CSS3/JS is the new elected. And now you have to think about what you love, here are mine :
– working in a web agency (I have sandwich course) with a small team (not like on a big game with 300 people).
– diversity : video/sounds/3D…
– games.
– desktop/mobile applications.
Finally I consider myself as an interactive developer. Here is what I don’t like :
– “back development” such as php, I don’t feel really comfortable with database.
– CSS/JS it’s not a troll… I will explain after.
– working on CMS website.

So this last day, I said to myself : “You must learn newest things, it’s time”. In july, I will work at full time and I’m not sure to find easily some works with my flash skills. So it’s time to start learning newest things. If you are a hero flash developer it may not be a big problem for you, you have enough experienced to work on amazing project (if you are up to date!), for people like me, I’m not sure. So here are my reflexions about what new skills I should pick up or not :

– HTML/CSS/JS, I will follow their updates as a web developer, but it’s not my priority at the moment. I’m not trolling : I don’t like CSS tricks, and JS is definitely not a better language than AS3 for lots of reasons. Obviously, we can make amazing things with framework like ThreeJS, WebGL, and the flash community has started to make amazing tools like this one for example : HTML5 Canvas API implementation of the AS3 BitmapData class. But JS with Jquery… is not something which interest me a lot, I’m not sure it will increase my programming skills as much as other languages.

– AIR & FP, I must keep my skills up to date. There are always lots of things to learn, and some cool stuff is coming (stage 3d on mobile). And AIR is really useful to create apps for desktop/ios/android.

– haXe, I’m following strongly haXe & nme activities. haXe may be the next programming language that we should learn, but the market isn’t ready : I can’t find any jobs which request strong haXe skills. And it’s not a junior developer who will impose his method.

Hiddenwwod, like haXe HiddenWood sounds very interesting… but the same doubts here.

Unity3D, I’m very interesting in Unity… but what will happen if in 2 years a good 3D game editors made with HTML5/CSS/JS is out? And I’m sure that there will be one.

– Java & Android, today was my last training day on this, it was great & fun to work (fight? 😉 ) again with Java. However I don’t feel really comfortable with it, and I’ve just bought an iPhone 4S, so…

– Objective-C & iOS, finally I will learn Objective-C. I know it’s really not the most beautiful programming language, but it’s an old one. I know it isn’t request for simple apps (air or html apps are great), but I’m interested in games. So after some days on this language, I will learn Sparrow Game Framework or Cocos 2D Game Framework, maybe Cocos 2D because it doesn’t simulate the flash displaylist/API like the other one. Even if it will be harder, I think it is better to learn a new language : start from scratch and learn language specificity.

To conclude here is my roadmap for 2012 :
– keep playing with flash (hey I’m an CitrusEngine’s official contributor now, cool stuff in preparation) & air.
– keep an eye on HTML/CSS/JS… my point of view might change (keep an opened mind!).
– learn Objective-C and made some cool apps & games!
– keep an eye on haXe and HiddenWood.

AIR is ready for AS3 developers and some new cool stuff is arriving (stage 3d), but it could not be as good as native apps. However haXe & HiddenWood seems to be, but it’s not easy to find a job with those skills.
So continue to improve your skills on what you love, keep an eye on your “old” job, learn strong language like Objective-C / Java, and be ready for cross platform compilation framework / language.
Finally future is really exciting!

And you, what do you think ?

11 thoughts on “My thoughts on Flash and its recent events

  1. Have you look at Corona SDK? What do you think? I would like to take a look…

    Recently we have released a interactive book for iPad using Cocos2d with Chipmunk Physic engine and the included particle system. I think Cocos2d is very powerfull for creating 2d games, but is not so easy at first to understand (like the Objective-C language). But if you have a game programming backgroud like the Flash one, you’ll fill more confortable using it. The concept are the same sprites, collision, platform, physics, …

    Regard Unity I think that it will follow the market, in the sense that they should write a plugin to export games in HTML5, CSS3, JS… Recently they have released a beta version of Flash Exporter for example…

    I would like to create a game using Citrus Engine. I’ve seen you are a contributor. I’ve tried Level Architect, but don’t know if it’s currently supported. Is better to use Flash to create levels instead? I’m new to this Framework, but I like so much the web site so I think is a good choice.

    Thank you also for the good work! There are not so many good other frameworks for building games using Flash …

  2. Hi Dario,

    I have never tried Corona SDK, it seems to be powerful but I have some doubt about its performance compared to native applications for a game with physics, particles, and lot of animations.

    I have just watched the video on merlino’s website it seems to be great! Yes, Cocos2d is not the easiest framework however it seems that Kobold2D is a good start. Have you tried it? I wait to have a bit more knowledge on Obj-C to start game development.

    You’re right about Unity, maybe I should add it to my list…

    Welcome on the Citrus Engine! The Level Architect is not currently supported. I hope that someone will focus on it, but I have some doubt about that. I have always use Flash Pro as Level Editor and it is really powerful (on a build I’ve modified classes to add Inspectable metadata tags, so you can edit object properties inside flash panel). The Level Architect is a good product but it reinvents the wheel, I think. This month, I hope to release a new version of the CE with Starling support and the metadata tags addition.

  3. Never tried Kobold2D, but I would like to port my app to Kobold2D.

    Regard Citrus Engine the best setup should be:

    – FlashBuilder: build and editing code
    – Flash: Level editor
    – Flash: Characters animation and vector graphics

    Right?

    There are lot of material in your web site and in the Citrus Engine one, but it’s difficult to have a good starting point, and the right way to follow.

    Also the main Citrus Engine blog should be updated… Latest blog was dated november and in the footer of the website the date is 2010… should be 2012…

  4. FlashBuilder or Flash Develop or FDT are good for programming (I have a preference for FDT).

    You should start with the videos on the website, it’s really a good starting point. And then take a look on the different blog posts.

    I will make a big update when Starling support will be ready!

  5. Thank you for your tips.
    Have you look also at StencylWorks? I think it’s very powerful and easy to use for building small games. http://www.stencyl.com

    You should then publish to flash, iOS, Android and soon HTML5…
    It’s free for flash and you pay to publish for Mobile.

    I would give a try just to understand pro and cons using such game platform.

  6. Yes StencylWorks seems to be great for building small games. I have never tried it, but I took a look on Emanuele tutorials.
    Maybe I’m wrong, but it seems that if we want a non pixelated game and not based on tile system there aren’t lot of frameworks : Flixel, and FlashPunk can’t handle a simple sloping ground… or you need to use Box2D, but they were not really designed for!

    So, yes any frameworks have its pro and cons… it depends what you need.

  7. Did you ever had a look to Xtext (http://www.eclipse.org/Xtext)? I think that is beside the multi-platform paradigm the most promising direction. It goes even a step further as you define you own domain specific language and can generate source code for different target platforms. I think a mix of Hi-level feature language in Xtext and a multi-platform framework and compiler could be an interesting development…

Leave a Reply

Your email address will not be published. Required fields are marked *