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. It would be fine for Linux, but it would be a little work for Windows (unless you made it use .Net which is universal today) but it would be a dependency for the Mac. However, if you just tell people, I depend on .Net or Mono, and you have a cool version, people will use it. 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. What to do with your script language I will discuss below.

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.