|
Post by Elder God of Salt on Sept 16, 2016 19:42:23 GMT
About the random characters and the CURV mystery..
|
|
konisbored
S
The Owl Detective
There is no greater mystery in humankind than collective group-think behaviour.
Gems: 1,033
|
Post by konisbored on Sept 17, 2016 1:31:08 GMT
And I just can't understand it. See, it's hard to understand, but at least this was what the programmer said. So I guess you can say that it's the only way to do something useful with paths. I don't understand either. I hate math!Also a popcap dev quote was on that board on the Indieforum link you sent me. I'm seriously jealous, because PopCap gave their answers to them but not to us.This b******* needs advanced calculus? Derivatives is calculus, btw. And for the record, I only took up to GCE O Level Additional Math standard, so the furthest in calculus I learned was Further Trigonometry, and thus I have no idea what the heck he's talking about.
|
|
剣と盾
O
Royal Advisor
Why are you reading this? Go to the new forum.
Gems: 3,028
|
Post by 剣と盾 on Sept 17, 2016 1:50:40 GMT
All this advanced calculus junk is just obfuscating the main problem... how the paths work... My guess is that it just works as simple as Luxor... path points just decide where the spheres go next... no need to do all the advanced sh*t :/
|
|
konisbored
S
The Owl Detective
There is no greater mystery in humankind than collective group-think behaviour.
Gems: 1,033
|
Post by konisbored on Sept 17, 2016 1:59:54 GMT
All this advanced calculus junk is just obfuscating the main problem... how the paths work... My guess is that it just works as simple as Luxor... path points just decide where the spheres go next... no need to do all the advanced sh*t :/ That's actually the point, the derivatives is for obfuscation (or maybe point detection). The only problem, of course, is finding out how to replicate making calculus equations because I think the x/y values are just what is left after triple differentiation.
|
|
Domi2005
Lvl 43 Hunter of Gems
#ActiveOnDiscord
Gems: 833
|
Post by Domi2005 on Sept 17, 2016 6:17:40 GMT
All this advanced calculus junk is just obfuscating the main problem... how the paths work... My guess is that it just works as simple as Luxor... path points just decide where the spheres go next... no need to do all the advanced sh*t :/ That's actually the point, the derivatives is for obfuscation (or maybe point detection). The only problem, of course, is finding out how to replicate making calculus equations because I think the x/y values are just what is left after triple differentiation. Maybe PopCap just hides the top secret of path making, because if they don't want people to modify the paths around, they have obfuscate them. Clever, but hey! They don't even wanted to show this for us?! Is it possible to get something out of this mess? Maybe no, because the hex editor shows nothing interesting, just random characters. What else you would expect?!
|
|
|
Post by Elder God of Salt on Sept 17, 2016 8:41:40 GMT
That's actually the point, the derivatives is for obfuscation (or maybe point detection). The only problem, of course, is finding out how to replicate making calculus equations because I think the x/y values are just what is left after triple differentiation. Maybe PopCap just hides the top secret of path making, because if they don't want people to modify the paths around, they have obfuscate them. Clever, but hey! They don't even wanted to show this for us?! Is it possible to get something out of this mess? Maybe no, because the hex editor shows nothing interesting, just random characters. What else you would expect?! More and more and more calculus. Or maybe they have an top secret path editor that looks like calculus.
|
|
|
Post by Elder God of Salt on Sept 19, 2016 10:26:02 GMT
Any updates yet? :/
Let's work hard to get to the paths. Modding Zuma is boring now.
EDIT 1: I maybe need to re-send an emai. Popcap mostly didn't notice it Notice me senpai. EDIT 2: I tried through their new support (EA), and you need an EA account. Uuuggh. (And probably the reason why PopCap ignored mine.)
|
|
|
Post by Elder God of Salt on Sept 20, 2016 17:52:28 GMT
Update! Update! Update!So i found another thread in Fischeronline... forum.fischeronline.de/index.php?topic=2412&highlight=zumaAnd i found some interesting stuff. One of them was already here but if you have laziness, here. Yeah. So I parameterized the curves like this: X(t) = At^3 + Bt^2 + Ct + D Y(t) = Et^3 + Ft^2 + Gt + H And then I had curves X1, X2, X3, X4, etc... and Y1, Y2, Y3, Y4, etc... for the different piecewise curves. Then the constraints were: X1(0) = the first key point's x-coord X1(1) = X2(0), X1'(1) = X2'(0), X1''(1) = X2''(0) (Looking back, I see that I also forced the second derivatives to be equal.) So these translate into equations like A1 = P1 (P1 = first key point) A1 + B1 + C1 + D1 = D2 3A1 + 2B1 + C1 = C2 6A1 + 2B1 = 2B2 Note that on the last key point, you can't use the final two constraints since they refer to the point after. But you still need two more constraints to have the same number of equations as variables (4 per curve). So two extra constraints are that the first curve has a derivative of 0 at 0 and the last curve has a derivative of 0 at 1. These are X1'(0) = 0 XN'(1) = 0 or C1 = 0 3AN + 2BN + CN = 0 That gives you 4N equations and 4N unknowns which you can solve using Gauss-Jordan elimination. Do this for both the X curves and the Y curves and then you plug in the coefficients and it all works. I actually had a chance to play with the Zuma level editor when I was in PopCap's office some 3 months ago. Ace's solution is honestly much more elegant than Bezier curves (which is how I thought he originally did it when I saw Zuma). I was impressed with the solution, and just how quickly you could create a new level. It was literally just reduced to matching the path in the background image to the path you wanted to create. Kudos, Brian Yeah. So it's not a bezier curve. It's called a Natural Cubic Spline according to this one web page that gave me the idea way back when: www.cse.unsw.edu.au/~lambert/splines/natcubic.htmlAlso see www.cse.unsw.edu.au/~lambert/splines/ for other types of piecewise cubic curves. Actually, looking at the code on this page, it looks like this guy was smart and somehow avoided the n^3 gauss-jordan elimination problem. Probably by taking advantage of the fact that the matrix was pretty sparse. In the same page, I found "SexyCurves". Yaaay! sexyfaq.jamespoag.com/SexyCurves.htmlRead this if you experience bad stuff on SexyCurves. I found the posts in there that users were having bugs so yeah. forum.fischeronline.de/index.php?topic=3509Edit 1: So SexyCurves link dosen't work. And.. Urghhh
Link: forums.tigsource.com/index.php?topic=451
|
|
Deleted
Deleted Member
Gems: 0
|
Post by Deleted on Sept 20, 2016 18:20:31 GMT
Update! Update! Update!So i found another thread in Fischeronline... forum.fischeronline.de/index.php?topic=2412&highlight=zumaAnd i found some interesting stuff. One of them was already here but if you have laziness, here. Yeah. So I parameterized the curves like this: X(t) = At^3 + Bt^2 + Ct + D Y(t) = Et^3 + Ft^2 + Gt + H And then I had curves X1, X2, X3, X4, etc... and Y1, Y2, Y3, Y4, etc... for the different piecewise curves. Then the constraints were: X1(0) = the first key point's x-coord X1(1) = X2(0), X1'(1) = X2'(0), X1''(1) = X2''(0) (Looking back, I see that I also forced the second derivatives to be equal.) So these translate into equations like A1 = P1 (P1 = first key point) A1 + B1 + C1 + D1 = D2 3A1 + 2B1 + C1 = C2 6A1 + 2B1 = 2B2 Note that on the last key point, you can't use the final two constraints since they refer to the point after. But you still need two more constraints to have the same number of equations as variables (4 per curve). So two extra constraints are that the first curve has a derivative of 0 at 0 and the last curve has a derivative of 0 at 1. These are X1'(0) = 0 XN'(1) = 0 or C1 = 0 3AN + 2BN + CN = 0 That gives you 4N equations and 4N unknowns which you can solve using Gauss-Jordan elimination. Do this for both the X curves and the Y curves and then you plug in the coefficients and it all works. I actually had a chance to play with the Zuma level editor when I was in PopCap's office some 3 months ago. Ace's solution is honestly much more elegant than Bezier curves (which is how I thought he originally did it when I saw Zuma). I was impressed with the solution, and just how quickly you could create a new level. It was literally just reduced to matching the path in the background image to the path you wanted to create. Kudos, Brian Yeah. So it's not a bezier curve. It's called a Natural Cubic Spline according to this one web page that gave me the idea way back when: www.cse.unsw.edu.au/~lambert/splines/natcubic.htmlAlso see www.cse.unsw.edu.au/~lambert/splines/ for other types of piecewise cubic curves. Actually, looking at the code on this page, it looks like this guy was smart and somehow avoided the n^3 gauss-jordan elimination problem. Probably by taking advantage of the fact that the matrix was pretty sparse. In the same page, I found "SexyCurves". Yaaay! sexyfaq.jamespoag.com/SexyCurves.htmlRead this if you experience bad stuff on SexyCurves. I found the posts in there that users were having bugs so yeah. forum.fischeronline.de/index.php?topic=3509Edit 1: So SexyCurves link dosen't work. And.. Urghhh
Link: forums.tigsource.com/index.php?topic=451 We have process!
|
|
|
Post by Elder God of Salt on Sept 20, 2016 18:29:08 GMT
A whole bunch of nothing (except HARD MATH) is what we recieved. Oh, and this: Yeah. So it's not a bezier curve. It's called a Natural Cubic Spline according to this one web page that gave me the idea way back when: www.cse.unsw.edu.au/~lambert/splines/natcubic.htmlAlso see www.cse.unsw.edu.au/~lambert/splines/ for other types of piecewise cubic curves. Actually, looking at the code on this page, it looks like this guy was smart and somehow avoided the n^3 gauss-jordan elimination problem. Probably by taking advantage of the fact that the matrix was pretty sparse. If you click the links provided by Ace, guess what? Yea. 403 Forbidden.The links are just nonsense.
|
|
|
Post by Elder God of Salt on Sept 20, 2016 20:03:01 GMT
|
|
konisbored
S
The Owl Detective
There is no greater mystery in humankind than collective group-think behaviour.
Gems: 1,033
|
Post by konisbored on Sept 20, 2016 23:15:21 GMT
Update! Update! Update!So i found another thread in Fischeronline... forum.fischeronline.de/index.php?topic=2412&highlight=zumaAnd i found some interesting stuff. One of them was already here but if you have laziness, here. Yeah. So I parameterized the curves like this: X(t) = At^3 + Bt^2 + Ct + D Y(t) = Et^3 + Ft^2 + Gt + H And then I had curves X1, X2, X3, X4, etc... and Y1, Y2, Y3, Y4, etc... for the different piecewise curves. Then the constraints were: X1(0) = the first key point's x-coord X1(1) = X2(0), X1'(1) = X2'(0), X1''(1) = X2''(0) (Looking back, I see that I also forced the second derivatives to be equal.) So these translate into equations like A1 = P1 (P1 = first key point) A1 + B1 + C1 + D1 = D2 3A1 + 2B1 + C1 = C2 6A1 + 2B1 = 2B2 Note that on the last key point, you can't use the final two constraints since they refer to the point after. But you still need two more constraints to have the same number of equations as variables (4 per curve). So two extra constraints are that the first curve has a derivative of 0 at 0 and the last curve has a derivative of 0 at 1. These are X1'(0) = 0 XN'(1) = 0 or C1 = 0 3AN + 2BN + CN = 0 That gives you 4N equations and 4N unknowns which you can solve using Gauss-Jordan elimination. Do this for both the X curves and the Y curves and then you plug in the coefficients and it all works. I actually had a chance to play with the Zuma level editor when I was in PopCap's office some 3 months ago. Ace's solution is honestly much more elegant than Bezier curves (which is how I thought he originally did it when I saw Zuma). I was impressed with the solution, and just how quickly you could create a new level. It was literally just reduced to matching the path in the background image to the path you wanted to create. Kudos, Brian Yeah. So it's not a bezier curve. It's called a Natural Cubic Spline according to this one web page that gave me the idea way back when: www.cse.unsw.edu.au/~lambert/splines/natcubic.htmlAlso see www.cse.unsw.edu.au/~lambert/splines/ for other types of piecewise cubic curves. Actually, looking at the code on this page, it looks like this guy was smart and somehow avoided the n^3 gauss-jordan elimination problem. Probably by taking advantage of the fact that the matrix was pretty sparse. In the same page, I found "SexyCurves". Yaaay! sexyfaq.jamespoag.com/SexyCurves.htmlRead this if you experience bad stuff on SexyCurves. I found the posts in there that users were having bugs so yeah. forum.fischeronline.de/index.php?topic=3509Edit 1: So SexyCurves link dosen't work. And.. Urghhh
Link: forums.tigsource.com/index.php?topic=451 Found this on same page: It's basically just an exercise in fitting a cubic through 4 points. There are several methods you could use to do this (one of the more famous ones is LaGrange's Method). Any 'numerical methods' class text books come in handy for this sort of problem.
So it's still a cubic curve, which means we still need to write a cubic equation like y=9x^3-25x^2+7x+3 that still needs to be differentiated twice/thrice with the proper derivatives. No, I'm not writing an editor for that. I didn't learn THAT advanced calculus to think I know how to write code for that. Luxor was tricky enough, and that was all linear paths, not a cubic curve with a n^3 power. Edit 1: So SexyCurves link dosen't work. And.. Urghhh
SexyCurves is an API for Unity engine actually: github.com/KonstantinRudolph/SexyCurvesWhich in theory solves the problem of creating those curves, but I wouldn't know how to parse it into a data file. EDIT: Good luck getting anyone at EA to respond. Another problem was the way you worded it, asking ppl to come here and register to respond is...uh, too much effort for them.
|
|
|
Post by Elder God of Salt on Sept 20, 2016 23:51:55 GMT
Found this on same page: It's basically just an exercise in fitting a cubic through 4 points. There are several methods you could use to do this (one of the more famous ones is LaGrange's Method). Any 'numerical methods' class text books come in handy for this sort of problem.
So it's still a cubic curve, which means we still need to write a cubic equation like y=9x^3-25x^2+7x+3 that still needs to be differentiated twice/thrice with the proper derivatives. No, I'm not writing an editor for that. I didn't learn THAT advanced calculus to think I know how to write code for that. Luxor was tricky enough, and that was all linear paths, not a cubic curve with a n^3 power. Edit 1: So SexyCurves link dosen't work. And.. Urghhh
SexyCurves is an API for Unity engine actually: github.com/KonstantinRudolph/SexyCurvesWhich in theory solves the problem of creating those curves, but I wouldn't know how to parse it into a data file. EDIT: Good luck getting anyone at EA to respond. Another problem was the way you worded it, asking ppl to come here and register to respond is...uh, too much effort for them. Blame Uginus for making the staff making the forum guest post proof.
|
|
|
Post by Elder God of Salt on Nov 10, 2016 14:16:56 GMT
Apparently NO ONE CARES. No one replied in the EA post.
|
|
konisbored
S
The Owl Detective
There is no greater mystery in humankind than collective group-think behaviour.
Gems: 1,033
|
Post by konisbored on Nov 10, 2016 14:27:39 GMT
Apparently NO ONE CARES. No one replied in the EA post. It's EA. Their customer service is ludicrously bad, and they honestly can't care less about the companies they acquire. Can't say I'm surprised in the end...
|
|