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.

3 comments:

  1. I believe the "source code" for Unity mentioned at the end is for the application code. One would license this if one needed to build custom tools, for instance, to provide functionality not present or to customize one's development pipeline.

    When the company says most games do not need this code, they mean that the off-the-shelf Unity software has a sufficiently robust feature set to provide any functionality most games need. Actually making games with Unity does require coding in the form of scripting languages, such as Python/Boo or Javascript. These are typically easier to learn than say, Objective C or Java, but they still pose a significant learning curve for someone coming to them with little or no programming knowledge.

    Unity is the best tool for making 3D iPhone games, hands-down. The community is fantastic and there is a wealth of resources for learning the software. Unity's complexity and difficulty level is significantly greater than GameSalad, however.

    ReplyDelete
  2. Thanks Big Squirrel, that clears up a lot. I received my book on Unity last night and read the intro and first chapter.

    I did find out that some coding was necessary and I guess I'm back on that learning curve. Yes, I plan to learn Java for that. I was beginning to like Objective C and I will probably continue my slow education in both.

    Yes, I was so pleased to discover Unity during this journey of mine. Any suggestions and help from you along the way is greatly appreciated. Thanks for responding to my blog with the information. :)

    ReplyDelete
  3. Here at PreviewLabs, a company specialized in rapid game prototyping, we've been using Unity3D for a while now.

    As we want to stay constantly aware of other technologies that may be interesting to use for rapid prototyping, we had a look at GameSalad.

    Our finding was that it seems to be too complicated to implement just any game, and that it would either require a lot of research or changing your game concept to be able to implement it...

    Feel free to read the full article here.

    ReplyDelete