Rabu, 30 September 2009

More iPhone 3 Development Update

Today, I teased my Twitter followers with this and this. I thought it would only be fair to elucidate a little bit.

The first half of More iPhone 3 Development has been a struggle to write. In the first half of the book, we create a navigation-based application using Core Data. Although the chapters are primarily intended to teach different aspects of Core Data, I also wanted to set a good example design-wise. If you've ever written a table-based detail editing view, you know that's a challenge. Even Apple's sample code uses kludgey, hard-to-maintain techniques because the table view architecture simply wasn't designed primarily for creating this type of view; it was designed to display values from a collection or list not for displaying or editing different attributes of a single object.

My early thought was to create a generic framework of controllers that could handle editing any Core Data object just by creating property lists. This approach, although I think it has great merit for use in development, made the book too hard to write. All the code that I needed to show was getting squirreled away in these generic classes, and I was having to spend a lot of time explaining the architecture rather than the important Core Data concepts that I needed to get across.

After a lot of struggling, and writing probably twenty-five different prototypes, I finally hit on a solution that I liked. It was a maintainable design that borrowed a lot from the property list prototype, but kept everything in the places where people are used to seeing it. Instead of property lists, we store the structure of the table view in arrays, but we start simple enough that the concepts don't become too overwhelming. Or at least I hope they don't.

As I started working on the Chapter 7 version of the application, which is the first time that we need to add another detail editing controller, I realized that in just a few short pages, we could refactor the controller class written over the previous six chapters to be completely generic and totally reusable, meaning we wouldn't need to write any more substantive code for editing or displaying data once the refactoring is done. We can add drill down into an infinite number of controllers, traversing relationships or fetched properties, and never have to add more code than what's needed to create a couple of arrays that define the object and attributes we want to let the user see or edit.

It's so far been a somewhat difficult chapter to write, but it's incredibly edifying to get here and realize that the attention to design has paid off. The end-result of Chapter 7 is basically an extensible infrastructure for creating navigation-based Core-Data applications. Hopefully, the reader will also have taken away a strong understanding of Core Data, but even if not, you'll have a starting point to work from that will save you a lot of development time. You just create your model, and set the controller instance's arrays to reflect the objects and data to be displayed or edited in your application. All the really hard stuff is done and can be leveraged over and over again.

Thanks for your patience. Once Chapter 7 is done, I should be able to make much faster progress.

PatrickJ Interviews Loren Brichter

An interesting and apparently amicable end to the Twitter 2 controversy? It sorta looks that way.

Not everyone will agree, but I think now people have a better understanding of the situation Loren was in and the reasons he made the decision he made.

Critical Thinking from Critical Thought

This is an excellent blog post by David Whatley of Critical Thought Games. I was already bummed about not being at 360 iDev (the first was awesome), but I really would have liked to have been in the audience for David's talk, especially to watch the crowd's reaction.

I've been known to grouse about things from time to time, but I also try to keep a sense of perspective and not lose sight of just how amazing this thing that Apple has enabled with the App Store and iPhone SDK is. David does it better. Well worth a few minutes of your time to read this.

Madden NFL 10



iTunes Link

Madden NFL 10 is a football game by Electronic Arts. $9.99

If you read the NFL 2010 below you would know how much I think Madden 10 is the better football game. Everything in Madden has been kicked up a notch from what we got from Gameloft in NFL 2010. What else would you expect though for a game that not only got higher than NFL 2010 on the App Store charts but at full price was also $2 dearer. The other thing Madden has going for it is its name. The reason Electronic Arts has been super successful on the App Store is because people will buy their games first just because of the brand name. Obviously Madden 10 is the most successful NFL console game of all time and any other device should have the same success because of the name. This is why I am predicting FIFA 10 to automatically go better than Real Soccer 2010 because of that brand name.

My initial impression of Madden 10 was wow. This game looks and plays like something really professional. Just how smooth and polished this game is quite literally blew me away. The graphics are incredible and direct comparison to NFL 2010 are head and shoulders above the competition. Having say that, the just released Backbreaker Football has way better graphics, but what is happening in the actual games are totally different and therefore I'd have to call what we have in Madden more impressive. The game is more realistic and has many many more options in regards to plays etc. compared to NFL 2010. This game is just jam packed with features and they have been delivered excellently.

