Random picture tuesday
Mar 9th, 2010 by Seth
Mar 9th, 2010 by Seth
Mar 2nd, 2010 by Seth
Feb 21st, 2010 by Seth
Despite working on a ’secret project’ for the last three weeks (more on that later..), Dink for iPhone is still coming along nicely and I wanted to show it in action.
It truly is a great port, including features not found in the original versions such as ‘full state saving from anywhere’, faster script processing, rewritten graphic/resource handling, native GL support, the full original CD sound-track, and a built-in .dmod downloader/installer.
Instead of the usual screenshots here is a crappy youtube movie to give you an idea of how it runs ‘on-device’. Controls/GUI are not final! Hope to put in my new control idea soon and see how it works.
Feb 18th, 2010 by Seth
Been awhile since I’ve posted anything besides boring programming junk so here we go.
KidZania is an edutainment amusement park where kids can (sort of) learn and (sort of) do eighty different career paths. Each ‘career’ takes about half an hour to do and earns you “Kidzoes” to spend in the store.
There are ten KidZania’s splattered across the world. This is the one in Koshien, Japan – there is also one in Tokyo.
KidZania is tiny working indoor town.
At exactly 4 PM, all the stores open for business! Cosmo chose package delivery as his first job. Many of the business in KidZania are real companies in Japan – this company, Kuro-Neko is sort of a Japanese FedEx.
In the pic above he is receiving training for his job. Parents can’t enter most buildings in KidZania, but everything has lots of windows so we get to snoop around and take pictures.
Training complete, he prepares to do some work! He delivers and picks up packages from various other KidZania businesses and does some inventory work. At the end he receives 8 Kidzoes in pay.
He goes to the KidZania bank, gets an account, and deposits his cash. There is a working ATM system.
Here he learns to work at a Pizza place.
The best part of the pizza career – you get to eat what you made!
The bakery, candy maker, and sushi chef careers also feature making real food but he didn’t do those… There is no way to do everything in one day!
Cosmo makes small chat while working as a gas station attendant. The girl driving the car has rented it from the Rent-a-car place – you can only do this if you’ve earned your KidZania license by going to driving school.
One of the most popular careers – Fireman! After training, a building catches on fire and kids are driven to it. The vehicles in KidZania move slightly slower than a normal walking pace, but hey, it’s a firetruck with a siren!
Maternity ward nurse! There was also a dentist career.
Cosmo works security. We caught him transporting cash to the bank. They really let them go off alone to do their ‘missions’.
The pilot career. Nearby, those that chose the flight attendant career path were being trained to give safety instructions.
At the end of a great day, completely worn out physically and emotionally the holy land awaited! He entered “The store” to see what he could buy with his Kidzoes.
We watched through the glass as he wandered around looking at the price tags. I saw him tear up as he realized everything good was just way too expensive for him.
He finally decided on a crappy little plastic thing, the best he could afford. Welcome to the real world, kid!
Very cool and worth doing at least once.
Price: $40 US + the usual milking techniques like expensive food, photos, etc
WWW: Kidzania Japan website Note: You need to make reservations.
Feb 5th, 2010 by Seth
There are times when you just have to bite the bullet and do some real coding with Xcode. Here are some tips to make it ‘feel’ more like MSVC (with Visual Assist installed of course) so you can bounce back and forth without snapping and murdering your family again.
Setup Synergy+ so you can use your Windows mouse and keyboard on your Mac. It’s free.
Just think of your Mac screen like an extra monitor.
Note sure if you’ve heard but the Ctrl-X/Ctrl-C/Ctrl-V shortcuts are freakin’ backwards on the mac. (Don’t get mad Mac people, I just mean from a long-time Windows user’s point of view!)
To fix this, open the Synergy settings on the server side, which would be Windows, and set up the Mac target to reverse the Ctrl/Alt buttons. (See pic above)
This makes the fix system wide, much better than just trying to fix Xcode specifically to do it.
Advantages of using Synergy:
Disadvantages:
Alternative methods:
There are free methods to get rid of that nasty acceleration, none of them really work, maybe the $$ ones do. Some 3rd party mouse drivers will do the job, but you have to OWN that mouse for it to work right.
You can also reverse the Ctrl/Alt (Sorry, Command key, whatever) under keyboard preferences on the Mac side, but I seem to remember having a problem with doing it that way.
Install my MSVC key config. (Works fine with Xcode 3.x)
Download this, unzip it, and place MSVC.pbxkeys in YourUserName/Library/Application Support/Xcode/Key Bindings.
Next, start Xcode and click Xcode->Preferences, select Key Bindings, then choose “MSVC” as your key binding set. Now Ctrt-Shift-F does project wide find, Ctrl-Shift-H does project wide replace, F5 does build and debug, Ctrl-` (tilde) will swap between source/header and so forth.
It also remaps debugging keys, F10 will step over, F11 will step into, etc.
It’s not perfect though, it doesn’t seem to want to map a key twice, I can’t get F5 to also “Continue” while debugging. So that became F6.. consider this a good place to start from that you can further customize.
You’ve gotta websurf from your Mac once in a while, so install Firefox so you don’t have to deal with Safari.
Install Keyfixer, a Firefox 3 plugin so pressing End or Home while editing text will actually do what you expected it to.
While you’re at it, you can fix it so your mouse’s forward and back buttons work properly in Firefox by using the hotkey mapper in Synergy on the server side:
(Map mouse button 4 to Ctrl-L and mouse button 5 to Ctrl-R)
Well, you can’t. The gold standard is of course TortoiseSVN on Windows – but I can’t find anything close on the Mac yet, at least not for free. Yeah, I’m cheap like that.
SCPlugin shows a bit of promise because it attempts Finder integration but is currently broken enough to steer clear of. Maybe later…
RapidSVN is reliable but makes you jump through some hoops if you want merging/diffing.
What works for me currently:
Well, almost. You’ll still feel a little empty inside without VisualAssist’s advance code refactoring abilities, but hey.
If you’ve got any more tips to ease the Win->Mac pain please share ‘em.
Jan 26th, 2010 by Seth
The IGFM results are in! Our game Mind Wall didn’t make the cut but it did get an honorable mention in the Best Mobile Game Design category. I admit it, I was sort of hoping for a reason to get to GDC this year but alas, it was not to be.
Hit indiegames.com for the full story
Big congrats to the finalists, wow, it looks like all but one are for iPhone/iTouch devices. (The single exception is for the DSi)
Complain as you will about the ‘race to the bottom’ pricing and crapware flooding the iPhone, but wow, it’s also truly a fertile space where people are taking chances and making original and incredible things. Reminds me a bit of the crazy C64 days, almost.
Hat-tip to fellow Ludum Dare alums Dock (Tumbledrop) and Tonic from Secret Exit (Stair Dismount) for making finalist in the technical achievement category.
Jan 20th, 2010 by Seth
Everybody has their own favorite development IDE. Some love Eclipse, others adore Xcode, and a few old school types swear by simple text editors and shell scripts. (Hi Pov!)
While cleaning up the Dink source I’ve been really getting my money’s worth out of Visual C++ with the Visual Assist add-on.
One of the more useful features of Visual Assist is intelligently renaming a variable or function name across a project.
As an example, I could safely rename the horribly named global int variable “mode” to “g_gameMode” . It’s smart enough to ignore locally defined “mode” variables or the word mode used in other contexts, such as functions or comments.
With its new name it will be safer use Search and Replace to make it GetGlobals->GetMode() later or something if I want to later.
Let’s say for some reason you wanted to rename RTFont::Load to RTFont::LoadTrueType but you don’t want to break things in old projects.
Here is a trick to safely rename things across multiple projects:
When you have tools to make normally monotonous chores a breeze, you’re that much more likely to actually do it!
If your IDE can’t do stuff like that it might be time to find one that can.
Jan 6th, 2010 by Seth
More Dink stuff. I’ve been focusing on the more technical parts, especially dmod support.
Please ignore the ugly temporary GUI I’ve got going now.
When Dink was developed, I didn’t give too much thought to how add-ons would work. Here is what it had:
So yeah, very basic.
Also missing was a way to package and install them. The first DMOD’s (Search For Milli Vanilli and Mystery Island) were packaged with .exe based installers that would locate the dink directory (in the ugliest way possible) and create a directory there.
By the way, Search For Milli Vanilli has a 4.6 rating?? Come on!! First DMOD ever, giant heads, awesome music, and eerily predicting the future mean nothing?! (The map.dat is dated 10/15/1997 .. yeah, not even I would be in poor enough taste to do the dmod AFTER what happened)
So I thought everybody would create a windows-centric .exe for each add-on? Dumb idea, especially back before the era of nice free install makers. So we ended up with a bunch of zips/rars/lha’s or whatever without a real standard.
Then, an enterprising lad from the Dink community by the name of Merlin created DFArc, a utility to help install and manage dmods.
He invented the “.dmod” file extension. (I think?) This is basically the above but compressed as tar.bz2. (Grr, I only support .zip in my game framework!)
Then, the dink community went through the laborious task of converting existing dmods to .dmod format making everybody’s life easier.
If I want to make the DMOD experience smooth and take advantage of the currently 301 add-ons (some as big as Dink itself), I need to allow you to download and install the original .dmod files. No porting, no special iPhone versions. No repackaging.
First I improved my net code to handle redirects and allow in-game downloading by URL: (there will be an easier way too, but this “manual” download way will remain, useful for testing or just installing any dmod you feel like)
I searched in vain for a small and portable tar.bz2 unarchiving class so ended up writing one using the bzip2 library.
Tar is a dead simple format, especially when you can ignore stored file permissions and the like.
I force all files to be lower-case when writing, helps with the case-sensitivity issue.
After it’s finished, it will kick back to the scrollable DMOD management screen:

Basic, but functional. I will add more text and probably icons for the readme and url if applicable.
And finally:
Well, most of the technical issues are out of the way so it’s time to move on to interface and better audio. At first I was thinking I wouldn’t need to support midi because I was going to remaster the whole dink audio track, but now I see midi support is a must for dmods.
So do I want to spend $500 to license fmod for iPhone? (I used this for Prey Invasion, so I’m already familiar with it… that would also give .mod/.xm support. iiiiinteresting.)
Is there anything with similar functionality that is cheaper? Hurrumph.
Thanks to magicman, Ex-D, and scratcher from the Dink Network’s chat for helping me out.
Jan 5th, 2010 by Justin
Note from Seth:
This post is from Justin Martin, the awesome artist behind Dink Smallwood and the new Dink port we’re doing for iPhone! He’ll be using codedojo from time to time as well.
Just check the name near the top to see if it’s Seth or Justin who is posting.

After five+ years of adventuring in the land of Azeroth, I discovered yesterday that my beloved WoW toons were hacked… some deleted and all others stripped of everything–all my precious epics sold or sharded and gold stolen. Maguro, my level 80 pally, was left wearing his seasonal xmas garb. The mockery… the nerve… my gearscore went from about 4850 to 70 in a whim in contrast to the many months/years spent in acquiring rare drops. Damn f*** gold farmer hackers. Damn Blizz for not being speedy with replies.
The new year also brings good tidings. I’m excited about developing art work/interface graphics for the upcoming Dink Smallwood port to the iPhone/iPod. I had lived and breathed Dink Smallwood (DS) during it’s year and a half development and look forward to revisiting Dink and working with Seth to make the gui as polished and intuitive as possible. Thanks to all you Dinkers for keeping DS alive and well. Looking forward to some fun duck stomping on my iPod.
Jan 2nd, 2010 by Seth
Happy new year to you and yours from all of us as RTsoft! (Fine, it’s just me and the family and I didn’t really ask them, but whatever)
Christopher Hyde has listed his favorite free games of 2009 and our humble freebie Mind Wall clocks in at #47.
If you’ve got an iPhone/iTouch, I know you’ve already downloaded this way cooler version that has new modes and international rankings.
I’m plugging away at the Dink Smallwood port, going to post another ‘developer diary’ soon about that.
Yeah, what’s with that? An iTunes user review chastised me for not releasing an update and fixing “all the bugs”. Huh?! What bugs?
I’ve had a lot of emails and the closest thing to a bug is people not understanding that it automatically saved your game if you quit, or not understanding some aspect of the rules. (Ok, improving the in-game help text is a legitimate gripe)
If you know of any bugs in Dungeon Scroll for iPhone, please email me about ‘em because if there WAS something wrong, I most definitely would work fast to fix it. I can’t help it if it’s my most stable V1.0 software release ever. Hey, I’m as surprised as you.