Category: reviews

Seidio 3800mah extended battery: suddenly it’s like I have a phone

Since I got my Android phone in May, I figure it’s a good time now to revisit my earlier review.

After six months of having my phone, I established a routine I’ll call the Battery Anxiety Lifestyle. I would drive to work, about a 40-minute drive, and between unplugging from my charger when I woke up and getting to work, I’d have already lost anywhere from 5-10% of my charge. By noon, I was down to about 70%, and by the time I got done with lunch, I was at 50% and entering “power saving mode”. I’d plug in to re-charge and by mid afternoon I’d be back up to 100%, and have enough battery to get me through an evening of being not umbilicaled to a wall socket. And, well, as long as I got home by around midnight or so, I’d be down to around 20-50% depending on how much I used the handset in the evening.

Plainly, the Samsung Galaxy S2 is geared toward a sedentary lifestyle, where you’re never inconvenienced by having to sit tight by a wall outlet for a couple hours. At least, that’s how it works if you actually use your phone.

I got sick of that, and last week I broke down and bought a $60 extended battery from Amazon. It’s a Seidio 3800mah and today was my first day with it in, and I feel liberated. I didn’t have to charge in the middle of the afternoon, and I’m still above 50% charge at 8:30pm. I really have to wonder why this isn’t the way it is for everyone, why you have to spend another $60 to get a special battery to have a phone that you can actually use.

The biggest problem with this bigger battery is that it requires a bulging back plate. Now, I don’t mind the added mass or bulk at all, but no one seems to make any kind of protective armor case that will fit the handset with the extended battery in place. So I have to adjust to transitioning from Battery Anxiety to Drop Paranoia. To try to protect the handset a little, I bought a soft, silicone rubber case for around $3, and cut out the back of it so the bulkier backplate protrudes outward. It basically gives me a bumper around the edge of the phone, which I hope will be adequate protection in the event I drop it on a hard surface.

I really don’t like this solution, for a number of reasons: One, the cutting job I did looks like a sixth grader’s shop project. Two, I don’t think it fits or protects as well as before I cut it. Three, it covers the side buttons for power and volume. You can feel them through the case, and press them still, but it feels a lot less precise. Still, I consider the battery capacity to be essential, and so I’ll have to live with it. I’m usually very careful and protective of my handset and don’t drop it very often, so hopefully it’ll hold up.

Before I switched to the bulkier battery, I was using a hard Body Glove case that I liked a lot. This chopped soft silicone boot is passable, but inferior. I really want there to be armored cases designed for extended battery covers! No one seems to make them, and they should. Really, the extended battery should be mandatory, and ruggedized phones should be mandatory as well. I don’t understand how people can get by with a dinky battery and an unprotected handset. There’s a ton of accessories out there for the Galaxy SII, yet no one makes an armored protective case for an SII using an extended battery. There should be. Most people with an extended battery would buy one, and their existence would probably boost sales of the batteries.

GameMaker HTML5 – deeper impressions

For Ludum Dare 24, I worked on my project in Game Maker: Studio, and did most of my development work targeting HTMl5. I produced a Windows build as well as an HTML5 build, and have spent a lot of time enhancing the game since the compo deadline.

This has afforded me the opportunity to become much more familiar with GameMaker’s HTML5 shortcomings, so it seems like a good time to follow up on my initial impressions from the January beta. While most of the basic features are solid, there’s still a lot of bugs, unsupported features, and inconsistent implementations in the HTML5 runner. Unfortunately, it adds up to make the HTML5 module a bit lacking for serious game development.

Don’t get me wrong — it’s still very possible to make a decent, playable HTML5 game with GameMaker Studio. Just, if you’re hoping to be able to do absolutely everything in HTML5 as you can in Windows, you’re in for a long wait. While much of the framework runs equivalently, there are a lot of minor differences. And while these are minor details, producing a polished, professional game is all about minor details, and getting them right.

I still think there is a lot of promise for HTML5, but W3C, WHATWG, and the major browser developers have to pull together to solidify the technology standards. YYG can’t do some of the things with the HTML5 runner that they currently do in the Windows runner, without this happening. To their credit, they have been releasing updates rapidly, patching bugs almost weekly.

Unfortunately, this means that HTML5 games built in GameMaker Studio are not going to be as pretty or as polished as Flash can be, at least for the foreseeable future. Of course, Flash has many of its own problems: with the rise of the open HTML5 standards, Flash’s future is in doubt, and it seems to be in decline, so it’s not like it’s a great platform to pick up right now if you’re not already well versed in it. Unfortunately, the usurper isn’t quite ready yet. The W3C recently announced the HTML5 recommendation will be finalized in 2014, but even once that has been accomplished, it’s still up to the browser developers to support the standard consistently and completely — something they were never able to accomplish with HTML4. This points to HTML5 being a less solid platform than game developers might hope for.

Here’s some of the shortcomings I ran into while developing Karyote.

Color blending

The Game Maker HTML5 runner doesn’t support all the color blending modes that the Windows runner does. Color blending effects really make games look great when done well, so this is a huge disappointment graphically. I submitted a bug report for this and YYG closed it saying they can’t do anything to address it until the web standards catch up.

Surfaces

Surfaces kindof work in HTML5, but I have a major problem with my implementation in Karyote. Somehow, the game broke when I added a drawing surface, such that in normal run mode, most of the objects in the game don’t draw/don’t exist. I don’t have any understanding why, either.

It works fine in Windows, but in my HTML5 build it doesn’t work unless running in debug mode. The problem only exists when the game is not running in debug_mode, so debug mode is not helpful for me to trouble shoot with. In fact, the running version that I have up of the enhanced build currently is running in debug_mode, with the debug console hidden with CSS.

Creating sprites – no control over collision masks

This was my first game where I implemented procedurally generated sprites, and they work great in my Windows build, but not in HTML5. For some reason, when I create my sprite in HTML5, they don’t get a correct collision mask, and end up with a mask that is much too large, resulting in poor hit detection. It seems the collision mask is set to match the bounding box of the sprite, rather than the image. In the Windows build, the sprite automatically gets an accurate, precise collision mask.

There’s a gml function sprite_collision_mask() which is supposed to allow me to set the collision mask, but this doesn’t work in HTML5, either. In reading up on the issue, I learned this is a bug, and there’s presently a workaround available by using sprite_duplicate(), but this approach apparently can cause excess memory consumption and/or performance issues.

