Game Development Community

Spanking new Particle Engine

by Melv May · in Torque Game Engine · 11/18/2003 (12:48 am) · 155 replies

Anyway, please come in, pull up a chair and sit down .. fancy a brew?

For those of you who don't know, I've been involved in the development of a game called Strategem which is a turn-based strategy game with a difference ... major fun with major FX!

During the course of the development it has become pretty obvious that to pull-off the kind of special-fx we need for some of our board creatures, their battling and the use of magical powers within the realm, we need not only an intuitive but flexible method of creating special-fx, specifically particles.

The stock particle engine provides adequate features for simple effects such as basic fire and smoke, even precipitation effects but these can be difficult and in some cases, damn near impossible to achieve easily. At best, the particle effects are embedded within another C++ object to control emissions for the particular task. This is understandable as it wasn't written to be a do-it-all particle engine in the first place.

This has driven the need for me to take the bull by the horns and come up with a new way of getting the huge quantity of effects needed for our game.

During the last year, in parallel with Strategem development, I've spent a considerable amount of time researching all relevant areas of particle systems from offline rendering systems to realtime ones e.g. WonderTouchs 'Particle Illusion' or Max Paynes' 'Particle-FX'. I've focused not only on their features but also more importantly, the user interfaces, in particular features such as being able to set many attributes with a catmull-rom spline graph over unit-time as per 'Particle-FX'.

An area of particle generation that I've focused on is the ability to have a particle engine that can simulate more complex and dynamic effects where emitters move ballistic paths and don't simply generate from fixed points, planes or various volumes. Another critical feature was the ability to reuse particle definitions and form a library system where particles, emissions and overall effects can be reused. This leads to not only a neat feature but performance benefits as well.

To this end, I've come up with a system that I think rivals most, if not all, realtime particle systems and some offline ones as well. A pretty bold statement but this is more than talk and I will bring this to demo sometime early next year, you can count on that.

>>> Continued on next post ...
#81
11/26/2003 (12:32 am)
Martin,

Not too late bud. I did look at the feature of emitting shapes and it's not too much of a problem apart from the obvious performance aspects. The real trouble is that the GUI becomes much more complex. I can see where this particle-engine can take the place of shape-debris emitters but for now, I'm going to focus on billboards. I'd like to think that I could look at this again to check the feasibility before I do a public release. I was also thinking of looking into doing some kind of "imposter" support for DTS->billboards for particles.

I understand your point regarding the usage by non-programmers and it is well taken. The thing to understand though is that whether the editor is embedded or as as a seperate application would make little difference to a non-programmer. The editor spits out a set of files that define your particle effects but are exec'd from a single file for convenience. This is no different from the GUI/World editor within the TGE. You still need to go to the appropriate place and include the appropriate 'exec'. I can see where it would help people who just want to 'play' but for anyone actually creating a game it should make little difference as adding a single 'exec' and copying a few files should be no problem.

In the end, I'd like to have it embedded but other technical considerations will probably lead down the standalone app route.

With regards to the friendly names for the particle properties, I totally agree with you. I spent quite a while changing the names of these so that they didn't sound too scary! Of course, anything that is released as a product would have a fully documented manual with pictorial/electronic examples to guide you. You wouldn't be paying for just the editor and runtime-code but for a comprehensive manual, examples and pre-built library which would take quite a while to produce in themselves.

Thanks for you input Martin; I'd like to think this thread isn't dead so any input is welcome. :)


- Melv.
#82
11/26/2003 (6:50 am)
A good particle engine like the one you describe has such a broad range of application that it is easily worth more than $20, personally I would pay $100 for it, if it was well documented and stable. I can't think of too many games that don't need this kind of thing.

-Matt Baucco
#83
11/27/2003 (3:15 am)
Just to add my 0.02 to the thread (so feel free to just ignore everything from this point on) I think the particle engine you describe could easily be sold for over $100 and you would get some of the most organised and serious teams jumping at the chance to spice up their graphics and enhance their TGE. However if you only charged in the $10-30 area then I'd expect a lot more people to be tempted by the offer and so the total income might not be any lower than if you did sell the system at its actual 'value'. For a small team working with Torque I think it'd often make sense to drop a bit extra on an improved particle engine even if you weren't making particles a major part of your game's graphics just so your lead artist has the added options available to him. At the $60+ barrier I think it would be a lot more about having a meeting and deciding if there was value for money in the upgrade for what you wanted to do with particles.

Then again I'm working in a low budget team where most of our tools we can get are from the lower end of the market (MilkShape and LithUnwrap etc) and I'm not sure if we represent the majority of TGE teams or if most teams get the finances together to buy from the higher end (3DS etc) and so would think $100 was peanuts for an engine upgrade.
#84
11/27/2003 (5:06 am)
Thanks Geoff.

