Magnetic Butterfly

Magnetic Butterfly is now finished.

After a development period of about a month and a half spread over the last six-seven months, I’m finally cool with “launching” it. I started working on the game on January 25th/26th while sitting on a couch at my parent’s place in Northern Michigan while visiting for a weekend. Further development was done at random spots near Detroit, Michigan. And I’m finishing it while sitting on a bed in my hotel room in Salt Lake City, Utah.

The launch is purely symbolic, of course, as the game has been completely open to anyone to try at any point in it’s development. This reduces the effectiveness of saying: hey, everyone, here’s a game, play it! It did, however, greatly aid in the design and iteration on the primary control scheme, among other mechanics. For a game design that revolved around a very frustration-prone method of controlling the player’s character, this iterative development was pretty invaluable. I didn’t quite get to the level of input ease as I was hoping for, but it came pretty close to my expectations. I’m still not sure whether messing around with the player’s primary control mechanism for a game is a smart design decision or not — a lot of what I take from this project will be based on post-release feedback — but it was a fun experiment (even if I don’t do something like it again).

This was my first project with Unity 3D and, all things considered, I absolutely loved working with it. It’s the best rapid prototyping toolset I’ve ever come across, the support is superb, it is constantly being updated, and the web plug-in is fantastic. The ability to work on some features in script, alt+tab into the editor, drag-and-drop appropriate objects to link them to the script, and instantly test everything out within a matter of seconds is one of the most astounding development work-flows I have ever come across. I had the basic gameplay for Magnetic Butterfly setup within a matter of days; everything after that was tuning and the addition of some small features here and there. It was great to be able to sit down with my MacBook and make some progress on the game in a matter of minutes; the number of features I developed sitting at waiting rooms across Michigan is actually kind of astounding (almost all GUI features were done at a local Discount Tire).

Despite being an arena-based game design (much like Asplode!), Magnetic Butterfly was my first step to a different approach to game design: a primary idea and mood established from singular concepts and emotions. Rather than the fairly blatant Geometry Wars vibe that established Asplode!, Magnetic Butterfly sprung out of a goal to experiment with a somewhat unique control style (not directly controlling a character capable of doing or taking damage) and a tonal focus on life and death. Forcing myself to adhere to these two criteria made the actual development decisions and the general style direction far easier than I would have ever expected it to be. Whether or not either of these concepts comes through in the gameplay — and my pointing this out already taints the ability for anyone to judge that “effectiveness” — is unknown, but for me it was a great aid.

Also, huge thanks to my buddy Josh Jersild for his work on the sound effects and music tracks for the game; these weren’t added until very late in the game’s development (earlier this week) and their addition really helped the project come together. Also thanks to Goran Grce who, upon hearing me lament my own attempts at modeling a butterfly (and being unable to animate one with my current tools) took it upon himself to hook me up with the perfect model based on some of my provided references.

One decision I made early on was to not bother with multiple graphics settings. I didn’t feel this game was large enough to really deal with numerous graphical settings and a bunch of performance tweaks, so I got the game looking and running how I envisioned it and if it didn’t bog down my MacBook at any point in the duration of a given game then I gave it the thumbs up. I’d be interested to hear how many people (if any?) have any issues with the technical presentation of the game, as that feedback will impact how I utilize Unity going forward. If a browser game has to deal with settings then, in my book, something is wrong.

All things considered, this has been a super fun project. I never really got tired of working on it and playing it here and there has always been fun for me. The super casual approach to development that I was able to take with Magnetic Butterfly is a testament to the usefulness and power of the Unity feature-set, and although I won’t be using it for my next project, I’ll definitely be coming back to the engine in the near future.