Drawing round objects are approximated

If I draw_circle() in gml, I don’t get a true circle. I get a polygon which has enough sides to reasonably approximate a circle, as long as the radius is sufficiently small. For even a moderately sized circle, you can see the flat edges and corners. Smooth, scalable vector graphics like you’d expect to see in an SVG or Flash animation don’t seem to be implemented yet.

Update: There’s a gml function, draw_set_circle_precision(), which can be used to set the number of sides in your circle-approximating polygon between 4 and 64. The more sides in your pseudo-circle, the slower they are drawn. This still isn’t a true circle, and will still have smoothness issues when scaled very large, but it’s better than nothing.

Conclusion

I still see much potential for HTML5 games, but until these issues have been fixed, it’s going to be hard for GM:Studio developers to equal the graphical quality of a good Flash developer. HTML5 is the heir apparent to replace Flash, but it’s still emerging and has yet to establish itself as a mature technology, and it will likely be a few years before this will happen.

Meanwhile, Flash is not the best game development platform, either, and it’s not the best web application platform, and while it’s under steady assault due to the mobile market spurning it, it’s still a more mature technology, and there are game development frameworks for it. While I can’t really recommend Flash to a new developer, if you’re a seasoned Flash developer you may want to stick with Flash for web browser games for a while longer yet, unless you really want to reach the mobile device market yet don’t want to do native development for some reason. But really, the answer for mobile devices is to do native development — the difference between a native Android or iOS game and what can be delivered through HTML5 is like night and day.

Or, if you’re really looking to make web browser games, you may want to take a look at some of the competing technologies, such as Construct, or Unity 3D, native HTML5, or something else.

GameMaker has some definite strengths, and is making steady strides, but the battle is far from over and there are other legitimate contenders in the market.

If you use GameMaker for other platforms, the HTML5 module is still worthwhile, but you’re not going to be able to do absolutely everything you want to be able to do with it. Buying it now still gives you a lot of capabilities, and if you haven’t yet, you’ll probably want to get started now in order to get familiar with them so that you’ll be ready to deliver robust, high quality games once the technology catches up. Waiting until the platform is perfect before jumping in is just not a good idea, as you want to have as much of a head start as you can get to sharpen your skills.

You’ll need to HTML5-ify a version of your project to work around some of the limitations of HTML5. Use your source control and fork a branch for your HMTL5 customizations and workarounds.

An HTML5 game has a lot of potential to be a good way to entice players to try your game, and may lead them to download your other builds, by providing a limited demo that runs right in their browser. And there are plenty of games that you can make right now that are “fully featured” as long as you don’t require the things that HTML5 isn’t capable of delivering right now. But if you want something with a lot of eye candy, the equal to what you can currently do on your Windows GameMaker projects, it’s just not there today.

Ingenuity Fest

This weekend is Ingenuity Fest in downtown Cleveland, held this year at North Coast Harbor. Cleveland Game Developers has a space, and we’re hanging out, demoing games and promoting our projects and talking about our craft. A number of our members brought tech demos and projects to show off.

One of the most fun games I’ve seen in some time, BaraBariBall, is on display here in our space. It is not, unfortunately, one of our creations, but it is a lot of fun. It’s a bit like Super Smash Bros., but simplified and with a graphical style reminiscent of the Atari 2600. I really like the graphical style. The animation is particularly well done. And the controls are superb. I never could get into Smash Bros. due to its overly complex controls. Any time I played it, all I could do is mash buttons and hope for the best. With BaraBariBall, the controls are greatly simplified, and this makes the game much more fun. It’s now more of a contest of reflexes and tactics, and less about memorizing and mastering strange controller contortions that unlock special moves.

I can’t wait for this to come out so I can buy it.

We also have JS Joust set up. Again, this isn’t something one of our group created, but it’s fun. It uses the PS3 ice cream cone controller and a Mac OS X computer.

Cleveland Game Developers Matt Perrin, Brian Gessler, and Jarryd Huntley have all brought in projects that they’re working on.

Matt Perrin whipped up an interesting project just for Ingenuity, which he calls Monster Sumo. You draw your own graphics on a sheet of paper, then take a photo with a camera phone and upload your monster to a server. Then you can do battle with another monster created by your opponent. I suggested that this would be a lot of fun to play with a Kinect interface, but for now it’s just controlled with a more traditional input device — I’m not sure if it’s keyboard, or gamepad, or possibly either.

Brian Gessler brought a prototype game that uses Kinect. He described it as kindof a reverse Breakout, where you’re trying to push the wall up and the computer is trying to break holes in it. It looked interesting but unfortunately the laptop he was running it on was having trouble playing it at full speed. Brian promised to do some performance optimization before bringing it back tomorrow.

Jarryd Huntley had a game rigged up to play on an Oscilloscope, in homage to Willie Higinbotham’s original ur-pong, Tennis for Two. Unfortunately, his oscilloscope died just before the festival, and he is trying to source a spare on short notice so he can demo the game.

The Wii U. Texting while Driving?

Nintendo officially announced the launch date and pricing of the Wii U today. We’ve known a few things about it for a while, now, specifically the new controller with its built-in high resolution color touchscreen.

Secondary screens have been done before. The Sega Dreamcast controller had a built-in module that docked in the controller and provited a tiny low-resolution monochrome display, for minigames and private information for multiplayer games. And Nintendo has on occasions done Game Boy/Game Cube crossover games, where part of the game is played on the handheld system and part is played on the TV.

Wii U represents a maturation of the concept, and the first time a very high quality screen was put onto the controller. There are a lot of interesting possibilities that come out of this, succinctly summarized as “asymmetric”, which is fancytalk for “Thing A happens on screen A while Thing B happens on screen B.”

The main strength of 2-screen gaming is this assymetric aspect. Of course, network multiplayer gamers have had this for quite some time. The Wii U seems even more geared toward multiplayer gaming, where the multiple players are together in the same room. One difference I see is that the Wii approach lends itself more to a “shared data/private data” game. While technically this is the way it usually is with network multiplayer gaming, the sharing now becomes more literal.