I've been thinking about cost justifications recently and it ocurred to me that with the library facility, developers would more than likely get access to a free set of particle definitions that the community would surely start releasing. There'll be those who buy the engine and just produce libraries of really cool effects for those who don't have the time to do so or simply don't have the artistic skill. Maybe even free content packs of effects etc.

In other words, one resource spawning others which is a good thing. :)

- Melv.
#85
11/27/2003 (11:46 am)
I wouldnt call it an engine upgrade, and so i wouldnt pay $100.
BUt your going to get people saying, "hey, i just paid $100 for the engine, and now i have to pay another $100 for a differant particle system?"

In reality, id rather see this as a resource, but i accept the fact that anyone that makes a significant contribution to the engine should beable to get a little something for what they did.

But then what if everyone starts jumping on the bandwagon?
What will happen to the engine, will that bugfix that someone worked on for 3 weeks to do something cool with interiors now be sold?

For me, $50NZ is hard enough to come up with, and if i did have it, id have to spend it on other things.
Based on what you said, the fact that the particles seem better in some way, have the abbility to make a library, and have an editor for them (theres a resource too) most i can honestly say i'l lay down for it is $20-$30NZ.
$50NZ is approx $30-35 US.


The thing is Melv, so far Ive seen that your a respected and high standing member of this community, and because of that, it could cloud other peoples judgement. Like say, seeing their idol walking past their house. (sorry if i offend anyone).
And you are respected, and i think you earnt your respect, just like everyone should.

Some are happy to say $200, based on that fact without even seeing some form of end product.
So ask yourself, what do you think its worth?
Is selling it at $100 going to do any better than selling at $15-$20 (because more will buy).
What do you see as the best way to get your due out of it?
#86
11/27/2003 (12:55 pm)
Luke,

I can understand your point of view even if I don't totally agree with it. First up, I wouldn't expect anything to sell based on any "high standing" that I may have. As for "clouding other peoples judgement"; If I can't demonstrate the capabilities, the performance is poor or the cost cannot be justified by a team making a game then it won't sell ... full stop. I grant you that because I'm well known on these forums this product would get more attention but it would sell standing on its own irrelevant of who created it.

Secondly, I think the thing you're missing here is that this whole site and the TGE isn't about giving indies a free ride or giving anything away for free. There is a community spirit here and the fact that there are also products shouldn't make a damn difference. I don't think people are "jumping on the bandwagon"; they're doing what this site was set-up to do, create unique opportunities to developers both programmers and artists alike to produce products. There's always going to be people who provide stuff for free (myself included) but over and above that, people are trying to find ways to focus their talents into something that could possibly bring in multiple revenue streams as well as personal satisfaction.

This is not directed at you Luke but anyone who thinks that making money is a dirty thing to do is missing the whole point of this site. Sure, it's not about riping everyone off but the whole point of this site is to empower indies with relatively cheap tools and provide them a sure-footing to games development. There are lots of people who purchase the engine at a push because of money constraints which is fair enough but there are many more potential expenses if you want to use the TGE to create game *products* and not bits of games such as web-space, online servers, advertising etc.

If you're doing development on your own and you're on a low budget then this may seem expensive but most of the time, good games will be done with a team because of all the disciplines involved. If you consider doing something like this yourself over 4-6 months then do it. $100 would be a steal of anyones 6 months.

Also, I think if anyone starts charging for bug fixes they'll get laughed at. The end result of all this work is the ever growing product page on this site. If there wasn't any then what the hell are we all doing here?

I think if you look at the cost of something like this on the basis that you purchase the engine to 'tinker' with then of course it would be expensive because you're never going to get any return on it but for a team making a real product then the cost could be justified in a second and pretty negligible considering that multiple games could be written using it.

With all that said, I've actually got no idea about how much would be reasonable charge for this. I do agree with your point in that I'd prefer to see more sold at a lower cost than the opposite because I know that I'm helping more people but still getting income. Let's wait until I've got something to demonstrate early next year and then I guess I can raise this issue again.

Thanks :)

- Melv.
#87
11/27/2003 (1:01 pm)
I feel I need to also say this; this is the first time I've even mentioned that I'm thinking of making a chargable resource and all this talk of money makes me feel guilty even though, as my post above mentions, I shouldn't.

Let me clarify the situation here; I'm not trying to get rich so I would want to charge a relatively small amount for such a product, not the most I could get my grubby hands on but I guess this would be part of the negotiation with a publisher.

Hey, if it gets me enough cash to by a nice flat-panel display and a new mouse or comfy chair then cool, I'm a happy man, certainly not a greedy one.

