07 June 2012
A Corona SDK Developer Interview with iNSERT.CODE’s Adam Smith
Recently I came across a great bit of Corona SDK sample code written by Adam Smith at iNSERT.CODE that really intrigued me. The code simulates the buoyancy of objects in water and it’s very well written and extremely well commented. The code is a great example of how much you can accomplish with a relatively small amount of code using the Corona SDK. Even if you don’t need to include this feature in your project it’s worth exploring.
So, I decided to reach out to the Adam to see if he would answer a few questions about his background and how he came to develop the buoyancy code. Fortunately he was gracious enough to take the time to answer all my questions in an email interview, which is provided below. Take a few moments to read through the interview, it’s an excellent read and well worth the time. And if you haven’t already, be sure to visit the iNSERT.CODE website to get the project code.
Here’s the Interview with iNSERT.CODE’s Adam Smith
Do you have a background in computers?
I’m 29 now, and I’ve always been heavily into computers, video games and technology in general, but unfortunately, just not professionally – only as a hobbyist.
What is your day job?
Day to day, I currently run a property maintenance firm that I established with my father some years ago. I’ve always played around with bits of web site design and other technical projects here and there, and people I know tell me I should ‘do something in computers’ – they have done for some time. That’s not to say I’m too lazy to do it – far from it – I have a busy life, a good job, a (very patient) wife, two small children and not enough hours in every day.
Do you consider yourself a programmer?
That’s an interesting (and exciting) question to me. Several months ago I would have answered with a resounding ‘no’. Today, as I sit in my office creating an app that should be ready for release quite soon, I can generally code around any problems I face and/or features that I desire. Does that make me a programmer? Many programmers with x amount of years experience I’m sure would say it does not, but it my mind I like to think that it does, or at least that I’m getting close. Sure, I can’t do everything that years of experience brings, but I can conceptualise a game or app and make it into a finished article.
How long have you been using the Corona SDK?
I’ve been using the Corona SDK in my (very limited) spare time for around 8 months. Corona SDK has not only been my introduction to app creation, but to programming in general. At that point, other than a bit of standard HTML, I knew nothing about computer programming. If you were to ask me what a for loop was I would have stared blankly back at you.
How did you hear about Corona?
After playing around with another app creation product (GameSalad) and making a platform type game on and off for about two weeks, I found that even after I stripped almost everything that made the game good, that the performance on the device was poor.
On Gamesalad’s positive side, it taught me how to deal with game logic in some way – something I had no prior experience with. Many people on the GameSalad forum spoke of Corona SDK, and many of them were jumping ship. Being free to download and try, and being an actual introduction into programming, I thought ‘Why Not?’.
Do you think non-developers can learn to create apps using the Corona SDK?
They absolutely can, and I would advise anyone thinking about trying it to jump in and do it. As I have already mentioned, when I first started playing around with Corona SDK, myPreviousExperience = nil. Sorry.
Do you use any other SDKs?
Not actively at the moment, although I am very serious and dedicated to building a career in app/game/software design. I’ve looked into other 2D SDKs using Lua and other languages (I’ve been learning Java in my even more limited spare spare time). Whilst experimenting with 3D, I also downloaded Unity 3D and read and watched some online tutorials on it’s use and C#. Oh, I also have Codea installed on my iPad and there are some very interesting things being made with it – all directly programmed on the iPad itself. Corona SDK is my tool of choice for actual development though.
What inspired you to create a bouyancy script?
The water buoyancy script that I produced was born out of necessity for a game mechanic that I had dreamt up in my head. With very little programming experience under my belt (only about 6 weeks at that point), I turned to the Corona SDK Forums, Google and YouTube to try and find some previous implementation, or code that I could use, dissect and learn from – just as I had with other such things. My search for such a thing in Corona SDK drew some interesting implementations on various platforms (Flash and Java), but I couldn’t find anything related to Corona SDK or Lua. Porting from another scripting language, whilst trying to learn the target scripting language was unfortunately beyond my scope at that point. So, I decided to have a go at creating the buoyancy myself. After all, this best way to learn is by diving in (no pun intended) and doing it yourself.
Where did you find the information to build your bouyancy script?
The maths behind the buoyancy, although it may not be perfect, is based on this mathematical/physical principle, ‘Any floating object displaces its own weight of fluid.’ Archimedes in 212 B.C.
What tools do you use for developing apps?
I use some wonderful 3rd Party products for development in Corona SDK. Namely, Corona Project Manager, Particle Candy, and Corona Profiler. I would whole-heartedly state that all those mentioned are worth their weight in gold for anyone using Corona SDK.
What are your plans for iNSERT.CODE?
The water buoyancy script was created for a game that is still in the pipeline, although not my main focus at present (maybe I am becoming a programmer after all). My main focus, is to complete a series of children’s educational apps and get them out there onto the market. I’m trying hard to make the series ‘brand-able’, which I think is important. The first of them, is nearing completion and the mechanics have been coded so that they can easily be employed by the other similar apps within that series that I’m creating. Therefore, the other apps should not be too far behind this first one. Unfortunately, other than that, I have no specific information or promo videos that I can link you too just yet, but as an exclusive teaser, here’s one of the main characters revealed for the first time:
Aside from my commercial endeavours, I like to update my web site with tutorials geared towards indie developers, whether it be from the art or coding perspective. With the limited free time I have at present, I don’t get to this as much as I’d like though. I enjoy, and firmly believe that it’s important that I share what I know and what I’ve learnt with others as if it wasn’t for similar free sources of information, I wouldn’t have had the opportunity to learn what I have in the first place.
Do you have any upcoming tutorials in the works?
I have been planning a few new tutorials on the art side of development based around character design, and also around creating isometric game art. On the coding side of things, I was thinking about creating tile maps using the isometric artwork as the two really go hand in hand. I’m always open to suggestions though, so if anyone wants to get in touch with ideas for tutorials that they’d like to see, then the more the better.
How can people keep up with what you’re doing? (blog, Facebook, etc)
That’s the end of the interview. Thank you Adam for taking the time to share your story and your code with the Corona SDK community. If you have specific questions about how the buoyancy code works or you’d like to talk with Adam about a project, be sure to contact him directly through his blog or Facebook page.