Sunday, September 29, 2013

Working through some thoughts

Fair warning: this post is boring.

I feel like legacy is four or five projects at once, which is good and bad. Good because they are the four or five things I really like, and bad because it's hard to focus and it can be overwhelming.

1. 2.5D GPU graphics
2. Rapid iteration game development tools
3. Story driven algorithmic gameplay generation
4. Client/Server game architecture
5. Career development, learning, growth beyond flash ui work
6. Fun gameplay and an engaging experience

Each of those categories represents a deep well, and the problem is that working on one delays the others in some ways. I'm building the tools, engine, and game all at once, while simultaneously trying to pick a technology to invest in for my own career, while also learning about the current state of 3d graphics. The combination paralyzes my ability to make decisions and drive forward, but it's hard to let go of because all of these things are so appealing to me right now.

I've made a few choices with Legacy specifically, in order to minimize this pain. I've decided to stick to flash for this project, at least until I have something that I want to share/publish. That takes a lot of the tech angst off the table, at least, as long as I can hold to that decision.

Next I've worked to strictly prioritize the work for legacy in order to make the game itself fun. So, I dip into each of the other wells only when they're next in line. Separating the prioritization step from the 'do work' step is a really powerful cognitive tool, I guess. I see this professionally as well. If I don't have to worry about the decision while I'm doing the work, the work goes MUCH faster and better.

Now, to the specific situation at hand. My next goal is to get puppetLab animations working inside Legacy, so that I can animate attacking and taking damage, so that when I add AI and people will actually know what's happening, so that the game will be fun. This work (getting the animations in) involves breaking apart a lot of my early work on drawing figures in the game, and replacing that work with my newer work that more accurately reflects where I want to go with my 2.5D graphics engine and tools.

That means rebuilding the data for how heroes and monsters are rendered, and that poses a couple of interesting problems. The way Legacy currently handles humans is pretty complicated and very closely associated with the idea of humans wearing gear. Those concepts don't fit into a generic graphics toolkit. So I can try to generalize and abstract them into something I can bring into the toolkit, or, I could push them into the game layer and have to toolkit expose hooks that the game uses to define that stuff.

In order to make a good decision here, I need to wrap my head around the future of the game and the future of the toolkit. For example if I only ever want to do this with humans and gear, then it's fine for that capability to live in the game. But if this composition capability is something that could be useful in all sorts of other places (drauven, your base, richer sites and monsters), or if the toolkit finds this capability interesting (layering, photoshop importing, direct support for building composite textures either in the gpu or as a preprocess step..), then I should think more about how to make it generic.

I've decided not to hurry. I have my next priority, but I want to get there in a way that I find interesting and satisfying. So I'll spend a little time researching the toolkit angle and thinking about what a data-driven layer composition system looks like. There are a bunch of choices there too.. if you don't constrain yourself to a single texture for the figure, the possibility space blows up very quickly. In some really interesting ways.

1 comment: