HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

scCS: the next generation of Cinematic Systems

11-03-2007, 06:38 AM#1
CaptainPicard
It's called scCS because I intend to make it the "StarCraft Cinematic System" as soon as SC2 comes out.

It's a C program that produces JASS code (or, when SC2 is out, code in whatever language that SC2 runs on). Because the code uses only very simple language (if-then, simple variable types, and triggers with periodic events), it never calls on a game cache, is highly transparent, will not leak at all, and should be easily portable to whatever new language and environment SC2 has to offer.

I've attached a map to give you an example of what the code can do. It's not an impressive cinematic, but look at the script in the map--actions in the "Cinematic Backstage" trigger were generated by scCS and the pasted in, as were the custom script functions (you just type "./scCS -code" on the command line). The input file for this cinematic (not case-sensitive, arguments can be given in any order):

Quote:
slide -t 0.5 -xf 520.00 -yf -450.00 -dur 2.0 -obj 0
slide -t 2.5 -xf -250.00 -yf 1000.00 -dur 3.0 -obj 0
slide -t 5.5 -xf -310.00 -yf -670.00 -dur 3.0 -obj 0
slide -t 8.5 -xf 800.00 -yf 210.00 -dur 3.0 -obj 0
slide -t 11.5 -xf -690.00 -yf -300.00 -dur 3.5 -obj 0

slide -t 1.5 -xf 520.00 -yf -450.00 -dur 4.0 -obj 1
slide -t 5.5 -xf -650.00 -yf 1200.00 -dur 6.0 -obj 1
slide -t 11.5 -xf -610.00 -yf -270.00 -dur 3.5 -obj 1
slide -t 15.5 -xf 400.00 -yf 110.00 -dur 2.5 -obj 1
slide -t 18.0 -xf -190.00 -yf -400.00 -dur 3.0 -obj 1
slide -t 21.0 -xf -190.00 -yf -400.00 -dur 3.0 -obj 1

slide -t 12.5 -xf 520.00 -yf -450.00 -dur 3.0 -obj 2
slide -t 15.5 -xf -650.00 -yf 1200.00 -dur 3.0 -obj 2

slide -t 28.0 -xf 390.00 -yf 800.00 -dur 3.0 -obj 1
slide -t 31.0 -xf -10.00 -yf -400.00 -dur 4.0 -obj 1

Note that movement in this system is not just parabolic, it takes place in cubic splines--you can specify the initial and final points for a movement as well as the initial and final velocities, and scCS will figure out what initial acceleration and jerk (change in acceleration over time) to use and write that out in JASS code.

If you do like I did above and neglect to specify an initial location, scCS scripts JASS to use the unit's current position. If you do specify an initial position, scCS will look for any deviation between that position and the unit's current position, and add a bit more velocity while the game is running to get the unit where you really want it to go without suddenly moving it to the correct initial position. This is one error-mitigating feature I've got in scCS (I suppose the fact that the delicate number crunching is done by scCS in double-precision as opposed to the horrendous 0.01 precision of WC3 JASS counts as another). I intend to add a predictor-corrector to scCS so that error in unit movement is reduced even further.

Please let me know how you like this system!
Attached Files
File type: w3xDoTriggersWork.w3x (23.8 KB)
11-04-2007, 08:21 PM#2
CaptainPicard
Well, I'm not going to post the C code at the moment, but scCS is becoming even more powerful!

This revised map shows some of the things that scCS can do, including smooth unit resizing. The cinematic can be launched by typing 'START' as a chat message while "playing" the map.

(Edit: removed unnecessary script for input to scCS to create the cinematic.)

There's now something BIG and new on the horizon--in fact I doubt it will take long to code. Notice how there is some repetitive motion in this cinematic--the Blood Elf Spellbreaker and the Dragon Hawk just go around the Sorceress in circles. Well, in a future version of scCS that sort of movement is going to be handled by separate cinematic threads, which you will be able to start and stop with precise timing from within other cinematics. Cool, huh?

(Edit: new version of the example map posted, showing the color variation capabilities of scCS.)

