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

Friday, February 26, 2010

Day 13-Tossing GameSalad around as an app patch over Objective C

This blog was started because of my desire to document my attemtps to build an iPhone app. Initially, I struggled with Objective C and all the coding it requires. And although I have learned about it and I did scratch the surface, I have recently gotten off track because I have discovered GameSalad.

"GameSalad is the world’s most advanced game creation tool for non-programmers. With GameSalad, game makers of all levels can bring their ideas to life without programming a single line of code. Build games visually using a drag-and-drop interface along with a robust behavior system. Publish your games quickly and easy to the iPhone, iPod Touch, Mac Desktop, and the Web."

http://www.gamesalad.com/ It's a 2D graphic game builder.

There are quite a few video and written tutorials listed under the Support tab in GameSalad to help beginners. It seems pretty easy to use, but I have to qualify that statement. It is easy to use relative to Objective C.

Presently, I am reverse engineering a basic app from Crayon Physics called "Cannonball". It's one of the templeates that opens up under the new project window. But as easy as it is, I am having difficulty with the behaviors and attributes section learning how to create new rules for my actors within the game I'm building. In my opinion, I believe there could be better videos done for this program.

There are two videos found on YouTube for building a simple space ship war game app, it comes in two parts called "GameSalad Create a Game From Scratch Part 1" http://www.youtube.com/watch?v=P-0-mZqMUbY&feature=related and "GameSalad Create a Game From Scratch Part 2" http://www.youtube.com/watch?v=fWET2sLvwb4&feature=related Both are pretty good. In fact, YouTube carries videos of GameSalad development that aren't found at GameSalad.com

These tutorials are a great place to start, but I'm still finding it difficult understanding how rules can be created and placed upon my actors. But just like Objective C, you will want to build all your graphics as PNGs in photoshop.

Also, to publish your app from GameSalad, you will have to pay $99. This IS NOT the amount you then have to pay Apple to release your app to iTunes. That is an additional $99. What is crazy about GameSalad is the two price offerings. For $99, you can get your one year liscense and publish your games using the GameSalad program, but for nearly $2,000 ($1,999) you can pay for unlimited customer service help for developing your game. That's a huge jump and it strikes me as strange because of the enormous price difference. It might also explain why there is such a limited number of videos and tutorials available on GameSalad. I believe the company hopes to make money on offering customer service help. When I last checked there was NO book available on Amazon dealing with GameSalad.

I will say that I am keeping my eyes and ears open for other free game building programs. A new program due out this spring is Atmosphir.http://atmosphir.com/ It builds for both PC and Macs and it's a 3D animation game builder that doesn't require coding knowledge. I had to sign up to be a beta tester with the site. I have been recieving emails with questions like, "How I would like to see a blast gun work and what would it look like." Clearly, Atmosphir wants user feedback and will incoproate suggestions into its gaming program. It looks awesome and I can't wait to see it when it's released.

One last thing, I recently investigated Nintendo's gaming institue called DigiPen. They offer online programs over the summer in two areas: animation for beginners and game design for beginners. The workshop sessions are held for two weeks for 2 1/2 hours each day. I ordered the material at https://www.digipen.edu/

I am really excited about this workshop possiblity for the summer. I like the "beginner" without prior coding experience approach. The fact that it is only a couple of weeks and online equally compel me to want to register. However, there are some fairly strict non-refundable policies regarding registering. So, read the information carefully.

All-in-all, once I became more involved in the gaming area I have learned about so many opportunities. I recently came across some fascinating information. "Gaming: Not just for kids anymore. I think the very fact that the largest player base of passive online games is women flies in the face of the typical view that games are for kids. According to Nielsen Entertainment in August 2009, of the 117 million active gamers in the U.S., 56 percent play games online and 64 percent of those online gamers are female. And the revenues generated from online games is enormous and growing. Do not underestimate the power of games and gaming — and not just the marketing and revenue opportunities, but also the learning opportunities as well in the form of fun quizzes and polls. Have you used gaming yet in a social media marketing campaign?" (8 Significant Developments in Social Media You Should Watch by Aliza Sherman)

It would appear that I'm just riding the wave.

Friday, February 12, 2010

Day 12 - What format should video be in for the iPhone

This week I spent a good deal of time reading the Cocoa Fundamental guide and Objective-C. The opening lines says "readers should be proficient C programmers and should be familiar with the capabilities and technologies of each platform." This is a problem because I don't know any programming language thoroughly and I have only scratched the surface of Objective-C.

I do understand the tiered diagrams that explain the differences between Mac OS X and iPhone OS. It is obvious that some support code is not necessary for the iPhone such as printing capabilities, multitasking etc.

