“Reset”

Soon I will be recreating this site, and in the process I’ll most likely remove these older posts. Why? Because they suck. Most of them are poorly written, and I know I can do much better.

Here are the projects I will be working on:

  • Compendia (Name Pending) – An iOS card game that focuses on recognizing patterns.
  • Maiden Days – An action/casual strategy game for iOS.
  • Personal Website – Pretty self explanatory.
  • PhoneTree – A social networking solution to managing contact information.

Those are the projects I’m “zero-ing” in on. There are a few that have been placed on the back burner as well:

  • Ultra Troopers – Action top-down shooter for OSX.
  • The Misadventures of Mayoskin – Metroidvania style game for the Xbox.
  • “Syntropy” – Platformer (my favorite type of game) for an unknown platform.

And some projects that have been cut out:

  • DigiSync – Facebook contact syncing app for iOS.
  • Facepalm – Facebook novelty app.
  • Dragon Fierce – A top-down arcade game for iOS.

Looking forward to posting updates on these projects!

Advertisements

*ugh* Facepalm!

Hopefully coming to the app store soon! (I submitted it not too long ago)
What is it, you ask? Just the ultimate anti-social networking app!
Jokes aside, it finds people who have removed you from their facebook among other things. (like who stalks you the most) So far it’s the only one that does this retro-actively (AFAIK), which it does by parsing old wall posts and inbox messages in a convenient algorithm I wrote.
Now I can get back to work on Ultra Troopers!!!!!!!!!!!!!!!!!
mmm… tasty unfinished trooper sprite

New App, A Bit Of Conflict, Site Redesign?

I’ve been completely bailing on both Ultra Troopers and Maiden Days, so I figured writing about it might motivate me back to work!

I have utterly failed in moving forward with any of the intended designs for either game, and have decided to down scale Ultra Troopers quite a bit so I can finish it by the competition deadline. As for Maiden Days, it’s been put on the back burner for now, and for good reason. Maybe finishing Ultra Troopers will humble me into down sizing Maiden Days. (cause right now, it definitely suffers from feature creep, although I still feel it’s doable within the next couple months)

Anyway, to the root of the problem. I’ve been working on another app, which may have some financial promise. I don’t enjoy postponing work on the games (I enjoy working on games much more than other apps) but I’m feeling pretty broke right now, and I’m feelin’ this idea quite a bit. The best part for me is the specific behavior of this program is not in other applications. (although, functional similarities are) Oh, and most importantly it doesn’t involve anything illegal and can go on the app store without being taken down.

In other news I’m considering a redesign of this site. I’m not sure how much I’ll be able to do considering this is a free wordpress account, but we’ll see!


Prismatic Core Failure We Require Assistance!

I thought I’d get into the habit of updating this blog weekly, just so that I can really monitor how much I get done. (Could be good, could be sad… could be really sad… we’ll see)
Onto the guts…
Have you ever felt like you were stuck on a problem for a while and the solution was right under your nose? This happens to me more than I’d like to admit. In fact it happened just earlier this week. Probably why I’m writing about it. Anyway, the situation goes as follows:

  • I’m programming an app that displays a list of people from your social network in a pretty table view with custom cells.
  • I want to organize these people alphabetically.
  • The request I send to the social network’s server returns all the “friends” in order of their ID which I presume is based on when they created their account.
  • I decide to create an NSArray to sort the names and then use that array to create an NSDictionary matching names with ID’s, respectively for the keys and values. (So Tim Cool is paired with 887525117) <–This is my Facebook ID for those wondering.
  • I then realize that in the unlikely case someone has two friends with the same name, I will have created the same key with different values! …F*CK
  • The solution (which took me much longer than it should’ve) is to obviously append the ID to the name, and then remove it when it’s displayed.
Code Within:
"- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView"

(note: I’m using an object “Social Friend” to store the name, picture, info, etc. – so the implementation won’t exactly match what I said above but you get the idea.)



//Create initial dictionary with full names tied to friend ID's.

NSMutableDictionary *friendDictionary = [[NSMutableDictionary alloc] init]; 

//This will be an all strings array

NSMutableArray		*fullNames = [[NSMutableArray alloc] init];

for (SocialFriend *f in friends) {

NSString *uniqueID;

if (sortType == kFIRST) {

uniqueID = [NSString stringWithFormat:@"%@ %@", f.fullName, f.myID];

}else if (sortType == kLAST) {

uniqueID = [NSString stringWithFormat:@"%@ %@", f.fullName_rev, f.myID];

}else if (sortType == kCITY) {

uniqueID = [NSString stringWithFormat:@"%@ %@", f.cityName, f.myID];

}

//add to dictionary and array 

[fullNames addObject:uniqueID];

[friendDictionary setObject:f forKey:uniqueID];

[uniqueID release];

}

//Sort the all string array (like magic!)

NSArray *sortedFriends = [fullNames sortedArrayUsingSelector:@selector(compare:)];

[fullNames release];

BOOL found=NO;

sectionsDictionary = [[NSMutableDictionary alloc] init];

//Now create friend array based on ordered friends

for (NSString *s in sortedFriends) {

SocialFriend *f = (SocialFriend*)[friendDictionary objectForKey:s];

NSString *firstCharacter = [s substringToIndex:1];

if ([sectionsDictionary objectForKey:firstCharacter]!=nil)

found = YES;

else 

found = NO;

if (!found) {

[sectionsDictionary setObject:[[NSMutableArray alloc]init] forKey:firstCharacter];

}

[[sectionsDictionary objectForKey:firstCharacter] addObject:f];

[f release];

}

return [[sectionsDictionary allKeys] count];

You’ll notice:

NSString *uniqueID = [NSString stringWithFormat:@"%@ %@", f.fullName, f.myID];

is how I append the two strings. Note that with the implementation above I never have to remove the ID from the string, because I link the uniqueID to an actual friend object. Find the friend then call the friend’s “firstName” and “lastName” ivars when I want to display the name in the tableview.

If I did have to remove it though it would look like this:

NSString *name = [uniqueID stringByReplacingOccurrencesOfString:f.myID withString:@""];

Questions? Comments? Ways to improve what I did? Let me know!

Sorry about the wordpress formatting too, anyone know how to change this shit?

-Tim