Friday, July 18, 2014

Flight Odyssey Featured on Powerslyde

We're excited to announce that Flight Odyssey has been featured on Powerslyde! You can read the full article here.

Sunday, May 11, 2014

Happy Mother's Day

Happy Mother's Day! Mothers, we have a special gift for you! Today, you can get Flight Odyssey Premium for Android, normally $0.99, completely free with the promo code mother .

To redeem your code, simply download Flight Odyssey Lite for free. Then, install and run the app. When you are asked whether you would like to enter a promotional code, choose "Yes" and type in your code (mother). That's it! The message "Congratulations, the full version of Flight Odyssey has been unlocked." will appear to verify that the full game was successfully unlocked. The icon will still show "Lite," but all advertisements will be removed and all premium features will be unlocked. If you have any problems, please contact us.

 If you enjoy your free copy of the app, please review it or share it! Happy Mother's Day!

Sunday, April 13, 2014

Flight Odyssey Lite Available on All Major Platforms!

Flight Odyssey Lite is now available on the app store for iOS, Android, and Amazon. Click here to try it for free! If you enjoy it, please leave a review -- if we get at least 10 reviews in a week, we'll release a new plane!

If you're ready to try the full version of Flight Odyssey, with even more planes and no ads, you can click here.

Sunday, April 6, 2014

Flight Odyssey Lite: Coming Soon to iOS

If you've been wanting to try Flight Odyssey, but not in the mood for parting with 99 cents, I've got good news for you: Flight Odyssey Lite is coming soon to iOS! It is already available for Android, where we've just unlocked dozens of new levels. Soon, Flight Odyssey Lite will be available for iOS too: we'll keep you posted!

Monday, September 23, 2013

Flight Odyssey Released

We are proud to announce that Flight Odyssey has now been released on the Google Play Store for Android and the App Store and is now also available at the Amazon Appstore for Android.
Android app on Google Play Available at Amazon
Not sure? Try it for free on Google Play. If you run an app review site, work in the journalism/media field, or have at least 1000 friends/followers on a Social Media website and are interested in reviewing our game, please contact us at FlightOdyssey+Promo@gmail.com to request a free promotional code.

Here are some helpful links for new players:


Current versions: v. 1.006-1.028 Built with Corona SDK

Friday, September 20, 2013

Closure

Lua and Javascript are surprisingly similar languages, as I was happy to learn (coming from a Javascript background). Both of them are very loose in handling data types, don't require classes, and have a nice feature called closure. That's by no means an exhaustive list of similarities, of course. However, today I thought I'd write about some differences in how each of them handles closure. Take a look at the two code samples below:

Lua:
 
function main()
    local printFunctions={}
    local i,j
    for i=1,10 do
        local printi = function()
            print(i)
        end
        printFunctions[i]=printi
    end
    for j=1,10 do
        printFunctions[j]()
    end
end

main()

Javascript:
function main()
{
    var printFunctions=[]
    var i,j
    for(i=0;i<10;i++)
    {
        var printi = function()
        {
            console.log(i);
        }
        printFunctions[i]=printi
    }
    for(j=0;j<10;j++)
    {
        printFunctions[j]()
    }
}

main()

Both of these would appear to be identical. They create 10 functions which simply print the value of i. Then, each of the functions is called. You would expect the result to be "0 1 2 3 4 5 6 7 8 9," right? That's correct in Lua, but not for Javascript. Javascript prints "10 10 10 10 10 10 10 10 10 10."

UPDATE:
The following explanation is not accurate. See this Stack Overflow question for details.

Inaccurate explanation:
So why does this occur? It occurs because Lua and Javascript handle closure in different ways. Lua treats the closure as part of the function reference itself (see this reference), and therefore each time you create a function reference you get a new copy of the variable. The function is created 10 times, with i having values from 0 to 9 during those initializations, and therefore the numbers 0 to 9 are printed.

Javascript, on the other hand, creates a closure based on the variable declarations (see this reference). Since i was declared in the main function, i can only have one value for each time the main function was called. The main function was only called once, so i has only one value, and that value is 10 at the point when the functions are called.

Perhaps this is better explained with another example. What if we changed the anonymous function to print j instead of i? In Lua, nil is printed 10 times because at the point where the function is declared, j is nil. By contrast, in Javascript, the numbers 0 through 9 are printed, because at the point where the function is called, the j from the main function ranges from 0 to 9.

Hopefully that was helpful to anybody else familiar with Javascript and trying to learn Lua. If anybody else has a better way of explaining the difference, please feel free to leave a comment.