Skip to main content


Showing posts from September, 2016

Corona Labs announces splash screen control for $99/year in free version

Corona Labs recently announced a new major release of the Corona SDK platform, including a long list of fixes and features as well as iOS 10 support. The release notes state that "In the current development cycle, our engineers have been working hard on addressing infrastructure and core improvements to Corona to make a more stable platform" . This is really good news and I sure hope that it is as true as it is welcome. Making the core platform better in any way possible has to be the number one focus for Corona Labs at all times in my opinion. But what probably caught most peoples' attention was the following paragraph about changes to the splash screen: "One of these features is new “splash screen” controls, a system which will drastically simplify splash screen implementation. Starting with this build, a default Corona-branded splash screen will appear briefly when the app starts. We continue to believe in keeping Corona free to use, but we also need to gr

Corona SDK newRect() vs newImageRect() performance comparison

My next Corona game contains quite a lot of explosion effects in pixel art style, where I basically just scatter a number of single-colored squares in different directions. The squares are all created using display.newRect()  which I figured had to be both the easiest and most efficent way for creating these simple geometrical shapes. Explosion close-up from Ice Trap But then it kind of hit me: What if using newImageRect() with a 1px image scaled to the desired size could actually be faster than newRect() ? Not very likely, but since I have no idea how the Corona SDK graphics engine is implemented I had to try it out with a little sample program. I decided to run three separate tests. Not scientific in any way, but at least it should give me a clue of which function performs best. In each of the tests I just created a bunch of squares of the same size randomized across the screen, and measured the time taken to create them. The three tests had the following setup: 1. Use dis

How to check the actual frame rate (FPS) with Corona SDK

EDIT: This example has a follow-up in this blog post containing improved and object-oriented source code for the frame rate calculator. In Corona SDK you set the target frame rate in config.lua to either 30 or 60 FPS (Frames Per Second). Then during application execution you can get this value through display.fps . However, remember that this is only the target  frame rate, and the actual frame rate is something completely different. The actual FPS will fluctuate during program execution and can be significantly lower than the target FPS in case your app has too much to handle at any given moment. I couldn't find any built-in way to get the actual FPS, so I decided to roll my own very simple solution to handle this. My frame rate calculator is just a Lua function that sets up an enter frame listener which then counts frames and calculates FPS based on time passed between the frames. The function  startFrameRateCalculator  accepts a single argument which is a callback functio

Changing color theme in ZeroBrane Studio

My favorite Corona/Lua IDE is  ZeroBrane Studio . When I started building games with Corona SDK I didn't even know it existed, and instead purchased a license for Lua Glider since that was the only reasonable editor I could find with build-in support for Corona. Lua Glider was such a pile of crap that it doesn't even deserve linking to. It might have evolved now but when I bought it, it was so painfully slow and full of bugs that I would have done better using Notepad++ or just about any text editor without the Corona support. So, good thing that ZeroBrane Studio showed up to save me! ZeroBrane Studio is a simple and fast Lua IDE with great Corona support. I don't use half of the features and customizations it offers, but I'm still very satisfied with it, just because it's so fast and easy to use. One thing I don't like very much is the default color theme, since I prefer a darker background with soft but clear text colors. ZeroBrane provides this too, it can

Corona Labs sold. Again.

Wow! It feels like it was only yesterday that Corona Labs was aquired by Perk Inc. I believe it was somewhere around November-December last year (2015), and now it's time for another ownership change. Perk sells Corona Labs: Not really sure if this is good or bad, but I hope and believe that it will be mostly good. The year that's passed since Perk took over hasn't really pushed Corona SDK in any clear direction, at least not from what I can tell. The Corona platform still suffers from many of the same issues as it did a year ago, such as poor performance, not enough focus on core functionality, and bugs that take ages to fix. Hopefully we'll see a more focused and dedicated company in the future, bringing us an even better 2D game development platform. Because despite the flaws that I just mentioned in the paragraph above, I still believe that Corona SDK is a

A quick introduction

So, who am I and what is this blog about? My name is Markus Ranner, a Swedish software developer with 15+ years of experience, mostly with backend focus using Java but also numerous other programming languages. In 2012 I started looking into mobile development out of curiousity, and began building an iOS app in Objective-C just to learn the language, as well as the iOS platform and the whole Apple eco system. After only about three months of development I released my first version of Avocado Meal Planner on the App Store. And from there on I knew that I wanted to do more mobile development! Avocado Meal Planner for iOS I didn't realize it back then because I had nothing to relate to, but it was actually quite a success right from the start with several hundreds of downloads each day! Unfortunately the first version wasn't all that good, so not many people wanted to pay for the full version. But just knowing that people all around the world were downloading and using