Madden 10 has surprised me with how good the graphics are. I first saw screenshots of NFL 2010 before anything to do with Madden were released and I saw them being very impressed and wondering how Madden will beat them. In true Electronic Arts fashion Madden 10 has done just that, with graphics that are crisper, more defined and players that look quite realistic. The game is also very smooth for a graphically powerful game. I found no lag what so ever while playing this game and was probably smoother than NFL 2010. I don't know how Electronic Arts do it but they can get almost all their games to run perfectly, while Gameloft have had a few problems with pre-iPhone 3GS devices for games like Gangstar etc.

The controls found in Madden 10 I found more accessible and easier to use than the controls in NFL 2010, once you got used to them. Madden 10 requires a bit of learning to perfect how to use the many special features. For one you control your own slow-mo time to execute the perfect juke or spin to get out of trouble. The passing, defense and running is all the same to NFL 2010 with the virtual joystick and tap to pass used. What is different however is the way to kick or punt the ball, using basically the Tiger Woods PGA Tour shot method of dragging the ball down and up. This takes a bit of practice as you have to time it with a kind of pulse in the bar to kick it 100%. The other changed I really liked was that you can alter the plays to how you want it to happen. What I mean by this is that you can choose the path a runner will take if you choose to edit it. This can come quite handy if you are getting a bit stuck and the player can't get free.

Madden 10 features many game modes, but as most sport games the season mode is the one you will play most often. This gives you a quite realistic roster of a NFL season as you try and compete for the chance to win the coveted Superbowl trophy. You choose any team of your choice, which doesn't seem to matter like in NFL 2010. In that game they had a rating for each teams attack and defense but not in Madden. After you choose your team, the difficulty of the games and time length you are set to hop into the season.

The game to me is super smooth and a joy just to play, but there are a few features which could be tweaked. The passing I believe has been improved from NFL 2010 with more chance of a breakaway with a successful catch, but I found that sometimes it was just that little bit too easy to do so. In NFL 2010 I could easily shut down the other teams plays by getting around and tackling the quarterback. I found this a lot harder but maybe too hard with it only maybe happening once a game, if that. It made the game a lot more challenging and probably a more strategic gameplan was in order. The one thing I don't like about both Madden 10 and NFL 2010 is how you can continually use one play to win the game by 30 points or so. I think the CPU should be heaps smarter to pick up on repeated plays so you have to continually think what your opponent will do and how to beat them. Apart from this hiccup however this is one amazing game.

Madden 10 is everything you would expect from Electronic Arts and more. $9.99 for a world renowned brand name, spectacular graphics and an excellent game all around. The price tag is very respectable for a game like this but with a very near effort from Gameloft at $2.99, I would have to say that only truly diehard football fans should probably buy this game. Most people will be happy with the Gameloft version but if you want a real quality game or just love your footy then definitely don't take the cheap option out.

Gameplay- 9.5/10
Graphics- 10/10
Sound- 10/10
Overall- 9.5/10

I would recommend this game if you enjoyed- NFL 2010

Tell me what you think about this review at Twitter- http://www.twitter.com/iPhone_Reviews next up is Dungeon Hunter

Thanks- iPhone_Reviews

Selasa, 29 September 2009

Comments are Broken

Note: No word from Blogger.com yet, but the comments to this post seems to be okay, it's just the original post that's not working, so the discussion has started back up in the comments to this post.

Yes, I'm aware of the problem. I've posted the error code and information to Blogger's tech support forums and am hoping for more information sometime today.

It is a shame, though, the Just Another iPhone Blog author I linked to in my last post wants to respond to my post, and can't. We've tweeted back and forth a bit, and I think the discussion will be both interesting and fruitful and, believe it or not, civil.

As several C4 attendees became painfully aware this past weekend, the way our words are received are not always the way they were intended when written. It's altogether possible that I read the intent of that post differently than the author intended, and I think there's a real opportunity here for users and software developers to better understand each others' perspective.

I'm not sure that there's going to be common ground - I feel pretty strongly that Tweetie is fairly priced and that there's nothing unfair to the users about making Tweetie 2 a new product, especially in light of the fact that there's no built-in mechanism for paid upgrades on the App Store (yes, I know you can do it with in-app purchase, but that requires building infrastructure to support it and would be non-trivial to backfit into an existing application) - but I think there may be a possibility of closing the gap a little bit, educating users and ourselves in the process.

Stay tuned.

Senin, 28 September 2009

A Sense of Entitlement: Tweetie 2