Also, we've spent a year in the development of our game Strategem and we always intended to release the more interesting software technologies that have been created to make it work ... for free to the community. In some ways, I wish I'd never started Strategem because it's damn hard work but I know it will be worth it. At this point, writing free cool stuff for the community would be a dream but we're at the point of no return with the game so finish we must!

There ... I feel much better now. :)

- Melv.
#88
11/27/2003 (1:37 pm)
Don't feel like your greedy Melv. Your a little too modest ;). We welcome all of your work free or not.
#89
11/27/2003 (4:14 pm)
I would like to reiterate an idea thats been expressed in this and the Gold level thread...

I have limited time and ability to make contributions to the community effort. I wish I had the time and the know-how to jump on every idea for every little thing I've come up with, I just don't. But at the same time I must confess that I do take advantage of the free resources generated by the community. This does make me feel guilty because I'm doing a lot more taking then giving. I know from the T2 modding scene that you can pour a lot of effort into helping others without ending up ever having any kind equatible return for your time. (People demanding you write their special code, or having to write elementary level instructions for one guy who just doesn't "get it" kind of takes the icing off the cake for any self satisfaction that helping others might bring.)

Since I consider myself an honest and reasonable man, I find this situation almost intolerable. Here I am using the results of someone elses' labour to improve my own project without offering anything in return. So if I don't make some community resource that Melv May can use, how can I ever satisfy myself that I've been honest and reasonable? I see the sale of this particle engine as just the vehicle to do so. I get a nifty particle system and editor, and maybe Melv gets a comfy chair for his computer station or new monitor, maybe both!

ALso I hope that if this undertaking proves practical, that it would encourage other indies to take the new technology they have made for their game, and make it available to the rest of us.
#90
11/27/2003 (4:27 pm)
This is goofy. Melv, you've done plenty of work, fxGratis. Make your changes, sit back, and enjoy your new monitor. You have, and will have again, earned it.

A couple of other ideas: -A Blender-esque fund. Talk to GG, and say "if everyone pitches in for $$$$, I'll give my changes to you."
-Same idea, only GG-independent
-Give away the enhancements, but sell the tool. If it's the premiere particle tool, then not only programmers will buy it, but artists as well. ;-) Or, make it "per game" rather than "per person".
#91
11/27/2003 (4:47 pm)
I think that the "selling resources/code" idea may frighten or make people 'ify' because its a new concept.
I do support the buyable code concept, because, well not everyone can come up with what they need by themselves.
Time constrants make it more viable too, same with skill level.

And yes, the community isnt about giving everyone a free ride, and shouldnt be. I did'nt miss that point, i got it from the begining, sorry if it seemed like that in my post above.
I dont think money making is 'dirty', hell we need a way to survive dont we, and if something we create can give us some form of return for what we spent working on it, why not get it, you could be helping out someone and get something in return (plus that warm feeling).

I think i was just trying to say, "look at what you made and see if you think its worthy of being sold"
"is it a professional product"
Which i gather it is, and seem's to be focused as a 'product' not something like a code snipet or similar.
Hmm, i dont hink i actualy looked at it as a finished professional product up until now, and looking at it in that light, gives the subject a whole differant perspective.

I just hope the fine line between product and resource dosnt blur.
Take a look at the new 'TGE script ed' more work and it could be sold too.

And hey, dont start thinking your being greedy, i doubt you are.


Alright. Idea!
Credit system, If you create a good addition to the engine or something, something which could be sold, but you dont want to, or you dont think its worth trying to sell.
Submit it as a resource, and get credits (a form of online money?) for it.
And use those credits to get another resource which you could use.
It could encourage more quality stuff to be submitted and allow for those that submit things to grab the stuff they need based on how many credits they have availible.

Maybe?
#92
11/28/2003 (7:23 pm)
The thing Luke is missing is the objectivity that lots of us have REAL DOLLAR amounts connected to our time, thus if something can save me X munber of hours just ONCE, then it is worth my current $ per hour times how many hours it would save. I know my hourly rate is more than many people make in a day . . . and my "free" time is priceless. So I understand that what people think their time is worth is variable, but it does have reasonable limits on the top and bottom of the scales.

And I also know that like lots of people, I am working on my game in my "free" time, which I have already stated is "priceless".

I suggested to Jeff that GG should "sponser", "broker" or "seed" these types of enhancments a long time ago, the EXPORTERS might be in a much better state if there was at least some official blessing and way to pay for them to get done.

What I paid for the source license has absolutely NO bearing on what something else like an exporter or a upgraded particle system with a usable editor ( which I would welcome ).
#93
11/30/2003 (10:30 am)
Melv: What I have been working on on and off, yours is far more advanced, is a system that creates building block particles, so you create an effect and then that effect can be attached to an emitter and combined with a reaction (so it could cause damage), but what it is built upon is building block effects, so you can combine multiple effects to the same emitter to produce an overall effect, and this is what I would be looking for. I would be willing to $20 to $30, or more, for the system as it would save me far more time than if I was to write it myself and my time is as valuable as anyone elses :)

