I just spent 30 minutes trying to come up with a suitable opening for this post and have decided that it’s simply not going to happen. A friend of mine sent me a copy of Byousoku Go Senchimetoru a few weeks ago. I couldn’t sleep last night, so I watched it. I’m a fan of the director’s previous work, Hoshi no Koe, so I thought I knew what to expect.
But just because I was expecting it doesn’t mean I was in any way prepared. I was floored.
The story is beautiful and sad and the visuals are simply astounding. I give the movie a ten and I’m going to shut up now and just share some screen caps.













Posted by Ammon as anime at 4:55 AM EDT
2 Comments »
Wow, 5 technical posts in a row. I must be doing something right/wrong. Well, I’m certainly doing something, I’m just not entirely sure what that something is… but now it’s time for something completely different.
Recently, I’ve been playing a good bit of Dream of Mirror Online (DOMO - not to be confused with Domo-kun), and I think it’s safe to say that I’m hooked for now.
Earlier this month, Massively posted an article on five games they thought were better than WoW in one category or another. (It’s not really that hard to beat WoW in one thing, their secret sauce is in the combination…). I agreed with the first four games on the list, but had never even heard of the fifth game - DOMO, which they claimed had a way better casual experience. Scouring their site, it turns out they’ve shown the game nothing but love, and a lot of it. So I suffered through the enormous download and slightly creepy registration process (they provided me with a gmail link to check my registration email when I was done…).
DOMO is what I’ve always referred to as a Korean style MMORPG (except that in this case it is actually by a Taiwanese game studio, for what it’s worth). Normally, the genre is typified by soul crushingly repetitive grinding of mobs for the sole reason of becoming capable of grinding a different colour of mob. There is no plot, there is very little skill or thought involved. You buy health potions in batches of 1000 and drink 50 of them every kill - I’ve actually had other players recommend I wedge a penny in my keyboard to hold down the potion spam button…
These games can be fun… for a few hours, sometimes even days. But in all of my sampling of the genre (why I keep coming back, I’ll never know), I’ve only really encountered 3 games I liked enough to spend more than a week on. DOMO makes four.
I like them because they appear to have learned from the mistakes of others, they actually address most of my standard gripes about the genre. For starters, they don’t install a rootkit on your system and you can auto-reject duel requests…
For a free-to-play game (entirely optional micropayments), they offer one thing I’d never really really seen before. Content. For any given level of character in the stereotypical KMMO, there is precisely one optimal grinding spot that all players compete over. When you ding, you progress to the next spot and compete with those players. Maybe the mobs you compete for change models.
For a level 10-11 character in DOMO, I can think of four different places to hunt/quest. They actually have quests. And they’re not all just the “kill 300 foozles and I will give you money” type quests (though there are admittedly a lot of those). So far, I have done quests that involved:
- Talking to all of the important NPC’s in town so I know my way around.
- Bribing and bamboozling members of the thieves’ guild in order to gain admission.
- Manufacturing a sturdy rope so I could gain access to a new dungeon.
- Slaying zombies to collect information and try to figure out why they’re rising.
- Walking across a few maps while blind.
At around level 15, characters can learn to fly by surfing on their sword (the game is wuxia themed, after all). The quest to gain this ability involves defeating the Flying Frog King with a large party and getting some magical frog powder from him… (Which always reminds me of kind of the opposite of Discworld’s dried frog pills, which were actually used to keep the Bursar from hallucinating that he could fly).
DOMO has a sense of humor. The art is cell shaded and cartoony (which I personally appreciate). The monsters are just a bit goofy. While the translation isn’t 100% (when is it ever?), it’s worth paying attention to quest dialog. During the introductory quests, you pose for pictures with one of the game universe’s gods, etc… (and a little frog pops up to tell you how to take screenshots).
DOMO also has a refreshingly interesting pick-and-choose sort of class system. It’s not really that innovative, other games have done it before… but I don’t think any other multi-player game has done it as well. It reminds me of a cross between FFXI and FFT. Every character can advance levels separately in different classes (I am currently a lvl 17 thief, 15 fencer, 12 musician, and 11 doctor between the two characters I’ve been playing). You can then equip abilities that you learned on other classes - even if they do perform at slightly lowered efficiency. At higher levels, you can learn to equip gear from other classes as well - so you could play a wizard wearing mercenary heavy armour if desired.
Unlike FFXI, where you start every class at level 1… DOMO has a “Commoner” class that everyone starts with. You level commoner to 10 and then start questing to learn other classes. Every other job in the game starts at level 10. So far, I’ve found almost every class to be completely viable for solo play at 10 (Wizard is difficult because their spells cost components that are very expensive at low level).
One of the most interesting things about DOMO’s class system is that they’ve made completely viable support roles available - no potion spamming here. And sure, while anybody can equip first aid as a secondary ability… many of a class’s best abilities require you to equip that class’s equipment as well. The doctor and musician classes are in high demand. If you’re going to go fight anthropomorphic casks of wine in the basement, who wouldn’t want to bring along a doctor who’s going to suck the toxic booze out of your system with a 3 foot long syringe?
The game’s crafting system starts off as pretty typical of the genre. You are encouraged to AFK while collecting resources by using consumable gathering tools in designated areas. Items gathered in this way are combined with normal mob drops to both create and upgrade equipment. Where DOMO improves on the old system is by actually making crafted equipment preferable to vendor equipment. Recipes must be gathered in a variety of ways, and the ability to actually use the recipes is purchased with your Commoner class’s skill points.
The game has a cash shop, but very few of the items for sale there really affect gameplay. In fact, every one of them is entirely optional. Most are cosmetic in nature or offer temporary buffs of one sort or another. The only things from the item shop that really matter are pet tokens - can’t get summons without either buying them from the cash shop or by buying them from another player in game. But there seems to be no shortage of players willing to sell you a starter pet for 10-20k game currency.
Of course, nobody’s perfect. The two places where DOMO falls down in my eyes are in the documentation and in the archaic user interface.
The official US web page is almost devoid of useful information. You’re much better off looking for an answer in the forums or one of several 3rd-party wikis. Because the translation isn’t perfect, skill/quest descriptions may be misleading or confusing.
The UI suffers from similar problems. The game launcher hangs around after you’ve launched the game (but you can close it manually). All music is turned off by default. In order to toggle on the ability to see what other users are wearing you actually deselect the “Show equipment” option. And I don’t even know what “Turn off player’” even means
NPC dialog takes over all other mouse input, so if you start a conversation with a quest giver and his chat bubbles start popping up behind your inventory window… well, tough. You’ll just have to click through and hope you didn’t care what he said, because you can’t close the window (clicks anywhere are interpreted as instructions to progress the dialog). HUD notification text (such as from earning xp for a quest turnin or exchanging items with an NPC, etc…) take a LONG time to fade away, and since they often pop up during NPC interaction, they frequently obscure these chat bubbles as well.
They give players the option of WASD for movement (click-to-move is still the default), but don’t give keyboard commands for target selection. So you still have to click on your enemies to start attacking them.
Most of the game’s keybindings are just bizarre and can’t be changed. Ctrl-X brings up your skill list, Ctrl-D for inventory, Ctrl-C for quest journal, etc…
Oh, and in order to cast a targeted spell on yourself, you have to actually click on your avatar (or on your character portrait in the UI). There’s no way to automatically target self when casting heals while soloing, etc…
But I can live with all of that. Xfire seems to think that I’ve played a total of 26 hours since I installed the game 3 weeks ago (several of those hours were spent afking overnight while working in the glass mines).
Overall, I give the game an 8 out of 10. The UI gets a 3 and the fun factor gets a 9 - it is probably the best casual MMORPG I’ve seen since Puzzle Pirates. While certainly not a game for everyone, it is absolutely worth the cost if you’re looking for something casual and silly with a good degree of replayability.
Thank you, DOMO. Thank you for giving me something to do in stead of my Sunwell dailies while waiting for WoW’s next expansion. Thank you for renewing my faith in the free-to-play MMORPG industry.
p.s. Please forgive me my awful puns…
Posted by Ammon as play at 3:42 AM EDT
No Comments »
Sorry it took me so long to post this, but Wordpress 2.5 doesn’t seem to like me trying to upload gz/zip files, so I had to upload the source manually.
Well, it’s been months since I promised to post some usable socket policy service code, so I will.
The script here is meant to serve as a good starting point for people whose servers need to allow flash clients to make socket connections. I have not actually used this exact code in a production environment, but I have been using code that is 99% identical for a while now. I am confident that any blatant flaws are the result of simple copy-paste errors as I compiled the package. Please let me know if you find any.
I have however, stress tested the heck out of this service. One instance successfully served up over 16000 policy file requests fed into it as rapidly as I could send them. The same networking code has also handled requests from at least 100 different hosts at roughly the same time.
Everything has been combined into a single cli php script that requires no special installation. Just plop it down on the server and run it as root. It will take care of the rest. The config defaults should be safe, but you probably want to specify them more clearly - just to be safe.
The daemon is made of three classes:
- Logger - A rudimentary log file management class that I copy from project to project in one form or another. The included version is stripped down from some of the other versions I’ve written, and I’m planning on releasing a more feature-rich version in the future.
- Daemon - A simple class for daemonizing a process. Adapted and re-adapted countless times from an original php4 class I found on the net a few years ago by some guy named Seth (whose email domain no longer exists).
- FlashPolicyService - The meat and potatoes, a child of Daemon. Mostly, this is just the requisite networking code and glue to make everything work together.
As with any of my other code, this is licensed under CC Attribution 3.0.
Download:
Source code after the jump.
Read the rest of this entry »
Posted by Ammon as flash, howto, networking, php, programming, sleep, sysadmin, work at 2:05 AM EDT
8 Comments »
I’ve been getting a lot of positive feedback recently on the post I made last December on this topic, so it’s probably time to post an update.
Last week, Adobe finally released some help for people who need to provide socket policy services. They’ve got python and perl versions of the socket policy daemon that look like they can run either standalone or through xinetd. They don’t claim that the code is production quality yet… but it’s at least something.
Of course, I released sample PHP code 5 months ago… shrug.
My confederates and I have spent the intervening months sniffing packets, yelling at flash, rewriting daemons, etc… until settling upon a version of the service that appears to function reliably now. I am currently running it on 6 different servers and have seen it successfully handle requests from >100 simultaneous users during stress tests.
The biggest problem with my previous versions of the code was how I handled closing of connections. Previously, I had simply accepted connections and fired off the policy xml without waiting for a request from the client.
This worked 95% of the time over a good net connection, and more like 80% of the time over a poor connection.
The reason it didn’t work consistently was because of weird tcp ordering issues. Connections would be closed out of order, the response would be received before the request was dispatched, etc..
My new version is much more robust and actually waits for flash to submit the request before sending the XML. I consider it release candidate beta quality code and hope to be able to release it later today.
update
Version 0.9.b is available now.
Posted by Ammon as flash, networking, security, sysadmin at 11:57 AM EDT
1 Comment »
Warning: This post does not really contain a solution, only a puzzle I just encountered…
In the course of my work, I occasionally have to deal with corefiles. Like… a few gigs worth of corefiles at a time. And I have to transfer them between hosts for analysis and such.
This afternoon (while waiting for our shiny new bonded T1 to be installed) I decided to experiment with compressing the files to determine if I could save myself some time and bandwidth.
Read the rest of this entry »
Posted by Ammon as boggle, eat, play, rant, sleep, sysadmin, work at 2:34 PM EDT
2 Comments »