Most networked PC games give each player “*My* Thing A,” where whatever that thing is, it’s essentially the same for all players, just their view of it. For example, their avatar’s first-person view of the map from its position on the map, with their private data for their health and inventory. Wii U has the potential to give each player a unique “Thing”. A great example of this is given in the recent Penny Arcade strip, depicting a hypoethetical computer-aided role playing game on the Wii U. Unlike the typical computer RPG genre, where the computer acts as the game master, and the world and storyline are all pre-programmed, the Penny Arcade concept shows a DM using the Wii U as a world realization tool, but controlling the world in a more interactive way.

This is great stuff, and I hope we’ll get to see it, but it makes me wonder how the Wii U serves the single-player game. To me, the first thing that occurs to me is that a single-player dual screen game is very much like texting and driving. Diverting attention between two screens is a challenge, but maybe not a rewarding one. There’s definitely potential for novel, interesting new modes of play, but I’m not sure yet how it will take shape.

Hopefully today’s press conference will have shed some light on this. I’m looking foward to finding out later today.

5 Stars of Ambiguity

Originally posted at my Ludum Dare blog

(more…)

Game Review: Iron Tank (NES)

Iron Tank (1988, SNK) is a mostly-forgotten title for the NES, but deserves more recognition than it’s gotten. I think of it as a spiritual companion to the other great NES WWII Shooter, Capcom’s 1943.

Many of its features were successful in other popular games, but it has enough of its own unique strengths that it can stand up proudly as an innovative game with an experience you will find similar to many other games, but still feeling original and well done, not generic or derivative:

  • Radio communications screen for narrative elements (Bionic Commando, Metal Gear). The radio will sometimes give you warning about upcoming challenges, or some mission background to explain why you’re here and what you need to do. This is mostly inessential because the mission is always “Stay alive, destroy enemies, and advance, and destroy a boss.” but it still gives the game a story of sorts. Often the radio message will be “too late” advice, warning you to be careful about a challenge you just got through. Toward the end, the enemy starts broadcasting to you, threatening/begging out of desperation to get you to turn back. This boosts your ego, and is a neat reward for the player.
  • Configurable power up system (many NES games featured this, but Iron Tank’s is unique in its implementation, but perhaps could be described as a combination of Mega Man and 1943.) Your main gun has four different types of power boosts — Long range, Rapid fire, Armor Piercing, and Bomb shells — which you refill through pickups.The pickups are odd in that they are letters which sometimes don’t have an obvious relationship to the power boost they represent. L = Long Range (ok, fair); V = Rapid (velocity?); F = Armor piercing (huh?); B = Bomb Shells (right). Rather than remain enabled until expended or a timer runs out, you can enable/disable them on a sub-screen as needed. This means there’s strategy to the game — you can save up your power and use it when you hit a really tough spot in the game. Managing your power-up resources is critical to winning. Knowing when you need them, and deciding what you need at a given time, and balancing that against the yet unknown challenges that lie even further ahead makes for a cerebral game that layers on top of the action game. There are times when an obvious approach of using power-ups isn’t really necessary, because a subtler strategy will enable you to get by with a stock configured tank, and it often pays off to take the harder challenge now, conserving the power boosts for an even more difficult challenge later.
  • The most interesting power-up mechanic is the [R]efuel tank, which gives you a secondary life bar that extends your primary life bar — but only if you choose to have it enabled. Another interesting thing is that you can both shoot and run over foot soldiers — and the game seems to encourage you to run them over, as doing so gives you a tiny but vital boost to your main energy.
  • Infinite continues, and a password save feature, allowing the game to be longer than would otherwise be practical to beat in one sitting, and not punishing the player too severely for not being able to make it through the challenging parts of the game, and allowing therefore for those parts of the game to be even more challenging.

Basic gameplay

There’s a very good “Let’s Play” series on YouTube, if you aren’t familiar or need to get reacquainted. You are Iron Snake, commander of the Iron Tank, invading Normandy and liberating Europe from an implied but unnamed Nazi occupation. And by “liberate” I definitely mean “blow the hell out of.” Actually, there are occasional resistance fighters and POWs who you’ll rescue throughout the game, as well.

Controls

Controls are often a weak point in games featuring tanks. Not so in Iron Tank. Your tank features an aimable turret, which allows you move and aim independently. The way this was implemented on the standard NES gamepad was effective — hold button B and the D-pad controls the turret. This takes a little getting used to, but is very effective and you can be quite nimble with practice. Being able to aim to the side or diagonal and strafe is an important tactic, and makes the game more realistic and more fun.

Graphics

There is a huge variety of tile-based backgrounds, for simulating the European countryside, cities, docks, airplane hangers, the Normandy beach, cliffs, trees, roads, paths, rail tracks, fortresses, you name it. Even for the 8-bit NES, these are a little rough in spots, though never truly bad, and the variety makes up for it.

Music

The music in Iron Tank is really first rate. It is heroic and epic, evokes both the military marches and the WWII era, adds drama and tension, and provides cues to when more challenging areas are up ahead. Most of the music is in the lower and mid octaves, which gives it a characteristic unlike most other background music on the NES, while seeming suitable for a game about tanks.

Enemies

There really isn’t anything in Iron Tank sophisticated enough to call AI. The enemies all move in basic, simple patterns and pre-set routes, but a lot of variety makes the game challenging. Some tanks sit still, others chase you, while others seem to stand off at a distance and duck and feint, and still others will enter, make a quick attack, and then retreat before you can retaliate.

There’s also a great variety of enemies: infantry, officers, tanks, train guns, fortresses, turrets, and boss tanks called “Think Tanks”. I guess they’re hard enough that you need to think about how to defeat them? You even do battle with airplanes and submarines. Of course tanks are the star of the game, and there is a satisfying variety of enemy tanks, different styles of light, medium, and heavy, which vary in their speed, armor, and armament. Some are barely any threat to you, while others necessitate caution.

This variety of enemies invites a variety of tactics, which keeps the game fresh and challenging. The key tactic is avoiding being in range of the enemy cannons, flanking the enemy’s turret when you can, or when that isn’t possible, waiting for a pause in their fire and placing a well-timed shot to take them out. You can also sometimes use your long range shots to safely take out enemies before they’re able to engage you with their own armaments. Individually, their cannon fire is usually not too hard to dodge, being limited to 8 directions, resulting in predictable pie slices of safe zone. It’s not too hard to take out enemy tanks when they don’t outnumber you too badly and there’s plenty of room to maneuver. Sometimes moving slowly and cautiously, taking out the enemies one at a time, picking apart their defenses is the best approach, other times it’s better to just run for it.

Terrain

