Just the other day I got out of bed and, instead of making coffee and walking the dog, I got my phone, checked my email, and discovered my site had been hacked. You would think that, given the number of times I have messed with the morning’s natural order with horrible consequences, I would know better than doing anything before coffee, but then again my statistics professor instilled in me a firm disbelieve in the correlation/causation combo. The morning was therefore spent in a cranky, non-caffeinated mood, dealing with security issues, updates to my website, and a bunch of whining from both me and the dog. Continue reading The Art Style of Lasting Legacy
It has been quite a while since I wrote the last article in the Core Animation Games series. If you remember, in it I complained bitterly about the CA scrolling classes, and how none of them filled the ticket. To recapitulate, these are the 3 things I needed:
- A window into a coordinate system plane populated by “objects”…
- that smoothly moves through it by remapping how its borders map to that underlying plane…
- and loads the objects to be displayed as they are needed, while keeping memory requirements in check.
So let’s explain how to do that with Core Animation, and as a bonus we will do parallax scrolling, talk about some graphic optimizations, and show you flying cupcakes.
It is a sunny (for once), beautiful summer in the Pacific Northwest and, as usual since you went indie, you are sitting at home working. Any other day you would be cranky at this hour of the day, jealously looking out the window at the joggers running around the park. They are all slender and happy, their long hair moves in slow-motion, their immaculate iPods probably playing something from the Mamas and the Papas; you can see they are enjoying themselves. There is not even one of the Jell-o wobbly ones left; those all gave up last month and by now are probably eating s’mores, sitting in the shade of their RV in some beautiful locale. Oh, how you hate them all.
Last blog post got quite a few comments, all related to the future of iDevBlogADay and the quality, or lack thereof, of my taste for telefilms. Since I was way more interested in hearing about this second subject, serve this as the last you will ever heard of iDevBlogADay in this blog.
Hey, it’s July already! Does time fly or what? I guess is time for a status update and see if I pick up blogging again (didn’t I create something to help with this? So much for that, is not going to be my turn in ages!).
In any case what better way to talk about the last 5 months than to do a quick recap of my old list of evil projects.
So here we are, one week after I announced the upcoming changes to iDevBlogADay and if you check the site right now you will see I have already some of them online today.
As we did with the first version, I decided to make the new design live early, get some feedback, and improve it with your suggestions. Better to have something out, even with imperfections, than to make you wait forever for it, then never release it.
It has been kind of a hectic week. Next week I am attending the Game Developers Conference in San Francisco, a first time for me. It should be fun, and I promise to write about it when I come back. Of course, since I was doing this, I had to get off my ass and design some business cards! Designing something for yourself is always the most difficult thing, but nothing better than a deadline to make it happen. I am pretty happy with how they turned out (thanks Owen for recommending moo.com!).
Noel and I have also been preparing the beta release for Casey’s Contraptions. If you are interested and have an iPad lying around, I think you are still in time; just send Noel a note. To top it off, I got a cold that is making the fan of my computer sound like elephants running around my ears. By the way, one of those nights I could not sleep I also finish the scrolling background for the elephants, including randomly generated tiled paths…
So anyway, that is my excuse in case the whole iDevBlogADay site goes down in flames while I am partying. Why did I have to do it this week??? Heck if I know :) But let me give you the rundown of the changes.
iDevBlogADay started about 8 months ago. If you are reading this post you probably know what it is all about, but a quick recap for those new to it: every day of the week, two developers write on their own blogs about whatever they prefer. They need to do it every week, for as long as they can, on the same week day. For example, I am right now sharing Wednesdays with Gareth Jenkins. If for any reason one of the authors doesn’t publish anything on his assigned day by midnight PST, he is put at the end of a “waiting list” (unless he prefers to call it good), and the first person in that list takes his place.
As you can see the rules cannot be simpler. That’s how it was intended from the beginning, mainly because if there was more rules somebody would have to enforce them. Take for example the “you can write about whatever you want” rule. If it was instead “write about this particular subject”, it could be totally open to interpretation; what is good for me may not be good enough for you. I would then become more of an editor, and iDevBlogADay more of an online publication, with schedules, style guides, and who knows what else. At the end it would be less successful in what it really is all about: to make people write. So it was determined that less rules meant less ways things can be unfair. The “you don’t post, you are out” is the kind of cut-and-dried rule that makes it all work with the least possible friction.
But iDevBlogADay has been evolving. With almost 500 posts under its banner, and more than 60 people waiting their turn, is clear that it cannot go any longer without some changes. And those changes, whether I like it or not, are going to require some new rules.
This week my post is going to be necessarily short. Noel and I have been working on preparing the first beta for Casey’s Contraptions, and there is still plenty to do before our intended milestone on Friday. He is deep at work squeashing bugs and working on loose ends, while I have been working on creating levels. Yes, you could say I got all the fun while he was hard working, but somehow solving those bugs always involves the rag doll thrown around, poked, squashed, and generally mistreated during his tests (I have this theory that is all due to his repressed feelings as a game developer that doesn’t want to make violent games; he is probably dying to make a zombie FPS). Anyway, look at the pretty thumbnails of my levels!
I still have plenty to do before Friday, so you will have to tune in some other day for part 3 of the Designing Casey’s Contraptions series (if you have not read the previous posts, they are here, and here). While the more artsy readers wait, the coders will have another (small) ration of… Core Animation (I bet you were not expecting it, given the title of the post and everything).
Following with last week’s post on designing the interface for Casey’s Contraptions, and since I get lots of questions about it lately, I am going to continue with how I create the game assets themselves. Yes, this means there is going to be a part 3 with the rest of my UI misadventures next week. Sorry about that.
All the drawings you have seen, from the first sketch I sent Noel to the later interface designs, were created in Adobe Illustrator. Vector graphics allow me to scale assets without losing quality, adjust shapes, and change colors easily. I know plenty of iOS artists use Flash, but I am way more used to the Illustrator tools.
From time to time people ask on Twitter if there are cheaper alternatives to Illustrator. The truth is there is nothing out there that comes even close to the power and flexibility of Adobe’s tools. Since I have to be cheap (life of the indie :P) what I do is not buy every release (I am still using CS3 right now). If you have an old version of their products the upgrade price is usually more affordable. Educational discounts are also really nice if you are a student.
I also use a Wacom tablet, a 6×11″ Intuos 3 I got a while ago and had not seen much use until recently. The usual question I get about buying one of these is how big it needs to be. I feel more comfortable with something around letter size, that allows for some arm movement. There is a world of difference between even the smaller tablets and using the mouse though.
That’s not my arm. My arm is way hairier.
But my Wacom is like that one.
Some people like to sketch first on paper, scan, and then clean up and color with Illustrator or Photoshop. I did that at the beginning, but the more used I get to the Wacom, the easier it is to just start from scratch directly on a blank document on the screen. I still draw doodles on paper any time I can; even if you don’t think you have any artistic abilities, all you really need to get better is lots of practice, and drawing a variety of subjects so you expand your visual vocabulary (by the way, Aaron Diaz’s blog is worth its word count in gold for any aspiring illustrator, bookmark it!).
In Illustrator I use both the Brush and the Pen tools extensively. I have a variety of brushes I created for Casey’s look, but they are all basic calligraphic brushes of different sizes, with size dependent upon how much pressure I exert with the Wacom’s pen.
Normally I use the Brush to draw the outlines, then the Pen to both simplify lines that got too many points and create color areas. I will get to coloring in a bit.
Last week I posted a couple Casey’s Contraptions screenshots as intro to yet another Core Animation technical rambling. One of the images, my latest try at designing the “Level Completed” screen, got a few interesting comments from other designers, both in the here and on Twitter. These screens take a long time to get right, and although people playing the game usually spend just a few seconds on them, they make the difference between a seamless experience and one with harsh continuity bumps.
Today I wanted to review a few of my own “failed” designs for Casey’s Contraptions. And I quote failed because these are a normal byproduct of development; to know what works, you need to create, analyze, and finally discard lots of things that don’t. Discarding is hard, but is also going to help me explaining another pet peeve of mine: the widely accepted concept that design is all about the looks. You will notice that some of the discarded designs are prettier than the final ones, and I will try to explain why they were still a failure.
A final disclaimer: Casey’s Contraptions is still pretty much in development. Whenever I say “final”, read it as “current” :)