Tools/Utilities for Spring

Tools/Utilities for Spring

Discuss the source code and development of Spring Engine in general from a technical point of view. Patches go here too.

Moderator: Moderators

jouninkomiko
Posts: 436
Joined: 26 Aug 2004, 08:11

Tools/Utilities for Spring

Post by jouninkomiko »

So I was curious, what kind of tools and utilities would be sueful to have for spring?
Gnomre
Imperial Winter Developer
Posts: 1754
Joined: 06 Feb 2005, 13:42

Post by Gnomre »

Continuing Upspring's development would be nice. It's a good app, but it could still be made better. The ability to UV map (or at least modify existing UV maps), apply transform without resetting the origin, etc would be nice.

A map editor, or at the very least a compiler with memory management would be good. I'd like to see the ability to change the orientation of features in a way other than making a new tdf and model.

Perhaps taking the scriptor source and tweaking it for spring operation would be good too. Rewrite the .h files and such so they are GPL but still do their job. Though I guess anyone could do that.

TDF/FBI editors are ultimately useless. Maybe provide a program that can do basic calculations so one can figure out buildtime, range, velocity, etc, but that's really not all that hard to do. Well, I suppose they wouldn't be useless if you could do something across an entire set of files (select *.fbi, multiply all sightdistance values by two, or something like that). But for general tweaking notepad is still dandy.

That's really about all there is...
jouninkomiko
Posts: 436
Joined: 26 Aug 2004, 08:11

Post by jouninkomiko »

Hmm what's upspring?
mongus
Posts: 1463
Joined: 15 Apr 2005, 18:52

Post by mongus »

Its a program Zaphood made to put s3os toguether.

analog to 3do builder but for s3os.

:shock:
User avatar
Maelstrom
Posts: 1950
Joined: 23 Jul 2005, 14:52

Post by Maelstrom »

Gnome wrote:TDF/FBI editors are ultimately useless. Maybe provide a program that can do basic calculations so one can figure out buildtime, range, velocity, etc, but that's really not all that hard to do. Well, I suppose they wouldn't be useless if you could do something across an entire set of files (select *.fbi, multiply all sightdistance values by two, or something like that). But for general tweaking notepad is still dandy.
Ive made a FBI editor in Excel. It allows you to add your own tags, so it never becomes out of date. It allows you to add, subtract, multiply and divide any value you want, you can have unlimited units opened, and it is even compatible with OTA. I hardly think that its usless, even Caydr uses it for AA.



What would be handy is a height map editor, that allows you to preview your height map in 3d, and then go back and edit it. I am trying to make one, but as I have never worked with 3D before, and can only program in VB, dont expect anything to soon.
User avatar
Comp1337
Posts: 2434
Joined: 12 Oct 2005, 17:32

Post by Comp1337 »

Maelstrom wrote: What would be handy is a height map editor, that allows you to preview your height map in 3d, and then go back and edit it. I am trying to make one, but as I have never worked with 3D before, and can only program in VB, dont expect anything to soon.
You mean like the FarCry editor? That one lets you sculpt out terrain in 3d, then you can export the heightmap and/or texturemap into .jpg's IIRC.
User avatar
Maelstrom
Posts: 1950
Joined: 23 Jul 2005, 14:52

Post by Maelstrom »

It couldnt be THAT hard to make. At least previewing in 3D anyways. Ill start of by attmeping to build that, then move onto actually scupting in 3D. But dont expect anything for a while.
jouninkomiko
Posts: 436
Joined: 26 Aug 2004, 08:11

Post by jouninkomiko »

That sounds like a fun project :P It's something I think needs to be written in c++/SDL/wxWidgets so it can be immediately multiplatform.
User avatar
Nemo
Spring 1944 Developer
Posts: 1376
Joined: 30 Jan 2005, 19:44

Post by Nemo »

If you were to finish servo and make it non-buggy, I (and so many other inept animators) would worship you for life.
jouninkomiko
Posts: 436
Joined: 26 Aug 2004, 08:11

Post by jouninkomiko »

Never heard of servo?
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Zaphod expressed an itnerest in binding a scripting language to UpSpring so that extra modules could eb made for other things such as scripting etc...

