Goom

From SpaceElevatorWiki.com
Jump to navigationJump to search

Other ideas

http://www.electricsheep.org/, interesting, small plugins

Goom in C#

I can make the C# for fun, but because goom is used on so much platforms I think I'll always have to maintain a C version. For instance I don't think iTunes for Win or Mac, Winamp, XBoxMediaPlayer, MPlayer, [...] versions can have dependencies on Mono.

Also current version of goom is bug-free and memory leak free, so I believe the hard part with memory management is done and C# will not bring any advantage. (Do not misunderstand me, I DO think GC is good because it allows not care about how to handle memory etc... but this has already been done in goom, so the advantage is gone).

Also this is probably a mistake to believe nobody will care having dependency over mono, so I think it will be bad for goom not to remain a pure C program with zero dependencies. Don't you think?

I didn't realize how many people it would break. However, who knows where Mono will be in 4 years? Will it be universal like python today?
I was sort of kidding, but I have a compromise. Throw away the font handling code, and other things and get goom very small and tiny. Then if we do decide to port it, it will be an easy job.

Goom Scripting

Concerning goomsl: it stands for Goom Scripting Language. I'd like to give you some historical details because behind it is a powerful feature that isn't yet used as it could be.

I had the aim of replacing lot of crappy C code, which defines behavior of visual FX, with scripts (or formulas). This way I can let me and the users tweak the visual easily (to create visual themes -- or atmospheres -- etc).

At this time I was very interested by compilers, assembly and geek stuffs like that. So instead of integrating python, lua or something like that, I've ended up writing this scripting language which main goal was to be the fastest possible scripting language! It supports just-in-time compilation on x86 and uses SIMD instructions, so on simple loops it almost reach performance of C compiled with gcc -O1, which ain't bad. ( I was proud ;-).

I think this is the main thing that was abandoned when goom fell asleep. It has to be integrated more (because it's used almost nowhere). Also it really misses a GUI to create and play with visual effects. So I still have a "Goom Studio" project in mind. Which is probably a place where I can start writing C# for goom.

Building a JIT compiler is very cool!! Congrats on that. However, I am very sorry to tell you that a compiler doesn't belong inside a visualization engine ;-) BTW, writing it in C# would make Goom more scriptable. In addition, in Mono, you can generate code, and then compile it, which gives you a whole new set of possibilities.
I think this is all cool, and so maybe you could create a cleaner, prettier, faster, more portable C/C++ Goom 2k8, and then add the fancy stuff to a Goom# and Goom Studio. You could say that the C code will be retired in 2k8 and all future fun stuff will be in C# (or some other future GC compiled GC language.) In other words, you could make Goom2k8 in C/C++ and then Goom2k12 be GC only... :-)