Some terrain is more open than others, however. The variety of terrain matches the variety of enemies and enemy tactics, and itself influences the tactics that will be most effective in a given area. Although the game is 2D, there are simulated ledges, cliffs, and rooftops where placed guns can harass you, sometimes out of your own reach unless you have some power boosts enabled. There are walls and buildings and natural barriers that can constrain your movements, but provide cover in return. Water likewise blocks your path, but leaves you exposed to fire.

There are wooded areas where the tree canopy foregrounds partially obscure the action beneath them. The NES didn’t have a capability of alpha channel, but they still made the forest sprites partially see-through, so that when you go under them, you can see the unobstructed part of your tank (or lurking enemies) through them. This is really cool.

Insta-kill anti-tank landmines will block your progress along otherwise open and inviting pathways. They blink, being invisible half the time, so can be difficult to spot.

Destructible terrain

While not dynamically destructible, there are enough buildings and walls that you can blow up to uncover secrets or alternate paths that it’s worth mentioning. Being in a tank and not being able to destroy these things just wouldn’t feel right.

Multi-path map

I don’t know of any other NES game that did this, so Iron Tank deserves special recognition for this design. At several points in the game, you’ll encounter road signs that point out a fork in the road. Depending on which path you take, you’ll proceed to a different level, with different terrain and enemies. One path might be more difficult, but you have no way of knowing before you make your choice. This means that in order to experience every bit of the game, you’ll need to play through it multiple times.

Map x-wrapping

Instead of having an edge, the map wraps on the x-axis. There are certain places on the map where there are no side walls, and you are unbounded in your horizontal direction, but in these locales, the map wraps around. While not exactly realistic, it does make for some potentially useful tactics, as you can return to an area by continuing in one direction, without needing to double back.

Overall

Iron Tank is a solid effort from SNK. The game integrates a lot of the features and design elements of successful NES classics, and does it well. While mainly an action game, the story elements provided by the radio communiques and the configurable power-ups give an element of strategy almost like a proto-RPG. It’s one of my favorite lesser-known games on the NES.

See Also

If you liked this game, you’ll want to check out 1943, Guerrilla War, Commando, Jackal, Heavy Barrel and Ikari Warriors. All have a similar WWII/war theme and vertical scrolling shooter gameplay.

Rave: betterexplained.com is the best thing I’ve read today

I am probably going to curl up all weekend with betterexplained.com and brush up on my math. I haven’t been this excited to read about mathematical concepts since I was a high school senior and discovered William Poundstone’s The Recursive Universe. Which was really more about information theory, but that’s a type of math.

What compelling reads in math can you recommend?

  1. William Poundstone: The Recursive Universe
  2. Douglass Hofstadter: Godel Escher Bach: An Eternal Golden Braid
  3. James Gleick: Chaos

Game Maker beta license expiration cuts off access to tools

This past weekend was the Game Maker Community Jam, a 72-hr game development competition sponsored by Yoyogames. I didn’t participate in this one, unfortunately, due to my license for Game Maker Studio being revoked. Here’s what happened:

Back in January, I participated in Global Game Jam, at which I obtained a free, time-limited license for Game Maker: HTML5, then in beta Due to bugs that I encountered with Game Maker HTML5, I had to start over twice after my project became corrupted, for reasons still unknown but hopefully long since fixed by Yoyogames. I ended up completing my project that weekend with my old standby, Game Maker 8.0 Professional. I just barely got it done, but had to sacrifice a lot of sleep and many features that I’d hoped to include as a result of the time/work lost due to the project corruption bug.

A few months later, in April, Yoyogames released Game Maker: Studio beta, which I downloaded, and I began using it. I played with the Studio beta a bit during Ludum Dare 23, but quickly realized that a 48-hr competition is no time to be discovering a new version of a tool, so again I fell back to a stable release, this time Game Maker 8.1. After LD23, I began porting my project, Bactarium, to Studio, refining it along the way.

Some time later, Game Maker Studio concluded its beta testing, and released 1.0. My beta license stopped working, so I had to buy Studio. Yoyogames had made an offer with their Global Game Jam that participants who tried out the HTML5 beta, which they had offered to GGJ participants for free, would be able to get 50% off when it was finally released. So, when I went to their web site to purchase my license, I was expecting to have to pay something. However, when I entered my old HTML5 license, the store allowed me to download the core Studio 1.0, as well as the HTML5 add-on license, for free.

Apparently this was in error, but at the time I had no way to know this, no way to claim the 50% discount that I should have been entitled to. I assumed that Yoyogames was being really gracious to people who participated in the HTML5 and Studio beta program — maybe I was getting two discounts and they stacked? In any case, I would have been willing to pay for the product if the site had been set up to take my money, but it wasn’t, and it didn’t require me to pay anything. The HTML5 license I received at GGJ apparently entitled me to download the GM:Studio 1.0 core, plus the HTML5 module, all for free. I was of course thrilled.

So I downloaded Studio 1.0 and used it, working on bringing Bactarium into Studio so that I could port it to Mac OS X and HTML5, and worked on a few other tech demos as well to familiarize myself with the new features. Things have worked fine up until last week, when I went to download and install the latest update. After installing, when Studio launched it told me that no license was detected and I needed to enter it. Figuring the license data had gotten blown away by the upgrade for some reason, I went through the license recovery process and re-entered my license key. However, Studio refused to accept my key.

I opened a ticket with Yoyogames helpdesk, and promptly received a response within 24 hours, informing me that my license key was no longer valid, as the HTML5 license that I had from Global Game Jam had expired. OK, I can accept that, no big deal. The communication from Yoyogames helpdesk further explained that they would be sending out coupon codes within about a week to people who participated in the beta, so they could get their discount. So, basically, I could choose to wait up to a week for the coupon code, or pay full price now. I would have thought that the old license key itself would have been the discount code, but oh well. I’m electing to wait.

Waiting put me out of participating in the GMC Jam this weekend. Oh, I suppose I could have worked in 8.1 again, but by the time I received the notification from the Yoyogames helpdesk, I’d lost enough time that it didn’t seem like a good idea to try to throw something together. I had other things to do this weekend, so I did them. No regrets about any of it, but it would have been better if the logistics had worked out a little better. I don’t mind the license expiring, since I’d expected it to anyway, and I don’t mind paying for my license, but not being able to purchase with the discount because Yoyogames didn’t think to distribute the discount codes prior to expiring the beta licenses is a bit disappointing.