As for map editing you do ahve soemwhat of an ingame editor using Map exporter groupAI and terraind eformation, and I think ti wouldnt be that hard to tie the cursor itno raising and lowering heights and allowing you to modify the terrain ingame as you play then export a heightmap......
User avatar
Nemo
Spring 1944 Developer
Posts: 1376
Joined: 30 Jan 2005, 19:44

Post by Nemo »

Servo is a animation untility that lets you take a TA model and create animations for it graphically, rather than the painstaking scripting method.

Basically, you make each frame of your animation in servo, and then it exports a bunch of script for you, saving you the hell that is blind animation scripting.

Source code for it is here: http://www.wolfegames.com/TA_Section/servo2source.zip
and the app itself is here: http://www.fileuniverse.com/?p=showitem&ID=193
User avatar
Dragon45
Posts: 2883
Joined: 16 Aug 2004, 04:36

Post by Dragon45 »

I usually just write .bat files to perform a "modify all values by some constant", like for example when I wanted to cut all weapon damages and maxhealths by an order 10...


Although a handy-dandy util that could search by metadata and regular expressions to modify stuff would come in useful indeed

For example:

CANFLY CANHEAL ISAIRBASE ? MAXHEALTH /= 10 : MAXHEALTH += 1
User avatar
jcnossen
Former Engine Dev
Posts: 2440
Joined: 05 Jun 2005, 19:13

Post by jcnossen »

- heightmap editor, but it could be that I implement some simple heightmap editor for my map renderer stuff, because people aren't going to use it if I don't write a terrain texture editor for it (And adding heightmap editing to such a tool wouldn't be that much work).

- Animation editing like servo is WIP for upspring.

- I think a mission editor and maybe trigger nodes in spring would be very nice. Fnordia was thinking about continuing on his lua stuff, maybe you can work together (Him adding LUA support for missions, and you creating an editor for adding LUA-based map nodes/triggers.... or something)

I tend to work on a lot of things at the same time... that used to work well until now ;)
jouninkomiko
Posts: 436
Joined: 26 Aug 2004, 08:11

Post by jouninkomiko »

Dragon45 wrote:I usually just write .bat files to perform a "modify all values by some constant", like for example when I wanted to cut all weapon damages and maxhealths by an order 10...


Although a handy-dandy util that could search by metadata and regular expressions to modify stuff would come in useful indeed

For example:

CANFLY CANHEAL ISAIRBASE ? MAXHEALTH /= 10 : MAXHEALTH += 1
Dragon, I still don't see the point to have something like this ^_^ It seems very one use specific.

Zaphod, I'm really interested in starting the heightmap editor in wxWidgets/SDL. Maybe we can coordinate and put in texture mapping as well?
User avatar
PauloMorfeo
Posts: 2004
Joined: 15 Dec 2004, 20:53

Post by PauloMorfeo »

Zaphod wrote:...
- I think a mission editor and maybe trigger nodes in spring would be very nice. ...
Hell yes, that would be very awesome.
User avatar
Argh
Posts: 10920
Joined: 21 Feb 2005, 03:38

Post by Argh »

- Animation editing like servo is WIP for upspring.
:shock:

