tag:blogger.com,1999:blog-59275445812917869492009-06-19T18:23:22.795-06:00The Code Zone Bargain Basement BlogImparting Game Development Wisdom of dubious quality for eight years running!John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.comBlogger1114125tag:blogger.com,1999:blog-5927544581291786949.post-34065732634069698102009-06-17T09:30:00.002-06:002009-06-17T10:11:39.667-06:00Collecting my thoughts.Putting Appcelerator Titanium on the back-burner for the time-being, as I've deemed it to be not-as-yet mature enough to solve all of my problems. Much as I'd like to build everything with free tools, the maturity's not yet there. It'll be there when I need it (around Android/Blackberry time) and in a better state in the future.<br /><br />So I'm switching gears and going with maturity for now. And that means C and XCode and suchlike. Unfortunately my little Mac Mini isn't in a state where it can write iPhone stuff. First off, it's got OSX 10.4, and OSX 10.5 is necessary for iPhone development. That's $130. I'd like to just leapfrog to 10.6, as there's a $160 10.4-to-10.6 package that's gonna include all of that iLife/iWork/iWhatever stuff, but that's not happening until September and I don't wanna wait until then. I don't use the Mac for everyday productivity stuff anyway, so the iWhatever stuff isn't that big a benefit.<br /><br />Also I need more memory. The Mini's got 512mb which'll run 10.4 and 10.5 but won't run 10.6. 10.6 isn't a must-have to develop iPhone, but most stuff on the Mini runs about as fast as an ox pulling a U-haul trailer right now, and 2gb memory upgrades are now cheap ($35 shipped), so I have that in the mail and will mess with the plastic spatulas (no, really, you need plastic spatulas to open a Mac Mini) when that arrives.<br /><br />And I'll likely get a new processor too. This is a first-gen Intel Mac Mini and contains a "Core Solo" processor (AKA a Celeron, but Apple can't call it that after their old campaign to rebrand Celeron as "Decelleron" when they were still pretending that PowerPC chips were faster). I looked it up and the chip's not soldered in and you can slap a dual-core into the original Intel Mini and it'll recognize it. Only problem is that the Mini is put together a bit like that magic-demon-puzzle-box thingy in "Hellraiser" and you gotta disassemble the whole danged thing to get to the processor.<br /><br />And Shelly's pestering me to be vigilant about the process so my mind don't wander. So the process thus-far is as follows. . .<br /><br />1. Come up with fabulous mobile game idea (already done)<br />2. Document idea (will do by Friday)<br />3. Install OSX 10.5 into Mac Mini so I can install iPhone development stuff<br />4. Install 2gb memory upgrade when it arrives so the Mini won't be quite so pokey.<br />5. Develop iPhone app in C, most likely using Cocos2D for the presentation layer. I'm not wild about the process, but it's undoubtedly mature (squillions of games having been developed, used, and deployed with this system), so I won't complain much.<br />6. Simultaneously with 5, order a dual-core processor for the mini, re-disassemble and install processor. Hopefully the Mini will then be even further from pokey than in step 4.<br />7. Finish iPhone app.<br />8. Get app approved by content police.<br />9. Deploy and sell game for free or a very low price (this is my "getting my feet wet" project so I'm not shooting for big big profits with this go-round).<br />10. Return to step one and repeat process with a larger-scope game, eliminating the upgrade steps as my Mac Mini is now hopefully quite beefy enough to develop reasonably.<br /><br /><br /><br />Speaking of processor upgrades, I had a really weird thing happen on Shelly's machine. It just got slow. And not just a little slow. A lot slow. We're still not sure exactly what the deal was, but it just got really slow. At first I thought it was software. Perhaps something got installed that was running in the background and hogging up all the CPU. But it never seemed to improve. Sometimes we'd get a brief respite, but it'd inevitably go right back to being slow again.<br /><br />Just for grins, I ran that Windows Experience Index that came with Vista, and the CPU was scoring itself as 2.2, which is almost comically slow. As a comparison, the Celeron in my cheap laptop runs at a 3.9. The identical system (my machine across the room) had a CPU index of 7.1. Clearly something was wrong. A quad-core machine shouldn't get a 2.2.<br /><br />Finally I got a light bulb above my head. Shelly's computer is pretty-much identical to mine. I plugged Shelly's drive into my computer and booted it up. Given that my computer is pretty-much an identical machine to hers, it should give similar results. And the Windows Experience CPU index registered 7.1, which means that the problem was NOT software. If it was software, it would run slow no matter what machine it was plugged into.<br /><br />So a couple of hours and a motherboard later Shelly's computer was back together, happy as can be and running quick as a quad-core machine should run. No idea what'd be happening to make it get slow like that. But it's one of those things that you can only wrestle with for so long before you just have to replace stuff until the problem goes away.<br /><br />Bleah, expensive problem. Anyone want a slow motherboard?<br /><br /><br /><br />Also I replaced the CPU on my laptop. Just for grins, I googled to see what I could do to make my little $350 "Wal Mart Special" Acer laptop faster. And it turned out that my laptop is about the most upgradable one on the market. Everything's accessible from a panel on the bottom, and it runs dual-core CPU's just fine. So I ordered myself a dual-core CPU and prepared to disassemble the whole danged thing. The whole process ended up taking about ten minutes, and my little cheapo disposable laptop is now pretty quick.<br /><br />So I'm getting a little more life from the cheapo computers.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-3406573263406969810?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com1tag:blogger.com,1999:blog-5927544581291786949.post-67980741410709382992009-06-09T12:13:00.002-06:002009-06-09T12:36:43.972-06:00Early adopter painsBeen playing with <a href="http://www.appcelerator.com">Appcelerator Titanium</a>, which is a gizmo that lets apps that are actually browser stuff under the hood (html, js, python, ruby) act like first-class applications. And they just announced at WWDC (the apple developer conference where they announce stuff that's important for developers like "the iPhone now has a clipboard", mmmyeah) that they're going mobile. Imagine Adobe AIR for mobile and you get the idea.<br /><br />Whether this is yet-blessed by the iPhone content-police is still not stated. I think that's a big deal-breaker, so I hope they're working DAMN HARD behind the scenes to make that happen, but I digress.<br /><br />And my good pal Don Thorp is also involved, so I'm being a good pal and am getting bugs. I realize that this is an ambitious project (only took Adobe five years to go from Adobe Central to AIR) and has a thousand ragged edges. Also you're still shmoozing people with free T-shirts and suchlike, so who knows when bugs will actually be fixed.<br /><br />And the fact that I'm posting bugs here on the Bargain Basement Blog is problem number one. . .<br /><br />1. The bug-tracker doesn't accept my login that I already set up with the website. Furthermore, the bug-tracker apparently requires that I set up an account to tell you where the bugs are. Bug reports are gifts to YOU, not gifts to me. To make me jump through any kind of hoops to tell you where the bugs are is a Bad Thing. Accept bug reports with good grace and a minimum of fuss on the part of the reporter.<br /><br />So fix that.<br /><br />2. The login thing on your site is broken. If I go to the login page and enter my name & password, I'm taken to an "update your profile" form to enter more stuff about myself (city, state, twitter ID). If I fill in those fields and press "submit", the form clears (Firefox 3.5, under Chrome it works). Even if the form is accepted, I never actually log in to the site. If I back out to the main page, I'm not logged in.<br /><br />3. I got a magic code to beta-test the mobile version. If I try to enter this code on the "create an account" page, I'm told that my login email already exists in the system (which it does). I have no way of knowing if I'm actually registered with the program.<br /><br />4. The little titanium throbber-icon in the upper-right corner of the app tells me that I can now get version 4.1.1 or something like that. If I click the link, nothing happens. If I go to the site to try to download it manually, I can only download the version that I already have. NEVER allow people to download different versions from different places. That's a one-way ticket to trouble. Think Firefox -- when Firefox pesters you that there's a new version of something, you can rest assured that it's already available on their download page.<br /><br />5. The IRC tab worked for a bit and then stopped. Pressing "connect" just tells me "one moment" forever. It might be fixed in the next version, but I can't find out because I can't get the next version (see item 4).<br /><br /><br />I have an actual bug with a compiled app, and I'll post that as soon as I'm able. kthxby.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-6798074141070938299?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com1tag:blogger.com,1999:blog-5927544581291786949.post-87071017014872745022009-06-02T08:11:00.004-06:002009-06-03T19:09:56.721-06:00Handheld Pains OrganizedOkay, still not developing for the iPhone yet, but I'm closer. Things have gotten both clearer and more fuzzy. So I'm making myself a table with the available technologies on it. . .<br /><br /><span style="font-weight: bold;">Technology:</span> Objective C<br /><span style="font-weight: bold;">Portability:</span> Nil. If I write an iPhone game for the iPhone, it stays on the iPhone forever. If I wanna later move that game to Android or Blackberry or Windows Mobile, I rewrite it.<br /><span style="font-weight: bold;">Pros:</span> It's Apple-approved<br /><span style="font-weight: bold;">Cons:</span> I friggin' hate Objective C<br /><span style="font-weight: bold;">Price:</span> $99 for the developer program (and I presume this $99 will still be necessary for all the other technologies below.<br /><br /><span style="font-weight: bold;">Technology:</span> Torque<br /><span style="font-weight: bold;">Portability:</span> Maybe. I haven't seen anything saying that Torque will be available for other portables, but it's certainly do-able.<br /><span style="font-weight: bold;">Pros:</span> Available right now<br /><span style="font-weight: bold;">Cons:</span> Requires a 5-second ad for Torque to display before the game starts<br /><span style="font-weight: bold;">Price:</span> $500 for the iPhone engine. $250 for Torque Game Builder.<br /><br /><span style="font-weight: bold;">Technology:</span> FlashGap or Appcelerator Titanium (yes I know they're different in that FlashGap uses the existing browser and Titanium bundles its own browser, but they're conceptually similar)<br /><span style="font-weight: bold;">Portability:</span> Quite good. Titanium hasn't nailed down their mobile plans yet, but I'd be surprised if it didn't include pretty much everything. It's currently desktop-only but I suspect that'll change.<br /><span style="font-weight: bold;">Pros:</span> Would probably be the simplest way to get my games up in a hurry.<br /><span style="font-weight: bold;">Cons:</span> Apple is denying FlashGap applications on general principle, and that's a big deal-breaker. No word about Titanium yet, but if I don't get word that they're working with the content police that they won't be FlashGapped, then I'll have a problem.<br /><span style="font-weight: bold;">Price:</span> Free<br /><br /><blockquote><b>Note: There's an Appcelerator Titanium beta launch-party <a href="http://www.appcelerant.com/titanium-beta-launch-party-wwdc-june-9th-6-9pm.html">here</a> that promises to have <a href="http://www.appcelerant.com/titanium-beta-launch-party-wwdc-june-9th-6-9pm.html">"A Big Surprise"</a>. Whether the surprise is something at the party or is something having to do with Titanium isn't clear. Here's hoping I'm pleasantly surprised.</b></blockquote><br /><br /><span style="font-weight: bold;">Technology:</span> Haxe for iPhone<br /><span style="font-weight: bold;">Portability:</span> It's apparently using GCC as its compiler backend and SDL as its display-layer, so provided SDL gets ported, it will likely get ported too.<br /><span style="font-weight: bold;">Pros:</span> Would probably be the simplest ways to get my games up in a hurry. . .that's actually compiled and would be approved by the Apple content police.<br /><span style="font-weight: bold;">Cons:</span> Is just a proof-of-concept now. Has a truly frightening build-chain to get from Haxe code to iPhone native.<br /><span style="font-weight: bold;">Price:</span> Free<br /><br /><span style="font-weight: bold;">Technology:</span> Unity3D<br /><span style="font-weight: bold;">Portability:</span> Haven't heard any indication that it's moving to other platforms, but I wouldn't be surprised if it did.<br /><span style="font-weight: bold;">Pros:</span> Seems like the most mature of the lot and there have been some very impressive games done with it.<br /><span style="font-weight: bold;">Cons:</span> Is 3D all the way, but I've seen 2D stuff done with it (presumably just <a href="http://www.youtube.com/watch?v=pvfVDczQXOY">very thin 3D objects</a>). You have to open your game with an ad for them unless you pay 'em another $2500<br /><span style="font-weight: bold;">Price:</span> $200 for the IDE and $400 for the iPhone engine<br /><br />So, did I miss any technologies? I know there are a few "infant" technologies out there, like a Ruby and a Python interpreter, but those looked pretty far from mature and even if they were, they'd likely suffer the same problem as FlashGap. Haxe would fire on all cylinders if it wasn't just a proof-of-concept.<br /><br />The other question is what to develop first. Shelly's of the opinion that I go with Android first and do iPhone second just so I could be a bigger fish in a smaller pond. Of course, this would affect the list above pretty greatly. It'd also be quite a bit cheaper. Far as I know, there's not an Android development technology yet that costs money :)<br /><br /><br />Comments are welcome.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-8707101701487274502?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com1tag:blogger.com,1999:blog-5927544581291786949.post-37253601957729731482009-05-19T10:34:00.000-06:002009-05-19T10:35:14.647-06:00Handheld painsAhh, handhelds. I friggin' hate developing for handhelds.<br /><br />I'm more or less officially between projects, and I'm getting pestered to move some of my games to handhelds, specifically iPhone. While it appears that iPhone and Android and Blackberry and Windows Mobile are about 90% the same and it should be logical that I ought to be able to make some kind of cross-platform effort, it's simply not the case.<br /><br />First off, Apple doesn't want it. Apple's finally the 800 pound gorilla of a platform, and they're taking advantage of it in a big way. When your market share is 5%, you can't really dictate terms for what's gonna appear on your platform, so no matter how much the term "port" makes you cringe you live with it.<br /><br />When your market share is much larger (although in the grand scheme of cellphones the iPhone's market share isn't all that huge, but it does dominate in the "phones that people actually download stuff to", demographic, thanks mostly to their well thought-out "app store", but I digress), you're in a better position to dictate terms.<br /><br />And their terms are "we get to content police our stuff however we want". And right now that pretty much boils down to "no ports". Apple's got a really weirdly-worded "no third party API's" clause in their content-policing terms. It was apparently written by marketers because it doesn't actually mean that. It basically means "your app must be written in Objective C and if we get a whiff that something's being interpreted, even if it's being interpreted by an interpreter we included in our phone, then you're out". This is happening right now with a gizmo called <a href="http://phonegap.com/">PhoneGap</a> that allows you to write apps using Safari as the presentation layer and javascript as the back-end, but with all the appearance of being a native app (ala Adobe AIR minus Flash). Some nice stuff has been written with it, but Apple's content-police suddenly started giving the thumbs-down to PhoneGap developed stuff.<br /><br />There's also <a href="http://titaniumapp.com/">Appcelerator Titanium</a>, which is a similar AIR-esque effort that's being helped along by my good pal Don Thorp. While mobile devices are also in its roadmap, unless I see something from Papa Bear Apple that they're not gonna dump Titanium-written apps on general principle, I can't invest the effort.<br /><blockquote>Mind you, iPhone has a conspicuous exception to this rule in Unity3D, which is a javascript-Driven 3D engine. In this case, it's one of those "well, we'll make an exception for coolness", as there are some very cool Unity3D games.</blockquote>There's also the probability of genuine according-to-Hoyle Flash appearing on an iPhone. It's no secret that Flash will appear on iPhones as well as Android phones. And if it did appear, it would make my porting efforts trivial, but there's still the question of app support. There's the distinct possibility that Apple will deploy Flash only as a plugin for their browser and not as a generalized runtime engine. While Adobe AIR on an iPhone would usher in a big rush of applications, it does bring up the whole "port" thing that's made Apple cringe since the 1980's. <a href="http://www.twhirl.org/">Twhirl</a> on an iPhone may be a terrific thing, but if I can also install the same Twhirl to an Android/Blackberry/WindowsMobile, then Apple's magic of exclusively-written apps is gone.<br /><br />So right now I'm working on the assumption that Flash may appear on the iPhone, but they're gonna hobble it in the same way they're hobbling Safari's javascript interpreter - it's useful for showing stuff in their web-browser, but don't plan to see your app in the app-store if you try to use it anywhere else.<br /><br />Bottom line seems to be that if you want any chance with the content cops, you need to write your app in native Objective-C or in Unity3D. And, unlike OpenGL, Unity3D isn't a 3D technology that can also do 2D stuff if you set it up nicely. And my stuff's all 2D. So I'm thinking Objective-C it is. And an Apple-only codebase. Just the way Apple wants it.<br /><br />Although I'm still thinking hard about Unity3D because I haven't written any C in a LONG time and the thought of learning a C-based OO language that's not portable to anything and has no garbage collection makes me throw up in my mouth a little. At least with Unity3D, I could recycle a little of my code. Although the thought of having to make 3D models of everything makes me weary.<br /><br />Thoughts?<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-3725360195772973148?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com0tag:blogger.com,1999:blog-5927544581291786949.post-78990904533323360592009-05-18T18:47:00.000-06:002009-05-18T18:48:51.195-06:00Get yer brute onJust for giggles, I made up a gamedev.net clan for mybrute.com. For those uninitiated, mybrute.com is a very silly little game in which you pit your character (your brute) against other brutes. As you progress, you'll get more weapons and abilities.<br /><br />It's mildly fun, and it only takes about five minutes of your time. Feel free to try it out.<br /><br />Here's my brute's URL if you wanna make your own brute to fight her. Note, though, that my brute (Shmooky Booky) is at level ten and will most likely mop up the floor with you if you're just starting out.<br /><br /><a href="http://shmookybooky.mybrute.com/">http://shmookybooky.mybrute.com/</a><br /><br />Be sure to give your brute a password so you can log in later and fight more. If you have a brute and you want to join clan gamedev, here's the URL to join up.<br /><br /><a href="http://mybrute.com/team/15319">http://mybrute.com/team/15319</a><br /><br />The clan will hold up to 50 members. I think I have to approve the members, but I don't plan to be picky about it. Just join up and say howdy.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-7899090453332336059?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com0tag:blogger.com,1999:blog-5927544581291786949.post-8923017052818976642009-05-05T09:51:00.009-06:002009-05-05T11:27:58.383-06:00How to write a losing pitch for your indie game projectFirst off, sorry that thecodezone.com is down. My hosting provider is working to bring things back up, but things are going much more slowly than I thought they would.<br /><br /><br />Now then, on to the title. About six weeks ago I got pestered by one of the Mochiads people regarding their <a href="http://braveandtheboldcastingcall.mochiads.com/">"make a batman game" contest</a>. I saw the contest but hadn't pitched a game design because I had a couple of questions regarding licensing of the winning entries. Once they allayed my fears that they I wouldn't be selling off any IP or rights to my own stuff, I pitched a game that'd been rattling around in my brainpan for a little while.<br /><br />And it was a puzzle game. With explosions. But I thought it had a little more to it than that. I gave a hard look to Meltdown and Pop Pies with an eye towards what makes those games more popular than my other puzzles. And in both cases, it came down to that lizard-brain gratification you get from getting something REALLY right. In Pop Pies, it's that really bigass explosion of 30 or 40 pies.<br /><blockquote>And incidentially that's one of the reasons I made the explosions sequential things in Pop Pies 2. If you make a really big explosion in PP2, not only do you see a lot more sploding, it goes on for a lot longer. Some people don't like the longer explosions, but most prefer the giant gratifying RATTA TAT TAT you get from blowing up half the board in one shot.</blockquote>And it's similar in Meltdown. The gratifying part of Meltdown is setting up the board just right so that when you touch off one big atom, it sets off that big chain reaction that blows up the whole board. When the smoke clears, the board is empty and you're well ahead in points and particles. Happy happy!<br /><br />It's what Jesse Schell referred to as "the ice cream" in one of his talks at GDC Austin. When he was designing games for the cool-but-didn't-catch-on <a href="http://en.wikipedia.org/wiki/DisneyQuest">Disney Quest</a> interactive theme parks, one of the design decisions was "how much ice cream do we give 'em?" when playing a game. When you're playing Super Pirate Battle, how far should a newbie player be able to get?<br /><br />And that's a valid question, especially with the Disney Quest video games because the majority of people playing the games will be playing 'em for the first and possibly only time, contrasted with the Mortal Kombat machine at your local pizza place that's available at a thousand other locations and can be played dozens of times.<br /><br />Should novice players be able to get all the way to the level-boss?<br /><br />The decision from above came down as "Give 'em the ice cream and the sprinkles and the whipped cream!", translated as "give the first-time players the broadest experience we can give 'em". This decision did make the games awfully gratifying (as I can attest when myself and Shelly and two other friends destroyed the evil "boss" pirate ship in a room-size four-player pirate game), but it hurt replayability pretty badly. Unless I bring along some new players next time I visit, I'm not going to be waiting in line to play the pirate game again.<br /><br />Back to the lizard-brain gratification or the ice cream or whatever. There's an event where you just know you did everything right and the game rewards you for it. And Pop Pies and Meltdown have that in the form of a big noisy "SHKLABOOM" that's all the validation you need that you're a master of the game.<br /><br />And I'd been toying with making more of that for Meltdown. Rather than a random Meltdown where you sometimes blow up the whole danged board and you sometimes limp to a half-blowed-up board, what about a puzzle-based Meltdown where you HAVE to wipe out the whole board with one shot? Similar, but not exact, stuff had been done before. And this Batman thing was happening. So I mocked up some screenshots with the Batman-themed clipart and backgrounds they provided and pitched it to the Batman overloads.<br /><br />And it didn't win.<br /><br />Not exactly sure why. Maybe the concept was too deep. Maybe the pitch was too thin. Maybe I misjudged the kitschy retro-feel that they were going after with the cartoon. Maybe explosions just aren't done in games anymore (as I can attest from a licensed "Marvin The Martian" cellphone game I wrote a buncha years ago where we BEGGED to make the objective "Destroy the Earth", but were reduced to "Fix your communications dish"). Maybe puzzles just aren't "twitchy" enough for the Batman cartoon audience.<br /><br />Feel free to post your own theories in the comments.<br /><br />I might still end up making it, sans-Batman of course. Only problem I see is that progressive puzzle games don't lend themselves well to scoring. And scoring is the basis for challenging. And challenges are the wind beneath the wings of a million facebook-friends playing your game. And that's where the money is. Some of my canned puzzle-games like <a href="http://www.thecodezone.com/games/ducktiles.php">Duck Tiles</a> just don't get many facebook eyeballs because there's not a good challenge motive. "Hey I just beat level 14 in Duck Tiles" just doesn't have the same one-upmanship potential as "I just scored 12,000 in Pop Pies 2, thus proving that I am superior to you".<br /><br />Here's the design. Not sure how seriously the licensing overlords are gonna take that whole "entries become the property of. . ." bit. It didn't win, so I can't much see the harm in it.<br /><br />Also that little "portfolio" bit at the end was a bit of "convince us that you can actually make the game that you envision". The winning games are gonna make up the backbone of a Batman-themed game portal, so they did want actual working games at the end.<br /><br /><br /><div style="text-align: center;"><span style="font-weight: bold;">Batman's Warehouse Wallop</span><br /></div><br />In a sequel-of-sorts to my chain-reaction puzzle game "Meltdown"<br /><br /><a href="http://www.mochiads.com/games/meltdown/">http://www.mochiads.com/games/meltdown/<br /></a><br />Batman must destroy the enemy warehouses/labs/hideouts by placing assets (most, but not all of which are explosive) on the board so that they'll all be destroyed with one shot from the batarang.<br /><br />To muck up the works, some of your friends (or innocent bystanders or lab techs) are trapped in the warehouse/lab/hideout, so you have to place the assets carefully so as not to hurt them. If you fail to achieve your objective of destroying the destroy-ables without injuring the bystanders, you'll have to start the level over. And you have a finite number of tries before the game is over.<br /><br />Unlike the original Meltdown, the puzzles will not be random but will be human-designed and will get progressively more difficult. In addition to the game itself, there will be a simple level editor (reachable from the main menu) so people can try their hand at building their own challenges.<br /><br />Also unlike Meltdown, you won't be wiping out a board with several shots. You need to place items and shots cleverly so that you can clear the board with a single wallop from the batarang.<br /><br />Finally, the assets will change throughout the game. Starting with simple barrels that explode and send shrapnel in six directions, you'll encounter shields that toggle on and off when hit, tanks of poisonous gas that must be avoided at all costs, and the like.<br /><br />I envision about 20-25 hand-built levels in the finished game, and they'll grow in difficulty from quite simple at first to nigh-impossible near the end.<br /><br />Also, new assets will appear as levels grow more difficult. For example, tanks of gas might not appear until level four. Toggle-shields in level nine, etc.<br /><br /><br />Here's the start of a fairly easy level. The items currently on the board are fixed and immovable. The assets in the corner can be dragged to the board to get it in a form so that you can achieve your objective with one shot.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Q4QvY8alCX0/SgBt26J60WI/AAAAAAAAAF4/uEBLLjU4EQo/s1600-h/batmanmockup1.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 240px;" src="http://4.bp.blogspot.com/_Q4QvY8alCX0/SgBt26J60WI/AAAAAAAAAF4/uEBLLjU4EQo/s400/batmanmockup1.png" alt="" id="BLOGGER_PHOTO_ID_5332382748897890658" border="0" /></a><br />Now I have the barrels placed, along with the rock to protect Blue Beetle from injury. I fling Batman's batarang at a barrel to explode it, sending flaming barrel-bits in six directions to destroy the other barrels.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Q4QvY8alCX0/SgBuA2hUwtI/AAAAAAAAAGA/13O0EiAx1YA/s1600-h/batmanmockup2.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 240px;" src="http://2.bp.blogspot.com/_Q4QvY8alCX0/SgBuA2hUwtI/AAAAAAAAAGA/13O0EiAx1YA/s400/batmanmockup2.png" alt="" id="BLOGGER_PHOTO_ID_5332382919721009874" border="0" /></a><br />Finally, here's a shot of the completed level. The barrels are reduced to smoke. Blue Beetle is safe behind the rock. Your objectives are accomplished, and you can move on to the next level!<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Q4QvY8alCX0/SgBuJmCeZvI/AAAAAAAAAGI/0og8E2WnXzU/s1600-h/batmanmockup3.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 240px;" src="http://3.bp.blogspot.com/_Q4QvY8alCX0/SgBuJmCeZvI/AAAAAAAAAGI/0og8E2WnXzU/s400/batmanmockup3.png" alt="" id="BLOGGER_PHOTO_ID_5332383069915473650" border="0" /></a><br /><br /><br />My portfolio of currently-available Flash games is at:<br /><br /><a href="http://www.thecodezone.com/playnshare.php">http://www.thecodezone.com/playnshare.php</a><br /><br />In addition, I have literally dozens of pre-Flash puzzle, arcade, and card games that I've written since the early 90's.<br /><br /><a href="http://www.thecodezone.com/games/retro.php">http://www.thecodezone.com/games/retro.php</a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-892301705281897664?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com0tag:blogger.com,1999:blog-5927544581291786949.post-52029947413425783952009-05-01T08:50:00.003-06:002009-05-01T09:54:52.182-06:00Several things today, as always. I intended to write this yesterday, but I ended up at a City of Denton land development meeting (it's a long story), so I write today.<br /><br />First off, I won the Silly Rage contest! It's a minor win, but a win just the same. For the uninitiated (and you are most likely uninitiated, as it was just invented a couple of days ago), "Silly Rage" is a budding twitter-meme (tweme?) in which you rage against something completely pointless. This was coined by Bill Corbett (of MST3K and RiffTrax and Film Crew and the script to that unfortunate "Meet Dave" movie last year). Basically he instructed us from <a href="http://twitter.com/billcorbett">his twitter feed </a>for us to rage against something pointless in 140 characters and tag it with #sillyrage. The top rage would win a fabulous downloadable prize worth $3.99. My winning entry was the following. . .<br /><br /><div style="text-align: center;"><em>johnhattan</em> didn't realize that a horse was a horse. Thanks for rubbing<br />it in with "of course of course", condescending TV songwriter pricks.<br /></div><br />(If you don't get the joke, then you're too young. Go back to watching Dora the Explorer.)<br /><br />I was actually co-winner. The prize was also given to another user for<br /><br /><div style="text-align: center;"><span id="msgtxt1654550813" class="msgtxt en">"..." Ellipses my ass. I see you, periods. Don't think you can be<br />a whole different punctuation just by traveling in groups</span>.<br /></div><br />Yes, it's a minor win. A very minor win. But whenever I get my funny validated it is a validation of my own fragile psyche. This win was tempered by two of my cousins saying they don't get my jokes. I can definitely see why, given the dry layers of subtlety in my humor.<br /><br />Oh wait. It was a joke about freakin' "Mister Ed". Never mind.<br /><br /><br />Okay, that was pointless. On to actual work. Work on my next game, a Flash-based followup to my endlessly frustrating "Head On Collision" game is doing well. At first I had a hardcoded "maze" like the original one here.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.thecodezone.com/games/images/retro/headon.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 426px; height: 462px;" src="http://www.thecodezone.com/games/images/retro/headon.png" alt="" border="0" /></a><br />The game, as I mentioned, is quite frustrating. You're the gray car going around the maze counterclockwise. The red car is going clockwise and is trying to kill you. You can only change lanes in the empty areas. You must collect up all the dots.<br /><br />The AI required in this game is dirt-simple and amounts to "get in the same lane as the player". And it's so effective that the game's difficult even if the enemy car moves randomly (especially in higher levels where there are two enemy cars). And, like the 70's era arcade original, your chief weapon against the enemy is that you can accelerate while they're locked into a single speed, so with a little planning, you can usually force your enemy to choose a track before you do.<br /><br />But one thing that'd bugged me about the game was that there were a couple of "deluxe" editions with non-square "mazes". <a href="http://www.youtube.com/watch?v=Qnbs4EVto9E">Here</a> is a fairly cheesy video of just this.<br /><br />So I decided that this version would not only have a non-hardcoded maze, but the mazes could change from level to level. So I dragged out my <a href="http://www.tilemap.co.uk/mappy.php">free level-editor of choice</a>, made some tiles, and drew up some levels. It took a few iterations of tiles, eventually coming out with lane-numbered tiles so the enemies could determine what lane they were in. I needed this because it's fairly trivial to figure out your lane in the above square maze, but this one is a mite more involved.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Q4QvY8alCX0/SfsTLkGTVRI/AAAAAAAAAE0/8S6O5iLTwUw/s1600-h/mappy1.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 263px;" src="http://3.bp.blogspot.com/_Q4QvY8alCX0/SfsTLkGTVRI/AAAAAAAAAE0/8S6O5iLTwUw/s400/mappy1.png" alt="" id="BLOGGER_PHOTO_ID_5330875673312711954" border="0" /></a>Thus-far it's working out fairly well. I'm still not sure how I'm going to handle the main menu and the progression and such. Is the maze above going to be level three, or will you choose this maze from the main menu and get to play it to its conclusion (you beat the maze or you run out of cars) and then you'll get a score and are returned to the main menu.<br /><br />One other thing I found interesting about the above video, a little after 2:10 in, the car reverses directions and is then going the same direction around the maze as one of the enemies. The arcade game (at least this version) played pretty fast and loose with direction. In my maze above there's still not a way to un-knot yourself and end up going the same direction as the enemy. I don't see why that'd be a problem with collisions or such, so I might give it a try.<br /><br />Also in my old version, the enemy cars were smart enough to never end up in the same lane together so I didn't have to worry about what happened if enemies collided. In the gordian knot mazes I can make now, that'll be nigh impossible to work around, so I'll have some kind of event if enemy cars collide. Maybe temporarily disable one.<br /><br />But I digress. One thing I learned from Pop Pies and Pop Pies 2 is that brevity is one of the keys to replayability and the "viral" nature of Flash games. Games that you can play for an arbitrarily long time don't do as well as games that you play for three minutes and then finish and get on with your life (or press the "play again" button). While games like my recently-released Think Tank could conceivably be played for an arbitrary time, in reality it gets so difficult around level four or five that you'll be toast.<br /><br />But this is an arcade game and not a puzzle game, albeit it does have strategic elements. People expect to collect all the dots and then move to the next level. They might resent playing several times until they manage to collect every dot just to be presented with a "good job collecting all them dots, your score is 5211 points. Try to collect 'em all faster next time."<br /><br />Also there's the "diamond versus ball of mud" element. The original "square" version of the game is taken down to its basest elements. I could certainly add little bonus gizmos that immobilize the enemies or collect every dot within a hundred pixels or stuff like that. From Pop Pies 2 I learned that adding mud to a diamond isn't really much of a problem. I added several little random helper bonuses to it, and it made the game more popular. While that does mean that there's less of a strategic element to the game (honestly, the best scores are as much due to luck as skill), people don't seem to mind so much the luck element as long as they get that lizard-brain gratification that comes from blowing up a truly colossal chain of pies.<br /><br /><br />And I did realize that "diamond versus ball of mud" is an obscure term, so I'll define. It was originally <a href="http://en.wikipedia.org/wiki/Big_ball_of_mud">used to describe programming languages</a>, but I find that it works better when defining small-scale games. A diamond is a game that is small and perfect. All of the elements fit together. You cannot remove anything from a diamond. And if you add something to a diamond, you don't improve it.<br /><br />A ball of mud is a game that's defined more by what is added to it than its "core". A perfect example of a ball of mud is SimCity. No matter what you add to the game or remove from it, it's still SimCity. Yes, there's a "core" game somewhere, but it's useless without some amount of mud.<br /><br /><br />And speaking of lizard-brain gratification and winning things, later I'll post some lizard-brain gratification that lost something. There's enough blog here for now, so I'll talk about it in a day or two.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-5202994741342578395?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com0tag:blogger.com,1999:blog-5927544581291786949.post-33640082204443756582009-04-21T11:33:00.002-06:002009-04-21T11:43:21.839-06:00Emailed high score reports updateI've been having a lot of problems lately with the emailed score reports. And the problems, for once, aren't really my fault. Fact is, if you have a bot that sends people emails, you'll be accused of being a spammer. This is despite the fact that:<br /><br />1. There are no ads in the emailed reports (not even ads for my own products).<br /><br />2. The system is entirely opt-in.<br /><br />3. The default is to NOT receive emails, and you have to check the "send me daily reports" box to get reports.<br /><br />Still, I get complaints from people that I'm spamming them, and my IP address seems to come and go on the "this is a spammer domain" lists.<br /><br />I long-considered removing the emailed reports entirely with the motivation that they're more trouble than they're worth. But I'm going with a bit of a simpler solution for now. . .<br /><br />I cleaned house.<br /><br />That's right. All 338 of you who previously received emailed reports have had your daily emails shut off. If you want to continue to receive the daily emails, then you can head over to the <a href="http://www.thecodezone.com/accountman.php">account manager</a>, click the "Edit Existing Account" tab, and turn your emails back on.<br /><br />Given my number of daily players, I figure the large majority of those 338 emails were getting automatically filtered into trash cans anyway. This way the few of you who still want emails can get 'em, and I won't have to tangle with the "you're a spammer" crowd for a couple more years.<br /><br />I hope.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-3364008220444375658?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com0tag:blogger.com,1999:blog-5927544581291786949.post-53945687378120413502009-04-14T09:41:00.001-06:002009-04-14T09:41:38.956-06:00Haiku Contest Results!Sorry about the delay. I wisely scheduled my book-contest smack-dab in the middle of "Adobe Week", in which I'm writing and/or posting a dozen reviews of Adobe CS4 or related products to Gamedev.<br /><br />I'm late in announcing, but I'm done now. Here were my judging criteria. . .<br /><br />It must have a real 5-7-5 syllable count. If you don't know what a syllable is, your loss. I had to dump some good ones because you monkeys don't know how to count.<br /><br />As a purely rhythmic point, it must have a tangible pause at the end of each line. An actual punctuation mark isn't necessary, but there must be some kind of break in the rhythm. If you do something like this. . .<br /><br /><center>I want the orange<br />book on my bookshelf right now.<br />Send it to me now.</center><br />That doesn't really count because the second line is just an uninterrupted continuation of the first line, thus making it a 12-5 haiku rather than a 5-7-5. Haiku is all about perfection in flow and meter, not just filling a syllable count.<br /><br />Some of the syllables were a judgement call. Can "business" be pronounced with three syllables? Can "Australia" be pronounced with four? I tended to go with my American-Illinois-Iowa-Arkansas-Texas mumble as the final judge.<br /><br />"Oranges" has three syllables, not two. My contest, my pronunciation.<br /><br />Cleverness gets my attention.<br /><br /><br />All that being said, here are my winners, culled from my blog on Gamedev and the mirror of the blog on blogspot.<br /><br /><br /><br />On the "cleverness gets my attention" front, I'm giving the blue book to this bit of coded haiku from gamedev user Ezbez. It would've been cooler if it actually compiled, but I'll keep that in mind for a later haiku contest.<br /><br /><center>while IAmWaiting():<br />for blueBook in myMailBox:<br />print "Yippee!!"; exit()</center><br />For the orange winner, I have this lilting piece of weepiness from blogger user Michael. Extra literacy-points for the rhyme and the correct spelling of "teem".<br /><br /><center>In all of our dreams;<br />Visions of orange books teem;<br />All are deserving.</center><br />Hope you enjoyed the contest. I'm sure there'll be more books to give away, and I'll find new and interesting ways to get rid of 'em. Thanks!<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-5394568737812041350?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com3tag:blogger.com,1999:blog-5927544581291786949.post-31788184504542016752009-04-07T10:58:00.000-06:002009-04-07T10:59:49.057-06:00Free book giveaway number twoYeah, that's right. It's time for another book giveaway.<br /><br />This time I'm making it simple. I'm giving away a copy of <a href="http://www.amazon.com/Beginning-Game-Programming-GameDev-net-Collection/dp/159863805X"><i>Beginning Game Programming: A Gamedev.net Collection</i></a> (the orange book) AND <a href="http://www.amazon.com/Business-Production-GameDev-net-Drew-Sikora/dp/1598638092"><i>Business and Production: A Gamedev.net Collection</i></a> (the blue book). There'll be two winners, one blue and one orange.<br /><br />This contest is inspired by my lack of heartening that our books have been burning up the sales charts for a month now, and they've thus-far garnered exactly ZERO Amazon reviews. I've gotten some very positive emailed reviews from the book's chapter-contributors, both on the quality of their own material as well as the selection and editing of material that Drew and I did for the rest of the book.<br /><br />But without reviews, you don't get eyeballs.<br /><br />And the upshot of that is that the books aren't achieving the great heights of "Joe The Plumber's" ghostwritten masterpiece <i>I Have Nothing To Say, So Please Point Cameras At Me</i>. And I know the gamedev books deserve a better fate than that, so I'm handing out two copies to people willing to abide by the following two rules. . .<br /><blockquote>1. Please have a US address. I know this upsets you non-US readers, but it costs $2 to send a book in the US. Outside the US, it generally costs the price of the book itself, I have to fill out a customs form at the post office, and it can take weeks to arrive.<br /><br />2. You agree to read and review the book on Amazon. I'm not requiring you to give it five stars because that would be unethical. Just remember who your buddy is :)</blockquote>If you fit the following two prerequisites, just post a haiku in the comments (on gamedev or blogspot). The haiku should contain the word "blue" or "orange" so I know which book you're trying to win. If I like your haiku best, I'll send the book to you.<br /><br />If you don't remember haiku, it's a three line poem consisting of five, seven, and five syllables, like the following. . .<br /><br /><center><b>I like to write games,<br />while juggling oranges.<br />Send me a danged book.<br /></b></center><br />Something like this would be an attempt to get the orange book, as it has the word "orange" in the haiku. Get it?<br /><br />So if you're in the US, you wanna review a book for Amazon, and you know what a "syllable" is, post a haiku in the comments. One entry per person please.<br /><br />And keep an eye on the comments. I suspect more people will be voting orange than blue, so blue entries will have a better chance. Hint hint.<br /><br /><br /><br />I'll pick a winner on Friday sometime after Drew's gamedev blog roundup. So now get writing!<br /><br /><br />(disclaimer: This contest isn't sponsored by the publisher but by me personally. That should be obvious, but you never know.)<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-3178818450454201675?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com6tag:blogger.com,1999:blog-5927544581291786949.post-27477333590669082332009-03-27T08:18:00.001-06:002009-03-27T08:18:33.798-06:00Keeping your money safeI had a mild vapor-lock moment this morning reading <a href="http://www.mymoneyblog.com/archives/2009/03/sec-says-millennium-bank-was-indeed-a-ponzi-scheme.html">one of my favorite "get rich slowly" sites</a>. Turns out one of those convenient "attractive CD rate internet account" websites was an offshore ponzi scheme funneling cash to some crooks in California.<br /><br />And it didn't scare me because I had money in it. It scared me because I have money in internet savings accounts. I have a couple of internet savings accounts holding my money and earning a little bit of interest (see my first-of-the-year entry for that) while I save up for things like Maggie's school, HSA, etc. Looking at the <a href="http://www.mlnbank.com/">fake bank's website</a>, it doesn't look much different from any other. And its CD rates are attractive at 5% and don't look like that ridiculous "50% return in six weeks" rate that Charles Ponzi quoted or even the "12% in a year" rate that allowed Bernie "is it too much to ask for you to fling yourself out of a window?" Madoff to surf the expanding economy for decades.<br /><br />A 5% CD fits right into the "very good rate" without falling into the "too good to be true" territory that'd set off the red flags in my head. And if I had $10k that I could park somewhere for a year or two, I might've taken advantage of it.<br /><br /><br />So I have an action item for you today. If you have a savings account or a CD or any other kind of "safe" investment(s), send yourself over to the <a href="http://www2.fdic.gov/idasp/main_bankfind.asp">FDIC bank finder</a> and make sure your bank is listed and has a current certificate. That way if your bank ever does an <a href="http://articles.latimes.com/2008/jul/12/business/fi-indymac12">IndyMac</a>, you'll be able to do what the IndyMac customers did, which was to head down to your bank and pick up your money.<br /><br />The people who have CD's in that Millennium Bank aren't gonna have that luxury.<br /><br /><br />And, for the record, my <a href="https://www.dollarsavingsdirect.com/">internet savings account-of-choice</a> is all insured. Actually, according to the FDIC it's been insured since 1934, which is the year the FDIC was chartered.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-2747733359066908233?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com0tag:blogger.com,1999:blog-5927544581291786949.post-83847159581356817412009-03-26T09:12:00.001-06:002009-03-26T09:13:52.480-06:00Many topics, as per the normSeems like I make one post per week that consists of multiple topics that I can't cram into a 140-character Twitter. So I'll keep following that meme.<br /><br />I've gotten no meaningful sponsorship offers from anyone for the new Flash Think Tank, so I'm just going to go with plan-A, which is to pull the site-lock and start uploading the thing to as many game portals as I can find and soak in a few bucks from ad-views. Seems like everyone running a game portal or a Flash promotion site is currently at GDC, so I don't think this'll get the quick traction that Pop Pies 2 got.<br /><br />Not that I expected that anyway. Pop Pies has its own friggin' fan group on Facebook (and I didn't start it), so it was a foregone conclusion that PP2 was gonna get some eyeballs.<br /><br /><br /><br />I got a request to submit a proposal for a Batman-themed game for the <a href="http://braveandtheboldcastingcall.mochiads.com/">Mochi-WB contest</a>. After getting a couple of my fears allayed by the organizers (i.e. am I gonna be making you guys a game for $4k that could potentially be worth more elsewhere), I put together a proposal for a game. Apparently they'll be contacting the winning entries sometime next week, so I'll find out then if I'm one of the people chosen.<br /><br />I won't give away the whole plot, but my submission was a puzzle game with explosions. I've only made about six of those now. I think I'm getting into a rut :)<br /><br /><br /><br />We're getting all self-sufficient over here at the compound. I planted four rows of onions that are happy as can be as well as some mint and rosemary that I'm hoping will take over a corner of the yard and choke out the other weeds. Mint is a weed itself, but it's a weed that smells nice and looks good floating on the top of your drink, so why not.<br /><br />Shelly's planted a half-dozen other veggies with varying degrees of success. She started from seeds, so she's not getting the "instant gratification" I got from planting sprouts and watching 'em perk right up.<br /><br />We did discover that the local herbivores don't like to wait for the peas to grow up before chowing down on 'em, so we might continue to grow them in the greenhouse.<br /><br />We also started making some wine and cheese as a companion for the beer. Making mozzarella was easy and cheap (several pizzas worth of cheese from a $2 gallon of whole milk) and is awesome on pizza. The wine has been bubbling away for a week now. While I'm all for guzzling the whole batch right now, Shelly's on some weird kick about how you gotta let a wine age before you can quaff it. Dunno where she got that silly idea.<br /><br />We're also about to bottle up another 50-odd bottles of homebrew beer. Let the depression hit. We got cheap brewskis!<br /><br /><br /><br />Oh, and it wouldn't be a visit to the Bargain Basement Blog without a cheapass pennypinching tip. So here's the one for today. . .<br /><br />Starbucks is my favorite respite for "Low Priced Luxury". It's a place where you can get something decadent that's not too bad for your health along with some wifi and/or a newspaper, all for under four bucks. It ain't a Lexus, but I don't like Lexus's anyway so I'll treat myself once a week to some foo-foo-coffee.<br /><br />In the past, I'd order myself a latte, which is a shot or two (or three) of espresso mixed with steamy milk. And it's not cheap. It's around $3.75 for the large. Mind you, a large latte is a pretty filling breakfast with enough caffeine to make you break out in a sweat, so it's not too outrageous.<br /><br />A little under a year ago, Starbucks introduced their "Pike's Place Blend" coffee as well as the "Misto", which is basically a latte made with brewed Pike's Place instead of espresso.<br /><br />And IMHO it's 95% as good as their latte and a dollar cheaper.<br /><br />My only warning is that you have to order these at actual standalone Starbucks stores. The Starbucks' that are built into your local grocery store or Target don't have the Pike's Place coffee on tap, and a Misto made with the old "house blend" isn't nearly as good. Not sure what it is, but the difference is noticeable.<br /><br />Also check back <a href="http://www.gamedev.net/community/forums/mod/journal/journal.asp?jn=254106&amp;reply_id=3313135">here</a> to navigate Starbucks' "free wifi" deal. As an added bonus, if you use a registered gift-card to buy your coffee, they won't charge you for a squirt of coffee flavoring (vanilla, hazelnut, etc).<br /><br /><br /><br />And finally. Just so I can prove that this is indeed a programming blog. Here's a handy piece of code. Flash has had the ability to tint and color movieclip object forever, but the way it was done (at least in AS2) was always pretty hairy. It worked, but it requires about three steps to do the seemingly-trivial operation. Here's a nice little function that'll do the whole mess in one function call.<br /><br /><pre>MovieClip.prototype.setTint = function (r, g, b, amount)<br />{<br /> var colorizer = new Color(this)<br /> var trans = new Object()<br /> trans.ra = trans.ga = trans.ba = (100 - amount)<br /> var ratio = amount / 100<br /> trans.rb = r * ratio<br /> trans.gb = g * ratio<br /> trans.bb = b * ratio<br /> colorizer.setTransform(trans)<br />}</pre><br /><br />It extends MovieClip, so if you have an existing movieclip, you can just paste this code in and colorize your objects like so. . .<br /><br />myMovieClip.setTint(255, 0, 0, 50) // turn this object 50% red<br /><br />So if you're making a Pac Man game and you want four colors of ghosts, you can just make one ghost MovieClip and tint each instance rather than some more difficult solution.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-8384715958135681741?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com0tag:blogger.com,1999:blog-5927544581291786949.post-44278556193503598032009-03-13T08:05:00.001-06:002009-03-13T08:05:53.185-06:00Me the cynicI got to see Jim Cramer on the Daily Show yesterday (google for it if you haven't heard of it), and I was reminded of that old interview that Dateline (I think it was) did with evangelist-crook Benny Hinn. They spent about 20 minutes rubbing Hinn's nose in his own ridiculous antics and his refusal to be transparent about his finances. Hinn sat quietly, then apologized for everything. He said his ministry would become fiscally accountable, and he'd tone down the nonsense that aggrandized himself to the detriment of his religion.<br /><br />Then Hinn. . .did absolutely nothing. He went right back to his old shtick, confident that the public's collective-ADD would prevent them from being able to follow up on his promises.<br /><br />And I felt that way with Cramer on the Daily Show. Cramer walked in the studio wearing his rolled up sleeve shirt (which I'll bet dollars to donuts are now sewn in place). He was chastened, promised to fix every flaw that Stewart presented, and then will go right back to ringing bells and pumping-and-dumping stocks on his show while pretending that he's doing it for anyone's benefit but his own.<br /><br /><br /><br />On an entirely different note, I am amused by the new iPod shuffle and its infinite smallness and Apple's newfound need to eliminate buttons. And I finally figured out what it reminds me of. If you watched the last couple seasons of MST3K, you'll remember the Observers. . .<br /><br /><center><img src="http://images2.wikia.nocookie.net/mst3k/images/thumb/e/e7/Observers.jpg/250px-Observers.jpg" /></center><br /><br />They were beings that were humanoid but were evolved billions of years beyond us. We were as amoebas to them, as they loved to say. They had, in fact, evolved themselves to the point where they no longer needed bodies and could just exist as disembodied self-sufficient brains.<br /><br />And then they went even further, constructing host bodies to carry their disembodied brains around.<br /><br />And so, despite having intellects that dwarf ours (and being more than happy to remind us of that), they didn't realize that their system of carrying their brains around in dishes was way more inconvenient than keeping their brains in their heads.<br /><br />And that's the new iPod shuffle. It's evolved beyond the need for buttons, but for the sake of interacting with unterbeings such as ourselves, it'll keep around one or two buttons in an inconvenient place.<br /><br /><br /><br />And Windows Mobile has a new slogan. "Yeah, our browser is kinda sucky, but at least it's got Flash."<br /><br /><br /><br />Shelly made me a grumpasaurus.<br /><br /><center><img src="http://2.bp.blogspot.com/_iPvKR7lJ9Ec/SbgIFcY-qpI/AAAAAAAACSk/Sl4lUThfDac/s400/102_0538.JPG" /></center><br /><br />His infinite ennui gives me comfort in uncomfortable times.<br /><br />Then Maggie stole it.<br /><br />Also Shelly took my ipod because there's somesuch piece of software that only it'll run. I now have the Sansa again, which doesn't bother me much. I much prefer Rockbox (google for it) to anything else, because it does everything right. It doesn't play games too well, but I got a laptop that plays games really well if I'm on the road and wanna play games.<br /><br /><br /><br />Should I write another book? I could probably write the "game programming on 25 cents a day travel guide" that I've been threatening, as I have more experience in that than anyone, but computer book sales are flat or declining.<br /><br />Get it published? Vanity-press it and make beer money off it? Slap it up on the web with a pile of adsense ads? Thoughts?<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-4427855619350359803?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com0tag:blogger.com,1999:blog-5927544581291786949.post-30398603824441416782009-03-12T07:35:00.000-06:002009-03-12T07:37:10.402-06:00Shenanigans and goings onOh so many things. The life of a renaissance man is never uneventful.<br /><br /><b>Item One</b><br /><br />First off, I posted a very quick "how to fix your car's mats in 15 minutes for six bucks" tutorial <a href="http://thecodezone.blogspot.com/2009/03/fix-your-cars-mats-quickly-and-cheaply.html">here</a>. MAKE magazine has a "mend it march" promotion, and I thought I'd contribute.<br /><br /><b>Item Two</b><br /><br />Next, I got two more <a href="http://www.amazon.com/exec/obidos/ASIN/159863805X/ref=nosim/gamedev">orange books</a> which means I'll have another giveaway. I'll likely give away one right away and keep the extra slack copy in the hopes that I'll eventually have a full set of four to give away. Given that I didn't contribute anything to the <a href="http://www.amazon.com/exec/obidos/ASIN/1598638084/ref=nosim/gamedev">black book</a> content or editorial-wise, I'm not holding out hope to receive more copies of that one. We'll see.<br /><br /><b>Item Three</b><br /><br />Next, the <a href="http://www.amazon.com/exec/obidos/ASIN/1598638068/ref=nosim/gamedev">green book</a> now has a picture on Amazon. I hope it'll be arriving next week. Fingers crossed.<br /><br />(note to Drew, fix the picture on the book-page in gamedev)<br /><br /><b>Item Four</b><br /><br />My dramatic reading from <a href="http://www.amazon.com/exec/obidos/ASIN/1598638092/ref=nosim/gamedev">the blue book</a> is now available at <a href="http://www.industrybroadcast.com/">www.industrybroadcast.com</a>. Be glued to the end of your seat as I regale you with tales of high seas adventure!<br /><br /><b>Item Five</b><br /><br />I've officially released <i>The Code Zone Retro Pack</i> (i.e. all of my old 90's shelfware games that I could still find and for which I recently re-re-retained licenses). While the story of those games are an adventure unto themselves, as you'd expect from any software package that managed to stay in stores for TEN YEARS, getting back to re-compile on my new machine was no picnic. I basically had the following choices. . .<br /><br />1. Install VC++ 6 (which was the last compiler used to make 'em), recompile the original sources, change up the about-box and credits and such to remove mention of the old publishers, and build a new installer.<br /><br />2. Modify the StarView app framework (upon which the games are built), which itself hasn't changed in ten years, to work on a newer Visual Studio.<br /><br />3. Dump the StarView app framework in favor of the OpenOffice Framework (which StarView became after Sun bought 'em out), modify the games to work with it, and recompile.<br /><br />Seeing the easiest route as number one, as it'd just require changes to batch file names, I set about to installing VC++ 6 on Vista. Upon doing so, Vista popped up a box saying that my compiler was about ten years outta date, it's flagged as an app that doesn't play well with anything after Windows 2000, and that ship just ain't gonna sail.<br /><br />Glee.<br /><br />Being sly and wiley, I popped up Virtual PC and built myself a little Virtual Windows 98. VC++ 6 had no problem with it. A little wrestling with batch files and dependencies and all that other stuff that I haven't done in years, and I had a working build-chain again.<br /><br />Then I dragged the newly-compiled games over to Vista, built a cute little NSIS installer for 'em, and they live again!<br /><br />Check 'em out <a href="http://www.thecodezone.com/games/retro.php">here</a> to see 'em in all of their 256-color MIDI-soundtracked glory again!<br /><br /><b>Item Six</b><br /><br />Think Tank is basically done. It's currently shopping for sponsorships, but if I don't get any bites it'll be scattered to the four winds. As a reward for actually reading this far, I'll let you try it out. It's <a href="http://www.thecodezone.com/games/thinktank.php">here</a>.<br /><br />Note that this version is currently site-locked to thecodezone.com, so don't just grab the swf file and slap it up on your own favorite game portal. Once I'm confident that it's in as good a working order as it's gonna get, I'll make a distributable version.<br /><br />Please please post feedback for the game. It's gonna go viral and once things go viral there's no way to make changes.<br /><br /><br /><br />Dang, I had a lot going on this week. I need a rest.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-3039860382444141678?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com0tag:blogger.com,1999:blog-5927544581291786949.post-85630249099961082412009-03-11T07:28:00.006-06:002009-03-11T07:56:14.847-06:00Fix your car's mats quickly and cheaplyNote: This has nothing whatsoever to do with game development<br /><br />The carpet floor mats in my venerable PT Cruiser are still usable but have grown a little threadbare in the past year or so. And like most mats, the wear is uneven. Very uneven.<br /><br /><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Q4QvY8alCX0/Sbe8_TnbOEI/AAAAAAAAAEM/vkFwhvrsMqg/s1600-h/3346865414_0fcb6d9c02%5B1%5D.jpg_v%3D0"><img style="cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_Q4QvY8alCX0/Sbe8_TnbOEI/AAAAAAAAAEM/vkFwhvrsMqg/s320/3346865414_0fcb6d9c02%5B1%5D.jpg_v%3D0" alt="" id="BLOGGER_PHOTO_ID_5311922081290205250" border="0" /></a><br /></div><br />The hole you see in the center is the spot under the accelerator, and my heel has completely worn through. Knowing that my heel would next be wearing through the underlying carpet (which is way expensive to replace), I looked at replacing the mat. And since new custom-cut carpeted mats run north of $75 for a set, I looked at repairing the hole.<br /><br />My first thought was a piece of carpet, but carpet is pretty thick and sheds along the edges unless you hem it. Then I thought about those cheap industrial rubber-backed welcome mats. I checked out my local Home Depot, but the only size that they carried was quite large and expensive.<br /><br />Looking around Home Depot a bit more, I found something that would fit the bill for quite a bit less money. It's a non-slip surface for stairs that I found in the flooring section. It was the right color, looked quite easy to cut, and the price was right at $3 for a 1'x3' piece.<br /><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm4.static.flickr.com/3369/3346029441_0b2c6f41ca.jpg?v=0"><img style="cursor: pointer; width: 500px; height: 375px;" src="http://farm4.static.flickr.com/3369/3346029441_0b2c6f41ca.jpg?v=0" alt="" border="0" /></a><br /></div><br />(note that the rubber is molded with a curve to fit around the front of a stair. You could probably flatten it out for a really big patch, but in my case the flat part was plenty big enough to do the repair)<br /><br />I cut a couple of circles with scissors that were large enough to cover the entire hole as well as the frays around it. My original plan was to glue a circle to the top and bottom of the mat, but my glue choice didn't seem compatible with the rubber bottom of the mats and ended up peeling off.<br /><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm4.static.flickr.com/3356/3346865448_71bc0ba04f.jpg?v=0"><img style="cursor: pointer; width: 500px; height: 375px;" src="http://farm4.static.flickr.com/3356/3346865448_71bc0ba04f.jpg?v=0" alt="" border="0" /></a><br /></div><br />I had some "Industrial Strength Liquid Nails" adhesive left over from an earlier project that I figured would fit the bill. It did a good job of adhering the circle to the carpet, although the glue's color (an opaque light brown) was pretty unforgiving while placing the circle.<br /><br />After smearing the glue around (use gloves when dealing with this stuff, as the Industrial Strength version is pretty noxious on skin) on the circles, I placed my circles and weighted 'em down overnight.<br /><br />And since I'm a lazy person who didn't want to carry over a pile of stuff to weigh down the glue, I let the car do the job of applying pressure. I did put down some plastic on the bottom so I didn't end up accidentally gluing my mat to the floor of the garage.<br /><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm4.static.flickr.com/3546/3346029467_f56f1f5538.jpg?v=0"><img style="cursor: pointer; width: 500px; height: 375px;" src="http://farm4.static.flickr.com/3546/3346029467_f56f1f5538.jpg?v=0" alt="" border="0" /></a><br /><br /><div style="text-align: left;">The next morning, the job was done. It wasn't especially pretty, but I figure I'll get some more time out of the mats before I have to glue on another circle.<br /><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm4.static.flickr.com/3255/3346029391_18e6243be7.jpg?v=0"><img style="cursor: pointer; width: 500px; height: 375px;" src="http://farm4.static.flickr.com/3255/3346029391_18e6243be7.jpg?v=0" alt="" border="0" /></a><br /><br /><div style="text-align: left;">The total cost of the job was a little under $6 ($3 for the rubber, and a little under $3 for the glue). The glue was leftover from another job. If I had to buy glue for the job, I probably would've looked for something clear, as it would've looked quite a bit cleaner. As it stands, it looks pretty good and should last a while.<br /></div></div></div></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-8563024909996108241?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com0tag:blogger.com,1999:blog-5927544581291786949.post-57753358795969953102009-03-04T09:11:00.001-06:002009-03-04T09:11:57.729-06:00I have a winnerThanks for the entries, people. Ultimately I had 27 people who followed the rules (add me and send me the message). And out of those 27 people, our winner was DecipherOne!<br /><br /><a href="http://twitter.com/DecipherOne">http://twitter.com/DecipherOne</a><br /><br />Keep an eye on the Bargain Basement Blog, as I'll certainly have more books to give away!<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-5775335879596995310?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com0tag:blogger.com,1999:blog-5927544581291786949.post-68695339927906311152009-02-27T09:43:00.001-06:002009-02-27T09:47:33.804-06:00I'm full of content today<b>I'm Giving Away A Free Book, So Read This Post To The End!</b><br /><br />First off, I posted a new review of Musicshake here. Happy reading.<br /><br /><a href="http://www.gamedev.net/features/reviews/productreview.asp?productid=725">http://www.gamedev.net/features/reviews/productreview.asp?productid=725</a><br /><br />Next off, I got the next two gamedev books in the mail yesterday, including my own "Beginning Programming" book. While the original intent was for the programming books to be truly monstrous tomes, it looks like Drew beat me by a few pages with <i>Design and Content Creation</i>, mainly owing to some extensive pixel-art tutorials. Drew also one-upped my extensive equations with a "flip book" animation of a girl kicking you in the head. Good work, kid.<br /><br /><center><img src="http://members.gamedev.net/johnhattan/diary/books2.jpg" /><br /><br />(your humble co-editor posing with over 1400 pages of game programming goodness)</center><br /><br />The orange one on the top is my baby. My other baby, Advanced Programming, will be arriving in two or three weeks and has a green cover. On the whole it looks great and I'm proud of it. It's aimed at beginners but isn't so elementary that it'll grow useless after a single reading. Some chapters, specifically the vectors &amp; matrices tutorial, ended up looking quite a bit nicer than I expected. Other chapters that worried me, like Metanet's 2D tutorial, which relied on lots of colorful diagrams, look okay too. Kudos to the Cengage formatting department for being able to make my hours of time with MS Equation Editor and eDrawMax pay off.<br /><br /><br /><br /><br />And yes, I said I'd be giving away a free book. I plan to make giveaways of any extra copies of the books I might happen to get. And it turns out I have more than one copy of <i><a href="http://www.amazon.com/Business-Production-GameDev-net-Drew-Sikora/dp/1598638092">Business and Production For Games</a></i> (the blue book) here. So I'm giving it away to a lucky winner.<br /><br />The title of this content is "The Shamelessly Trolling For Twitter Followers Game", and entering the giveaway is quite simple. Just follow me on Twitter. Go to<br /><br /><a href="http://twitter.com/johnhattan">http://twitter.com/johnhattan</a><br /><br />And press the "follow" button under the little bulldozer. Then post an @response like the following. . .<br /><br /><center>@johnhattan please enter me in the contest to win a free book. http://tr.im/gQnH</center><br />(the mini-URL at the end will go to this blog post in case someone else reads your tweet)<br /><br />On Monday or Tuesday, I'll pick a random user from those responses and mail that person a free book. I'd sign it, but the blue book is Drew's baby and I don't wanna take credit for it since he did the lion's share of the work on it.<br /><br />If you already follow me, just send me the message and you'll be entered<br /><br />If you don't have a twitter account, get one. They're free.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-6869533992790631115?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com0tag:blogger.com,1999:blog-5927544581291786949.post-24229849549446463652009-02-23T09:13:00.000-06:002009-02-23T09:14:31.054-06:00Let's do the quiet desperation dance!Well the recession is recessioning, and this one isn't one of those little "that was a recession?" recessions of the early 90's. You can actually feel this one. Some of you are feeling it pretty hard. Even our own pet recession-proof industry to which Shelly and I have hitched our wagons (energy) is feeling a mighty pinch.<br /><br />So save save save. Swallow your pride and quit pretending that you need to drink the premium brands of soda pop and you'll just die if you don't spend $10-$20 a week on iTunes. And remember a mantra I use around here. . .<br /><br /><center>"Need" is a strong word.</center><br />A "need" is a sine qua non. It's a thing without which your life would end or be greatly compromised. Recognize the things in your life that are needs (food, furniture) and the things that aren't really needs (eating out, new furniture). And if a TV commercial says that something is something you need, assume that they're lying. Learn to prioritize your spending, recognize deals and take advantage of 'em. Find coupons. Drop your cable TV subscription one tier (or dump it entirely now that the $40 digital gubment rabbit-ears boxes have built in program guides).<br /><br />And if you see a true need coupled with the word "free", trample everyone in your way to get it :)<br /><br />On that note, go to <a href="http://www.millionsubs.com/">www.millionsubs.com</a> and grab yourself a coupon for a free sandwich. Coupons are limited, so go now. Really. Go now. Browsers have tabs, so you can go now and read the rest of this blog post later.<br /><br /><br /><br /><br /><br />Okay, you're back.<br /><br />Also grab yourself a free short-stack at IHOP tomorrow (tuesday). I'm not a big IHOP fan, but pancakes are hard to do wrong, so I'll be there early. We did the free Denny's Grand Slam last month at 7am and got in and out in a reasonable time. We tried to hit 'em again for lunch but the line was out the door, so the key here is to get there early.<br /><br /><br />Another nice tip is the following equation. . .<br /><br /><center>Any leftover food plus tortillas equals yummy burritos!</center><br /><br />We had some leftover chicken and chili from last week, so I bought some canned beans and about 50 tortillas. I also found a cheap fatty roast for $1.50 which I de-fatted, chopped up finely, and fried with some taco seasoning. Shelly and I then spent the next hour making, saran-wrapping, sharpie-ing, and freezing a whole freezer-full of burritos. This'll easily cover lunches and some dinners for the next ten days, and the total out-of-pocket for the whole affair was about $20.<br /><br />Having lived through lean times before, I can attest that the deal-breaker food-wise isn't a lack of quality food. It's a lack of variety. Eating ramen noodles and balogna sandwiches three meals a day will save you money but will get old fast. Make yourself a list of food that you can make fairly cheaply and makes good leftovers (spaghetti, chili, stew) and give yourself a good variety so you don't feel like you're depriving yourself of the better things.<br /><br />And you can't go wrong with chicken. A bunch of cooked chicken in the fridge has a thousand uses. You can just eat it. You can make sandwiches. You can chop it up and put it on a salad. You can make soup. You can get buffalo sauce and make spicy chicken.<br /><br />Whenever I go to the grocery store, I check out the closeout section in the meat department. When they have trays of chicken thighs or legs for cheap (sometimes as low as a buck for an eight-pack), I grab it. You can throw it in a roasting pan with a little salt-n-pepper, cook it, tupperware it, and toss it in the fridge, and that'll give you the underpinnings of a bunch of cheap-n-easy meals.<br /><br />Feel free to post any other "belt tightening" tips. We'll all make it together.<br /><br /><br /><br />On another note, with a little luck Pop Pies 2 ought to hit a million plays by the end of the week. It definitely hit the ground running and is my strongest start yet, which is heartening.<br /><br />The "Retro Pack" (i.e. 47 of my old 1990's discount-rack games that I regained the rights to) is done and is just waiting for me to come up with a way to sell it. My current plan is to sell it cheap (like $5) and make it free if you buy one of my $10 games. That way I should make a little money off it. The games are really pretty old technology-wise (256-color graphics, MIDI sound), so I really can't reasonably expect to make a pile of money from 'em.<br /><br />I also had fun playing some of my old games. I forgot how fun a couple of 'em were, so I've decided to "Flash-ize" some of the better ones. I should have something to show off in a week or two.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-2422984954944646365?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com0tag:blogger.com,1999:blog-5927544581291786949.post-11588593989872731282009-02-13T09:48:00.000-06:002009-02-13T09:49:25.888-06:00Distributing things to the four windsThanks for the Pop Pies 2 feedback. I went live with the thing and started uploading it to the major game portals in the hopes that it'll be co-opted by the smaller ones. Since the game runs ads before it starts, the key is to get it on every place you can find.<br /><br />A couple of my favorites are <a href="http://www.mindjolt.com/">MindJolt</a> (because they have a facebook app that can get your game a squillion hits if people like to challenge each other) and <a href="http://www.albinoblacksheep.com/">Albino Black Sheep</a> (because they actually do respect peoples' rights to the material they post).<br /><br /><br />If you wanna get in on the grassroots effort towards spreading this thing far and wide, the actual SWF is being hosted at <a href="http://games.mochiads.com/c/g/pop-pies-2/poppies2.swf">http://games.mochiads.com/c/g/pop-pies-2/poppies2.swf</a>. Feel free to upload it somewhere, although it's better form to just have the site link to that file if available. That way if I find a bug and post an update, they'll get the fix automatically.<br /><br />Or if you have a game site that you particularly like, post a link to it in the comments and I'll see about getting it uploaded there. Pop Pies 1 is up to 13 million hits, so it has some catching up to do, but it might happen :)<br /><br />Big thanks.<br /><br /><br />And it looks like the next round of gamedev.net books are ready to ship. I haven't gotten the new ones from the publisher yet, but I expect to see 'em any minute now. I just got cover-art for the fourth book (Advanced Programming), and it's sort of a lime green.<br /><br />And I'm gonna be putting together some kind of book giveaway for all of the extra copies I get from the publisher. Not sure exactly what the parameters will be, but there'll be opportunity for free books.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-1158859398987273128?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com0tag:blogger.com,1999:blog-5927544581291786949.post-5861424051234586122009-02-09T10:46:00.000-06:002009-02-09T10:47:41.838-06:00Casting the net a bit widerOkay, Pop Pies 2 has been a week in RC status now. I haven't gotten a serious exclusive sponsorship offer via flashgamelicense, so I'm gonna go with my original plan. That's to release the game to the four winds self-sponsored but with ad-banners, grab nonexclusive sponsorships as they come in, and make money from nonexclusive sponsorships and ads running on whatever game-portal embeds the game.<br /><br />. . .which is pretty-much the plan for all the rest of my games.<br /><br />This morning I'm putting out RC2 of Pop Pies 2, and I'm letting you play it here:<br /><br /><a href="http://www.thecodezone.com/games/poppies2.php">http://www.thecodezone.com/games/poppies2.php</a><br /><br />Thus-far the comments have been promising. And by "promising", I mean that they've been all over the board. Some think the music isn't good. Some think it's perfect. Some hate the sound effects. Some love 'em. Some think the game is worse than the original. Some think it's better. In other words, there's a complete lack of consensus about the game, which suggests that my instincts were sound. Everybody's got an opinion, and if they don't agree, then it comes down to instinct.<br /><br />I tried all sorts of pie color schemes, but in the end I realized that something tasteful and something with reasonable contrast just wasn't gonna happen. So I went with the old TRS-80 Coco palette which cover the extremes of the RGB additive and subtractive spectrum<br /><br />Ahem. . .<b>black, green, yellow, blue, red, white, cyan, magenta, orange</b><br /><br />(yeah, that's a 9-color palette. IIRC, the non-text modes eliminated black)<br /><br />I didn't wanna go with pure black and pure white, so I went with very light gray ("buff" in TRS-80 vernacular) for the background and very dark gray for one of the pie colors. It's still a mite hard on the eyes, but your little pattern-seeking higher brain should have little trouble picking out the chains.<br /><br />Note that the Pop Pies 2 link above is a link to a site-locked version on thecodezone.com. I'm gonna give it until about Wednesday for further comments. Then I'm gonna remove the site-lock, mark the game as "released" on the ad-network and distribution-network, and submit the thing to as many game portals as I can find.<br /><br />So lemme know what you think until then. Happy playing!<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-586142405123458612?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com0tag:blogger.com,1999:blog-5927544581291786949.post-51542444880393999982009-02-04T08:35:00.002-06:002009-02-04T08:46:47.053-06:00Changes to twitterI've made a change to the way scores are posted to twitter. One thing I never really liked (and it's really a deficiency in Twitter rather than this site) is that I needed your twitter password to post scores to Twitter accounts. And storing passwords used on other sites is just bad form in general.<br /><br />So I've made a minor change to things. I now have a new Twitter user named <a href="http://twitter.com/thecodezone">"thecodezone"</a>. The bot that tallies the scores will now be notifying any twitterers with an @ response from that account.<br /><br />So the upshot is, if you want to receive Twitters of your daily rankings, you can do one of the following. . .<br /><br />- Follow user "thecodezone" from <a href="http://twitter.com/thecodezone">http://twitter.com/thecodezone<br /></a><br />- Allow your twitter account to accept @ responses from users you're not following. Setting this up is simple. Just go to your twitter account, go to "Settings", then the "Notices" tab, then choose "all @ replies" under the "show me" section.<br /><br />The upshot is that you should still be able to receive your daily rankings via twitter, just in a bit more secure way.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-5154244488039399998?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com0tag:blogger.com,1999:blog-5927544581291786949.post-28585266506057964912009-01-26T10:28:00.001-06:002009-01-26T10:28:50.235-06:00Design QuestionI'm working on Pop Pies 2. <a href="http://www.thecodezone.com/playnshare.php?playgameid=5">Pop Pies</a> is my most successful game far as ad-revenue goes. I'll also admit that it's not my best game. Myself, I much prefer <a href="http://www.thecodezone.com/playnshare.php?playgameid=11">Meltdown</a>, although both games do have that visceral id-gratifying "blow up lotsa stuff in one shot if you set up everything just right" bit.<br /><br />One thing I'd always planned for Pop Pies 2 was levels that got more difficult, ala Meltdown. Although I'm starting to think that that's getting away from my old "quick to play" mantra that I'd kept up from the beginning of this little puzzle game experiment. Meltdown does have multiple levels, but you can play through a single level in 1-2 minutes, so even if you make it through five or eight levels, it's still pretty quick. Pop Pies has only one level, but it takes a longer and more thoughtful setup if you wanna get the big 'splosions.<br /><br />My initial plan was to have three growing meters at the bottom of the screen that measured pies 'sploded, columns cleared, and gifts cleared (see Poppit for this). If you got above a certain threshold on each, you'd move to the next level and the thresholds would get a bit higher, thus making the next level more difficult to clear. But now I think I'm just overthinking things. I should just make the game one level like original Pop Pies but make the level much more interesting with little bonuses and suchlike popping up everywhere.<br /><br />Because, this is my hypothesis, most people who play Pop Pies don't do it for the score. While it is gratifying to break 10,000 points, Pop Pies is more about the visceral thrill of filling the screen with a big explosion. And if ad-revenue is any indication, people don't seem to mind pressing the "play again" button or the reload-button in their browser.<br /><br />So now I'm leaning strongly against "Pop Pies With Levels" and more towards "Pop Pies With One Much Cooler Level".<br /><br />Thoughts?<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-2858526650605796491?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com0tag:blogger.com,1999:blog-5927544581291786949.post-25362578642114750522009-01-23T09:33:00.002-06:002009-01-23T09:48:30.987-06:00The Code Zone Facebook groupDespite a few requests, I'd purposely avoided having any kind of web forum or comments-section on the site. And the reasoning was simple -- if I added such a thing, then I'd have to come up with a policy on profanity, and I'd have to do some kind of bogus age-check and such. As it stands, The Code Zone is a G-rated place, and I don't have to worry about being contacted by angry parents because their 8 year-old is a fan of the games but found objectionable content.<br /><br />But I guess it wouldn't be a problem to allow such things elsewhere. So I added a Fan-Group for the games on Facebook, and it's at <a href="http://www.facebook.com/group.php?gid=115026820690">http://www.facebook.com/group.php?gid=115026820690</a>. If you're a fan of the games or you want to discuss solutions to Bulldozer levels or anything like that, feel free to join up there. I'll try to keep an eye on the place, so your requests won't just end up echoing into cyberspace.<br /><br />Enjoy!<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-2536257864211475052?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com0tag:blogger.com,1999:blog-5927544581291786949.post-59103776252775431082009-01-21T14:06:00.001-06:002009-01-21T14:08:50.542-06:00Book book book bookety book!<center><img src="http://1.bp.blogspot.com/_iPvKR7lJ9Ec/SXdgq1KUwYI/AAAAAAAACEQ/tzMlKjf2NPo/s400/102_0467.JPG" /></center><br /><br />Actual paper copy of the book. Ooooh, amazing. Scientific. And yes, slightly bent courtesy of our good pals in the brown truck.<br /><br /><br />Okay, I've been meaning to document the process for quite some time. This is how the gamedev series came to be.<br /><br />According to my email archive, it first landed in my and Drew's collective laps around September of 2007. The idea got pitched to Dave and Kevin a while earlier, but it turned out that they had real jobs or somesuch other lame excuse, so they decided to hand over the project to a couple of the other shaved apes on the staff of gamedev who didn't have to deal with such frivolities as jobs. Namely Drew and myself.<br /><br />I think it was I who came out with the absurdly simple original plan for making the books. We have Superpig use his astounding SQL abilities to dump the entire archive of gamedev article-links into a spreadsheet, we read all those articles, judge 'em for suitability (for a beginner-book and and an advanced-book, rated on a scale from 1 to 5), figure out how they'd need to be edited to fit changing technologies, contact the authors, get edits, cut 'n paste the whole mess into a Word document, press "print", and then spend the rest of the time sipping mint juleps while checks roll in.<br /><br />And, of course, it worked exactly like that. With only a couple of minor changes. First off, Drew's herb garden didn't pan out because mint doesn't grow well under the frozen ice of New York or New Jersey or whatever part of the Great White North is his habitat. Next, even though we originally agreed to split up the article-reading and grading task 50/50 (still a pretty big task as our article archive numbered some 1500 articles), it ended up actually being closer to 100/0 with my ownself doing the lion's share of the reading and grading.<br /><br />The reading and grading did get done. And Drew, now wracked with guilt after dropping the ball in the article-grading department, stepped up to the plate and took over. He took my original list, double-checked it, came up with some more authors who could put together some original articles for us, and made proposals and sample tables of contents for what became five books, two big programming books and three smaller design books. He also came up with a method for figuring out page-count that came within 0.00001% of reality, plus or minus 50%.<br /><br />Then we had to contact authors, which was easily the least fun part of the process. Several of the articles I liked were rather old but I felt were "timeless" in their wisdom and deserved immortality in print, provided they could be updated to match the technology. And it was certainly a good assumption that the 8 year-old hotmail address associated with the article and/or gamedev.net account was still actively checked.<br /><br />And about a third of 'em were. About a third of the remaining authors were easy to find with a little googling and facebook-ing. And a few more I found via friends of friends. And about a half-dozen I just never was able to find.<br /><br />And then it turned out that five books was both a bit too ambitious page-wise as well as not as organized as it should've been. So Drew re-shuffled his three books into two and the wobbly quintet became a stronger quartet.<br /><br />As I found authors, I sent proposals to 'em. Thankfully about 95% of the authors were very amenable to the idea. In fact, most offered to update their articles even when I didn't think they needed much done. Most of our original-content authors were also happy to oblige, although I did have to lean on a few of 'em to get me their updates. A couple of authors did completely flake out on me and bailed from the book entirely, but thankfully it was just a couple. I recall one author who finally declared that I was an unreasonable bully because I only gave him five months to update his (four page) article and demanded to be released from such a responsibility (which I gleefully did). The rest of the article updates trickled in at a rate that gave me time to sanity-check and submit 'em to the publisher. I did end up following the 90/10 rule with the final 10% of the articles taking up 90% of the time, but the downtime waiting for articles gave me time to do some housekeeping. . .and by that I mean pictures.<br /><br />Pictures were a problem. Turns out that if you ask an author if he still has the original JPG images for an article he wrote five years ago so you can try to make 'em something that'll look good in print, the answer's usually "oh hellno". A couple of authors were gracious enough to recapture their images or screenshots in higher resolutions, (and if any of you ever catch me at a convention, flag me down and I'll buy you a beer). The rest either had to be redrawn or just resized as-is.<br /><br />I also had to change text to make up for the fact that the book was gonna be in black-n-white. I think I was able to catch and rewrite/redraw all the parts that read like "that faint blue line in the middle of the picture is the most important part, and I'm gonna talk about it for six paragraphs, all the while referring to it as a faint blue line". The upshot is that if you're profoundly color-blind, there are gonna be some articles that make sense more than they used to because I changed it to a thick black line :)<br /><br />The editors at Cengage were great. For much of the book, the process involved Drew and I saying "umm, I don't know, so let's do it this way" regarding how we were submitting content to them, and they worked with us. Mind you, we were also pretty flexible. I recall talking to a zealot programmer/author once who ended up firing his publisher because book submissions should be done in open-source workers-of-the-world-unite XML rather than evil proprietary fascist MS Word format. We all had an understanding that the goal was to get a book on the shelves, and if it worked towards that end, all was well.<br /><br />And it looks like it's there. One book is out on paper. I just got cover-art for the next book to be released (Beginning Programming), and it looks great. I hope you enjoy the series and I appreciate any constructive feedback.<br /><br />The only gray area I'm aware of is the companion website. The books don't have a companion CD-ROM (which doesn't bother me in the slightest, as you probably already have more 30-day trial copies of Paint Shop Pro than you need), so they'll have a companion site. Many of the articles have downloadable source code associated with 'em. I've been keeping all the downloadable code organized, so I don't think it will be an issue.<br /><br /><br />And so, to answer the most pressing question in my mind about the books, I present <b>The Gamedev.net Collection Mini FAQ</b>.<br /><br /><blockquote>Q: So, why on Earth would I wanna buy these books when I can just read the same danged articles on the website for free?<br /><br />A: Because they're not the same articles, smartarse. Many of the articles are 102% original and written by industry professionals and are being presented in book form for the first-time ever and won't be available anywhere else. Most of the remaining articles have been updated to match technology. Some were changed a little, but some were completely rewritten from the ground-up. You like that article about Texture Splorging In Direct3D 7? Well, now it's an article about Texture Splorging With Programmable Shaders and other stuff that was just a gleam in nVidia's eye at the time of the article's original run.<br /><br />So feel free to keep reading my <a href="http://www.gamedev.net/reference/design/features/whatlang/">"What Language Do I Use?"</a> article from 1999 for free, especially the comparison between IconAuthor and Hypercard (neither of which are available anymore). And just wonder to yourself how much more useful that article would've been if it had a discussion about things like Flash or .NET or Python or the plethora of server-side languages that were in their infancy in 1999.</blockquote><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-5910377625277543108?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com0tag:blogger.com,1999:blog-5927544581291786949.post-63648412968893243652009-01-14T13:42:00.001-06:002009-01-14T13:42:58.073-06:00Book KewelnessLooks like Amazon's little book-excerpt-reader-thingy has indexed the first of the gamedev.net books. Bask in wild wonder!<br /><br /><a href="http://www.amazon.com/gp/reader/1598638092">http://www.amazon.com/gp/reader/1598638092</a><br /><br />Looks like Rick's article as well as mine are in this one. I have another article in the Beginning Programming book, which is scheduled to hit the ground on February 10.<br /><br />I still don't have the paper copy yet. I did get my article-payment for this one, so I presume that paper versions are motoring their way to your retailer as we speak.<br /><br />Still not sure why Drew's name comes in front of mine. H comes before S in the dictionary, and I edited the two biggest books. Clearly I'm a victim of size discrimination<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5927544581291786949-6364841296889324365?l=thecodezone.blogspot.com'/></div>John Hattanhttp://www.blogger.com/profile/07748966190134140467john@thecodezone.com0