Attached Files
File type: w3xscCSTestMap.w3x (31.1 KB)
11-05-2007, 06:53 PM#3
cohadar
Well let me just save you from tripple posting by saying a descriptive line about this "system"

*** Sux Balls ***

In multiple planes of existance....
11-05-2007, 07:01 PM#4
CaptainPicard
Um, in what way? On what planes of existence does it suck?

The cinematic itself is not meant to be impressive--but, you try to get that kind of smooth movement in the patterns I did, with those sorts of coloring and rescaling effects. Even with the existing system by Anitarf and iNfraNe, from which I take my inspiration, it would not be as easy to do as it is with scCS.

I will create a much more impressive cinematic with this tool soon. Until then, I welcome suggestions as to how to improve it.
11-05-2007, 07:28 PM#5
moyack
I just have a question.

You need an external program in order to develop the movement code... why?? why not make it a WC3 library?? in this way the user just changes values inside the editor instead in an external text file.

Quote:
The cinematic itself is not meant to be impressive--but, you try to get that kind of smooth movement in the patterns I did, with those sorts of coloring and rescaling effects. Even with the existing system by Anitarf and iNfraNe, from which I take my inspiration, it would not be as easy to do as it is with scCS.
Of course, because VJASS didn't exist in that time, but now that we have this powerful tool, it's pretty easy to implement the spline concept there.
11-05-2007, 07:46 PM#6
MaD[Lion]
Quote:
Originally Posted by CaptainPicard
Um, in what way? On what planes of existence does it suck?

The cinematic itself is not meant to be impressive--but, you try to get that kind of smooth movement in the patterns I did, with those sorts of coloring and rescaling effects. Even with the existing system by Anitarf and iNfraNe, from which I take my inspiration, it would not be as easy to do as it is with scCS.

I will create a much more impressive cinematic with this tool soon. Until then, I welcome suggestions as to how to improve it.


my system go beyond ur system. and u use eternal program. my system use jass. I will show u wat my cinematic system can do. It already can do all tat u mentioned about rescaling and coloring, but i will make it do something no system yet have been able to do ;)
11-05-2007, 08:04 PM#7
CaptainPicard
1.) JASS numerical precision is awful--seems to be about 0.001, and if you want to compare numbers smaller than that they just get nuked. In a real floating-point precision, you can compare numbers that are practically as small as you want and the number of significant figures never changes.

2.) By having an external system write the movement script, you can create the highly optimized nested conditional statements. It's O(log P), where P is the number of operations. Use of game cache is a very expensive operation, and leaks memory.

3.) By avoiding any fancy programming that is unique to WC3, I ensure that my system is portable so when the next editor comes out, I can easily make the transition.

4.) By coding in C, I have access to a huge array of powerful library functions which JASS and VJASS simply can't muster.

MaD[Lion], what will your cinematic system do?
11-05-2007, 08:31 PM#8
MaD[Lion]
its a secret... wat my can do. And my system doesnt use game cache, i hate gc.
And even if u use C or watever, u still use jass to move the units. and btw i downloaded the maps, and nothing happened... seems like ur "next generation" doesnt work ^^
11-05-2007, 08:47 PM#9
CaptainPicard
Type "start" to initiate the demonstration cinematic. It works, all right.

Of coruse I know you use JASS to move the units. The C program compiles the optimized JASS code.

Really, though, I am curious what your system does. Given that the WC3 genre is so outdated, unless you intend to port it somewhere else there's really no point in trying to get attention by telling about your "secret." Until I know what your system does (and, preferably, can see it), it's going to be hard to impress me with it.
11-05-2007, 10:13 PM#10
cohadar
Quote:
Originally Posted by CaptainPicard
MaD[Lion], what will your cinematic system do?

It will probably try to bring piece to all nations and end world hunger.
But it will be a futile attempt, because only my soo to come:
XYZ Extended-Collision-ReHash-Ultra-Table-Torment System will be able to do that.
11-05-2007, 10:30 PM#11
CaptainPicard