So, today’s Monday. I still have not received my coupon code, but as they had said it would be happening sometime in the next week, I’ll try to be patient and wait for it to come by Friday, hopefully. I’m really hoping it’ll come through soon.

Darker Implications

One concern I now have is that, in reading up on the way Game Maker currently works, apparently you need to connect to Yoyogames server at least monthly to re-validate your license. This anti-piracy measure goes a bit too far in my opinion, and potentially hurts legitimate users. Copy protection crackers will always find ways to defeat such measures, while legitimate users will always be at risk of having their license killed in error, thereby denying them access to software on their own hard drive, that they paid for.

I can understand why Yoyogames feels they need to control licenses with a phone-home system tied to a remote killswitch, however the potential exists for legitimate users to be left in the cold if Yoyogames decides to kill an old version in order to force everyone to upgrade to their latest. If Yoyogames ever decided to stop supporting this version of Game Maker, or discontinue Game Maker entirely, or go out of business, all the paid-for licenses of the product potentially go bye bye.

It’s one thing to stop supporting an old version of a product, quite another to shut down license servers, effectively killing off the old version so that users are forced to upgrade. To be clear, I’ve seen no indication from Yoyogames that they plan to ever do this to their customers, only that they now have the mechanism available to them that allows them to do so. I sincerely hope that they never do this, as the backlash from the community would be substantial.

I would hope that as a last measure that they’d release some patch that permanently unlocks all licenses so as to prevent this from happening, and if they don’t then I’m sure the cracker community likely will, although this would technically violate the EULA as well as laws such as the Digital Millenium Copyright Act.

Update

It’s Thursday, and I’ve woken up to find the coupon code from Yoyogames waiting for me in my inbox. They’ve changed things up a bit from the original offer, and it’s about the same although I think it works out better from a certain standpoint.

Originally, participants in Global Game Jam were going to get Game Maker HTML5 1.0 (when it was released) for 50% off the originally announced price of $199. Yoyogames was selling beta licenses for half off, so essentially GGJ12 participants were getting access to the beta for free, and paying the same price for the finished product that the beta testers were paying anyway. This was nice because A) you didn’t actually have to pay anything for a beta, and B) you could try before you buy for a few months.

Somewhere along the line, Yoyogames changed their mind about their products and pricing. Game Maker HTML5 1.0 was never released; instead, it was folded into Game Maker Studio, becoming an optional $99 add-on.

As a result, the original deal no longer made any sense. So instead, Yoyogames has substituted Studio. With the coupon, you get the $99 Studio core for free; and if you want the HTML5 module, you pay full price for it.

Comparing to the old deal, this is better in two ways:

  1. You get Studio, which can build to Windows and OS X for free, and you can stop there if you want to.
  2. For the same cost as the original deal, you can buy the HTML5 module and have three build targets instead of two.

My old complaint still stands, that they should have issued the coupons and given developers a week or two to use thembeforedisabling the temporary licenses. On the other hand, apparently those licenses were only supposed to have been good for two months, and I think I got about 6 or 7 months out of mine, and I’m definitely not complaining about that. All in all, a week’s worth of inconvenience is still a week’s worth of inconvenience, but I’m glad that in the end, they’ve given developers who worked with the beta something worthwhile.

Product Review: Samsung Galaxy SII on T-Mobile

I am not an early adopter when it comes to technology that I want to rely on every day, so I came to Android only recently. After reading a lot of positive reviews, I bought a T-Mobile Samsung Galaxy SII. I’ve been using it for two months, now, so here’s my thoughts on it:

iPhone killer?

Many of the reviews said that the Galaxy SII was better in many respects than the current iPhone, and on paper I could see those claims arguably looked valid. It has a larger screen, for one — and it’s a very high quality screen, too. I like that I can remove the battery if I want to, the fact that it has an SD slot so I can expand the memory without having to pay Apple premium for the capacity. I understand why Apple made the design choices they did with the battery, the sacrifice in field replaceable battery for greater battery capacity to phone size makes a little more sense to me than the SD slot decision, which feels like pure greed.

And anyway, unless I want to switch carriers — which, thanks to the prevalent business model in the USA, is a rather expensive and therefore unattractive proposition — I can’t own an iPhone unless I want to hack it to work on T-Mobile, and I was reluctant to do so because of my experience with my last unlocked phone, a Nokia E75.

That phone was a nice enough handset — small, durable, held up for more than two years, fit well in the hand, decent battery life, had OK web browsing and wifi capability, though poor compared to a true smartphone, but for some reason T-Mobile never supported its MMS capabilities adequately, and through my carrier, it could only send/receive 5-7kb postage stamp sized images, which was annoying considering it had a 5MP camera and normally T-Mobile’s size limit for MMS is 300kb. I’d seen a hacked iPhone on T-Mobile in person and it seemed like a number of the features were not well supported, so this time I wanted to go with an officially supported handset.

I didn’t really want to give up the E75, but after a particularly unfortunate drop onto a hardwood floor, the bezel broke, leaving the edge of the keyboard unsupported so it would flop around and let pocket crud accumulate under its membrane. And the battery wasn’t holding a charge like it used to, and the screen had gotten to where it was pretty scratched up. I was sick of the ever-widening gap in browsing capability with my E75, and have been wanting to try my hand at mobile app development for a while, so Android seemed like the next phone for me.

Purchasing

I did my research, and all reviews said that the Galaxy SII was by far the best handset available currently in the market. It didn’t have a physical keyboard, which concerned me, because I’m a heavy texter and I like the feel of a physical keyboard, even if it’s micro sized. But what sold me was some special pricing and offers that T-Mobile was running, which allowed me to get the phone at a $50 rebate, plus $100 in trade-in value for my old Shadow handset. That put the Galaxy SII at a price I was comfortable with, so I bought it.

By the way, T-Mobile, if you’re reading this, your handling of the trade-in program is awful. I sent my handset in to you a week after I bought my phone, on May 6, and a month later (June 4) I got an email from you saying that time was running out and I’d better ship it to you soon or I would lose out on the trade-in. I wrote back to say that I’d sent the phone in three weeks ago, and it should be there by now, and I was alarmed that you hadn’t received it. I did get a response to this, but all it said was that your receiving process takes a very long time, and that phones are only entered into your system after they get processed.

t-mobile trade in process is awful

T-Mobile trade in process is awful