At last, a light shines through the tunnel that is S3O. Even if it was only a previewer that would run BOS code, so that we could preview things, it would rule. If it had a basic, no-nonsense timestamp (note the word "stamp", not "line"- we don't need fluid animation curves, just timestamps of "now" to work out animation timing) editor... that'd be all it takes to get to the next level of awesome for a lot've mod concepts.

Short of building a particle system that modders can abuse and tie to COB events, this is just about one of the most important things we need.

Thank you. This is a really big deal, in terms of content creation. The TA community has never had a tool like this before, other than Servo, which doesn't work very well, and I strongly suspect that we will be making some fricking AWESOME demos with this... gods, the people stuck in the world of IK will be gasping, when they are reminded that this kind of animation is still relevant to gaming... and a very powerful tool for building a lot've things that are extremely hard to do with IK, like randomized-outcome animations.
User avatar
zwzsg
Kernel Panic Co-Developer
Posts: 7052
Joined: 16 Nov 2004, 13:08

Post by zwzsg »

I'd like UpSpring tiny bugs and shortcomings to be fixed. For instance:
- When you move/turn pieces and don't apply, then save/load or merge, pieces gets all deformed.
- The order in which UpSpring apply rotation is wrong. In TA, and I think Spring too because on one of my unit there's a pieces that I turn around all three axis and it looks the same, First it turns around Z, then around X, then around Y. (That's condidering the rotation turns the pieces but not the axis of the pieces. Y is done last, so when you turn a turret around Y, you can be sure it turns around the vertical axis, no matter how it turned around X to aim up and down.)
- UpSpring X and Z axis have their sign inverted.
Also, note you can't use 3doBuilder for reference, as in 3do builder, the Z axis is inverted.
- UpSpring use different distance units than what TA tradionnally used. A box like Scriptor to choose your units would be nice. With a button "reset to tradionnal units".
- I'd like a tickbox to choose between 0 - 360° angle and -180° +180° angle.
- You can't turn textures in UpSpring (when using the old 3do method).
- UpSpring change many faces into "groundplate"
- When I modify a model into UpSpring, for instance merging pieces and deleting faces, and then save it, it is somehow slightly corrupted and 3do builder can't open it anymore, until I use Benito's 3do dry cleaner on it. Not sure what's really bad in UpSpring output, the logs of 3do dry cleaner says it adds faces and removes vertex.
- I wish there was some way for UpSpring to store model "pose", and that someone would release lastest UpSpring source, and explain me what format they are and how to get them, and so I could program something to write walkscript from those poses. I don't really like the idea of UpSpring interfacing with angelscript to read angelscript script to generate bos script that then have to be compiled by Scriptor into cob, the idea of scripts that write scripts just sounds too convoluted to me and it would add even more confusion to the mind of newbie unit maker, I think the code that generate bos code could be as well hard coded in UpSpring.

Currently, I have to add some pieces to seperate axis of rotations on pieces that turn around more than one axis, then pose the model making sure to turn the right pieces for pieces I had to split to split their axis, then I have to manully note down angles, then I have to keep in mind that the sign of Z and X must be inverted, then I have to convert values like <-340> into <20> as it's not only prettier but also makes rounding error smaller (ok, actually it wouldn't matter much if I didn't do it), then I have to calculate manually what speed to use to reach the position just in time to get smooth animation. And for translation I have to note down the position, then substract the default position offset that I had to mentally remember, then I have to multiply by 2.5 to get traditionnal TA units, then to invert some sign, then I have to calculate the speed to reach the position just in time. The process is tedious, and the inverted signs makes it especially easy to goof up. It would be so much better if I could just store model "poses", input the time between each pose, and have UpSpring generate bos code. I'd be willing to write the part that translate poses coordinates + time between poses into bos code.

Oh, and once the pose system is done, it'd be nice to also have some point-and-click easy to use thing to tell UpSpring "This is the turret, this is the gun, this is the flare, now write me the bos!". And merge UpSpring with Scriptor too, so UpSpring wouldn't just generate the bos but the cob as well. And then something to visually visualise cone of fire and outpout the FBI with limited fire arc, and some menu to choose what kind of units it is (walker/veh/plane/ship/hover, cost, speed, etc...) and it would generate the FBI. Hmm, ok it's going a lil bit too far there.

I think most of it is already on Zaphod todo list, if not already half-coded in some unreleased WIP UpSpring version. UpSpring is great, and once this few little issues are fixed, we could definitively forget the oudated 3do Builder and use only UpSpring even for TA units. (Yes, many people are still modding TA and not Spring).
User avatar
jcnossen
Former Engine Dev
Posts: 2440
Joined: 05 Jun 2005, 19:13

Post by jcnossen »

Ah I'll keep that as a reference for improving upspring.
All the changes together mean a lot of changing in structure... it started with a simple position/XYZ rotation/scaling for every object. Now it has
-position
-a rotator object to handle rotation in an abstract way
-scaling.
-animation properties linked to object properties above, with keyframes.

I'm now looking into creating a lightweight build of mono and bind it to my C++ classes, but that is quite a large task in itself (So far I wasn't even able to build the damn thing). It's a lot better than angelscript though: mono supports a lot of different popular languages.
Creating scripts with scripts really isn't very weird. Look at most linux build tools for example. Besides a script language is just yet another way to build things, just different from C++.
jouninkomiko
Posts: 436
Joined: 26 Aug 2004, 08:11

Post by jouninkomiko »

mono is pretty damned heavyweight... can you even build a lightweight version of it?
Post Reply

Return to “Engine”