Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
11. April 2013

I mentioned yesterday that i've become rather smitten with Codea but didn't exactly find the prospect of typing on the iPad screen appealing.  I could have hooked up a Bluetooth keyboard, but I don't want to carry one around with me, especially as the one I own is massive.  I didn't really feel like spending 50-100$ on a portable one, I generally can't stand them if I'm honest.  In the end I came up with the following solution and I actually rather like it.  There is a price tag attached with this setup though, about 16$  ( or 1416$ if you count the MacBook and iPad Mini…).  Which ironically enough is more than Codea costs!  I was going to buy the one app anyways for other reasons, so that was a non-factor for me.

 

Here is my Codea dev environment in action!

 

Codeonmac

 

Instead of using a Bluetooth Keyboard, I am using my MacBook as one using the application Type2Phone, a simple little application that acts like a virtual bluetooth keyboard.

Type2Phone

Connect and pair like a normal bluetooth device, then when the app has focused, anything types is sent to your iPad and the iPad's keyboard is hidden.  Type2Phone has a 4.99$ price tag, but it works very well and has plenty of options.  Even more important, it handles connects and disconnects very well.  There is a more expensive app called iKeyboard, the one you will find if you google.  It doesn't appear to be maintained, doesn't work with iOS6 and costs twice as much.  Use Type2Phone instead, even if it has a horrible name! :)  It's one of those slick little utilities that sets out to do one thing and does it well, I appreciate those.  If you are running on a PC, I am certain you will be able to find similar utilities, as long as you have bluetooth that is.

 

Now typing and looking at a different device is kinda awkward, so I decided to mirror my iPad's display to screen.  The easiest way to do this is with Reflector a 13$ purchase that runs on either Mac OS or Windows an enables you to mirror your iPad display on your desktop using Airplay.  So long as your network connection, the results are pretty solid.  In the above picture, I am out at a coffee shop with both devices tethered through my Android phone and it was a bit choppy at times when running a game or movie, but flawless when programming in Codea.  On my home network, it's simply flawless.

Here is Codea running mirrored on my desktop using Reflector.

Codea over airplay

 

