Sign in to follow this  
Followers 0
Ilves

modern warfare reaches 0 A.D.

236 posts in this topic

Good day, guys. I and a bunch of other fellows make a game dedicated to tanks, cruise missiles and jet planes instead of horsemen and chariot. Namely, this one: http://www.moddb.com.../rogue-republic

We were reviewing several engines and now I finally reached yours :P

q1.jpg

3ccea3265343.jpg

So I have a pack of questions:

1) I was trying to export an object into 0 ad - it seemed to allow only objects consisting of single mesh. Quickly enough, I sussed out that you need to use prop objects in that case. But what a scorn! I'm a user of 3ds max 2011 and the plugin include in your wiki doesn't seem to be willing to co-operate with this version. So, is downloading Bible-old 3ds max 6 a necessary move or there is a solution to import prop object using just 3ds max 2012?

2) in the same wiki you mentioned that the recommended properties of the models are max 800 polies and 512x512 textures for buildings. Are those requirements still actual or is there major improvement since then?

3) again 'bout prop objects. Can a prop act like a rotating-shooting tank turret attached to a tank hull? (or can it act only static)

4) and all-in-all, is it feasible to create a modern-warfare type of RTS using your engine?

with best regards

Edited by Ilves

Share this post


Link to post
Share on other sites

Hi, I will try to answer some of your questions, but others may have more details.

2) in the same wiki you mentioned that the recommended properties of the models are max 800 polies and 512x512 textures for buildings. Are those requirements still actual or is there major improvement since then?

The reason for this advice is mostly performance-based. It depends on how many units you think are going to be in the game at any point. With sword 'n sandal units it can be quite a lot, so to keep it playable the per-unit details needs to be limited. I think this is not a technical limit, but a computer might come to a crawl with high-poly units and buildings.

3) again 'bout prop objects. Can a prop act like a rotating-shooting tank turret attached to a tank hull? (or can it act only static)

As far as I am aware, for now any prop is static in its connection to a prop-point. I do not know how difficult it is to adjust code to make it possible. Currently, your complete tank would turn towards the target, similar to how ships do it in 0 A.D (which will be adjusted in time).

4) and all-in-all, is it feasible to create a modern-warfare type of RTS using your engine?

Yes, I would say you can. I assume most of the things you need are in the game and/or can be added. I would make a list of how your RTS would differ in behaviour/requirements from 0 A.D. There are a few performance issues with 0 A.D. for the moment, which relate to pathfinding and the AI (which are both being worked on), plus it lacks multi-core support for now. That does affect how well it runs with lots of units and AI bots, but gameplay itself should not be affected.

Maybe it is good to know there is already rudimentary support for planes. There is a demo map for that.

1 person likes this

Share this post


Link to post
Share on other sites

1) I was trying to export an object into 0 ad - it seemed to allow only objects consisting of single mesh. Quickly enough, I sussed out that you need to use prop objects in that case. But what a scorn! I'm a user of 3ds max 2011 and the plugin include in your wiki doesn't seem to be willing to co-operate with this version. So, is downloading Bible-old 3ds max 6 a necessary move or there is a solution to import prop object using just 3ds max 2012?

For any later version of 3DS Max Collada (.dae) support should be built in iirc. I don't have Max installed so I don't know the exact menu commands etc, but look for Collada/.dae in the export.

About the requirements: For buildings you can go higher than that, especially for rarer buildings. Generally speaking I think the things to be cautious about are: gradual transparency, how detailed animated objects are, and to a lesser degree model resolution/texture resolution. And of course, units/buildings/objects which there will be fewer of on the screen at the same time/are big enough to take up a lot of the screen can be more detailed.

Share this post


Link to post
Share on other sites
About the requirements: For buildings you can go higher than that, especially for rarer buildings. Generally speaking I think the things to be cautious about are: gradual transparency, how detailed animated objects are, and to a lesser degree model resolution/texture resolution. And of course, units/buildings/objects which there will be fewer of on the screen at the same time/are big enough to take up a lot of the screen can be more detailed.