That is just unacceptably stupid and wrong. The very first thing you should do in your process is confirm receipt of the package! I very strongly suspect that I will never see that $100, and if I don’t, you can forget about me sticking with T-mobile for my next phone. It’s 7/6 and I still haven’t received any confirmation that my trade-in was received and processed.

[Update 7/10: After writing to them again when I wrote this review, I got a response today, four days later. They tell me my rebate is scheduled to be sent out at the end of this month, so I guess that means that they did receive the trade-in from me; however, it also means that they never did bother to notify me of this. At least it’s not lost.]

[Update 8/20: Finally received my $100 gift card for my trade in. Only took about three months!]

Initial Impressions

My initial impression of the phone was that I liked it a lot, but it would take a little getting used to the lack of physical keyboard. In the store, they let me play with their demo model long enough to get confident that Swype input really was feasible and could work. I expected some foibles with it, and I knew I wouldn’t care for the lack of tactile feedback, which necessitated looking at the screen more as I typed, but I could accept that as a trade off given the many advantages of the new phone.

The screen was beautiful, web browsing was fast and pages rendered much better than with the Opera Mobile I was running on my E75 (its default browser was lamentably out of date, whatever it was.) Installing apps was very easy, and I found a few fun ones and a few useful ones that I liked. I spent a few days playing around with configuring this and that, learning how to connect the phone to my laptop so I could back up my contacts and get photos and stuff off.

Battery Life

I guess I must be a heavy user of the phone, because my battery will only last about 8-10 hours on a charge. This is barely adequate to get through a work day, and forces me to umbilical to a wall outlet whenever possible to top off my charge, and forces me to carry around a charger, which is just one more thing I don’t really want to have to carry with me. It’s alright when I’m sitting at a desk for work all day, or if I’m driving around I can use a car charger, but if I’m walking around all day, it’s a cause of anxiety. There are aftermarket super-batteries that you can get, and they’re not too expensive, but they are bulky, adding a bulge to the rear of the phone, which is incompatible with any protective armor cases you can currently buy for the phone. Since the SII has been out for a while, it seems unlikely that this will change, which is unfortunate.

Android, I appreciate that you can change settings when battery is below a certain threshold, to prolong life. That’s really great. But would it be too much trouble to restore the old settings while I’m charging, or at least when the charge level goes back about that threshold? It really sucks to have to reconfigure manually every damn day when I shouldn’t have to.

Swype: It’s garage. It’s guache. It’s gator. Ah, fuck it. G-A-R-B-A-G-E.

If you want to turn your life into a commercial of arrows, buy a smartphone without a physical keyboard and try Swype. It’s garbage. Using it produces a comedy of errors. Quite possibly a tragedy of errors, as well.

Swype is absolute dogshit. I say that, playing off of the business idiom “eat your own dogfood.” I find it really hard to believe that Swype’s developers are using Swype on a day-to-day basis. My friend Max said to me, he says, “MAYBE YOU JUST SUCK AT SWYPE, HOLMES.”

Maybe you just suck at Swype, Holmes.

Max confronts me with the ugly truth I just can’t admit to myself.

It is not possible for someone to suck this much at something for so long and not get better. Ergo, Swype is at fault.

After I typed in my first web or email address, I forget which, Swype decided it had “learned” new grammar rules and that it should not ever put a space after a period, which it formerly had done any time I finished a sentence. Swype, you need to learn when a sentence ends vs. when a dot is used in a url or email address, or as a decimal in a number.

I really hate to give the impression that I’m unprofessional by using swear words, but I thought about it a lot and I truly cannot give an honest review of this product without them. I’m sorry, it’s that bad.

Swype’s accuracy is so hit or miss, it’s like you’re permanently drunk whenever you try to type with it. DamnYouAutoCorrect.com is funny, and a lot of the time feels contrived — but in real life it’s a disaster. Sometimes you sound like a dadaist on LSD, other times you sound like a grammar-challenged moron, and at the worst of times it makes you say things you didn’t mean, but with the limited context the recipient has no idea. This fucks up communication so badly, I’m actually scared to use it for anything important at this point. Swype makes me really, really angry on a regular basis.

I thought, OK I just need to proof read before I send, right? Well, it’s not so easy. First, to accurately swype, your eyes have to really follow your finger. You naturally want to continue swyping out words until you’re done with whatever you’re writing, but if you do that, your eyes aren’t watching Swype’s output, which at its default accuracy/speed setting is wrong about 1-in-3 words, sometimes more. Even at the “best” accuracy setting, it’s about 2-in-10, which is not nearly better enough. Like OCR, swype recognition of words is not useful unless it is accurate over 99% of the time, and it’s far short of that. Backing up and proofreading a lot of text, and then changing every third word, is much slower than simply hunt and pecking the input.

So the only way for me to effectively swype is to verify after each and every word. Your eyes feel like you’re watching a tennis match as they bounce from the screen keyboard to the output box. It really slows your wpm down. It’s truly a step backward if they can’t fix this. I found that it did get better if I set the accuracy to maximum, but it still gets words wrong frequently enough that I really have to watch what it’s saying for me regardless. If you’re not a wordsmith, you may not care, but for me it’s a major problem.

It’s not faster than hunt and peck if you have to meticulously scan every single god damn word that it guesses you meant to enter just to make sure that it’s right. It completely destroys the appearance that you are intelligent and in command of language. Every time I see something I’ve typed with it, I’m embarrassed, because it’s NOT what I typed. If you enjoy Mad Libs, you’ll probably like Swype a lot, but if you value your command of language and feel that the impression you give others through texting is important, you’ll hate it. Perhaps swypographical errors are to be expected in SMS messages, and are temporary and have a tiny audience, so don’t matter. Except when you’re trying to be cool, or smooth, or persuasive, or say something heartfelt over SMS, and it completely ruins the moment. It’s another thing when you try to use the screen keyboard to enter text on a web site, like facebook, and it utterly botches your input and turns you into a blathering moron.

I used to look down on people who couldn’t use language, but now thanks to Swype I feel like we’re all in the same boat. It’s worse than the battery life issue, which just produces anxiety that I won’t be able to use the phone when I need it. Swype makes me absolutely angry. It’s a solid concept, but the execution needs improvement. There are replacement soft keyboards, but I haven’t tried any yet. Most of them cost between $2.99-9.99, and for a $500 phone, it better come with a @%#$@) keyboard input that @#$@#ing works.

