That’s another year over and it’s once again time for me to recap what I’ve been up to over the past twelve months and look forward to the next. It’s also an opportunity to see how close I came to achieving the goals I’d set out for myself at the beginning of the year. I always feel doing so helps motivate and push me to learn new things.
The Flash Platform
It was bound to happen eventually. This was the first year where my professional workload involved more HTML5 than Flash. My ActionScript skills were almost exclusively reserved for the maintenance of legacy projects.
The only real exception was a new update to Match Mee, which is an AIR based iOS app we released at WeeWorld last year. We added a bit more functionality, made some gameplay changes, and also squished a few bugs. In addition to that I spent a morning getting Match Mee running in the web browser. It really is a testament to Flash’s strengths when some slight modifications to your code can have something that was originally intended for iOS running quite happily in a web browser. We’d also had Match Mee running on a handful of Android devices with minimum fuss. Unfortunately neither the web or Android ports made it onto WeeWorld’s roadmap for the year but they were fun pieces of work nonetheless.
I might not have written much ActionScript but Flash Professional CC made a triumphant return to my workflow thanks to its integration with the CreateJS framework. After a few difficult years for it, I firmly believe that things are heading in the right direction for Flash Professional. It’s now much more tightly integrated with HTML5 and also provides support for JavaScript directly within the IDE. It has meant we’ve been able to create rich HTML5 web content that utilises the vector graphics and animations that Flash is so good at. I’m happy and it has enabled our designers and illustrators to express themselves again, which has been difficult over the past few years when the tools weren’t available for previous HTML5 projects.
I did do a fair amount of ActionScript development outside of WeeWorld, some of which I’ll cover a bit further down.
HTML5/JavaScript
The last six months of my time at WeeWorld has been almost exclusively spent working with HTML5 and JavaScript on a new section for the site. We’ve also made heavy use of Flash Professional and the CreateJS framework, allowing us to bring a lot of WeeWorld’s vector content into the project. I’m enjoying every minute of it and hopefully I’ll get to stick with it as we add new features throughout 2014.
In fact, the development of this project has gone so smoothly that it’s unlikely that we’ll see another native Flash project at WeeWorld that targets the web browser. JavaScript as a language doesn’t have the niceties of ActionScript 3 but it’s easy and enjoyable enough to use. And of course, for those desperate for something a little closer to AS3 there’s TypeScript. I’ve used TypeScript for some personal projects and I really like it. In fact, it’s something that we’ve talked about using at WeeWorld on future projects.
If you scan through my blog you’ll see that I’ve been tinkering on and off with HTML5 for a few years now on some of my personal projects. However 2013 was clearly a tipping point for me. Personally I think the issues with HTML5’s readiness and complaints regarding browser compatibility have now mostly evaporated. Sure there are problems with older browsers, but most of the modern browsers have significant penetration to the point where the majority of users can enjoy all that HTML5 goodness. As someone who loves developing in Flash I can honestly say that with frameworks like CreateJS and PixiJS the lines have become very blurred and that working with HTML5/JavaScript doesn’t really feel that much different to Flash anymore. Basically I’m pretty damn happy.
Objective C
I did a fair amount of Objective-C too and also tinkered with AIR native extension development. I didn’t actually write an extension that was of any use to anyone but spent enough time experimenting so that I can write my own extension if the need arises. Of course, there’s a good selection of native extensions out there but they tend not to get updated as often as the third-party Objective-C libraries that they’re based upon. So being able to get my hands dirty with any open sourced ANEs or simply write my own should come in handy for future AIR projects.
Just for fun, I also revisited my X-wing Targeting Computer app and re-wrote it in Objective-C. People to this day still email me asking about my app. I have no intention of releasing this one but thought it would be a good coding exercise to rewrite it. I haven’t bothered blogging about this new version because I was hoping to give it a new coat of paint and make the UI look a bit more modern first. My sister in-law has offered to help out with the visuals so hopefully we’ll get those dropped in there in the coming months and then I can show it off to you guys.
Monster Dash Clone and Tutorials
I had a great time creating a clone of Half Brick’s Monster Dash game, which originally appeared for iOS, Android, and web. I wrote it in ActionScript 3 and thought it would be a good opportunity to spend some more time with Box2D and the excellent Starling framework. I picked the Tomb Town level from Monster Dash and did my best to recreate it. Personally I think I got damn close to the original and was pretty pleased with the end result.
I’d also promised to write more tutorials last year so thought a series of tutorials (part 1, part 2, part 3) detailing how to write the scrolling engine from my Monster Dash clone would be worthwhile. Doing it has been a huge investment in time but I think it has been worth it. Since I’d been spending more time with HTML5, I ended up writing the tutorials for JavaScript developers with pixi.js being my rendering engine of choice. It seems to have been a popular decision but I’m also planning to re-write the tutorial’s source code in a few other languages, including ActionScript 3, TypeScript, and possibly Objective-C if I can find the time. I’m also hoping to completely re-write the tutorials for ActionScript developers but that really will depend on how much free time I find myself with this year.
I’ve got one more tutorial in the series to do, which I’m about to start this week. After that, I may go on to write a few more tutorials explaining the Box2D side of things for those who want to add a game character and platform collision detection to proceedings. However that probably won’t happen until the second half of this year.
Bunny Vengeance
I’ve been working on and off with my buddy Alex on a game concept called Bunny Vengeance. The plan was to knock together a few prototypes over the course of the year, however we only found the time to produce one. Even though it contained some beautiful animation from Alex (he’s worked for likes of Pixar and DreamWorks over the years) I never really felt that we had something that was going to make a great game. After spending some time with the first demo Alex also came round to this realisation and we’ve now agreed to explore a few more concepts. The plan is to try and produce another few quick prototypes over the next six months or so and see if we can create something that others might want to play.
3D Games Programming
Every year I promise to do some 3D programming and just about every year I completely fail to find the time. I’m pleased to announce that I did actually spend all of December looking at three.js – Ricardo Cabello’s (AKA Mr Doob) excellent WebGL-based 3D library. Of course, there are many ActionScript 3D libraries I could have opted for, and there’s also Unity, but I felt that three.js had the lowest entry barrier. Its API is fairly mature now, it has a growing community around it, and there’s a wealth of tutorials and examples to work from. I’m also hoping to take a look at Unity before the year is out but three.js let’s me quickly experiment with things and push any work I do to the web without the need for a plugin.
I’ve also come to the realisation that I really need to learn how to use a 3D modelling package. There are plenty of 3D models floating around the web that I can use in my personal projects but they quite often require some tinkering with before I can import them into three.js. I’d also like to be able to build my own simple 3D models for my projects. While I could probably programmatically create some of these models directly with three.js I think I’d get things done a lot quicker if I simply had the right tools to let me be more creative. I’m seriously considering checking out Blender. It’s free and I’m already using it to make very quick adjustments to existing models. Blender’s a bit of a beast though so it may take me some time even to get to grips with the basics. We’ll see how I get on though.
This Blog
Yeah, But Is It Flash? is four years old now! I originally only intended to run the blog for a year so I’m chuffed that I’ve managed to keep it going this long. However I have actually struggled with the blog’s name for a few years now. It did start purely as a Flash platform blog but the last couple of years has seen me work with an increasingly wider range of technologies. I have posted some of my non-Flash experiments here but have held back many more because I was afraid I might alienating myself from my original target audience. I’ve decided that I’ll just go for it this year and write about just about anything I happen to work on.
I had also seriously thought about changing the blog’s name but couldn’t think of anything that I liked, and I do think my blog’s current name is kinda cool. So for the time being, the name will stay.
All Change
So it’s all change for me this year. I’m really looking forward to experimenting more with three.js and hopefully I’ll find the time to tackle Blender as well. I’m also hoping to do some more small Objective-C projects including finishing off the port of my X-wing Targeting Computer app. Fingers crossed that me and Alex will also find the time to bash together a few more Bunny Vengeance prototypes too. Not sure if we’ll ever finish the game but even putting together a few demo levels should be fun. Finally, I’ve got my Parallax Scrolling tutorial series to finish. Actually, it’s just one more tutorial I have to do but as I said I’d like to also write a few more based on the Box2D side of things.
So, looking forward to 2014 and hopefully I’ll get lots done.
Happy new year! Looking forward to your posts in 2014 🙂
You are a jerk for teasing us about that X-Wing app.
“I’m not going to release, just thought I’d tell you about it again hehehehe.”
🙁
Don’t blame me. Blame George Lucas 🙂