If you won't mind, I am going to tell I'm a former veteran of 3D C&C modding and there 800-poly building were never popular :huh:

We use 1000-2000 polies for units (depending on the unit), 600 for infantries and 2000-3000 for buildings. Unit number - currently unknown precisely, but approximately I think that it should be the same as in C&C Generals, were you had 30 units simultaneously. 1024x1024 skins for most vehicles, 2 1024x1024 for tanks (one for the hull, second for turret and an another one for tank tracks). 2048x2048 for buildings.

For any later version of 3DS Max Collada (.dae) support should be built in iirc. I don't have Max installed so I don't know the exact menu commands etc, but look for Collada/.dae in the export.

The problem is not with Collada, which works, but with Prometheus 3ds Max propping tools, which do not launch

I do not know how difficult it is to adjust code to make it possible. Currently, your complete tank would turn towards the target, similar to how ships do it in 0 A.D (which will be adjusted in time).

That kinda sucks :\ The only absense of rotating turrets makes a modern warfare game impossible. Browsing the renders I put above you can judge how many units have rotating weapons, i.e. almost everyone.

Appoximate list:

- ability to capture neutral "towns" which have a town hall and 3-4 civilian buildings. Destroy the buildings - the owner of the town gets lesser income. Buildings self-rebuild with time.

- BFME1-style base-building - in the start you have a main building and a fenced area of concrete with "build here" slots were you can place any building by clicking on it.

- ability to select your own combination of units, buildings and etc, in other words - a faction editor.

- squaded infantry

- indirectly-controlled planes: you "summon" a plane like a magical special power by clicking a button in the interface, select an area where the plane should "work" and after that the plane does its work interdependently from player by attacking foes in the selected area.

Edited by Ilves

Share this post


Link to post
Share on other sites

If you won't mind, I am going to tell I'm a former veteran of 3D C&C modding and there 800-poly building were never popular :huh:

We use 1000-2000 polies for units (depending on the unit), 600 for infantries and 2000-3000 for buildings. Unit number - currently unknown precisely, but approximately I think that it should be the same as in C&C Generals, were you had 30 units simultaneously. 1024x1024 skins for most vehicles, 2 1024x1024 for tanks (one for the hull, second for turret and an another one for tank tracks). 2048x2048 for buildings.

I don't think the recommended limit is a hard limit of any kind. 0 A.D. has always aimed to support quite low-end stuff. If you are willing to drop support for the lowest-end machines, you can probably use 1000-2000 polys just fine. Or you can get someone to optimize the engine for your requirements - it is open source, after all.

Nice modelling, by the way.

Edited by zoot

Share this post


Link to post
Share on other sites

Loved the idea, but... Where are the famous russian katyusha?

Here: :)

rr-grad.jpg

1 person likes this

Share this post


Link to post
Share on other sites

If you won't mind, I am going to tell I'm a former veteran of 3D C&C modding and there 800-poly building were never popular :huh:

The art design documents you're looking at seem to be way out of date. There are no limits on texture sizes (though power-of-two sizes are still recommended for backwards compatibility with really old hardware). Our building models are usually upwards of 5000 polys, somewhere near 10k on average I'd say, and I think our largest building is currently something like 100k polys. Our units are much simpler, but the reason for that is we want to max the number of units instead. I'm getting started on a LOD implementation, so these numbers won't even matter too much in the future (hopefully!).

The problem is not with Collada, which works, but with Prometheus 3ds Max propping tools, which do not launch

Unless I'm mistaken, those tools are obsolete. Prop points can be set in your 3D software as null objects (prefixed with "prop_" IIRC) and saved straight in the Collada files (our artists use Blender).

That kinda sucks :\ The only absense of rotating turrets makes a modern warfare game impossible. Browsing the renders I put above you can judge how many units have rotating weapons, i.e. almost everyone.

FWIW, from a graphics/scenegraph perspective at least, our engine can do turrets. It's a matter of adding a simple armature to the turret (a single bone would probably suffice), and then rotation of the turret is a matter of controlling the animations applied to its armature. You'd need to add some code for that in the game's "Simulation" portions, where you're simulating the behaviour of your tank units. Maybe our simulation coders can tell you more about that.