For the most part, I stay out of discussions about App Store pricing. The so-called "race to the bottom" is, I think, somewhat blown out of proportions in many discussions held between iPhone developers, who have a very personal and one-sided view of the market. There's a lot of competition and prices are lower than traditional software markets, but there's also a large volume of buyers (2 billion applications sold so far and counting according to Apple), which means you can still make a living charging relatively low rates. If EA or Infinity Ward can make a profit selling a game for $49.99 that takes a team of literally hundreds of people two years to create, it seems like 1-5 person iPhone development shops should be able to make a profit at a much lower amount if the program is marketed diligently and intelligently and is truly useful or fun.

The early seemingly overnight success stories have, I think, created a skewed perception of how easy it is and should be to make money in the App Store. That being said, I think there is some merit to the argument that the low prices and large number of free applications that dominate the app store have created a sense of entitlement and have fostered an environment where people feel like they are owed free upgrades in perpetuity.

This can be evidenced by this blog posting that takes Loren Brichter to task because he's releasing the next version of Tweetie for the iPhone as a new app with no upgrade path. This blog post has such gems as
A slew of new features and functionality does not, to me, make it a different app.
Right, and when Adobe releases a new version of Photoshop or Microsoft releases a new version of Word with "a slew of new features and functionality", those are, of course, free, right?

Of course not.

It takes time and money and hard work to create that slew, and that has to be paid for somehow. When you get your oil changed in your car, you don't expect it to be free the next time bring your car in, because it's the same task they're performing, do you? Because you paid for a newspaper to be delivered today, doesn't mean you expect to get it free tomorrow and forever, does it? Of course not. No business can run without revenue. If Loren continued to spend all of his time developing Tweetie and never got more money from his existing customers for the new features, he would eventually go bankrupt and starve. Or more likely, he'd stop developing Tweetie before that happened, and we'd never get any cool new features again.

I don't know Loren personally, but I use Tweetie as my iPhone client (along with Twitteriffic which is also excellent) and I try to keep abreast of what's going on in the iPhone development world. Many of the people I follow on Twitter are beta testers for Tweetie 2, and I can tell you from the chatter I've seen that an awful lot of hard work has gone into the next version of Tweetie over quite a long period of time.

Loren has decided to ask a very reasonable fee for the new iPhone version of Tweetie, which should be showing up on the App Store in the next week or so. The $2.99 he's asking is less than most of us spend per day on coffee. If the author of the blog post above is making minimum wage, then he made more money from penning that whiny rant that it would cost to buy the new Tweetie. Get a fucking sense of perspective. The world owes you nothing. Loren owes you nothing. You paid for Tweetie 1, and you got Tweetie 1. Nowhere in that transaction did anyone promise to deliver to you new versions on a silver platter in perpetuity.

The old version will still be available to those who have purchased it. You won't be made to stop using it, or forced to upgrade, you just won't get the cool new features that Loren's been busting his ass to write over the last six months. You won't stop getting the benefit of what you've paid for.

Even though I occasionally offend people with my opinions, I rarely do it intentionally. But in this case, I think certain people, like the author of the blog linked above, along with all the people echoing similar sentiments on Twitter deserve a little verbal slapping around. This kind of immature sense of entitlement should not be coddled or put up with. People whining about the cost of the upgrade should be told in no uncertain terms that they are acting like fucking toddlers. Worse, because toddlers are, well… toddlers. These people are presumably adults and should know better.

If the new features aren't worth $2.99 to you, fine, don't buy it. There are plenty of other Twitter clients available, several of which are free. So shut your pie hole and go find another client rather than whining about how you are entitled to the end-product of Loren's hard work for the last half year simply because you paid about the price of a bottle of soda about a year ago.

If you really like Tweetie… if it's your favorite twitter client, then for fuck's sake, it's only three bucks to help ensure that we keep getting new features! If you don't, then why would you want the new version anyway. Just on principle?

Note: Comments are broken on this post. You can comment on this post instead if you desire.

The Grass on the Other Side of the Fence

Here is an short account of the experiences of one of the earliest Palm Pre developers. Be warned, though: The neon green on black is a little hard on the eyes.

Not intending to pass judgment here, just think it's interesting to see what life is like developing for other mobile platforms. I think keeping a little in touch with what's going on in the Palm and Android development world helps us keep a sense of perspective when we get frustrated with the App Store and iPhone development process.

Two Billion and Counting