Going forward I’m going to try out far more focused game projects (using Flixel for the appropriately lower player install overhead) that can be taken from concept to completion in a matter of weeks, but Unity is going to remain my go-to solution for any 3D projects.

  • The game looks rather good for a short development cycle. The following is how I 'experienced' it.

    I began to move around and liked the weight and 'feel' of the butterfly. Almost like Thomas the train engine trying to pull a rather heavy load and struggling at every bend to control the rest of 'his' body. Amazing feeling. It very much so reminded me of an early concept of a game mechanic I had where an action - in this case movement - was required to advanced in the game however, by performing it all too often it can hinder you so you must find the perfect balance. I did find it incredibly hard though to actually have the wrecking ball collide with any of the objects. In fact, I began wondering why the name magnetic butterfly.

    This is a probably a good time to interject and state that the way I usually play and learn how to play a game is through self discovery. I rarely read instructions. So after I was an idiot for a while I read the instructions and the spacebar unraveled the 'magnetic' portion of the game. After doing so the game became fun. Before, I had been engaged but I wasn't having fun, however, now I was both engaged and having fun. I'm still early into the learning curve so unfortunately my comment is a bit limited however, my favorite things are the 'feel' of the weight and physics in the game as well as the reward / risk / penalty involved with player movement. You could almost describe this game with the quote "That which nourishes me destroys me."
  • Yeah, there really is no decent explanation of the actual game controls (especially the use of the space bar).

    When I first developed the introduction, it had an actual prominent narrator/voice via small bits of text that faded-in and out. Among these bits of text were a couple tutorial lines (namely movement and the use of the space bar). The whole thing just felt totally off, though. I ended up tossing the controls on the same page as the applet and hoping for the best, which still wasn't the greatest idea, but it seemed better than nothing.
  • If I may make a personal suggestion. I think this game is one which involves a large amount of feel. There's no way to describe it. My thoughts? Throw up a graphic of controls used so a picture of up, down, left, right, and spacebar and allow the player to explore and discover the controls themselves. Unfortunately I'm tainted now but I'm sure that if I knew that I had to use the space bar my experience would be less 'meaningful' to me. It would lack the revelation which could possibly have made my experience more 'fun' than another player's experience.
  • I agree with Christian - a graphic at the start showing which keys to use would be very helpful. Designing web games for two years taught me very quickly that visual instructions are the best way to go whenever possible - the player doesn't want to read, they want to jump in.

    Gameplay feels really nice. You've got a good risk/reward balance going on, which I'm always a fan of, and I like how I can almost get myself in to real trouble only to be saved at the last minute by magnetizing to the board. I also like how the butterfly can headbutt the point spheres as well as hit them with the wrecking ball - it hurts, but sometimes it's the only way to score and add to the life meter. The emotional spirits were a little confusing at first, as I don't tend to associate pretty blue and purple things as harmful, but I figured it out pretty quickly.

    Overall, it's some very nice work. Fun, challenging, engaging, and pretty to look at. I'm rather impressed by how much polish there seems to be for such a short dev time.
  • Good call, dudes. I'm pretty sure I can easily add that tonight without a problem, especially since I did something similar earlier.

    I would have preferred avoiding anything like that, but given that the most consistent comment is that no one knows about the space bar it's a pretty essential addition.
  • Clayton Hughes
    So, why use global WASD over tank-style controls? I feel like it would be a lot more natural to rotate and charge and swing and build inertia with a rotate/forward/back rather than trying to manage a circle with my fingers on the keyboard. I don't want to ask "is that intentional"--I feel like it must be; so I guess the question is "why this over that?"

    It took quite a bit to figure out which direction was each up/down/left/right, so that I totally forgot about the space bar! I'm going to try it again with that.

    As a side note, I'm getting a bit of hiccupping in the simulation, I believe. when moving in a (more or less) straight line, it will occasionally jump about a square or so. I'm running in Chrome, with an OK PC that would probably do fine if I weren't also running a dozen different applications.
  • Just tossed up a new build with a "key map." Also fixed a few random bugs.
  • fowl
    I get a little stuttering, most noticeably in the audio.

    (But Windows said I was a 4.0!)

    At this stage it's hard to tell where the unresponsiveness from the physics stops and the unresponsiveness from my system begins, which makes it a little frustrating.
blog comments powered by Disqus