If programming is not an option for you, there are some other free and open-source engines out there that may be more suited to your needs. There's Spring (which is Total Annihilation-ish), and whatever engine Warzone 2100 is using. (If memory serves, their licenses are compatible with ours, so in theory you could use some of their tank-driving code in our engine...).

Share this post


Link to post
Share on other sites
Unless I'm mistaken, those tools are obsolete. Prop points can be set in your 3D software as null objects (prefixed with "prop_" IIRC) and saved straight in the Collada files (our artists use Blender).
Correct, standard helper objects work just fine. The tools mentioned in the wiki are prior to the .dae conversion. They were for directly exporting to .pmd and .psa formats. Now the game engine automatically converts .dae models and animations for you to the pyrogenesis format.

0 A.D. artists (like me) used to use Max before the current wave of blender artists joined the team. Your 3ds Max art should be fully compatabile with the game engine. If you run into issues, shoot me a PM and point me to a thread and I'll try my best to help out.

Animated textures (I think that feature was recently added for waterfalls?) would sure look nice on those tank tracks ;)

Share this post


Link to post
Share on other sites

Maybe you could make the turret a prop_object and reference it into the parent's model. Then you could make the turret would have the attack value, while the chassis would just serve for mobility and Armour purposes. It's something to think about. I'm going to give it a try in a near future :)

BTW: I was already following your mod. :D It looks neat!

Share this post


Link to post
Share on other sites

it really encourages a rooky engine explorer when a community is as willing to help as yours ;) Still, the noob (i.e. me) doesn't seem to be out of questions.

I did as insctructed (prefixed with prop_ all the meshes but 1) and even linked them to hull of the tank, yet the scenario editor refuses to cooperate with me:

3ea143d9e48d.jpg

d6421bc38da2.jpg

Looks like there is yet something to know or is it just him having a bad mood? ;)

Share this post


Link to post
Share on other sites
it really encourages a rooky engine explorer when a community is as willing to help as yours ;) Still, the noob (i.e. me) doesn't seem to be out of questions. I did as insctructed (prefixed with prop_ all the meshes but 1) and even linked them to hull of the tank, yet the scenario editor refuses to cooperate with me: Looks like there is yet something to know or is it just him having a bad mood? ;)

Based on the screen I'm guessing you are trying to import the DAE file with multiple meshes like the hull and the turret but naming the meshes like props. That seems to be the problem.

I'll try to explain:

- You need a "main" single mesh, like the hull.

- To add the turret and tracks to the main mesh (and other meshes if you want) you need null-objects (I think they are called "helpers" in Max, "empties" in blender) parented to the "main" mesh, and placed where the center of the turret mesh and the tracks mesh will be.

- These helpers names must start with "prop-" or "prop_"

- On the .xml file of the "main" mesh, you'll indicate to the engine that you want the turret on the "prop-turret" and the tracks on the "prop-tracks" helpers' locations.

You can open a unit .xml for example to see how to add them.

Share this post


Link to post
Share on other sites

Well... one of the solutions would be to have an Entity referencing another entity. (Entityception).

2 Entities in 1. Why? You would have the main entity as the chassis as a dummy unit. And the turret as the active "Attacking" entity - (active entity). Why? Because now it we would have the main entity facing the enemy, and the other one just standing around.

Once the turret "dies" it would also destroy the chassis entity. I guess it could be done with minor JS scripting, but I have no idea how nor the time to try it out.

However, since I'm not a programmer, I can't do that. TBH I really don't know if we can even do that.

Another solution would be to edit the engine code and add a Turret_prop_attachment (as an attach_point to be referenced within the visual actor). It shouldn't be hard work, since all it has to be is the copy of the projectile system, without making it trow itself away. (If you pay close attention, you'll see that the projectiles tend to follow the enemy unit.)

I tried the basic prop system I initially thought, but it failed since when you place it as the root attachment it would follow the coordinates of the chassis. I even tried the other way around, without success.

If anyone wants to carry on with my tests, I'm uploading the files I currently used and my dummy_tank model.