I’d be very happy if they made a version of this handset that is twice as thick, but has a physical, slide-out QWERTY keyboard.

Apps

I’m not a huge App user yet, but I love how easy it is to install new apps. I haven’t bought any yet, but I’ve downloaded a dozen or so that sounded useful.

Reviewing specific apps is a bit beyond the scope of this article, but I will single out the official Facebook app for a WTF award for not having Share links on the mobile app. It’s nicer to use the FB app than visit facebook in a web browser, but not being able to Share things is really a strange user experience design decision and I can’t understand why they only show the Like link.

I’m a little disappointed that I can’t remove some of the bundled apps that I don’t want and will never use.

Netflix is a nice service and all, but I’ll never use it on my phone, and I don’t have a Netflix account, at all. If the phone came with a “light” or “free” version, I might use it and end up getting into it enough that I’d pay for the service, but out of the box it was only interested in me if I was a paid subscriber, or if T-Mobile bundled a subscription with the phone. Maybe just a limited 1-2 movies/month introductory deal, included with your plan. As it is, it’s about 20mb of storage on my phone that I’ll never get back. I generally have better things to do than watch video on a tiny phone screen, but it could possibly come in handy once or twice.

Contacts

The only other major complaint I’ve had about the phone in the first week of ownership was the royal clusterfuck it made of my contacts. When I got the phone, the salesman asked me if I already had a gmail account that I’d like to use with the phone. I’ve had a gmail account since 2004 or so, and have been using it as my primary non-professional email address for much of that time, so I said sure.

I kindof wish I hadn’t, though, because Android really fubared my contacts. I had a mess of my old phone’s imported contacts, my gmail contacts (including anyone who I’d ever emailed for any reason in the last 8 years), and my google+ circles. Worse, these weren’t well integrated. I had three and four entries for some people. There is a merge feature in the Contacts app, but it sucks. I ended up clearing out about 90% of my contacts, but I believe as a result my autocomplete when filling To: field in gmail’s web UI will no longer remember a large number of the addresses it used to.

The reality is, the people I interact with via my cell phone are not the same as the people who I email. In some cases, sure, there’s overlap. Certainly, when I’m accessing my email account through my cell phone, I want full access to my email contacts. And some people I have a phone number for, I also have an email address for. But there are a lot of people who I email, or know very casually on google+, who I don’t necessarily ever want to IM/SMS/call. I like having my identity compartmentalized, and being relatively anonymous in certain circles. Android really doesn’t account for this in its design of the user experience for contacts, at all. It didn’t ask me (maybe it did ask the sales guy who set it up for me) if I wanted all these contacts to be jumbled together into one writhing mass of humanity, and there wasn’t any way to undo it after the fact. It was pretty horrible. I ended up using Wondershare MobileGo to manage my contacts, which was still pretty tedious and awful, but did the job, insofar as it helped me to mass delete and consolidate dozens of contacts. It still took over four hours to go through everyone and clear everything up, and that’s really not acceptable.

I’m pretty sure that I’m not unique in how I deal with my contacts, so I think Android really drops the ball here. I have a few suggestions for improving the user experience:

  1. Allow users to filter contacts by source. Here’s all your Contacts from your old phone. Here’s all your gmail Contacts. Here’s your google+ contacts.
  2. Better Merge feature. Mass select N contacts, and then click Merge. Not select merge, then select any two contacts.
  3. When there’s conflicts, such as multiple phone numbers and email, keep them by default, ask which one is primary, and ask if any are outdated. I had a few contacts resurrect from my old phone’s trash, apparently, and I don’t even know if I have their current contact info now, because who memorizes everyone’s phone number? A great solution here would be to have some kind of service that automatically looks up each bit of contact info and attempts to verify that they’re still good. I imagine this would be very difficult for email addresses, but would potentially be do-able for phone numbers and mailing addresses.
  4. Use gmail’s metrics for how much you’ve written to a given contact in your gmail contacts, and auto-filter out contacts whom you’ve contacted below a given threshold. If I have ever emailed some address one time in my entire life, and it was more than a year ago, chances are good I don’t need them in my phone’s Contacts.

One thing I did appreciate was that it included every new word it found in my Contacts into the autocorrect dictionary. So now when guessing wrong at what I’m swyping, I can pull up street and city names, and the odd last name or first name of some person I’ve communicated with at some point in the last decade. This is actually useful when I intend to type those words, as well. It’s a feature.

Messaging

SMS/MMS, IM, Talk. Also, Twitter. All these apps on my phone just to send short text messages to people. Why so many apps that do almost exactly the same thing? I really would like a single solution, which can seamlessly handle all protocols.

Also, and this is truly beyond bad, I have had a lot of inconsistent reliability issues with sending SMS. I never really know if someone got an SMS that I send from this phone. I never had this problem before I upgraded to this handset. I’m not sure what factors are at play, either. I SMS a short list of people on a regular basis, but I have consistently had problems with sending to one particular contact. It seems to deliver my outbound messages reliably only when I send as a new message; if I reply to the existing thread of messages, it is very likely to fail to deliver the message — although it appears on my end that it sent successfully. I’m not sure how high the failure rate is, but it must be at least 50%, perhaps even 75% or 90% when replying to them. My workaround is to always initiate a new message. It shows up in the same threaded conversation anyway, but somehow if I simply reply, it doesn’t work, but if I start a new SMS, and address it to this contact, it will go through. It’s a ridiculous problem and absolutely should not be tolerated. So far, T-Mobile has been unable to figure out the cause and provide a fix for it. I don’t know if it affects other contacts, either. If I send some message to someone, and they never get it, chances are they’ll never notice that they never got a message that they never knew about, and thus won’t bring it up, so I’ll never know. Not knowing is awful. It could be ruining a lot of friendships, and killing potential relationships that never develop because they thought I’d stay in touch, and I thought that if they really wanted me to stay in touch with them, they’d reply back to my message… that they never got.

[Update 7/11/12: Several people recommended the swiftkey3 app as a replacement. I tried it out and it does seem to be more accurate, although it works by tapping only. I did like the swyping motion, my issue with Swype was its accuracy problems and poor prediction. Swiftkey3 is a $3.99 app, and while I do resent having to spend money to get a soft keyboard that actually works, I’m glad it actually works. My accuracy with Swiftkey is somewhere in the high 90’s, and its guessing capabilities are amazing — both in correcting off-target key taps, and to suggest what my next word is most likely to be. It gets my recommendation if you’re looking for a better touchscreen text input.]

