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.”

No comments:

Post a Comment