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.

Friday, February 5, 2010

Day 10 - What I know about my app

After finishing the Lynda.com tutorials, I have returned to the Stanford podcast on SDK. It provides interesting stuff on memory allocation and management and it reinforced what Simon stressed in the Lynda.com tutorials about memory issues. However, the two tutorials don’t use the same templates. The Stanford people use the Windows-based template, while Simon uses the View Based template. Simon deliberately sidesteps the Game-based template, which is the one that I need.

That leads me to the focus of today’s blog entry; describing what I know about my app. Apple identifies three different application formats that all apps fall under; productivity, utility, and immersive. It’s important that you identify the type of app that you are building from the beginning stage.

For me, I am building an immersive app. It will only be an iPhone app and not a web based or a hybrid of iPhone app with web based content. My target audience is health conscious and seeks health related information. I’ll have some features like customizable scenarios, music choices, and text prompts within the app.

I will be incorporating the accelerometer for my app, which I believe adds additional complexity. Furthermore, I plan to bring the user into a virtual world, which means I will need to create a world outside the immediate space they manipulate. I need to create the horizon.

I think of this similar to the sound stage of “The Wizard of Oz”, where the stage was the real space the actors performed on, but the backdrop set created the illusion of Z space out to the horizon where the City of Oz was located, but it was just a wall. This principle seems most fitting for how I envision my app and its design. But that’s just it, I don’t know how to work with the Game-based template, accelerometer, or the inter-workings of the graphics.

The process of building an app isn’t restricted to the learning curve of coding using C++, Objective C and Cocoa. It also deals with the graphic construction and Flash animation. But most importantly, building an app is about problem solving. How do you build what you can see in your mind’s eye? I can see it perfectly, but how do I get there?

Furthermore, I have to decide how the program saves when the users cuts out instantly. I want my app to automatically save where the user left off and not reset itself. A consolidation of some of the things discussed so far can be found in the tips from Apple.

“As you design the flow of your application and its user interface, follow these guidelines to build in simplicity and ease of use:

• Make it obvious how to use your application.
• Concentrate frequently used, high-level information near the top of screen.
• Minimize text input. (typing)
• Express essential information succinctly.
• Provide a fingertip-size target area for all tappable elements.” – Apple Human interface Guildelines

Thursday, February 4, 2010

Day 9 - The Human Interface Guidelines a must read

I finally finished the Lynda.com iPhone Development Application tutorials. What can I say; I need to go through them again. Sigh. :( There is simply too much information to understand on the first run. Mind you, I often had to stop and restart a section more than once to stay focused during the first time through.

In section 13, I found the answer I was looking for regarding the guidelines. Apple's Human Interface Guidelines document found in the Apple developer center ARE the specifications for building the application. This 136 page document is an absolute MUST READ and it will guide developers on what Apple will expect and except when reviewing an app for the app store. It's recommended that the guidelines be read in their entirety. Quick glances through it are not recommended.

Furthermore, another very important document that needs to be read is the iPhone Application Programming Guide, also found in the Apple Developer center at http//:developer.apple.com/iphone/library/navigation/Guides.html

Such specifics, as creating an interface app icon that MUST represent the app and match the 512 X 512 pixel app icon and its description that is sent to apple upon your release, are described here. Other specifications such as 57 X 57 pixel icon for the app, or that the iPhone only allocates 128MB for apps, which is shared with the iPhone OS! And such information as the size of screen real estate at 320 X 480 pixels, which is actually 320 X 460 because the status bar eats up 20 pixels, is all provided in the guidelines.

Memory is a critical aspect and issue when building an app. Objective C is centered on the allocation, initiation, and release codes that efficiently handle memory. Everything you have your app do will be centered on the memory it uses to do it.

Now, I must take the time to read all the way through both sets of guidelines and I'm still watching the Stanford iPhone Development course found on iTunes for free. I project that all of this initial research will be largely done by the end of this month.