Thursday, March 25, 2010

Day 16 - Switching Gears in Game Strategy with GameSalad & Project Crash Recovery

Well, little progress on getting my actor to shoot a basket with any random activity involved. I get him to make a basket, but every single time. I have all my colleagues reviewing the problem with no success. After my last posting, I did get a response directly to my email from Jonathan Samn, (CodeMonkey), Lead QA from the makers of GameSalad. You have to hand it to the guys at GameSalad for their customer service. They must scan the Net for anything referencing GameSalad and they came across my little blog. They have been very, very good with responding to questions on the forum or simply addressing a distress signal on some blog. Thanks GameSalad.


My last entry started off as an extremely annoyed diatribe discussing crashing issues and the lack to getting my actors to behave as instructed. Samn contacted me that same day with some possible tips. He also addressed the issue of recovery for crashed files. His response below:

1. Make a copy of that project file that has broken.

2. Right click or Option+Click the copy of the file and 'Show Package Contents'. This should show you the files and folders in your project.

3. Look in the scenes directory and see if your scenes are still there. (named #.xml) If they are still there, hope is not lost.

4. In your original project(or a second copy of it), open it up in GameSalad and add a number of scenes equal to the total number you saw in step #3 above.

5. Save that project and close it.

6. Now Right click or Option+Click the project to 'Show Package Contents' and navigate to the scenes folder.

7. Copy all the #.xml from the folder in step #3(first project copy), to the folder in step #6(original or second copy project), overwriting the files.

8. If need be, also do the above steps similarly for the actors folder.

9. If all works, you should now have your project back in a working state.

Unfortunately, my colleague began again his project using the same file name, so that nothing he had worked on could be recovered, but anyone else who reads this may be helped.

Before I write further about my experience with building the game, I think it's a good time to discuss my motivations FOR building a game. Why at my professional stage in life get involved with game building without any prior experience? There are many reasons.

Firstly, my son enjoys them very much and I'm fascinated by them. I want to share in the experience with my son and encourage him NOW to begin developing and designing games because I believe firmly that it is a good career choice. Many of these programs tout how easy it is to build games using their programs. I'm simply putting the idea to test. I believe I'm an excellent example of someone who lacks all knowledge of the process, and that if I can do it than anyone can.

Secondly, I have no illusions that I'll be a fantastic game developer, but I'm not doing this because I strive for that result. No doubt, I'll get better with more practice and I really enjoy it so it doesn't feel like work. No, it's because I'm building a team of people who do know what they are doing. I don't need to be the best; I need to hire the best. The only way I can assess the competency of the people I hire is to know what they are talking about, to be able to follow along and make educated decisions.

I use the example of a good film director. She will be a better director, if she has worked in every phase of production. If she has produced, edited, and shot film, she will be able to identify issues and integrate ideas accordingly to improve the outcome. This I do know firsthand.

Thirdly, it may come as a surprise that I have no intention of selling the game once we release it. This is not a for-profit product or project. Actually, its primary intent is as a marketing tool. The game is riddled with product placement signage. The game building is being used as a learning curve for my team and marketing tool for the university that I work for. It seems like a lot of work for that expected outcome, but a necessary one in my opinion.

When I finally had my fill of the issues of shooting a basket at varying degrees of release, I decided to experiment with a new tactic. Because I can't seem to get the basketball to randomly move based upon the timed release of the user, perhaps I can have the basket itself move.

The first thing I did was to change and eliminate all the rules, and behaviors and attributes of the basket actor. I cleaned its slate. I placed a simple "move" behavior and nothing happened. I played around with "accelerate", "move to" etc. Nothing. It occurred to me that I could remove the actor from the scene and create a new one. So I literally added a new actor, brought in the same image, renamed it, and dragged it to the scene. Then I went into the actor attributes and added the behavior and it worked immediately.

This is what I proposed happened. The original actor, even with everything set back to zero, somehow clung onto some of the properties of the behaviors it originally had. Yes, I did go into and check that it was movable and cleared any coordinates in the actor's attributes. It seemed if I wanted to work with an actor I needed an entirely new one from which to make something happen.

This goes back to an earlier complaint about the way that behaviors, attributes, and/or rules don't work the same way consistently or as expected. It's arbitrary and inconsistent. I can't be absolutely sure about this because I didn't take the time to do it over and over again. It's not like the crashing issue that remains a constant problem or having an actor spawns itself repetitively and crashing the system, but there is something definitely there.

By the end of the day I was getting tired. I decided to change tactics and rather than having the actor hit a non-moving basket I decided I might be able to create game play by moving the basket back-and-forth.

Yes, it's not quite the same, but desperate times require desperate measure. I knew this had to be easy enough and I thought I remembered the tutorial somewhere. I spent some time looking, but caved in and went to the forum for answers. Immediately, CodeMonkey (a.k.a. Samn) answered with the link to the very tutorial.


“How to Make an Actor Pace Back and Forth?”  http://gamesalad.com/wiki/how_tos:gsc_pacing


I’ll come full circle and end with, “Strong customer service.”

Tuesday, March 16, 2010

Day 15 - GameSalad trials and tribulations

Where to start? Immediately after my last posting, within minutes, a team mate's level he'd been working on crashed. What's worse was that upon re-opening the project there was nothing, I mean nothing, left of the project. It had been completely erased. And yes, he had been saving his project. Not a scratch of the file was left. It was a completely white screen.

I experienced something less serious a couple days earlier. When the program crashed on me and I went to re-open the project it opened to an earlier stage and I lost a day’s worth of work. Beta!

Here's the first bit of advice for this entry, save, but more than save, save different versions so that you can recover something even if it's a few steps back from where you were.

I did download and play with the VML iDevices app from iTunes. I'm excited to have that handy tool with regards to determining X & Y coordinates on my screen. Kudos to VML, out of the UK, for creating this handy device.

I also came across an app called PositionApp that helps to chart an app's popularity and reveal new apps that join the iTunes app store. It looks at all genres. "PositionApp is the world's most in-depth, intuitive app discovery and performance tracking tool available today...it offers instant remote access to all chart positions of the top 300 apps." It looks like a pretty cool app.

Both apps are free and found at iTunes app store.

As for my own issues with GameSalad, I have yet to solve my spawning issue. By every account, my actor should be able to spawn another actor, but alas no. I've thought of all the time I've worked on this and I feel that I've lost some of the advantage I thought I gained in working with GameSalad to that of learning Xcode. I've spent a ridiculous amount of time on this one issue. But, I want to solve this issue. I chalk up my difficulties to my lack of experience, regardless of the quirkiness of the program itself.

Mind you, I've yet to create the mirrored levels I need, by positioning the actor in different places on the screen and performing the same actions. I've yet to discover how to have my actor launch itself to a designated area of the screen, have that area receive an action and change the HUD (heads-up display). All this stands in front of me, while I lose time on the action of spawning.

The cannon ball template most closely resembles my game (a little bit), but I'm having a miserable time reverse engineering it to figure out how it works. I don't need a camera following my actor or particles, so I think there are less detailed things about my game. I return to the grind.

This entry is brief because not much has changed. I trudge on with my building.

Wednesday, March 10, 2010

Day 14 - GameSalad struggles, frustrations and let downs; Unity 3D overview

(To start with, I must say that when I started this blog it was to journal my experience with building an iPhone app. I thought I would write on most days, not dissimilar to "Julie & Julia", but that hasn't proven effective. I'm not cooking daily recipes. I'm building a game where the progress is slow and the learning curve sharp, very sharp. So as this entry states “Day 14” it is not accurate. I’ve been at this many more days then 14 of them. I now use the "Day" reference as a marker to address the number of entries. However, I do at times place entries that are a re-posting of other people's articles that I think are important and or related to this project. Those entries aren't numbered, which helps to identify them separately from the journal entries.)


As I write this I have fully embraced and embarked upon actually building my app with graphics (PNG) and game play within GameSalad. I have formed an opinion about this program.

GameSalad has some weaknesses. Firstly, I can guarantee you are going to crash the program if you have an actor spawn itself. That is a repeatable error that happens consistently. However, more damning are the non-repeatable errors that crop up randomly. For instance, I might employ a rule, behavior and attribute and copy the line-up, but for some reason not be able to recreate the same action. I don't know why. In fact, not knowing how things work together is immensely frustrating.

GameSalad is a beta and acts very much like one. I find it unstable with aberrant behavior that isn't repeated consistently. It reminds me of the horrible days, some 10 years ago, when I inadvertently became a beta tester for Incite non-linear editing program. I was driven mad at times because the system would just crash or behave randomly in some unexpected way.

Presently, I'm having extreme difficulty spawning an actor based upon another actor's behavior in the scene. For instance, if Actor one throws a ball then Actor 2 (the ball) must be spawned at the point of release and do something that I want it to do. Well, it's certainly easier said than done. First, I must figure my X & Y coordinates at the point of release from Actor 1 on the screen. The question I had was, HOW? How do I know where those coordinates are on my 480 by 320 screen? Here is where the good news comes in.

Game Salad lacks some things, but one of its strong areas is the Forums on its site. I found the response rate for answers extremely fast, helpful and user friendly. My thanks go out to firemaplegames, Mike Quinn, and scitunes. The GameSalad members were helpful and sweet with their advice to my questions. Mike Quinn suggested that I download a free iDevice from iTunes onto my iTouch called VML, an awesome app by vmlweb built on GameSalad.  http://vmlweb.co.uk/page.php? It will help me to isolate the coordinates of my X and Y.

There is a video on this link that shows you how easy it is to use the app when determining anywhere on the screen a point is and it works for the accelerometer as well.
Firemaplegames suggested that I watch the tutorial http://gamesalad.com/wiki/tutorials:video_tutorials  addressing the spawning issue. I received both pieces of advice within minutes of posting. That is an excellent response time.

GameSalad has some issues, no doubt, but let's not forget why I opted for this route. When I began this journey I was learning XCode and reading the HIG and combing through copious material before even beginning to design my game. That was consuming enormous amounts of time and proving daunting for someone who has never coded or programmed anything.

GameSalad is very much a cut and paste program that requires some math, but not coding. It expedites the learning curve and allows the user to jump right in and begin building. Cheers to them for that. I would recommend saving, saving and saving some more when working with the program because it is notorious for crashing. Also, as intuitive as it is, it does lack in areas. It requires playing around and reading, watching and asking for advice when dealing with issues. And be prepared that it will behave strangely for no apparent reason. Non-repeatable errors happen. It is a beta.

In my constant quest to find programs that build apps without programming knowledge, I have stumbled across numerous programs. In an earlier post, I posted an article that listed 13 app building tools that make building apps and games easier. I also came across Unity http://unity3d.com/  "Unity is a multiplatform game development tool, designed from the start to ease creation. A fully integrated professional application, Unity just happens to contain the most powerful engine this side of a million dollars." This is an exciting game builder program for sure.

In the Unity 2009 Conference keynote address http://download.unity3d.com/support/resources/files/Unite09_Keynote.mov , David Helgason, CEO and co-founder of Unity, stated that Unity Indie would no longer be available, but that "Unity" would replace the Indie version and be free to users. In fact, Unity is open source and doesn't require a license fee to post games on the web.
There are two more versions of Unity that do require fees; Unity Pro and Unity iPhone Pro both cost $1,200. More importantly, EA, Lego, Disney and Cartoon Network all work with Unity Pro, so it has some pretty heavy hitters using its program.

An additional advantage for using Unity, it has good video tutorials for the program for free. There are 7 hours of tutorials found at http://www.learnmesilly.com/ produced by Will Goldstone. He also authored the book on using Unity called "Unity Game Development Essentials". (I've ordered this.) Unity has a lot of positives. It is open source, has strong tutorials, has a manual for purchase, provides strong support and creates 3D worlds.

I will continue to work with GameSalad for the completion of this first game, but I have every intention of exploring and hopefully creating in Unity. I haven't worked with it yet, so I'm not absolutely sure how much coding is necessary. In an older article (referencing Unity Indie) they state, "First of all, it is possible to buy a source code license for Unity (contact us for details), but the vast majority of games don’t need it (code) and can be made using vanilla Unity Indie or Unity Pro." That's pretty exciting.

Monday, March 1, 2010

13 Tools for Building Your Own iPhone App

Written by Sarah Perez / November 3, 2009 7:48 AM / 54 Comments « Prior Post Next Post »

These days, everyone wants to build their own iPhone applications, but not everyone knows how write the code necessary in order to create them. Fortunately, there are now a number of tools that allow non-developers the ability to create their own iPhone apps without knowing programming or scripting. Some are general-purpose app builders designed for small businesses while other target specific needs, like apps for musicians or for eBook authors. Still others let developers familiar with simpler programming languages like HTML write apps using the code they know and then will transform that code into an iPhone application which can be submitted to the iTunes Store.

Below we've listed 13 different tools that let you create your own iPhone applications, none of which require knowledge of Objective C, the programming language used to build apps for the iPhone OS .

1. Sweb Apps
What it Does: Sweb Apps offers an online service which lets anyone build their own iPhone apps even if they don't know how to code. Designed with small business owners in mind, the company offers pre-created templates which you can customize with different background images and your own custom icons if desired. Otherwise, you're welcome to use the graphics provided by the company's own image library. After picking the category for your app (Restaurant, Retail, Business, etc.), you choose the buttons you want to include (Menu, Directions, Map, etc.). You can even create a mobile storefront where Sweb Apps manages your inventory.

Continue article at
http://www.readwriteweb.com/archives/13_tools_for_building_your_own_iphone_app.php