Today, Apple announced that they have reached another milestone: two billion applications have been downloaded from the App Store. Other numbers from the press release include the fact that there are 85,000 applications available in the store, and 125,000 registered iPhone developers. The App Store is currently available in 77 countries and allows you to reach 50 million potential customers.

Holy hell, those are some big numbers.

via Michael Jurewitz

Minggu, 27 September 2009

NFL 2010



iTunes Link

NFL 2010 is a football game by Gameloft. $2.99

Gameloft got in first with their own football game, picking up some early cash before Electronic Arts own Madden 10 was released onto the App Store. NFL 2010 is the first true football game that we could call anything near good. Earlier on we reviewed a game called PocketSports Football, but this game was far from anything we would call a good game these days. NFL 2010 features not only a complete football experience, but has somehow also managed to scrap up the permission to use complete NFL teams and player names, just as Madden 10 already had. This is the main reason why this game got its time in the spotlight before the arguably better, more known, yet more expensive Madden 10 came and stole the spotlight as the true football experience. For $7 less does this game live up as something to buy, or should you skip it and go with the premium option of Madden 10?

My first impressions of playing this game was how impressive this game was graphically. We have had a fair share of sport games on the App Store with the most realistic looking being Tiger Woods PGA Tour. NFL 2010 however features the players in a similar manner to Real Soccer 2010 so I was thinking the players would look kind of dodgy. However the players are incredibly detailed and can generally be told apart if you know your team well enough in the real NFL. The players move and feel well enough like real players and this game is of a very high standard for the iPhone. To do a quick comparison with Madden 10 however, the graphics I feel are much lower when directly compared to Madden, but with $7 off on the price you are certainly not getting robbed with bad quality.

NFL 2010 has very easy controls that make it perfect for those who are new to the game or even the code of football. Everything from the on screen way to pass or punt the ball right down to the way to choose your plays is done in an easy manner. To choose plays you select options which bring down the next set of options, which can be swiped left or right to see more options. Once you choose your plan in either defense or offense you then automatically set your team up on the field. You can control any player you wish by selecting them then moving them around with the D-Pad. In offense you throw the ball by touching the player you wish to throw it to. In both defense and offense you sometimes get the option to avoid a tackle or deflect/intercept when special buttons come up on the screen. The game goes into slow-mo and you have more time to choose the right option for the situation, which is quite a cool part of the game.

Comparing NFL 2010 to Madden 10 to me is almost like NFL 2010 is the arcade version while Madden 10 is more of a simulation match. NFL 2010 doesn't seem to be as realistic but more fun to repeatedly play as a more arcade version of NFL. There are just little things in NFL 2010 that don't seem to be possible but there are also aspects of Madden that need to be altered also. While neither are perfect Madden seems the most realistic. Surprise surprise, NFL 2010 is about leading your favourite team (In my case the Cardinals) to victory in any way possible. There are various games modes to play including quick play for a fuss-free match, exhibition where you can fine tune a solo game to play, season mode to play through a season length of your choice and the playoffs where you try to win the Superbowl while skipping the season. The games are short and fun but I found after a small bit of practice incredibly easy. Even on hard mode I managed to win a game with 2 minute quarters 37-7. What I found is that there is one defensive play and one offensive play that I can continue to play and they don't figure out how to beat it. I would really like to see the other team have a smarter football brain with the ability to beat recurring plays like my tactic. Apart from this I find NFL to be a fun experience.

Where I stand in the NFL 2010 vs Madden 10 debate is that NFL 2010 is for 'softcore' fans of the sport as such who don't care about super fancy graphics, more realistic gameplay and the big price for more strategies etc. For only $2.99 NFL 2010 is an extremely generous price and really anyone who doesn't want to pay for the best will be incredibly satisfied with their purchase of NFL 2010. Still splashed with the Gameloft quality we have come to know and love, this is really a game that will have you shouting 'Touchdown!'... just maybe not when playing Madden 1o.

Gameplay- 9/10
Graphics- 9/10
Sound- 9/10
Overall- 9/10

I would recommend this game if you enjoyed- Madden 10

Tell me what you think about this review at Twitter- http://www.twitter.com/iPhone_Reviews next up is Madden 10

Thanks- iPhone_Reviews

Chess Elite

iTunes Link

Chess Elite is a chess game by 99Games. $3.99