I didn’t have too many issues with the Mail app, which integrates pretty well with my gmail account. Read messages are marked read whether I read them in gmail in a web browser, in the mail app on the phone, or in Thunderbird on my PC. And that’s how it should be. If I delete something, though, I have to delete it everywhere. I guess this is a safer approach to take, but triple-redundant deleting can be annoying. I feel like there should be an option to mark the message deleted, update the server, and then the next time the other clients talk to the server, it passes along the info that this message is now marked as deleted also.

The only problem I have had with the Mail app started happening to me just this week. A few times, now, I’ve launched it, watched it update itself, and then mark every damn message in my Inbox Unread. It’s annoying not to know what message threads you’re up to date on and which contain new messages that you should probably read. So far it’s only happened a couple times, and I’m not sure what causes it, but if it happens a lot, I’ll be looking for a new app to read gmail with.

[Update 7/12/12: I’ve observed this problem happening repeatedly since it started happening. It doesn’t happen all the time, and when it does happen it seems to be temporary. I don’t have to go through and re-read everything to mark them read again — usually exiting the app and re-launching it will correct the read message marking. It’s still an annoying defect, but not as severe as I had first feared.]

Maps and GPS

I didn’t expect that I would use these functions as much as I do, but they are nice to have at times. I prefer not to use a GPS; I have a good sense of direction and I have developed it over the years by not relying on external tools for navigation. I prefer to keep my bearings, the lay of the land, and driving directions in my head as much as possible, and as a result I usually only need to write down driving directions once, and then after that I can reliably drive that route from memory, very likely.

But when driving someplace I’ve never been to before, it does come in handy. Where I used to write down directions, and worry that I’ll run into a detour or wrong information, or miss a turn, I now have greater confidence that the GPS will redirect me if something unexpected happens.

Unfortunately, it drains the battery faster than just about anything. I don’t know if this is because the GPS transmitter uses a lot of power, or because it tends to leave the display turned on (normally the battery usage statistics say that the display alone can account for 60-65% of the battery consumption all by itself). But when driving, I just plug it in to the car charger, and it about barely holds even on charge — I drove to Columbus, OH, from Cleveland, OH with it and gained 1-2% of charge in a 2.5hr drive. I doubt that I would have had any battery left if I hadn’t been charging it the whole time. Whoa.

Camera

The Galaxy SII does have one of the nicer cameras I’ve used in a cell phone. It takes good pictures, at moderate distances. I like the on-screen controls. I love the capability to share via any service I can think of, right from the phone. That’s really the best thing about the camera — the social integration.

I’m not too crazy about using it for self-portaits. The wide angle lens makes my nose look big and bloated, and I’m way less handsome that way. That’s my only complaint with it. If I had 2-3x longer arms, I could take better pictures of myself at the distances it’s intended to be used, and just zoom in.

Conclusion

I want to say I like my phone a lot. The Galaxy SII is an impressive gadget. It does a lot of cool things. Most of the time, I think to myself, “I have a really good phone.”

But now that I’ve objectively reflected on all the glitches and problems I have had with it in the first two months of ownership, I’m aware that I’ve been living with a lot of cognitive dissonance. The problems that I’ve had with it are significant, important problems — the most severe type of problems are the social consequences of having a phone that mangles your wordsmithing and fails to even deliver messages reliably.

It’s a cool phone when it isn’t pissing me off. But it pisses me off most of the time when I’m using it. It’s very useful for web browsing, and I use it for that about half of the time. That’s when I really like it. When I’m trying to use it to communicate with someone, though, which is it’s primary purpose, I feel like it’s ruining my life. Not exaggerating in the slightest. The silent delivery failures have harmed relationships that I have with friends and make people think I don’t care about them or that I’m ignoring them, and this makes them feel very hurt, and I have no idea that it’s going on unless I see the friend in person and they bring it up. The swypo errors make me look like a complete idiot on a frequent basis.

The battery life is another major issue, and a lot of reviews seem to gloss over this. Sure, you install a battery minder app that will automatically shut down stuff that you’re not using in order to conserve juice, but they really didn’t serve the market well by providing an 1800mah battery. If you have a phone like this, you want to use the hell out of it, all day long. 1800 milliamp hours gives you a full day’s worth of charge and then some only if you don’t use it. If you do use it, you can get by for half the day, and then spend the next few hours hoping it doesn’t die and you miss an important call or message, or need to look up some bit of crucial information and can’t. And if you don’t use it, what’s the point?

All phone makers, now hear this:  We can deal with the extra weight. Give us 3x battery life and bulkier phones with a real keyboard. At least make it an option. And make armored cases that fit the extended battery covers, please!

A lot of the reviews that I’ve read have been over the top positive, saying it’s the best phone there is, period, including iPhone. I haven’t tried an iPhone still, but I’d be really surprised if the user experience of an iPhone isn’t 10x more polished. I have no idea, but I sure hope so.

I don’t want to hate Android, or this phone, or T-Mobile, but I do have a lot of issues with all three of them at this point. There is a lot here to impress, and a lot of potential, but fitting it all together and smoothing the rough edges and polishing it, well that has a long, long way to go yet.

I really can’t believe that I spent this much money on something that I use every day, and am having this poor an experience with it. There’s a lot of potential in this platform, and even in this handset, and so many of the problems seem like they’d be relatively easy to fix.

Robotron: 2084 and Zookeeper

Today was the day of Cleveland’s Classic Console and Arcade Gaming Show. This year was especially well attended, and I was very happy to see a higher proportion of female gamers attending. I’ve been going since I heard about it 2005, and every time I go there is always something I have never seen before, and it’s always a good time. In addition to rows of tables with old games to buy and look at, some homebrew and modding fun, and some old school systems set up with games to play, there are drawings and tournaments.

This year, they had two of my favorite 80’s arcade games: Zookeeper and Robotron 2084. Robotron was a tournament game. I thought I might have a chance at winning, but I didn’t come close to the top score — although I did have the second highest score. I played a lot of games to get sharp, but my top score of 214,000-some points was still far from the winner, who posted a score of almost 391,000. It’ll take me a while to get that good.

While the experience is still fresh in my mind, I thought I’d reflect on what makes Zookeeper and Robotron two of my favorite games.

(more…)