Now, Reflector is a cool little application and one I was intended to purchase anyways ( it's one of the easiest ways to screen capture an iOS game at full speed without having to run the simulator.

 

Now you may be asking, why not just run the simulator?  At the end of the day, you can't beat running on the actual device, especially when it comes to motion controls and multitouch.  Plus, under this setup, all of my code exists in one place, on the device, no need to move from Mac to Dropbox to iPad for example, or the other various deployment mechanisms.  Plus at any time I can just pick up the device and go, the big strength of Codea.  This way, I can give myself a desktop like development experience when I am at home or have my laptop with me, but I can still take advantage of the iPad based nature of Codea when I am on the go.

 

There is one downside to this setup, and one I don't think I am going to be able to overcome…  you still need to touch the device… there is no mouse support in iOS ( unlike Android ) and Reflector is for display only.  You will find yourself clicking things in Reflector over and over until you get used to it.  If you know a way to control the touch screen on an iPad from a Mac, let me know!

 

You can see a video of the entire thing in process right here:


10. April 2013

Now that I am actually setting off to create a mobile game, it dawned on me I don't have any current iOS devices to develop and test on.  I have an iPad 1, that my daughter has pretty much co-opted, and an iPhone 3g, which is absolutely prehistoric at this point.  I have zero desire to own an iPhone ( wayyyyyyyyy too small for me ) so I decided to pick up this iPad mini last weekend.  I figured it was a good base-line target device, as it shares the same basic components as the iPad 2.  Besides, I was going to be buying one for ShadowRun eventually anyways!

 

Codea

Of course, with a shiny new toy, I pretty much spent the weekend playing with it.  So i've been installing the various games and applications that aren't available in Android land.  

 

One such application I eventually installed was Codea.

 

If you've never heard of it, Codea is a Lua based game development system that is run on the iPad.  That's right, it's a full IDE, code editor and game library that you run on your iPad to make games for your iPad.  As you may know I am a pretty big fan of Lua game engines and amazingly enough, Codea is pretty good.  After I installed it, the next couple hours just disappeared.

 

Codea comes with a pretty extensive number of demos and a great deal of art assets for you to get started with.  You also have the ability to publish to the app store.  The documentation is pretty good, although locating it from their website isn't immediately obvious.  You can take a look at the reference here, although it uses Sencha touch, so it will only run on webkit browsers ( Safari & Chrome ).  Again there are a number of demo applications with complete source code included as well.  Pretty much everything you need is actually included.  Perhaps coolest of all, there is even a book available, although only a chapter is dedicated to Codea.

 

So, what you may ask, is it like to program on an iPad?  Pretty freaking terrible actually.  I've never been a huge fan of the iOS keyboard, now imagine writing code with it.  Codea do have a toolbar that make accessing special character and navigating between text ( think Home and End ) easier, and it does help.  They've also made a number of things very touch friendly, like colour selection bringing up a colour select dialog or touch and drag to change a numeric value.  There are also drag and drop snippets that make the process quicker.  At the end of the day though, you still have to type a fair bit and with the onscreen keyboard it's kinda frustrating.  Codea does about everything it can to help you, but in the end, they are at the mercy of the device they run on.  You really want a bluetooth keyboard if you are going to do serious work, if only just to reclaim screen space.

 

I am actually rather hooked.  I can't see myself using Codea for a full release project, but as something to play or prototype with when out and about away from my PC it's great fun.  I think it would also be a good app for someone just learning the basics of programming.  This app is easily worth the 10$ cost.  As I am going to be playing with it a bit more, I might as well do a review… expect one shortly.


4. April 2013

Well, this certainly wasn't expected, and I double checked the calendar, it's no longer April 1st...

 

Introducing Corona SDK Starter

Okay, so here’s where it gets really exciting. From very early on, we have focused on democratizing app development. We felt (and still do) that anyone could create the next great app with Corona. Since then, Corona has been embraced by indies and your apps have hit the top of the charts.

Indies are a key part of our community, so today, we are taking that vision a step further. We are announcing Corona SDK Starter – a completely FREE version of Corona that lets you publish to all the platforms we support without paying us a single cent.

With Corona SDK Starter and the Starter tier of Corona Cloud, you can publish amazing, connected apps faster and more affordably (free!) than ever before. We are the only platform that lets developers do this. A lot of other products have hidden fees or force some sort of watermark/splash screen. There is no such restriction with Starter. That’s the difference between “fake free” and a true free option.

So, what's the catch?

If you want to access certain specific features like in-app purchase and analytics, you’ll need to subscribe to a paid plan. You can still build with those features on your own device, but you can’t publish apps to the store if they use those premium features. Daily builds are also only available to paying subscribers.

Not really much of a catch in the end, at least so far as existing Corona goes.

 

There is however also a "coming soon" Corona, that will be available in the Pro version:

Graphics

As I talked about last week, our bleeding-edge OpenGL-ES 2.0/shader-based graphics engine is in the works. You are going to be blown away with what you can do. I’ll talk about that more later but I did want to give you a teaser.

If you watch this week’s CoronaGeek episode, you’ll be able to see 5,000 fish running at 60 fps! It may be hard to tell from the video, but this is what I showed to a lucky few at GDC. I recommend watching the whole show, but if you’re pressed for time, you can skip to roughly the 35:00 mark.

Plugins

Second, there’s Project Gluon, a.k.a plugins. We’ve done a ton of plumbing work so that you’ll be able to do integrate 3rd party services and functionality into your app, and do so painlessly from the comfort of the Corona Simulator.

Now there’s good news and bad news here. There are a lot of moving parts, so plugins didn’t quite make it to the public release — and yes, I’m disappointed too.

But the good news is that plugins are coming very soon! We’re getting ready to seed this to beta testers this month. We are actively building a library of plugins that will be hosted on our servers. We’re working with folks like Amazon to get you more monetization options. We are acutely aware that this is a big issue for a lot of you.

Device Access

Lastly (for now), we have found a way for you to access certain Java and Objective-C APIs from Lua! On the Android side, we already have the foundation there thanks to Enterprise, and we’re looking at how we can accelerate bringing those Enterprise innovations down to Pro developers. In parallel, we also have a proof-of-concept on the iOS side, so I’ll have more news once we’re past the research phase.

The pro version is going to have a 599$ a year price tag, but existing customers will be able to subscribe for 349$.

 

So, nutshell version is… the product we know today as Corona is now available for free, minus some web services.  Their is a new more powerful version coming soon, at it will be a paid only version with a price increase.

 

So basically, if you haven't used Corona, it's great news.  If you are an existing subscriber, not so much.

 

You can read the entire release here.

News


3. March 2013

 

After a 4 month pause, there has been a new Moai release.  They also removed sign up requirements to download the SDK ( which was misleading before, so nice move ) as well as added nightly builds for those that like to walk on the wild side.

 

The biggest new features are android keyboard support ( finally! ), better threading and off screen frame buffering.  The full changelog is below

 

tTerrainMask () to MOAIPathFinder; renamed setTerrainScale () to setTerrainWeight ()
* Some work has been done on threading. Check MOAIThread.
* added support for default texture; finished async load; samples for async texture load
  and default texture
* added support in MOAIDataBuffer to detect zip files, inflate on load; added inflate on load
  support to MOAIDataIOTask
* moai coding style guide in .doc format
* first phase of offscreen rendering architecture completed
* added setClearColor () to MOAILayer
* samples to test multiple viewports inside an offscreen buffer
* integrated sfmt random number generator
* Merged playnomi contribs to MOAIImage, MOAIImageTexture, MOAIParticleSystem and MOAIParticlePexPlugin

 


by Adam Villalobos ( https://github.com/adamvillalobos )
* Adding GCM support ( replacing C2DM ) to Android host.
* Adding file not found log if a texture file fails to load
* Fixing build errors for DataTaskIO
* Fixing issue with setting visibility not properly updating dependencies
* Fixing bug with Font reloading on Android
* Added Android keyboard support

 

by John Copic ( https://github.com/JohnCopic )
* Adding sfmt lib to android build.

 


by JoakimBlomberg ( https://github.com/JoakimBlomberg )
* Script node apply of attributes should unpack attribute id or it will not be applied

 

by Bogdan Tatarov ( https://github.com/btatarov )
* adding MOAIUnitzSound::_getFilename()

 


by mxttie ( https://github.com/mxttie )
* updated box2d physics sample adding mouse manipulation using mouse joint

 


by Tommo Zhou ( https://github.com/tommo )
* fix edge case that new-created-paused action cannot receive further update
* fix: MOAIImageTexture not override OnInvalidate

 


by Antonio ( https://github.com/antback )
* Initial Camera Support for iOS

 


by sporksmith ( https://github.com/sporksmith )
* Log file-open failures

 


by Clement Farabet ( https://github.com/clementfarabet )
* Fixed VSYNC issue for OSX host.
* Added missing files to iOS (XCode) project.

 


by Francisco Tufro ( https://github.com/franciscotufro )
* Several fixes in build systems for all platforms
* New release script in bin/distribute

 


by Stephen Belanger ( https://github.com/Qard )
* Recommended to enable this with C-Ares
http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTNOSIGNAL

 


by Ben Borowski ( https://github.com/typeoneerror )
* Adds call to FMOD update to iOS sample project.

 


by Robert Wahler ( https://github.com/robertwahler )
* GlutHost will run "main.lua" if host binary is called without arguments
* add Lua global 'arg' that mimics the lua/luajit built-in global 'arg' to GlutHost

 


by Alexey Zankevich ( https://github.com/Nepherhotep )
* MOAIJsonParser fix - checking if lua number is integer has been added
* Added EVENT_PAUSE, EVENT_RESUME events to MOAISim
* Fixed MOAIEnvironment.screenDpi nil issue for Android
* Fixed MOAIEnvironment.screenDpi nil issue for iOS host

 


by Seebs ( https://github.com/seebs )
* Clarify description of textbox color escapes, fixing one typo and reducing confusion
  between number of bits and number of values represented.
* build.sh: Terser output
* add (untested) support for controlling GL blend equations.

 


by ChairGraveyard ( https://github.com/ChairGraveyard )
* Add support for collideConnected flag to MOAIBox2DWorld::_addRopeJoint
by out-of-pixel ( https://github.com/out-of-pixel )
* Fixed last Key Error from MOAIAnimCurve

 


by superquadratic ( https://github.com/superquadratic )
* Fix Clang 4.2 (Xcode 4.6) Compiler Warnings

 

They also changed the file structure as follows:

bin/ Development binaries for Windows and MacOSX, Linux will be added soon
docs/ Documentation for this release and attribution images
hosts/ Source and IDE projects for the different platform's hosts
include/ Include headers
lib/ Compiled (static and/or dynamic) libraries for all the supported platforms
samples/ Moai SDK feature samples

 

Head on over to the Moai website to download.

News


25. January 2013

 

Rim have released Gameplay 1.6, a 3D cross platform library for writing games for Blackberry 10, Playbook, PC, Mac, Android and iOS devices using C++.  gameplayThis is a project we have been following here at GameFromScratch for quite a while, and given the complexity, its amazing just how fast you can get up to speed.

 

If C++ is your language of choice ( or LUA for that matter ), you really should check out Gameplay, it’s completely free and open source.

 

The following are the release notes of the 1.6 release:

  • Adds file Stream interface for reading/writing files instead of using fread/fwrite.
  • Adds Terrain class to support for heightmap based terrains featuring LOD, multiple surface layers, loading from PNG, RAW8/16, full transform, physics, patch culling and verticle skirt for cracks.
  • Adds object-space normal map generation to gameplay-encoder for terrain normal map generation.
  • Adds scene support for loading .terrain files in .scene files.
  • Adds scene support for inline cameras to .scene files.
  • Adds suppoft for defining .scene files without 'path' to gpb. New node can not be create in .scene file.
  • Adds static Scene::getScene(const char*) to query currently active scenes in a game, helpful for script access.
  • Adds support for multiple translate, rotate and scale commands in a single node entity within .scene files, processed in-order they are defined.
  • Adds scene support for material auto binding scene ambient color, light color and light direction.
  • Adds support for setting the depth compare function on materials.
  • Adds support for texture/sampler arrays being passed to materials.
  • Adds support for loading uncompressed DDS textures for the following formats: R8G8B8, A8R8G8B8, A8B8G8R8, X8R8G8B8, X8B8G8R8
  • Adds improvments to prefer higher quality mipmap generation.
  • Adds improved Gamepad API support for button enumeration, triggers and some mobile Gamepad support on BlackBerry.
  • Adds additional gameplay-tests for billboards, forms, gamepads and lights.
  • Adds support for launching the browser via launchURL(const char*).
  • Adds physics support for setLinearFactor and setAngularFactor on rigid bodies.
  • Adds methods to PhysicsCollisionObject to allow conversion to subclass types (i.e. PhysicsRigidBody, PhysicsCharacter, etc) from script.
  • Adds option for fullscreen without width/height config to use native desktop resolution.
  • Adds Linux support for OpenAL PulseAudio back-end.
  • Adds support for latest Bullet Physics 2.81 with NEON optimizations for mobile targets.
  • Adds support for preprocessor directive NO_LUA_BINDINGS in the gameplay project to omit inclusion of generated lua bindings in compilation for developer mode value.
  • Adds optimizations to Lua generator to only write generated files if they differ from existing files, reducing both build times and committing of unchanged script binding files.
  • Adds changes to Slider for setValueTextVisible, setValueTextAlignment, setValueTextPrecision and getters.
  • Adds Microsoft Windows 7 64-bit support.
  • Adds Apple iOS 6 support.
  • Fixes to external-deps to reduce the size of the libraries on Windows.
  • Fixes for Android to no longer need to copy files to the SD card before reading them. None of the Android samples require an SD card.
  • Fixes for animation of opacity on UI and fonts.
  • Fixes in UI for removing controls and also setVisible(bool).
  • Fixes for UI controls missing on MacOSX.
  • Fixes for setting UI alignment programmatically.
  • Fixes for lighting shaders.
  • Fixes to the texture minification mode from GL_LINEAR_MIPMAP_LINEAR to GL_NEAREST_MIPMAP_LINEAR for newly created textures with mipmaps.
  • Fixes minor memory leaks and possible access violations when calling Game::exit() from script.
  • Fixes physics debug drawing for large scenes causing the internal MeshBatch to grow to an enormous size.

 

This release certainly makes Gameplay on the desktop seem much more viable.  Terrain support is certainly a nice new addition as well.

 

Good job Gameplay team.

News Programming


AppGameKit Studio

See More Tutorials on DevGa.me!

Month List