After reviewing Chess Lite and Chess Pro from the same developer back in January or February I was pretty satisfied with a good game to play chess on. Chess Lite was for more of the casual gamer and the Premium version had more graphics and a bit more to play around with. I thought Chess Elite would have added onto what Pro offered, but it has seemed to have taken a different route and removed features. Pro offered multiple game modes and 3D play as such, but Elite has the one game mode with limited modifications, but online play. Chess Elite is aimed more at the casual gamer, while the more serious chess players will like the challenge of versing people other than their friends.

This game has the potential to be a great game but probably isn't at the stage yet. There isn't much you can do to a chess game but it isn't there yet. With the online mode you can send challenges to anyone who is online or offline, and you will have to find both of you online to play. You should only have the option of challenging people who are online otherwise its dead annoying. Also the way that they have taken out all the customization and different game modes is quite annoying and it just doesn't feel as full as Chess Pro.

Chess Elite is pretty basic in the way of graphics, but they are all that is needed to work as a chess game. What makes 99Games' chess versions so good is the graphics are pretty basic so there is no lag or slowness in the game. Gameloft's chess game has great graphics but I believe this would cause the game to lag slightly, and be more for a very casual audience. The game is very simple with little outlines of every piece so they can be distinguished on the board. Not much to relly say about this part of the game, as there is nothing to do to a game like this unless you want fireworks to explode everytime you take out a knight.

The controls are fine for this game but I found a bit tricky to use successfully to start off with. To move your pieces you must tap on the required piece and then again on the desired spot. When you have selected a piece a small circle appears around them but sometimes when tapping on a piece I couldn't get it to appear. This may be my fault but it seemed to not work sometimes and took a few attempts to happen. Apart from this slight hiccup it worked reasonable well and was quick to react to any moves I made.

Well what can I really say about a game like this? It is chess, no special moves or skills, just chess. What makes this game stand out from the rest of the many chess games is the online mode. While boasting one of the strongest chess engines and the first chess game with push notifications, I found that the only reason you would get this instead of Chess Lite or Chess Pro is the online mode. As I said before I don't believe the mode has been perfected yet, but has the stepping stones to be very strong.

Basically online mode lets you verse anyone from around the world with this game. It shows all online and offline people which isn't a great of people as the game hasn't taken off. Once you accept or receive a challenge the game will play kind of like Electronic Art's Scrabble game where it can takes weeks and weeks to complete games. Luckily you can have multiple going as well as playing the other modes. This game really needs to be more successful before a mode like this will really take off I'm afraid. Games like Baseball Slugger show how a popular game can thrive on an online environment.

The other online game mode focuses on playing online also but against someone who is connected to the same WiFi. You can also play a pass n play mode with your buddies using the same iPhone or iPod Touch, but if you have two of them its alot easier to use the online play.

For those not feeling like playing against friends the other half of the game is centered around playing the computer. 99Games has stated that the computer has a good chess brain and is very flexible in the difficulty of the game. You can customize your game alot when playing the computer from how smart it is to what colour your chess piece is. While there are quite a few options if you are looking for a more advanced CPU game I would recommend Chess Pro as it has many more options. You can get help from the computer by showing you one of the available moves to you by pressing a button on the bottom of the screen. I am not sure if it is the best move available though. You can also replay the game to see how you performed and how you can make better decisions for the next time around.

Chess Elite is a pretty good game, although the lack of success means that it isnt as strong as it should be. What makes this game arguably better than Chess Pro is the online mode, but with not many participants in the mode it doesn't seem like a good game. This game is for those who like playing either other people around the world or their friends, and those who would like a bit more than the Chess Lite version. Those wanting more customized games should however pick up Chess Pro instead.

Gameplay- 4/10
Graphics- 5/10
Sound- 5/10
Overall- 4.5/10

I would recommend this game if you enjoyed- Chess Pro

Tell me what you think about this review at Twitter- http://www.twitter.com/iPhone_Reviews next up is Madden 10

Thanks- iPhone_Reviews

Sabtu, 26 September 2009

Read for You, Write for Me, Right?

Properties are a way to expose data to other classes. Because they make memory management more convenient on the iPhone and in non-GCC Cocoa apps when you declare them retain, many of us also use properties within our class. When we use synthesized instance variables, we don't have a choice, because the underlying instance variables created by the runtime aren't available even to our own class, and we have to use the accessors and mutator or dot notation to use them.

What happens, however, when you want a property to be read-only to other objects, but you also want to be able to use the synthesized mutator within your own class to assign new values? In other words, what do you do when you want a property to be read-only to the rest of the world, but read/write within your own class?

Extensions to the rescue. Before we had extensions, it was common to declare a category at the top of your implementation file with any private methods. This would prevent the compiler from complaining when you called a private method from within your class. The compiler would see the private method declaration in the implementation file when your class was compiled, but wouldn't see those methods when it compiled other classes. Under this old way of doing it, we would simply include the mutator method in the category, and only put the accessor in the header file, and that would effectively make the instance value read-only to the rest of the world by not exposing the mutator.

In Objective-C 2.0, this practice has been formalized into extensions, which are basically just anonymous, nameless categories. One thing you can do with an extensions is to redefine your declared properties. So, you can declare a property in your header file as readonly, and then in your implementation file, create a class extension with the same properties re-declared as readwrite. Ét voilà! Your class will be able to use both the accessor and mutator for those properties while external classes will only be able to use the accessor. Cake and nom nom. Life is good.

Note: you cannot change all aspects of a property. You can't, for example, declare it copy in your header file and retain in your extension.
Let's look at a simple example. Let's say we were writing a subclass of NSOperation that had two properties. We want these values to be set by in the init call, but because our operation will be running concurrently on another thread, we don't want the values changed after that by external objects, but we may need to change them ourselves. To do that, we might declare our class like this:
#import <Foundation/Foundation.h>
#import <QTKit/QTKit.h>


@interface MyUpdateOperation : NSOperation {

}

@property (readonly, copy) QTMovie *movie;
@property (readonly, copy) NSView *view;
- (id)initWithMovie:(QTMovie *)inMovie andView:(NSView *)inView;
@end


And then, in the implementation file, we would use an extension to redefine those two properties:

#import "MyUpdateOperation.h"


@interface MyUpdateOperation ()
@property (readwrite, copy) QTMovie *movie;
@property (readwrite, copy) NSView *view;
@end


@implementation MyUpdateOperation
- (id)initWithMovie:(QTMovie *)inMovie andView:(NSView *)inView
{
// Logic goes here
}

-(void)main
{
// Logic goes here
}

@end


It's a simple trick, but one with the potential to make your life more pleasant.

Kamis, 24 September 2009

Barcode Generator Application



For grins and giggles, I tried compiling an Xcode project I created back in 2002. Well, technically, it was a Project Builder project created in 2002 that was converted to an Xcode project a couple of years later, but the bulk of the code was written back in 2002. I wanted to see how much work would be involved in taking a project that was written when Puma was the current version of Mac OS and Macs were shipping with PowerPC processors and getting it to compile to work in 32/64 bit mode for Intel Macs.

Code changes required? Not a one.

There were a bunch of warnings that I would address if this were shipping software, since a couple of methods I used back then have been deprecated. None of them have yet been removed, so the application works (as far as I can tell) exactly as it did back in 2002. The project configuration was where almost all of the work was in updating, and there wasn't much of that, to be honest. Total time investment, about 20 minutes.

That's pretty damn amazing, different architectures, different register size, and a seven-year-old codebase written when I knew a heck of a lot less about Cocoa. Despite all the amazing changes to Snow Leopard, this old code still works flawlessly.

If you're interested in a free Barcode application, you can download the compiled application right here. If you have a version of the OCR-A font installed, it will attempt to use it (you can get a free one here), otherwise it will fall back on the system default monospace font.

I will push the project changes to Google Code when I have some free time.

HYBRID: Eternal Whisper

iTunes Link

HYBRID: Eternal Whisper is a RPG by Gamevil. $5.99

[This is a modified post from TheAppEra]

Earlier this year the iPhone community went RPG-crazy when the excellent Zenonia was brought onto the App Store by Gamevil. This Fall, Gamevil unleashes their next hit (?). Can Gamevil possibly bring out another big hit game? Read on to find out.

Hybrid has seemed to have grown on me after a few hours playing this game, as the storyline really gets you involved unlike so many failed attempts before it. This game seems to be alot more story orientated with large cut scenes between fights with some story to why the next fight is happening.

It is possible to skip the cut scenes but then the game is really a bunch of random fights that have no meaning what so ever. Overall though as long as you follow the storyline as it is designed to be followed then you will have an enjoyable and engaging experience learning about this mystical world.

