by date
Hello, Goodbye, Israel, and LSystems
Hello, Goodbye, Israel, and LSystems
| Name: | Chris Calef | ![]() |
|---|---|---|
| Date Posted: | Mar 12, 2008 | |
| Rating: | 5.0 out of 5 | |
| Public: | YES | |
| Comments: | YES | |
| RSS Feed: | or Subscribe with . | |
| Profile Page: | View profile page for Chris Calef |
Blog post

Well, hi again, everybody! Turns out it's been eleven months since my last blog. I know, it hasn't even been a year yet, but I'm just gonna go ahead and post something anyway. I'm turning over a new leaf. And I have had quite a bit going on recently. For one thing, I quit working at Garage Games and returned to Joyfully Independent!! Don't worry, though, there's warm fuzzy feelings all around, it's all good. (More below.)
Be warned, This Blog Is Image Heavy.

As you may have guessed, I just came back from Israel a little while ago.

It was a really cool trip, and I had a fantastic time. I highly recommend anyone who can to check it out at least once in your life. I'm not especially religious, at least not in any way that orients on a particular piece of territory, but the history there is deep and wide and comes screaming right on up to the present in a way that few places do. In a way it almost feels like Israel represents the crux of the whole world's problems, like if things could somehow get fixed there, then there might be hope for everybody.
;

Unfortunately, that doesn't seem to be the direction things are going, at least not this month. They've been taking rockets from Gaza in the Israeli town of Sderot for quite a while, and while I was there the Israeli government cut back electricity to the entire Gaza Strip, and I hear things have escalated quite a bit since then. Unfortunately, I didn't leave with any brilliant ideas for making everybody happy.

But damn, the story's been going on for a long time over there! Above is a segment of an Egyptian wall that is three thousand years old. You can see that they were made of mud, as they were kind of plastic when they laid them together. As far as I know, that wall right there could very well have been made by Hebrew slaves mixing straw and mud just like in the Bible stories.

You can't go up to the three thousand year old walls, but the two thousand year old wall above is open for anybody to drop their backpack on and hang out for a while. I stayed there quite a while, just soaking it up.

I got a chance to visit the Masada, on the Dead Sea, where the Hebrew Zealots took their last stand against the Romans, somewhere around the year 30 AD, after fractious infighting in Jerusalem wherein they proclaimed that real Jews had to fight the Romans right now, and everybody else was a wimp and a compromiser. They fought each other, and then the Romans came in and crushed them all.

Can't quite put my finger on it, but something about that story just feels familiar somehow.
The crazy thing about the above picture, actually, is that the building doesn't even date from the Masada's heyday. It's a Byzantine church from six centuries later. It's fourteen hundred years old, and the people who used it were already camping out in six hundred year old ruins. That's what I call history.
Here's what the place looked like when it was new.

Here's a Roman camp, one of the eight that surrounded the whole plateau for three years. Still sitting right there, two thousand years later.

If you're interested, you can check out more of my pictures here. It's kind of weird, the first image there is actually a link to a sub-gallery, but if you keep clicking around you'll figure it out.
My trip was fun as hell, but it actually wasn't all vacation. I was there as an official representative of Garage Games, on a secret mission involving these guys. More on that later.

This sort of brings me to the really big news of this blog, for anybody who's still with me. A few weeks ago, I took a giant leap from safe and employed back to crazy sketchy who-the-hell-knows-what's-gonna-happen-next INDIE!!!
(Hence, the "Goodbye" section of the title.) It's not really a goodbye, of course, but I said goodbye to working in the Garage Games office anyway. It was a great ride, I learned a hell of a lot and had an awful lot of fun and met a whole bunch of really cool people who will be friends for a long time, but the time had to come sooner or later where I jump out and start working on the game titles and projects I've had running through my head for the last ten years. The time is now, now is the time, and the move is made. For anyone interested, I'm officially available for contract jobs, I'm busy but if it's an interesting project that oughta get done, I can probably work it in, feel free to get in touch with me at chris dot calef, at gmail dot com. I love to work with dts models, converting and tweaking and applying physics and AI; and I can occasionally be persuaded to do other things too.

Now, some people who are STILL reading this might be curious about that last bit of the title.
Turns out, I've been grinding away at a side project that makes my life a living hell, but occasionally pops out something interesting. I finally got it up to the level of making a few screenshots, at least.

What it is is a perversion of an old freeware LSystems application called LParser by Laurens Lapre. I've had that program for years, played with it a lot, and thought it was really cool. Meanwhile, I was also working on a system for spitting out simple DTS models based on connected bodypart primitives read in from a script. I designed it way back when in order to have a means for testing physics on a number of different body types. At the time I was using ODE. Eventually, I hooked it up to dtsSDK so I could use it the models in Torque.

