Blogging is a habit. Posting on Facebook and Twitter are as well, but blogging is much more difficult I find. It’s far to easy to tell yourself that what you have to say is not interesting or that it would be better served by a small tweet. So I became lazy, gave into that voice and stopped updating things here which basically meant that I wasn’t writing anything more significant than what could fit in 140 characters (I’m not really big on the Facebook).
So, to reacap the last (almost) 2 years.
Started tons of game projects. Cancelled most of them. Got divorced. Worked full time at ASU doing educational game development.
Students of mine were in the 2011 IGF Student Showcase for their game Dust for which I was super duper proud. Left ASU and am now contracting and doing my own projects a bit more full-bore. Spent lots of time with Xander. Met a wonderful woman. Finally found a great project that I think other people might actually be interested in playing. Released some assets on the Unity Asset store and made approximately zero monies when not part of a madness sale. Helped several local indies with their games which went on to make lots of monies.
Now I’m looking forward to my game being complete, or at least complete enough to Kickstart/Indie Fund. I’ll be writing more about that on the Happy Camper Studios blog. I’m also getting back into doing contract work, all Unity3D this time, which I of course hate rounding up as it’s lots of work for speculative returns. Currently though I’m working with the most awesome Archaeology Southwest on a 3d kiosk to be placed in Chaco Canyon. I’ve never worked on something that is a physical product, so that’s pretty dang exciting. That will be ending soon though, so then it’s back to the contractor (data) mines to find some new clients.
Well I’ve been rather silent on this blog for quite some time so I wanted to post a bit of what I’ve been working on.
This game includes:
- Sailing around and shooting stuff
- Procedurally generated worlds
- And of course, buried treasure
Target platform is online gaming portals such as Kongregate. ETA is still unknown but now that the game is moving along again at a good pace I expect it to be within a month or so. I know, famous last words…
Added integration with Bob’s iTween Path Editor. If you have iTween Path components on your game object you can just select one of them from a nice drop-down list to use as the path for your tween.
This is a highly delayed post, mainly because I was waiting on Unity 3 to not be in beta anymore, and then once the full release happened my project crashed when opening. Well that’s all resolved now and I can finally publish UFO No!. This game was produced on the weekend of August 13, 2010 at a game jam hosted by UAT. The theme was “continuous motion” which I thought was a great theme for a game jam, much better than most.
I worked with a partner this time, an student artist from UAT named Arielle. She did some fantastic work and far exceeded my ability to implement features to use the artwork she created. One of our biggest issues was that since Unity was still in beta I couldn’t get a copy for Arielle to use for level design and layout. So a larger portion of my time went into level layout than I would have liked. Which leads me to all easily identifiable mistakes I made:
Mistake #1 – Choosing the wrong tool. Not Unity in general, but the Unity 3 beta. I should have just started the project in Unity 2.6 so we each could have a copy to work from.
Mistake #2 – Building the wrong game. When we developed the general idea for the game it quickly evolved into humans being hunted by a big alien ship. Initially we drew out a 2d design but my eyes being bigger than my (programmer) stomach I bit off a nice big chunk of 3d. Visions of using the detonator framework to make awesome cinematic cutscenes ran roughshod over what would have been a far superior game in 2d. In the end the 3d gameplay made the level design and basic character control much more complex than it needed to be leaving not enough time for creating more level and refining the game.
Mistake #3 – Spending too much time on things that don’t matter. I got distracted by the shiny pebble of awesome cinematic cutscenes when I should have been building more levels or implementing a proper menu system. Those things are not sexy though and so the cutscene won out. This was not a situation where theatrics wins out over weak gameplay.
So that about wraps it up. Not the most successful game jam game I’ve ever done, but not a terrible distaster either. Thanks again to Arielle for putting up with me for 48 hours and building basically any asset I asked for on super short notice.
Minor bug fix release and one new feature. iTweenEvents now show an icon in the scene view. You can toggle this on/off individually via the inspector or globally through the Components/iTween submenu.
Version 0.3 is out and the big news is that the dreaded Unity bug has been worked around! You can resume using the visual editor for normal work now. Of course please report any bugs you may run into and your feedback on improvements is always welcome.
As requested there was one enhancement in this version. A name field was added to the iTweenEvent so you can distinguish them. I also added a static method on the iTweenEvent class named GetEvent, you pass it the GameObject and name of the event you want to fetch and it will return it (or throw an exception if no event by that name can be found).
The first update for the iTween Visual Editor is out. Version 0.2 brings support for the path parameter of MoveTo and MoveFrom. So you can now set up your beautiful curved path tweens. Other changes include the way callbacks work and a slight reorganization of where the Editor folder lives (thanks Bob!). The param part of the callback (oncompleteparams, onupdateparams, etc.) has been changed to a string which I figured was maximally flexible. I’ve tested the callbacks a bit so I know they at least superficially work ok (calling a method on a specified object and passing in a string to the receiver). I’m very open to suggestions on what kinds of use cases people have for the params. I could support more values but it’s a lot of work when it can be any of X different types so I’d like some fairly concrete use cases.
Please visit the main page for the visual editor as that is the only spot kept up to date.
Update: Fixed! Well, worked around, which is just as good.
There is a Unity bug that is causing lots of problems right now. Until this is fixed I would recommend not using the visual editor.
If you’ve been around the Unity world you may have run into the iTween library. It’s a system for animating various thing in your scene, from positions to rotations to scales to color, and even sound volume! It’s a pretty nifty library but I felt it was missing some usability. For example, in a scene if all I want to use iTween for is to have an object float across my screen repeatedly, I’d need to create a whole class just for one line of code such as this:
On a one-off basis this wouldn’t be bad, but what if you were making a game where you had lots of levels and each one had some subtly different values for the movement pattern of the objects in it. Well, you’d be writing a lot of tiny throwaway classes which really clutters up your project and is just plain annoying. So I got to thinking about how you could write a script you attached to your GameObject that could store the data for a tween and then activate the tween when the scene starts (or wait until it’s activated programmatically). The result is the iTween Visual Editor which can make even fairly complex tweens quite simple. Here is a tween that is moving the GameObject to the camera’s Transform while looking at position (10,0,0 and using an inOutCubic easing type and finally using a pingPong loop type.
Usage is pretty simple. Just attach an iTweenEvent component to the GameObject you want to tween (you can also use the Component/iTween/iTweenEvent menu item). Then choose the type of tween you want and the options for that tween. Click play to see your tween in action.
NOTE: This only works with Unity 3.0 and later, it will not compile under Unity 2.6.
Please submit any bug reports or suggestions to david (at) koontzfamily (dot) org
So I got around to posting the details of my Mini Ludum Dare #20 entry. This was a re-started entry halfway through the competition, so it was really more of a 24 hour game. Even as such I wasn’t really pleased with the design of my entry but I didn’t have anything better (until after the compo) and I figured if you pile on enough effects, maybe the end result won’t be crap.
The theme was greed so my primary mechanic was a “pushing it” type of game. You get exponentially more money the faster you are moving so 60MPH is a lot more money than 30MPH. Of course the faster you go the less reaction time you get. Also, there are no breaks, which means if you accelerate you can’t just decelerate. Well, you can, but it involves driving off the road and damaging your vehicle (and costing you some money too). So that’s a technique that has to be used somewhat sparingly. The last component were gold colored blocks that gave you a nice cash boost but also boosted your speed.
There was a special rule for that said you could only have 1 of any thing in your game. Thus the oddly shaped money and obstacles.
At the end of the race is a mud pit that will slow you down, but if you’re moving too fast you’ll still crash. Max survivable speed is around 85MPH.
So I had an idea the other day for a RoShamBo (Rock/Paper/Scissors) variant that I thought would add a lot of depth to a game that is pretty good for a few rounds, but doesn’t really hold up after 3 or 4 (my opinion of course). So, a weekend of dev and a few more days of polishing and then several days of boring business stuff (grrr iTunes app store setup), the game was finally ready to be released … after waiting 7 days in the review process. But that’s all over now, and RoShamBooyah! is out!
For the skinny on the game I recommend you just watch this gameplay video as it demonstrates the various features of the game.
I’m interested in any feedback, good or bad so let ‘er rip!