Posts Tagged ‘Development’

Project Name Generator is a GO!

There is much wootage on this day.

I submitted my first iPhone app, Project Name Generator, to the App Store a couple of days ago. At around 1:30 pm today I received a message from the iTunes store that it had passed review and was “Ready for Sale”. About an hour later it was available in the App Store!

Now I just need to market the thing.

Appstore Infiltration – Part I: Signup

Well I gave ’em my ninety-nine bucks and I’m waiting to become a gen-u-ine, bona-fide iPhone App Dee-veloper. The shopping cart and checkout process were very smooth, and that’s something I really appreciate since most of my day job consists of e-commerce development. A solid checkout process warms my heart. I’m feeling good about this so far.

As for ProjNameGen, my first app, I’m not quite ready to submit it yet but I have been able to get favorites saved to the little sqlite database and I got the favorites to display in a table on their tab.

Next I’m going to drop in the advertisement code. I need to research which network I want to go with. Then I need to make the Settings screen, where users can add words and…stuff. I’m not exactly sure what else I’m going to put there. I don’t want to scope-creep this thing.

I also need to add some more word categories and words, plus the ability to email generated project names, and delete favorites.

ProjNameGen: There are many like it, but this one is mine.

There are tons of random project name generators out there, but surprisingly few for the iPhone from what I can tell.  That’s where ProjNameGen comes in.  I spent an extremely frustrating but ultimately rewarding weekend bashing my head against my keyboard and threatening to cast off all trappings of technology and join an Amish village somewhere learning about Sqlite, honing my Objective C skills, and navigating the incredibly quirky and unfriendly XCode IDE.

The bulk of the app is done.  It makes random project names based on word lists for the first second and third words.  Right now the first word is always an adjective.

The little heart icon in the top right is for marking a project name as a favorite, and I haven’t coded up the functionality for that yet.  I’m thinking about making it a simpler icon – white with a punched-out plus sign so it goes with the minimalist feel of the app.

The Settings tab will have a few things for the user to play with.  You’ll be able to add your own words and enable/disable the first/second/third words.

The space at the top will be for advertising.  I’m going to document my upcoming struggle to get this thing into the app store.

Yoink! – an Addon for WoW

So my doodad-a-week project hasn’t been going as I’d hoped.  Too many things going on, and I have several toons to support in WoW.  One thing that has been going well is Yoink, my first addon for WoW.

Yoink is a pickpocketing stats addon that tells you all sorts of nifty info, including gold-per-minute, total gold, number of mobs pickpocketed, and how many healing potions and junkboxes you’ve pilfered from unsuspecting NPCs.

I have to say that programming in Lua is a blast.  My only complaint about it is the same beef I have with PHP, which is that there is no consistent naming convention for functions.  Other than that, it’s really slick and easy to pick up.

To learn the basics, I started out with the ShowMeTheMoney addon demo.  I like learning a new language/platform by typing in everything by hand first, then messing around with the IDE.  After I got the general gist of what was going on, I downloaded the WoW Addon Studio.  It’s built using the Visual Studio shell, so it was nice to have a familiar environment to work in.  While it’s very handy, it does have several quirks.  I’ve come to use it mostly for its syntax highlighting and intellisense, mostly.  I no longer use the visual editor except to browse through the various backgrounds, buttons and bling that you can use in your widgets.

One of the frustrating things I ran into while making Yoink was that events aren’t reported in the order they occur.  Anybody building Flash/Flex apps should be familiar with that happening.  Come to think of it, fellow Second Life scripters deal with the same thing.  It’s a big ol’ world of asynchronous event handlin’.

Yoink is in testing right now.  I’m publishing it via CurseForge, which is really nice since they act as your code repository (supporting git, svn, cvs, etc.) and have a very active addon developer community.

So yeah, that was fun and all, but I don’t see myself making a lot of addons for WoW.  I might make some class-specific utilities but I’m not getting involved in anything big.   Back to thinking about web games!  So there.

My Doodad-A-Week Project

Pretty simple plan: Make one game a week. Inspired by such projects as Game-A-Week and Thing-A-Week, I decided this will be a good way to get off my butt and start learning the various technologies and techniques I need to.  I was nudged into it by this post on Smashing, as well as recent events and the coming new year.

And I don’t plan on limiting this to just video games.  I’m going to make some board games; pencil-and-paper RPGs; games of skill involving household items.  Anything goes!

The technologies I plan on learning/using are:

  • Silverlight 4
  • Flex 4
  • jQuery
  • YUI
  • Lots of CSS
  • GameMaker
  • BlockLand
  • ASP.Net MVC
  • Python

…and whatever else that catches my fancy.

Micro-Rant: I’m sure a lot of my focus will be on mobile web games.  It’s a market that is woefully underdeveloped – just look at Apple’s mobile web games page.  I think Apple doesn’t emphasize web games/apps because they can be used by anybody with a browser.  And as much as I love their stuff, Apple is all about proprietary.  Notice there’s no Flash on the iPhone?  It’s not a technology issue.  It’s because once an app or game is written in Flash, it’s available to all platforms with little or no additional coding.  So what incentive would a developer have to write something in that god-awful Objective C and Cocoa mess if they could do it in Flash and have it available everywhere? End of Micro-Rant.

