OMG Entry: Retrovirus Testing

Hi. I'm new to these forms but am participating in the OMG Cup contest. I believe this program should run on osx 10.4.2 with the default settings, but I have no way to tell for sure since this computer has all the proper libraries installed that I may have inadvertantly left a dependency to.

One thing that needs instruction: Some maps allow you to rotate the level by holding the right mouse button and moving the mouse. Its supposed to be completely intuitive but the tutorial that explains this point isn't done yet (aka hasn't been started). If you have a one button mouse you'll have to hold the control button and click to provide the control.

If you could please give:
Your OSX version
Proccessor (click the apple and go to 'about this mac')
Memory (on the same window as Proccessor)
GFX Card (if not standard)
FPS at the main gui screen
Lowest FPS obtained during the first level
Highest FPS obtained during the first level
Median FPS obtained during the first level
(Median being the most common number seen)
Anything else you find important or would like to mention

Thanks in advance for testing it. In the (hopefully ) off chance that the program crashes, if you could please describe what you were doing when the crash occured and provide the files log.txt and errors.txt that should be created in the working directory.

The program will also create a file named 'settings' in the working directory. You can modify this file by hand in a simple text editor to change various settings (like turn off particle effects if it runs too slow) or use the internal gui the change the common settings. If you do change the settings around, please mention this next to your FPS results.

it crashes with a huge stacktrace. Well, more like it freezes, then when I force quit it it crashes. It doesn't even bring up a window: it brings the icon up on the dock (without an arrow under it), and it just sits there.

Quote:Anywho, other than appearing on my desktop as a Unix executable, it seems to run fine.

Hm, I would ask you how to make it more proffessional looking (the icon and such) but you'll probably just say use XCode.

Bachus Wrote:Command-Q doesn't quit.

Ah right thanks for reminding me. Its on my Todo list.

Bachus Wrote:The rotating instead of ricocheting is interesting, but not at all intuitive. Not sure if it's an improvement over traditional Bust-a-Move.

Theres a tutorial planned to help explain it. Hopefully when powerups are in you'll consider it an improvement

Bachus Wrote:I definitely don't like the ball respawning. In fact, I down right hate it. Especially when a ball spawns right where I'm aiming at during flight.

Sorry to hear this. Hm, what if while the ball was in flight nothing would be allowed to spawn?

Bachus Wrote:There's no indicator of which color is coming up next. Plus the spawning glow obscures the ball color for half a second which slows you down. Which is more time for those damn balls to respawn.

The indicator is planned for the final release, as is a method to swap the next ball and the current ball so you have a choice to fire with and its not entirely ranom. The obscuration of the balls could be a problem I suppose. I think its more a matter of taste as it does add a little more challenge to the game. But if its frustraiting that definetely doesn't fit with the Casual Gaming market and we should consider changing it somehow.

Thanks for all the tips.

akb825 Wrote:it crashes with a huge stacktrace. Well, more like it freezes, then when I force quit it it crashes. It doesn't even bring up a window: it brings the icon up on the dock (without an arrow under it), and it just sits there.

Mm, thanks for the report. Your dual proccessor set up makes me want to blame that but it looks more like the function osx_event_handler is calling itself when it shouldn't be. This will definetely have to be fixed before the release.

By the way, does this happen every time or randomly? Do you do something to cause the crash? How far does the game get (do you get a LOADING screen? the main menu screen?)

It didn't do a single thing, and it did it every time. Weird thing is, today I tried it again just now for kicks, and it worked. Weird. Then it stopped working again. I re-downloaded in case you fixed the bugs above, but that's when it died. Beforehand, though, the explosions of balls showed up as untextured quads.

The easiest way to make it into a package is to use XCode. Believe me, it isn't painful to use. Even if you're stubborn and don't want to use XCode, it's still rather quick. Just make a new Cocoa application, remove the NIB file, dump all your files in, and build. Boom, there's your package. You can also set an icon through the target's get info screen.

Quote:the aiming feels kinda gooey, like the balls aren't going where I expect them to. Also, since there is no ricochet, it's really easy to get stuck and just not be able to do anything.

If you hold the right mouse button you can rotate the arena by moving the mouse. If you have a one button mouse you can simulate a right mouse button click by holding control on your keyboard while clicking.

This isn't very intutive I know . Eventually theres going to be a tutorial explaining everything.

Quote:It worked again after a restart. However, after 2 more launches it stopped working. Anybody else having this happen to them when they start it up enough?

The problem has to do with mutexes and recursion. Its probably just happening randomly. It might be happening only to you cause your computers so fast. I have a grasp of what the problem is (thanks to the backtrace you provided) so I'll get this fixed asap.

Quote:Just out of curiosity, why are you so against XCode?

It takes time to learn how to use an IDE. I tried to just open it up and guess its usage but gave up after a few hours. I decided that using the makefile I already had set up for windows and unix would be much less work, which it was.

I'm sure XCode's very nice, its just that I've already done what I would need it to do for me ages ago, in my makefile. I just needed to make a small change to the linking command.

DDustin Wrote:The problem has to do with mutexes and recursion. Its probably just happening randomly. It might be happening only to you cause your computers so fast. I have a grasp of what the problem is (thanks to the backtrace you provided) so I'll get this fixed asap.

Wow, that's the second problem I've had because of my computer being too fast. First time was when I made my fractal drawing program, it didn't like my loops to wait for information from the other processes I spawned. I ended up just having to sleep for a quarter of a second each time. Otherwise, it would mess up some of the time when compiled in debug mode, all the time in release mode.

If you send me the code when you finish and an image you want as an icon, I can compile it as a bundle for you. Tomorrow, I'll be available around 11-2, 3-6, and after 9. (pacific) If you tell me specifically where your code is for opening the files (or if they're obvious enough, I can find them myself), I can also make it so it truly puts the log and setting files in the current directory rather then always your home directory. (in OS X, if you open an app, it doesn't automatically change the current working directory to the directory you launch the app from) I suggest that if you continue with Mac programming after this, you do learn how to use XCode. It has quite a few nice features that both help you code as well as make your application more user friendly.

I also noticed that your log file says I have a little endian machine, but PPC processors are big endian. Either you mixed up the terminology, or your messed up your checker, but I'm guessing it's the former since your images and music work correctly. It doesn't really pose an issue now, but it might pose some trouble in future projects if you mix the two up.

akb825 Wrote:I also noticed that your log file says I have a little endian machine, but PPC processors are big endian. Either you mixed up the terminology, or your messed up your checker, but I'm guessing it's the former since your images and music work correctly. It doesn't really pose an issue now, but it might pose some trouble in future projects if you mix the two up.

Mm good to know. The program doesnt actually use the endian detection for anything usefull. Its just there in case I need it later.

Since you aren't assigning or typecasting, I think (p[0] << 8) evaluates as an int, in which case the above will always return true. Also, I think you wanted to switch the indices. Here's a similar approach that is more straightforward: