Author Topic: Crowd-sourcing animation?  (Read 22347 times)

Offline Bluddy

  • Sr. Member Mark III
  • ****
  • Posts: 434
Crowd-sourcing animation?
« on: April 24, 2012, 10:40:02 am »
One of the complaints that's been leveled against the game's looks is that the animation is stiff. This is one I tend to agree with, and we all know the reason for it -- it takes time and money to do animation and there are many many characters in the game. I've been thinking though: there are probably a few people on the forums who are pretty good with pixel graphics and could try to slowly fill in the gaps in the animation. The key here is that this is something that can be done slowly over time. Preferably, one animation at a time could be added per character, so that you don't suddenly have one character that's fully animated while others aren't animated at all.

What do the devs think of this idea?
Also, could you explain the way the characters were rendered, and how we could go about filling in the gaps (if it's possible?) I see that while running has a full dictionary of movements, the other 'animations' are just static pictures.

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Re: Crowd-sourcing animation?
« Reply #1 on: April 24, 2012, 11:15:25 am »
I don't think it's feasible.

1. The character models can't be distributed free of charge, so individual animators would have $400+ to shell out to help at all, and then $20+ per character after that. I can't imagine anyone volunteering.

2. Accepting free art is always tricky. If it stands out from the rest of the art, all the other art is forevermore committed to looking the same way. Relying on volunteers to do this seems super risky.

3. In general, I don't want any more frames of animation added to characters. Just adding two new animations per character/monster would triple loading times in my estimation, and send ram usage spiraling upwards.

In general, if people want high-fi graphics, Arcen is not the company for them. We exploit the performance gains and low ram use of having lower-fi animations. Even if we had unlimited money and a staff of 200, I don't believe that you can make games of this scale and variety while also trying for either full 3d or large-framecount-sprite 2d graphics. Not on current generation hardware.

That's part of why nobody else does games like this, or they just do them in pixelart. There are ways around some of those constraints with background loading/unloading, but that makes framerates choppy. And there are ways around some of them with certain styles of hand-drawn multi-component character art. But that requires extremely skilled artists paired with a completely new character animation subsystem to go along with it. If we had unlimited money, perhaps that would be what I'd pursue. But I don't think crowd sourcing that would work; art creation is enormously intensive and personal, and even if we had that many talented artists who were fans, their styles wouldn't be likely to match each other. And if they ever left, I'd be unable to add more characters/monsters.
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Bluddy

  • Sr. Member Mark III
  • ****
  • Posts: 434
Re: Crowd-sourcing animation?
« Reply #2 on: April 24, 2012, 11:35:12 am »
OK well if the character models can't be distributed for free, that kills the idea right there :)

I was thinking it shouldn't be too hard to position a character model in the positions needed for animation and then rendering it. Using the same character models would also mean that it would be fairly standardized: an animation either looks good or it doesn't, and you can't have too much free rein when you're using an existing character model, so you wouldn't feel like a hundred different hands drew the graphic or something like that.

I appreciate the technical limitations Chris, but I also noticed that you tend to be fairly conservative in this regard. That's cool, I mean, it seems like you're an engineer at heart, so every performance drop hurts and I identify with that being an engineer myself, but AVWW is barely pushing anything near the limits of the current GPUs other than perhaps the 1024x1024 size textures which weren't supported up until a few years ago. I think that in general, if there's a will there's a way, especially since we're not talking about stuff that's so far out of the technical limitations of current hardware, and since the game is not really at the 'teetering point' where adding some stuff is going to kill performance on everybody's computers. At the very worst you could have the full animation be only for high end computers, which is what the AAA game companies do anyway.

But like I said, the $400+ entry fee is the real problem here, so the other stuff doesn't really matter.

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Re: Crowd-sourcing animation?
« Reply #3 on: April 24, 2012, 11:44:27 am »
Yep; if it were a matter of just positioning the character models for animations, that would be something that would be reasonably standardized.  To do that requires Daz 3D, though, which is expensive if you don't have it.  And then to get the props needed for each character varies in price, but could be anywhere from $5 to $60 depending on the current prices.  I bought all those things on incredible discount originally, so most characters only cost me $6 to $10 total, but that was at $2 a prop instead of the usual $18, that sort of thing.

In terms of the hardware limitations, we are bumping up against them actually.  RAM use, not GPU use, is the concern.  And loading times.  Nothing about having more animation frames would even impact render performance (or GPU load) remotely at all.  Once you were in the game and it was running, it wouldn't matter if we had 10,000 frames of animation or 25, the load on the GPU and the performance is literally the same -- because either way, you're only drawing one frame from one sprite dictionary at a time.

But the process is a 32 bit application with the RAM limitations that implies, and any new art asset that is added has to be streamed off the disk every time you switch regions or load the game or encounter a new character for the first time.  You get a linear increase in load times when you add more frames.

Anyway, hopefully that explains my comments on the technical limitations more -- I'm not being overly conservative, we've literally had crashes relating to RAM use and right now are just maintaining a healthy distance from that point by virtue of the region switching thing.  If each monster/character graphic was using 5X as much RAM, we'd have to introduce some sort of new intra-region RAM dump points (which is tricky because we can't see exactly how much unmanaged memory is even in use, unlike with the managed memory; we could come up with ways to infer it in terms of textures specifically, but that's messy and incomplete).

And you're right, I'm definitely an engineer at heart, and approach problems that way.  If there's not a 2:1 buffer from failure I'm not happy.  And even now there's only like a 1.5:1 buffer from failure from RAM use via textures, so I'm definitely not being paranoid in an unwarranted sense.  Just ask c4sc4 or a few others who actually had the crashes prior, heh.
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: Crowd-sourcing animation?
« Reply #4 on: April 24, 2012, 12:07:02 pm »
Yea, in order for a game like this to have lots more animations per character (and smooth ones) I figure it'd either need:

- A very sophisticated approach to dropping textures you don't need very shortly after no longer needed them, and getting them back off disk before you need them again to avoid flicker/pop-in.

or

- Full-on 3D rendering so the animation is actually done by moving the parts of the model around at runtime, thus drastically reducing the amount of additional texture memory needed for animation.  But that has all kinds of other performance costs (and of course would be a completely different game), and there's no way we could draw the characters in nearly as much detail except on really beastly computers.
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Bluddy

  • Sr. Member Mark III
  • ****
  • Posts: 434
Re: Crowd-sourcing animation?
« Reply #5 on: April 24, 2012, 11:40:18 pm »
Yeah I just did the quick math and realized each dictionary costs you 1024x512x4 = 2MB. And you have about 40ish characters in the game, so that's 80MB right there just for a running animation.

The real killer is these 32-bit textures. You could probably convert them to 16 bits without too much trouble, which would halve the space needed. You could then stuff in another dictionary per character, and that dictionary could contain all the other animations you'd want, which would be pretty short. I mean if you're talking about a firing animation, you want that to be about half a second at most so that there's no real delay. A hit animation would only need a few frames more than what you have right now to seem fluid enough. And you could even have a minimal idle animation.

Now that I think about it, why do you have 2 running animations per character?

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Re: Crowd-sourcing animation?
« Reply #6 on: April 25, 2012, 10:09:35 am »
We only have one running animation per character -- but what you were seeing there is some older cruft from during beta.  Only the first one is used or included in the latest versions if you install fresh.

In terms of having them be 16bit, we can only import from PNGs using unity; and those are higher-res.  We can then downsample to a lower compression if desired, but that makes things look very muddy and terrible.  We could directly alter the format in memory, but that's very slow and would easily quintuple the loading time for each existing image we have, let alone new ones.  Yikes, eh?
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Bluddy

  • Sr. Member Mark III
  • ****
  • Posts: 434
Re: Crowd-sourcing animation?
« Reply #7 on: April 25, 2012, 11:07:53 am »
PNGs aren't the greatest format for textures. I know that from having worked on the PSP version of ScummVM. On the PSP though, I could use PNG palettes to create paletted textures for some stuff, and that was amazing -- it'd reduce the image size by 4. Unfortunately modern video cards no longer support paletted textures.

Since the dictionary images are fairly simple (color-wise) you could truncate them to a 16 bit format. Simply taking the top 5 bits of each channel and a single bit for alpha will do the trick. GL_RGB5_A1 would be the result. Even though the OpenGL page says it's better to compress the textures than to truncate them, in your case it isn't true, since texture compression looks really bad in 2d games. Truncating the channels though will produce output that's very close to the original in most of the cases, since the color complexity isn't very high for those dictionaries. To test this, I just took a couple of dictionaries and saved them as 16-bit RGB5_A1 bmp. They're virtually identical.

Doing this truncation would reduce the memory size by 1/2 for all characters. You wouldn't want to do this for some enemies that have a lot of color variation, but it should be fine for skelebots, people etc. And the operation itself is very cheap.

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Re: Crowd-sourcing animation?
« Reply #8 on: April 25, 2012, 11:13:11 am »
Unity only supports "load from WWW" (aka their streaming method) with PNG files.  However, once loaded it puts them into a native format.  I forget which one exactly, but I think it's ARGB32 or similar.  So perfect quality but quite large.  There's not much more that I can do unless I wanted to package all the files into the unity build (making distribution a nightmare), as well as have it so that unity loaded all the images from disk pretty much at game load (meaning that RAM usage would spike despite the more efficient format, and there would be definite upper bounds on the amount of textures we could ultimately put in the game, unlike now).

If they supported slightly different things then I'd definitely import differently, but so it goes.  They focus on their main use cases for their developer customers, and we're definitely off the beaten path.  So unless this becomes the next Terraria or something I don't know that I'll be able to browbeat them into doing what I want.  But if we do get that sort of clout, I already have a list of things I intend to use it for with Unity. ;)
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline tigersfan

  • Arcen Games Contractor
  • Arcen Staff
  • Master Member Mark II
  • *****
  • Posts: 1,599
Re: Crowd-sourcing animation?
« Reply #9 on: April 25, 2012, 11:24:50 am »
If they supported slightly different things then I'd definitely import differently, but so it goes.  They focus on their main use cases for their developer customers, and we're definitely off the beaten path.  So unless this becomes the next Terraria or something I don't know that I'll be able to browbeat them into doing what I want.  But if we do get that sort of clout, I already have a list of things I intend to use it for with Unity. ;)

Like locking the mouse onto the monitor I'm playing the game on? :)

Offline eRe4s3r

  • Core Member Mark II
  • *****
  • Posts: 2,825
Re: Crowd-sourcing animation?
« Reply #10 on: April 25, 2012, 11:42:30 am »
Well crowd sourcing sprite-rendered animations is out of the question I'd say. I don't think there are many people on the web who do animation work of that kind, most are just modelers who sorta learn it on the way, but they are not the ones doing for-free work of this magnitude usually....

That said, maybe at some point sprite animations can be done by deformation and dynamic IK (with sprites but not in dictionaries) It'd take some trial and error to get this working right but the end result would be worth it. It would be a viable thing to think about when the next game is made by Arcen.. because unless something changes anytime soon 3d-character making is still expensive .. primarily in time it takes to make it and thus cost ;p

But now that said that, I think the current character animation renders still could do with some touching up in photoshop.... and that's relatively easy to fiddle around with.
Proud member of the Initiative for Bigger Weapons EV. - Bringer of Additive Blended Doom - Vote for Lore, get free cookie

