Archive for iPhone

Speeding up vertex-array fillrates: Sequential Loop vs. vDSP

Posted in Uncategorized with tags , , , , on July 4, 2010 by bersaelor

Recently I saw the WWDC presentation on the Accelerate-framework Apple provides for the iPhone.

Now I thought to myself: “My, one very big part of my 3D-Engines code is dedicated to putting 3D geometry information into interleaved arrays, maybe I could speed that up?”

Continue reading

New Book

Posted in Uncategorized with tags , , , on April 8, 2010 by bersaelor

My sister got me an Amazon Gift Coupon for easter, so I decided to get a Book about iPhone Programming.

Being quite experienced in the basics I went for “More iPhone 3 Development” by Dave Mark and Jeff LaMarche. So far I really like it, it’s written in a casual voice but not that informal as it would substract from the matter.

It covers NSStreams and establishing Socket Connection but seems to focus on Core Data. As of now I only see minor uses of Core Data to speed up loading and saving of games in my App. Still I might have a look into it once I’m going for the Version 1.1 of the game.

So thanks Dave Mark and Jeff LaMarche for writing the book. I also figured since I learned so much from Jeff’s Blog I had to buy some of his work.

Ancestor: Wodan – the trial

Posted in Uncategorized with tags , on March 29, 2010 by bersaelor

While searching for a japanese translator today, someone in a forum told me my game has essentially the same logic as an old freegame for windows :

Wodan – The Trial is a round-based strategy game. Your task is to protect your own land and to conquer your enemy’s territory with your soldiers. You can build castles for your protection and to cut off your enemy’s supply. (spielkultur.org)

Guess everything has been around somewhere before!

Here two Screenshots for comparison:

I tried it on my windows-desktop and the appearent differences are:

  1. Units can’t conquer a field that is next to a unit of the same level in wodan. In tactica units only defend their own square, not all adjacent ones.
  2. there are trees on tiles that are basically blocking the income of a tile and can be cleared by any unit. If left alone those trees grow into forests, cutting hard into your income. Basically like a neutral player. Sounds interesting.
  3. each connected area has its own income and credits amounting to the fact, that a unit in one area can disband because of the lack of credits while there is an abundance of credits in another area
  4. one may build castles that don’t seem to cost upkeep but defend a tile. Basically a wall

Now I’m thinking about adding option 1 to tactica, it could increase tactical deepness. Fact 2 also seems to encourage tactical thinking, but a tree growing into a base seems weird to me. Let alone in my sci-fi setting, what should grow into a bunker?!?

I don’t know about 3 and 4, think those wouldn’t really improve the game. Especially 4 would make everything more complicated.

Fun-Post: lego – frame for Promo – Videos

Posted in Uncategorized with tags , , , on March 21, 2010 by bersaelor

Both the iPod and the cameras tripod are mounted with rubber-parts (mostly tires) to minimize vibration that could distort the video.

So once I finish all artwork, I just have to borrow the High-Quality Camera of a friend and I’m ready to take a smooth professional promo video !

Totally unrelated to this, I always knew there would be some usage for my mindstormes box that I kept around for ages 😉

iPhone Client for Multiplayer with NSStreams – Part 2

Posted in Uncategorized with tags , , , on March 7, 2010 by bersaelor

In the first version of the communicator class we were only handling messages that were smaller then 1024 Byte.

To allow it to receive larger messages we need to know when an individual message is finished. Therefore we have to add a unique specifier to the string our server sends, for example “\r\n”. Then we can simply add an “NSMutableString msgBuffer” to our class and another method between the “- (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode;” and the “- (void) handleInput: (NSString*)string;” method that does the following:

- (void) processString:(NSString*)string {  
     [msgBuffer appendString:string];
     [string release];
     NSRange r=[msgBuffer rangeOfString:@"\r\n"];
     if (r.location!=NSNotFound) {
          [self handleInput:[[NSString alloc] initWithString:[msgBuffer substringToIndex:r.location]]];
          [msgBuffer setString:@""];
    }
}

Objective C professionals probably realize that I don’t like “autorelease”. The string-argument is supposed to be retained, as is the argument to “[self handleInput]”. I know an object is supposed to be released where it was retained but my original string was retained in “handleEvent” and released in “handleInput” and I didn’t want to change those two methods. This code would not be consistent with the older post otherwise.

Final Version of the Main Menu

Posted in Uncategorized with tags , , , on March 6, 2010 by bersaelor

This is the final version of the Main Menu. I added a blurred PCB- Layer behind the menu to increase the feeling of the menu as one object, not 4 separate buttons. Continue reading

New Buttons

Posted in Uncategorized with tags , , , on March 5, 2010 by bersaelor

I designed some new buttons since the old ones were only meant for temporary usage when I designed the menus.

Also I had an argument with a friend who told me my Buttons look stupid, who reminded me they were only temporary.

UPDATE:

My hexagons in the game actually gave the standard idea, but then symetric hexagons as buttons didn’t look that stylish. Asymptotic looked better but is similar to what has been done in other games. In the end that might not be a bad idea, to achieve some similarity to something people are used to.