PlayMaker

PlayMaker…

I just got done jotting down some thoughts on RageSpline yesterday and I thought “why in the world haven’t I written a review of PlayMaker yet?!”, so here goes.

First off, @Unity3D, that review system in the Asset Store should get some love. Real reviews are more than just testimonies, and there’s no way someone can write an honest review in there. 😉

We’re here about PlayMaker though, not Unity, so I’ll get started by saying that I’ve only had PlayMaker now for about a month now, but in that time I’ve had many small projects (and one big one) that use it, so I think I know enough about it now to write a decent summary and review on the product.

Marketing

Not joking, PlayMaker is marketed through the Asset Store (and Twitter… @CaitlynUnity!) as a way to write games in Unity without having to write any code. Let me break down what that really means – as to be honest, as cool as that sounds, it was almost a turn-off immediately.

PlayMaker can enable you to create a game without writing a single line of code, yes. The problem with the statement is that to a developer (what I actually pay the bills with), the idea of an extension to Unity that would constrain me to some WYSIWYG process wire-up was not at all something I wanted.

I did however, get very interested in the lack of a need to rewrite tiny scripts every few minutes for the simplest things (e.g. spin an object, turn a light on, etc…). Fortunately, I was interested enough that I went and found some videos and got the real sales pitch.

Reality

Wow, how far from the marketing. After looking over the videos provided by Hutong Games (its creator) I was floored. It wasn’t a “you don’t have to know how to code” at all! Also, unfortunately, to sum it up in a similar expression would be a great insult to the product, so here are a few of the things it actually is.

It’s a solid FSM. It’s a visual scripting tool. It’s a hierarchical logic framework. It’s a time saver. It’s a code-snippet storer. It’s an inspiration engine.

That’s the reality; so much more than the pitch.

FSM

As a finite-state machine, PlayMaker does its job with style and grace. Hell, it even adds per-state debugging to your game with zero-effort. Write cleaner logical processes and game states; trust me, without help this can get unwieldy.

Support

Hutong Games offers the most amazing support compared to any third-party developers that I’ve ever known… in any industry. They make sure PlayMaker is well documented, they offer professional videos, and have an amazing community that is always willing to help.

Growth

The improvements that made it into it right as I got into it were pretty significant (v1.1), and while 90% of what is discussed as needed are actions (the bits of visual scripting that let you do with PlayMaker), the suggestions that the community has raised have been addressed and are looking to make an even brighter future for the extension.

Price

At first, I was reluctant to buy this at its current $100 (USD) price point. I mean, I’m just an after-work indie. I have a very limited budget for things like this, so to me $100 was a lot.

I basically just used the expected “lift” from not having to write those simple scripts I mentioned before as the basis and justification of the cost. Wow. If only I had broadened my perspective. I wouldn’t have waited a second.

If you think about it, for most of us (older) indies, we are new to awesome engines like Unity3D being free. I remember paying $100 for my indie license to Torque (as I’m sure many others do as well). Given how drastically PlayMaker changes the way you write games, it almost feels like jumping into a new-and-improved Unity. So here’s the way I would suggest looking at the cost:

“Old indie-engine” == $100 || “New amazing indie-engine” == (Unity + PlayMaker) == $100

tl;dr

If you write games in Unity, can afford $100, and aren’t an idiot… you’ve already bought PlayMaker.

Hierchical thinking with PlayMaker…

I’ve noticed something in this short time that I’ve been working with PlayMaker that I wanted to share. I’m sure the Hutong videos probably go over this much better than I will, but in my experience, there’s nothing quite the same as hearing about a product from a real user.

One thing that I’ve found over time with using someone else’s work is that when a refactor or reorganization is needed, third-party products typically leave you dreading the rework so much that you continue to pile more spaghetti on top of what you already know to be faulty.

Well, I am pleased to announce that with PlayMaker, this couldn’t be farther from the truth. It’s actually quite delightful to graph pretty state machines.

While the idea of an object’s FSM may be simple to start, it doesn’t always end up that way. For example, I started Zombs off with a character that could move. Simple enough. Then I added a state to let him fire. Again, simple enough. The next thing you know, the “simplicity” of it all had me taking damage, switching between weapons, controlling firing rates, handling movement, etc… all in one FSM. At this point the instinctive “clean-this-koi-up”-gremlin came knocking at my screen.

So the first thought was “well, I have a Gun object under my Player object… maybe if I move some of this FSM it will read a little more clearly.” Sure enough, that was exactly what was needed. In seconds, a new FSM was created on the Gun object, and after copying the Player‘s FSM onto the Gun (to bring events and variables over) I removed the states of the Player‘s FSM that related to firing, deleted the non-weapon states, and viola!

Now it seems to play the Player/Gun states even smoother… and I can find my logic!

Things were literally a copy/paste/delete away from being cleaner, more functional, simpler to expand upon, easier and debug and maintain than they had previously.

In the 15+ years that I’ve been coding, I can honestly say that this kind of foresight isn’t even one that developers usually take into account when writing their own code, let alone an expectation that they can put on a third-party tool.

New FSM!

Playmaker from Hutong Games; I just licensed my copy yesterday. I’m like a kid in a candy store over here! I’m at work now, but as soon as I’m home, it’s on.

I was just playing around with it with the little bit of time that I had yesterday, but I’ll try to be a bit more serious tonight. All I had time for last night was skimming through some samples, watching some videos, looking over some documentation, and playing around with a scene in Nukins. All in all, not much time.

Tonight will probably be Playmaker vs. Nukins, as Nukins is still fresh and has no resources or code backing it. I figure this will give me a good opportunity to see about developing the entire game with the same FSM, and a visual FSM to boot! I will probably be streaming (http://www.livestream.com/nekoyoubi) some or all of my fumbling through Playmaker today, if anyone wants to see this thing in action.

I think I’m going to redo some of 292 with Playmaker as well, as while 292’s not got a real “goal”, it at least needs a state machine so I don’t have to manually write state controllers for menus and the like. 😉