Oh by the way, I’ve ditched platform-specific mobile app design in favor of browser-based mobile apps.  We have a little ledger web site I built a few years ago where we keep track of our spending, and converting it to a mobile version was total cake.  I was using it as a test project to learn native iPhone development, but decided I was wasting my time learning something that was so proprietary.  As far as I’m concerned, coding in Objective C is like going back to punchcards – except that the punchcards are wet and you have to punch the holes with a dull pencil that’s held in your teeth.  It’s the least-convenient language I’ve actually tried to learn.  But I have two really great books on iPhone development, though, if anybody’s interested!

I don’t know how long I’ll continue the project, but I’m sure I’ll take breaks and work on more involved projects here and there.  I should make Hauler my first release, as it should only take a few hours polish it up and get it playable.

Edit: I’m expanding the scope of this endeavor.  It was originally just Game-A-Week, but I’d like to not be limited to games.  I have a lot of little tools and handy things I’d like to build and this weeklong development cycle is perfect for them.

Flex Quirks I Learned About Today

1) Class names in Flex “css” cannot have underscores.
2) backgroundSize is percentage-based, and is based on the size of the container, not the image. Handy! Inconsistent and weird, but handy.

Building yet another game…Hauler!

I’ve been working on a Flex/Flash-based space commerce game for the past few weeks. I’m taking an extended hiatus from WoW, so I have quite a bit more time to dedicate to living an actual life, and building my own games is part of that.

I’m keeping this one pretty simple. The concept is a tribute to classic commerce games like Dope Wars, Solar Wars, etc. – travel from place to place, buying and selling commodities. Make money, upgrade your vehicle, haul more cargo. Rinse and repeat. Every now and then an incident occurs at one of the locations that affects the prices of one or more commodities. There will also be occasional turn-based combat using extremely simplified stats and dice-rolls.

I had Solar Wars on my Palm Pilot years ago, and literally wore down a few spots on the screen from playing it so much. I hope to make Hauler visually appealing and just as addictive.

Once I finish it, I plan to port it to several different platforms including Silverlight, iPhone, and Android. Maybe I’ll even make a Palm Pre version…who can say? It would even be nice on a dumbphone like the one I carry.

I don’t have anything playable to show yet (it’s uuuuuugggleeeeee right now), but at this point I’m further along on this game than I have been on any game since I was a kid banging away at my TI-99/4A or C-64.

Flex 3 – Errors in the Problem Pane May Not Actually Be Where They Appear To Be

I just ran into a pretty weird problem during some Flex development that had me cursing and throwing things around the office…ok, not really, but it was still frustrating.

After getting the latest code from our source repository, I kept getting compile errors in Flex Builder but the line that had the error *didn’t even exist* in the file that was causing it to break.

Long story short: our designer had built various doodads in Flash to use as style components, then referred to those doodads in a stylesheet.  Any item in my Flex code that used those styles was breaking because Flex couldn’t find the object that the style was referring to.  But it gets even more interesting!

As you may be aware, when Flex Builder does a compile, it turns your nice, pretty declarative MXML tags into plain ‘ol nasty ActionScript before it does the actual compilation.  The *true* place in the code that was killing the compile was in fact in the generated ActionScript files.  And every place in those generated files where the Flash components were referenced was causing an error.

During the course of figuring this out, I checked the “save generated code” checkbox (it’s in the Project properties) which gave me a nice folder full of ActionScript files (generatedCode, i think it was called).  Guess what was in there?  The lines with errors.  Through those files I was able to figure out that the style stuff was causing the problem.

But if I got latest code, why wasn’t the CSS finding the nifty Flash doodads?  Great question.  It’s because I needed to add the SWF (or SWC, or whatever you use) as a library reference in my project.

Seriously, Oracle…?

OK, so it looks like Oracle databases don’t have a quick, easy, non-triggery way to do an autoincrement the same way MS SQL, MySQL, postgres, and every other database on the planet have.  You have to create a “sequence” and then create a trigger to run use that sequence whenever data is inserted into the table.

Seriously?  Wow.

One page I came across in my search for a non-shitheaded way to do this describes this as being a more flexible way than having an auto-increment.  Go to that page and check out the code for MSSQL’s way vs. Oracle’s way.   One line of code versus about 20, plus you have to do it in 3 separate steps.  Using that page’s definition of “more flexible”, I guess a gnawed piece of bone is more flexible than a backhoe.

I imagine Oracle DBAs and developers probably have some quick scripts to let them add incremented keys more easily.  I’ll have to dig around and see.  Considering how much effort Oracle puts into their products as far as scalability and performance, I’m really surprised to see this kind of glaring omission.

Excellent indy game dev post – Asterope by Niklas Wahrman

http://www.gamedev.net/reference/articles/article2570.asp

This guy hits the nail on the head so many times in this article.  He refers to a lot of development ideas that I tend to agree with, such as the “Ready, Fire, Aim” approach…just build it and stop overthinking!