Hybrid: Eternal Whisper has taken a different path to Zenonia, which had some outstanding graphics that would do itself proud on many platforms. Instead Hybrid has used quite old school graphics, which I usually frown upon on a great device like this. For Hybrid however, I don't mind them too much as they still look quite good.

This game basically has graphics that would look something like Chronicles of Inotia by Com2Us mixed with Dungeon & Hero by Chillingo. The animations in this game are very smooth which are much needed since this is another serious button masher. The game reacts quickly to any buttons you press and I have found no lag, glitches or crashing of the game so far.

This game is all about the fighting, hence a game like this requires quite a lot button mashing and even more greasy finger smudges if you don't use a screen protector on your iDevice. It's all about the on screen buttons, with no special swipes or tilts. I am not certain if this is a port of a previous game but even if it isn't, there isn't much point having difficult controls for a game such as Hybrid.

On the left side of the screen there is a D-Pad that is used to control your character and an attack button on the right side of the screen to use your sword. Next to the attack button is a way to swap how you are holding your sword and this will affect how you are fighting. Sometimes it is better to use one method instead of the other and to build combos by switching the two grips.

HYBRID is a very story orientated game that is split apart by over 70 battles. The game's all about the fighting, but most importantly how you get to the fighting. You take on the role of Grey, a very confused teenager who does not know very much about the world.

You find him looking for the mysterious 'Fairy' before you and your brother must fight off some dark creatures that have apparently evolved from other creatures called 'Hybrids'. These were created about the time as some, what appears to be, evil king left their world. Yes as you can tell I can go on forever about this very complicated storyline, which is unraveled to you as you progress through the game.

How do you exactly progress through what could be an open book story? Well all the cut scenes lead to some reason or another to put your life on the line against some very dangerous monsters. These range from large groups who will try to defeat you with their large weight in numbers to large boss monsters that will require some great skill and timely spells to save your bacon.

This sounds pretty easy I bet you are saying. From what you have experienced from other hack n slash games is that if you slam that button enough times they will just cark it and you will end up the victor. Not in this game however. From the very first few fights I was being forced to squirm around the screen trying to avoid the enemies while landing timely blows.

There is a bit of an RPG element in all this fighting and storytelling also. As you continue fighting you will find yourself increasing your level and hence getting points to improve your spellcasting, defence, attack and speed etc. Adding this element to the game keeps spicing things up as you get to choose how your character will fight. Will they be about super strong attacks or are they well rounded? The path of the game isn't up to you.. but almost.

Gamevil certainly knows how to make a great RPG game and have almost hit the jackpot again with this game. I would have liked this game to be a bit more hack and slash instead of all the very long cut scenes.

Hybrid is not a pick and play game and will require hard core gaming hours. Depending on who you ask, that can be a great or bad thing. A great game in general and good to see that Gamevil continues to explore untapped AppStore waters.

Gameplay- 7.5/10
Graphics- 7/10
Sound- 9/10
Overall- 7.5/10

I would recommend this game if you enjoyed- Blades of Fury

Tell me what you think about this review at Twitter- http://www.twitter.com/iPhone_Reviews next up is Madden 10

Thanks- iPhone_Reviews

Rabu, 23 September 2009

Opacity - Export as Source Code

Okay, I don't ordinarily repost items covered by Daring Fireball since most of you probably read it anyway, but this one's just too cool and too relevant not to include. The vector art program Opacity now has the ability to export your graphic as source code, presumably as CoreGraphics calls that you can use in your Mac and iPhone applications.

Now, in most cases, you don't want resources contained in code - you should just store the graphic file as a resource in your application's bundle - but there are times when this would be hugely helpful, like when you want to animate the vector art, or when the specific appearance of the image depends on values only available at runtime.

Preview: Alice in Bomberland

Here is a special preview of a upcoming game by SonicBoom Games that has caught my attention. Just looking at the screenshots wants me to see more of this game. Check out the info we have at the moment.
  • As you move on you’ll unlock new types of levels, more story, new powerups, and new characters and artwork.
  • From the designer/programmer of the hit game iPhone/iPod Touch game Topple, and the visual artist from Braid.
  • Based on Lewis Carroll’s classic stories Alice's Adventures in Wonderland & Through the Looking Glass, featuring famous quotes, poems and more.
  • Unlockable content including developer commentary and endless mode.
  • Original illustrations by acclaimed children’s book illustrator Mark Meyers.
  • 8 different gameplay modes, 6 stages for each character, and a total of 48 levels.
  • Featuring an 11 song soundtrack.