Offline Bluddy

  • Sr. Member Mark III
  • ****
  • Posts: 434
Re: Crowd-sourcing animation?
« Reply #11 on: April 25, 2012, 12:42:48 pm »
BTW looks like Daz 3D is FREE for a limited time. Looks like there's no catch either. So that reduces the barrier to doing this by $400.

Offline Bluddy

  • Sr. Member Mark III
  • ****
  • Posts: 434
Re: Crowd-sourcing animation?
« Reply #12 on: April 25, 2012, 12:50:38 pm »
OK it's not for a limited time. It's their business model. Still.

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Re: Crowd-sourcing animation?
« Reply #13 on: April 25, 2012, 12:54:41 pm »
Yep, then it's just down to the costs of the stuff for the characters themselves.  I still can't see anyone doing the art even if it costs them "only" $20, though.  That's them paying more than the cost of the game to then do work for free for a game we're making money on.  And the price of DAZ 3D then goes back up in a few weeks or a month or whatever.


I dunno.  One thing is certain, though: this thing is selling like hotcakes at the moment, and the main complaints from people who actually like the game have been that they want to see more enemies, more missions, etc.  The worry about too much repetition.  Getting bogged down in redoing existing art assets is the sort of thing that could lose us all our newfound fans if we really let that distract us, while at the same time I honestly don't think that a few extra animations are going to impress the people that hate the graphics.

That's been something I struggled with from alpha on: if I only tweak this to the art, then they'll like it.  Etc, and repeat.  And now it's a year later, the graphics are worlds better than they were in a pretty indisputable fashion, even if you think they still look like crap (which I know you don't, I meant the metaphorical you).  And those people's opinions haven't shifted at all.  Know what?  Those folks just aren't my customers.  I can't please everybody, but I could run this ship into the ground while trying.

Right now there's a ton of momentum for the game, it's outselling what AI War did 3:1 and we were up to #5 on the Steam top sellers list last night and are currently sitting at #9.  The press are largely really enthused, and word of mouth seems to be spreading as well as lots of of fan mail coming in folks who are talking about how they love how the game harkens back to their childhood in the 90s.  Etc.

Two days ago my fear was not being able to capture new customers due to the art or whatever other factors.  Now my fear is losing the momentum of new customers by not just completely delighting the sort of people who clearly have a taste for this sort of thing.  So new enemies, new missions, ever-polished mechanics, and other fun stuff to explore is at the top of my list.  The art just doesn't even register for me at this point anymore, to be honest; if there are incremental upgrades that can be done that make sense, then my stance would largely be the same on those upgrades as it was during the beta. 

But even there, during the next couple of weeks what most needs to happen is for all these new fans to see Arcen beta release schedules in their full glory, if you know what I mean. ;)  Just figured I'd explain where my head is at.  Aside from the technical discussion that this started out as, a lot has changed just out in the world in general.  The folks talking about bad graphics have mostly seemed to be limited to a very few small corners of the Internet thus far, thankfully.
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Bluddy

  • Sr. Member Mark III
  • ****
  • Posts: 434
Re: Crowd-sourcing animation?
« Reply #14 on: April 25, 2012, 01:11:00 pm »
Awesome! I'm SO glad to hear that it's going well.

Just to clarify, my attitude in this thread was never one of "OMG we have to satisfy the people who crave good animation, let's do whatever's needed to get it done." It was supposed to be more like "this is something that could be improved and could be fun for some community members to work on but is clearly not particularly important... is it even feasible?" Mostly I think I was just picturing myself doing some fun animation in my spare time and enriching the game in the process. None of the discussion here was meant to occupy too much of your time though, or to distract you from more important stuff.

Congrats again!