The above model was based on a cfg file that looks something like this:
0 Pelvis ; Pattern_X ; null ;0;(0.0,0.0,0.0);(90.0,0.0,0.0);5.0;10.0;-0.0;0.0;-0.0;0.0;(0.0,0.0,0.0);0.0;0.0;3;0.0;3.0;
1 Spine1 ; Pattern_X ; null ;0;(0.0,0.0,10.0);(0.0,0.0,0.0);5.0;12.0;-0.1;0.1;-0.1;0.1;(0.0,0.0,0.0);0.0;0.0;3;15.0;3.0;
2 Spine2 ; Pattern_X ; null ;1;(0.0,0.0,12.0);(0.0,0.0,0.0);5.8;14.0;-0.1;0.1;-0.1;0.1;(0.0,0.0,0.0);0.0;0.0;3;15.0;3.0;
3 Spine3 ; Pattern_X ; null ;2;(0.0,0.0,14.0);(0.0,0.0,0.0);7.5;10.0;-0.1;0.1;-0.1;0.1;(0.0,0.0,0.0);0.0;0.0;3;15.0;3.0;
4 Neck1 ; Pattern_X ; null ;3;(0.0,0.0,10.0);(0.0,0.0,0.0);3.0;6.0;-0.2;0.1;-0.1;0.1;(0.0,0.0,0.0);0.0;0.0;3;8.0;3.0;
5 Neck2 ; Pattern_X ; null ;4;(0.0,0.0,6.0);(0.0,0.0,0.0);3.0;5.0;-0.2;0.1;-0.1;0.1;(0.0,0.0,0.0);0.0;0.0;3;8.0;3.0;
6 Neck3 ; Pattern_X ; null ;5;(0.0,0.0,5.0);(0.0,0.0,0.0);2.5;4.0;-0.2;0.1;-0.1;0.1;(0.0,0.0,0.0);0.0;0.0;3;8.0;3.0;
7 Neck4 ; Pattern_X ; null ;6;(0.0,0.0,4.0);(0.0,0.0,0.0);2.0;4.0;-0.2;0.1;-0.1;0.1;(0.0,0.0,0.0);0.0;0.0;3;8.0;3.0;
8 Neck5 ; Pattern_X ; null ;7;(0.0,0.0,4.0);(0.0,0.0,0.0);1.8;4.0;-0.2;0.1;-0.1;0.1;(0.0,0.0,0.0);0.0;0.0;3;8.0;3.0;
It goes on, but I snipped it for readability. The point is, you write this text file by hand and then feed it into the system, and it spits out geometry. It's programmer art with a capital P, but my intent was to produce something rapidly that could get finishing touches from an artist, but would already have all the bones hooked up and the general shape working. Either that, or just use it as is in a cartoony game with lower art standards than your average FPS. Anyway, that project is still happening when I get time to work on it, but somewhere along the way I decided it would be a hoot to hook it up to LParser.

Turns out it _was_ a hoot, as well as a big pain in the butt. I spent two weeks immediately after leaving Garage Games flailing around in the transforms jungle, dealing with things that looked like this:

But, I finally got at least the first level of branching to more or less work, under a variety of different configurations.

Here's the code for the above model, I hope all the brackets and quotes work out all right:
# --- L-System Parser/Mutator --- Lj Lapre --------------
6
10
30
j[p][o]
j=FF
p=''^^Fp
o=''&&Fo
@

# --- L-System Parser/Mutator --- Lj Lapre --------------
6
10
30
j[''u]>>['u]>>>[u]>>>['u]>>>[''u]
j=F'F
u='''^^Fu
@

# --- L-System Parser/Mutator --- Lj Lapre --------------
2
10
30
j[p][o]''F[p][o]''F[p][o]''F[p][o]''F[p][o]''F[p][o]''F[p][o]
j=F'F
p='''^^^Fp
o='''&&&Fo
@

The complexity is limited by a crash bug right now, which I haven't tracked down yet, and I have big problems when I try to branch out into a second level. Still obviously a work in progress, but I thought some people out there might be interested. I recently became aware of one other LSystems project in Torque, which is also very interesting, but mine is actually geared more toward making creatures, giant bugs, and weird tentacled monsters than trees, which is the "normal" use of LSystems.
Oh yeah, and the other reason I'm doing it is, it plugs directly into my physics system:

But that's a whole other story, and is also beset with killer bugs at this point. Stay tuned for updates, I'll be posting again when things get farther along, but I figured I might as well spill the beans on it anyway. I haven't figured out the final end product for this one yet, but if you're interested, drop me a line and maybe you can bump it up on my priority list.
In the meantime, I'm back to work. Thanks for listening!
Chris
Recent Blog Posts
| List: | 05/14/08 - Fun with BVH Files, in Torque. 03/12/08 - Hello, Goodbye, Israel, and LSystems 04/30/07 - The Grand Canyon is really, really, really big. 12/07/05 - Torque Build Environment (TBE) Changes Course 09/13/05 - Ragdoll Pack Gets Multiple Character Support 04/08/05 - Ragdoll Pack Is SHIPPED!! 02/24/05 - Ragdoll Pack On The Way 01/29/05 - Ragdoll Pack Preview |
|---|
Submit your own resources!| Jeremy Alessi (Mar 12, 2008 at 19:36 GMT) |
| Kevin James (Mar 12, 2008 at 19:55 GMT) |
| Ted Southard (Mar 12, 2008 at 20:22 GMT) Resource Rating: 5 |
| Stephan (viKKing) Bondier (Mar 12, 2008 at 21:17 GMT) |
Masada: If I'm not wrong, Hebrew decided to suicide rather than surrender, hence Romans never won that battle.
| Chris Calef (Mar 12, 2008 at 21:30 GMT) |
It definitely impressed the hell out of the Romans. Seems like kind of a stretch to say they didn't win, though; it only happened after they had built a ramp all the way up to the gates, hauled a seige tower up the 45 degree incline and smashed a hole in them. Crazy story all around though, hard to believe it all really happened. :-0
| Stephan (viKKing) Bondier (Mar 12, 2008 at 21:37 GMT) |
Is there any difficulty into getting your code to a TGE version? I'm really looking for tentacle like trees. 8-)
| Chris Calef (Mar 12, 2008 at 23:10 GMT) |
| Jake T (Mar 12, 2008 at 23:35 GMT) |
And btw, if you ever get a chance to hike up the "snake path" to the mountain, it's brutal but well worth it. Great place to make your last stand.
| Chris Calef (Mar 13, 2008 at 00:21 GMT) |
| Todd Pickens (Mar 14, 2008 at 05:29 GMT) |
You must be a member and be logged in to either append comments or rate this resource.



5.0 out of 5