turret_endeavour.zip

Share this post


Link to post
Share on other sites

Each object must be a separate mesh and exported separately ("export selected..." in Max). The "main" mesh should have a dummy helper (named prop_whatever) linked to it where you want the turret to go. Then make an actor for the turret mesh and prop it to the main mesh in the main mesh actor. I recommend opening some other actors already in the game and looking at them to see how we do it. :)

Share this post


Link to post
Share on other sites

Hmm... If we could parent entities not only with "templates" but with other visual entities, the turret system could work...

Any ideas?

Share this post


Link to post
Share on other sites

Hmm... If we could parent entities not only with "templates" but with other visual entities, the turret system could work...

Isn't that essentially what props are? Entities which parent another entity?

Edited by zoot

Share this post


Link to post
Share on other sites

You can't send commands to props afaik.

Edited by gudo

Share this post


Link to post
Share on other sites

You can't send commands to props afaik.

"Commands"? Aren't they objects which can receive method calls like everything else?

Share this post


Link to post
Share on other sites

No... In the game we have actors and entities.

Props are simple actors, which are only graphical representations.

Entities are "game objects" with function and behavior - like attack, life, cost, these stuff. Each entity is associated with it's respective "visual actor".

Share this post


Link to post
Share on other sites

"Commands"? Aren't they objects which can receive method calls like everything else?

I'm no coder, just a tinkerer. I'm probably confused :P

Hmm... If we could parent entities not only with "templates" but with other visual entities, the turret system could work...

Any ideas?

Super dirty hack I tried: Change the turret prop to:


<prop actor="units/athenians/infantry_archer_e.xml" attachpoint="root"/>

Got this:post-12555-0-36560500-1351303584_thumb.p

It's the Athens archer actor, fully textured, propped, and animated. When the tank moves, the archer plays it's move animation. When the tank attacks, the archer plays it's attack animation. The projectile even comes out of the right place.

I'm short on time, I'll speculate later.

Share this post


Link to post
Share on other sites

Each object must be a separate mesh and exported separately ("export selected..." in Max). The "main" mesh should have a dummy helper (named prop_whatever) linked to it where you want the turret to go. Then make an actor for the turret mesh and prop it to the main mesh in the main mesh actor. I recommend opening some other actors already in the game and looking at them to see how we do it. :)

Aye, I think Michael's has pinpointed it here. Do the parent export selected while selecting the parent model and the dummy helper object. Do the child/prop export by selecting the prop only for export. Note that the child position on export is relative to the world coordinate system, not the prop point - so you may have to adjust it accordingly.

Share this post


Link to post
Share on other sites

Super dirty hack I tried: Change the turret prop to:


<prop actor="units/athenians/infantry_archer_e.xml" attachpoint="root"/>

Got this:post-12555-0-36560500-1351303584_thumb.p

It's the Athens archer actor, fully textured, propped, and animated. When the tank moves, the archer plays it's move animation. When the tank attacks, the archer plays it's attack animation. The projectile even comes out of the right place.

I'm short on time, I'll speculate later.

Well, that's some news :) However i believe that the main point of a turret is making it being able of attacking without the need to the unit turning itself to attack. Back in C&C Generals, when you sent your tanks to attack something they would get in range and start firing. If the target moved, the turret would followed it, but the chassis remained still. However, if you decided to click attack again, the chassis would face the target and the turret would keep it's following mode. This is important for armor bonuses :) The tank would be heavy with it's front armor while the back would be more fragile.

Share this post


Link to post
Share on other sites

Well, that's some news :) However i believe that the main point of a turret is making it being able of attacking without the need to the unit turning itself to attack. Back in C&C Generals, when you sent your tanks to attack something they would get in range and start firing. If the target moved, the turret would followed it, but the chassis remained still. However, if you decided to click attack again, the chassis would face the target and the turret would keep it's following mode. This is important for armor bonuses :) The tank would be heavy with it's front armor while the back would be more fragile.

It will require a minor (in my unprofessional estimation) bit of coding in any case, but I believe having it as a prop is the way to go.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0