What I found curious was that Quicktime is not a component of the iPhone as a core service, but it is for the Mac. Also, Flash can’t played in iPhone, but .mov files (Quicktime) can be, so I’m confused. Perhaps, it comes down to compression. It's an area I feel less familiar with and I have some design questions about.

I was surprised to see a utility called Shark, which is used for memory allocation or memory mapping. I didn't know about this application, but it appears similar to the task manager in Windows.

At this point, I am still reading the Cocoa Fundamentals Guide, I am in the section dealing with Foundation Classes. I did pick up the Human Interface Guidelines, or what is lovingly called the HIG. Most of it was actually intuitive. Lots of the content reinforced things such as simplicity, and attractiveness.

What I found very interesting was the description of "Web-only content, including web applications, which are websites that behave like built-in iPhone applications and Web pages that provide a focused solution to a task and conform to certain display guidelines are known as web applications, because they behave similarly to the built-in iPhone OS applications. A web application, like all web-only content, runs in Safari on iPhone; users do not install it on their devices, instead they go to the web application’s URL."

I haven’t determined that a website has to be structured or designed specifically to fit within the iPhone. This doesn’t make sense, since the web browser in iPhone will allow users to go to any website in their search and access that website. The website may work, but the video may not because of the format it is in on the website. This issue is of some concern and I’m researching it as I write this.

Thursday, February 11, 2010

Day 11 - iPad SDK download, Cocoa for Dummies, and Android SDK in Java

As of last night, I downloaded (still installing) the new SDK beta for iPad. I figure I should have the latest version. Apple seems insistent on using the iPad title, and it will likely have adopters for the device.

I continue to read and work through tutorials in the books I've purchased. I made the mistake of buying used the 2003 version of “Cocoa Programming for Dummies”. I find the book obsolete because the pictures in the book don't match the current software interface. You can't follow along. It's best NOT to work with earlier versions of books dealing with software because of the mismatch that occurs due to the rapid change in the software. This was a significant reason why I decided to go ahead and install the iPad SDK software because it is the latest version and I want to work with relevant, current materials.

As I have been spending significant time learning the facets of iPhone SDK 3.1.3, I began to have my doubts about developing for the iPhone over that of the Android.

Android is a newly released phone by Google. I'm a huge fan of both, Google and Apple. My loyalties reside with both. However, the advantage Android has over that of the iPhone for developers is the Android has far, far less apps built for it than the iPhone, which is oversaturated with a jumbled mess of apps, especially in the entertainment section.

Strategically, going into a market with little to no competition is a safe bet. You would stand out, receive more hits, have less competition, be found more easily and hit the ground floor in the newly evolving environment before others, which would give the app more prestige. So, why don't I just switch from iPhone SDK (C++ & Objective-C based) to the Android SDK (HTML & Java based)? It’s not as if I have more experience in one over the other.

First and foremost, the programming language is not the same. Android is build with Java and requires prior knowledge in HTML. Though, I'm new to programming and I have no other language knowledge, I have spent weeks and some coin on books for C++, Objective C, and Coca programming. "By Jove, I believe I'm getting it." It feels a little late turning back.

iPhone and iPad apps can only be made on Macs using the Xcode SDK. To switch now would feel like giving up. By the time I would have mastered Java and built a releasable app for the Android, there may be a significant number of apps already on the market for Android. Ultimately, I'm committed to doing this app build for iPhone and iPad. There will of course be areas of doubt, but staying the path seems reasonable. I could continue to switch over and over again as new versions of things are released, but that feels like ADD (attention deficit disorder).

The Apple SDK does permit a developer to create computer games for Macs working with the Mac OS X.6. There are by far fewer games for Mac computers than PC. So, there’s hope of entering an emerging market within Mac.

Read SDK Shoot Out Android vs iPhone http://www.infoworld.com/d/developer-world/sdk-shoot-out-android-vs-iphone-074

On another note, I have discovered there is an order in which to read the SDK documentation. I suggest reading the HIG (Human Interface Guidelines) first. I didn't find much information on games creation in the HIG, but it still proves informative. Remember, the HIG does set the standards that Apple will judge and review your app. Then I would read "Cocoa Fundamentals" before reading "iPhone Programming Guidelines".

I do find the "Objective-C for Dummies" book extremely useful in breaking down the code terminology, explaining the interworking of the code. I’m actually reading the “Dummies” series over the Apple Dev Center documents because the “Dummies” books are easier on the eyes and friendlier writing. They should be they’re written for beginners.