They are in the progress of making a devoted site that is coming soon. You’ll be able to get downloadables and tips from the site as well.

Stay tuned for this title as it is released. For now though, enjoy these screen shots.






Selasa, 22 September 2009

More Housecleaning

Here's another category I found while cleaning out my dev folder. It's another bit of Quicktime code for Cocoa. This is a category on QTMovie that makes it easier to deal with standard movies (i.e. ones with one video track and any number of audio tracks).

This same category exists in the MovieStepper project, but that version won't compile for 64-bit Cocoa applications because Apple has removed access to the underlying Quicktime data structures like Track and Media. This version uses only QTKit objects to accomplish the same tasks, and thus will compile for both 32-bit and 64-bit applications.

QTMovie-Frame.h
//
// QTMovie-Frame.h
// MovieStepper
//
// These are methods designed to be used on movies that contain only
// sequential frame data, e.g. straight movies. These methods make
// the assumption that the framerate is constant and that each frame
// is displayed for the same length of time. Do not use these methods
// on movies that have tracks other than a single video track and
// some number of audio tracks.
//
// This code may be used freely in any project, commercial or otherwise
// without obligation. There is no attribution required, and no need
// to publish any code. The code is provided with absolutely no
// warranties of any sort.

#import <Cocoa/Cocoa.h>
#import <QTKit/QTKit.h>

@interface QTMovie(Frames)
- (long)numberOfFrames;
- (void)gotoFrameNumber:(long)frameNum;
- (long)currentFrameNumber;
- (int)displayFPS;
- (float)desiredFPS;
- (NSImage *)frameImageForFrame:(int)frameNumber;
- (NSSize)size;
@end



QTMovie.m
//
// QTMovie-Frame.m
// MovieStepper
//
// Copyright 2009 Jeff LaMarche. All rights reserved.
//
// This code may be used freely in any project, commercial or otherwise
// without obligation. There is no attribution required, and no need
// to publish any code. The code is provided with absolutely no
// warranties of any sort.
//
// This code has been updated to work in 64-bit mode where access to
// the underlying Quicktime Carbon structures has been removed.

#import "QTMovie-Frames.h"

@implementation QTMovie(Frames)
- (long)numberOfFrames
{
NSArray *tracks = [self tracksOfMediaType:QTMediaTypeVideo];

for (QTTrack *track in tracks)
{
QTMedia *media = [track media];
NSNumber *frames = [media attributeForKey:QTMediaSampleCountAttribute];
if (frames != nil)
return [frames longValue];
}


return -1L;
}

- (void)gotoFrameNumber:(long)frameNum
{
int frames = [self numberOfFrames];
double percentDone = (double)frameNum / (double) frames;
QTTime duration = [self duration];
QTTime newTime;
newTime.timeScale = duration.timeScale;
newTime.flags = duration.flags;
newTime.timeValue = duration.timeValue * percentDone;
[self setCurrentTime:newTime];
}

- (long)currentFrameNumber
{
QTTime now = [self currentTime];
QTTime duration = [self duration];

if (now.timeValue == 0 || duration.timeValue == 0)
return 0;

double percentDone = (double)now.timeValue / (double)duration.timeValue;
int frames = [self numberOfFrames];

return (int) ((double)frames * percentDone)+1;
}

- (Fixed)rawFPS
{
NSArray *tracks = [self tracksOfMediaType:QTMediaTypeVideo];

for (QTTrack *track in tracks)
{
QTMedia *media = [track media];
QTTime duration = [[media attributeForKey:QTMediaDurationAttribute] QTTimeValue];
long numFrames = [self numberOfFrames];
double frameRate = numFrames*(double)duration.timeScale/(double)duration.timeValue;
return X2Fix(frameRate);
}

return -1;
}

- (int)displayFPS
{
return FixRound([self rawFPS]);
}

- (float)desiredFPS
{
return FixedToFloat([self rawFPS]);
}

- (NSImage *)frameImageForFrame:(int)frameNumber
{
QTTime restoreTime = [self currentTime];
[self gotoFrameNumber:frameNumber];
NSImage *ret = [self currentFrameImage];
[self setCurrentTime:restoreTime];
return ret;
}

- (NSSize)size
{
return [[self attributeForKey:QTMovieNaturalSizeAttribute] sizeValue];
}


@end

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Lady Gaga, Salman Khan