Owen
#94
12/01/2003 (11:05 am)
Just from being a professional programmer who has had to use 3rd party tools in other environments, I would NEVER buy anything to add to torque that didnt include source code. Torque is living source and things are bound to change. From experience, I dont have faith in code, and I think with the way GG is, people WILL find bugs in whatever, and will probably fix them. W/O access to the source we could not tell where the problem actually is and where to start fixing it.

And yes, I think Melv should make some decent $$ on a great system and maybe part of the licensing should be that he gets credits on whatever product is published that uses his particle engine?? Melv's code could be the indie particle engine! That would make me damn proud at least!

-s
#95
12/02/2003 (12:18 pm)
There's an interesting product that came out for trueSpace about 3 to 4 years ago called ShaderLab. It allowed people to run shaders that were created for it by others that had purchased ShaderLab Pro.

ShaderLab sold for $15 or $20 (can't remember) whereas ShaderLab Pro was at a much higher cost. The point is that people could get their hands on libraries of shaders for trueSpace's new renderer for free or for pay. But they couldn't make new shaders without SL Pro.

Maybe Melv should consider making the "player" part of the particle engine an enhancement that he gives away for free, or at the small price of $15 to $20. Then, people who have the bigger budgets would buy the "Pro" version with the editor and start releasing fxEffects which would play the same in the "player" part.

It's just an idea, and prolly wouldn't work out in the long run because someone would just hack together an editor for free. Then Melv would realize the time he wasted, leave the community, never to be seen again. Or not. :-) Now I'm just blathering...

Anyways.
- Brett
#96
12/02/2003 (12:28 pm)
There are lots of great comments. I think it is a great idea. After reading I thought I would make the following comments:

- $20 is probably what I would consider spending
- source code is required
- I do NOT expect support (e-mail or otherwise)
- ability to pay for (and get) support (that is where I would pay the bigger dollar)
- I expect starters/examples
- some level of documentation
- no royalties

Wish you the best of luck with it and hope to see it as a purchasable item on the GG pages soon.

Ryan
#97
12/02/2003 (1:01 pm)
Thanks guys, interesting comments. :)

There's obviously no need to decide these details now but I'll definately be referring back to this thread sometime early next year.

@Ryan: I think that your expectations are more than fair. I will say that I'll be putting a major effort into documentation with pictorial examples and I've been looking at packages that allow me to record movies so you can watch a particle-dev-session tutorial with audio explanations. As for the starter/examples, there will not only be a library facility but I'll more than likely be drafting a little help from our artist to produce stock particles and I'll be putting together different categories of effects. Not only this, but I'll provide code examples for things like attaching particles to objects etc.

You can be sure that an awful lot of the work will be creating support documentation, tutorials/examples and a stock library of effects.

- Melv.
#98
12/04/2003 (10:27 am)
You shouldn't feel bad about charging for something like this Melv. I would consider selling the editor a necessity. Your concerned about source control and charging for it will give it that to a much greater degree then a free add on.

There is also the option of selling the stand alone editor at one price and selling the editor with source at a higher price.

The problem with not providing the source is that you pretty much would have to provide support for the product yourself (not that you wouldn't do that anyway ;) ). Releasing the source means the community can help with that.

Personally I think I would like to see it as something similar or part of the show tool. I haven't tried the Max Payne editor but I do like the way UT's works. Basically all of their editors in one. Being able to work on more then one thing at a time is nice.

If you were going to make it stand alone then having the option to be able to extend it to be a model viewer (not maker, just viewer) or shader creator would be a nice touch. I wouldn't expect that with the particle editor when buying it, but the option to be able to extend it to that would be nice. Basically the ground work for a stand alone Torque editing tool.... ya, get to work on that Melv. See you in a couple months ;).

Creating the basic ground work for an editor that could have Melv's particle editor extend it... Anyone up for the challenge?

I guess that's another option. Create the basic editor (bacially a stand alone show tool) and sell it and then release a free plugin for it (particle editor). Or release the editor for free and sell the plugins (probably make more sense that way). Then other people could sell their pluggins too.

Hey....I can dream right? ...right? ...must stop typing and go back to work...

GF
#99
12/04/2003 (4:37 pm)
I have no problems paying money for something that works...not to cast sand in your direction, Melv, but it should work. That's all. Free= you get what you pay for. Fee$= you should get closer to what you're expecting. Folks who 'demand' that this be FREE..eh. Everyone's time is worth something. You only get so many hours in a LifeTime.:)
#100
12/05/2003 (12:05 am)
@Rex: It will work. ;)

- Melv.