posting live now from the hotel lobby as blockparty has just ended and everyone is off to catch flights or drive home. this morning i slept through the alarm but luckily woke up in time to make it to the award ceremony and party wrap up. the northern dragons took 1st place in the combined demo compo with their demo, in 2nd place was my 4k intro 4kmdr, in 3rd was s_tec's 4k intro, and 4th the demo with my friends from work (welcome to the scene ben, dave, and kirill!!). it was a very fun event and so much thanks to jason scott, RaD Man, and everyone else who put it together. it was especially fun for me working on my 4k at the party place and talking with s_tec as he was also finishing his 4k. oh no my laptop battery is screaming at me to shut down so gotta go now and catch my flight home!
blockparty live report
live at blockparty demoparty in cleveland ohio! i'm quite sleepy now as i was up all last night trying to finish a 4KB intro i was preparing for the party, wrap up a tool i did to help with the audio for that guy which i'm releasing to the wild compo, and helping rapidly piece together a 16MB production with friends from work. the deadline was 3:00 today but that wiggled a bit and let us squeeze in a little polish to the big demo but it's still pretty rough. waiting for midnight now to see all the demos on the big screen and cast my votes. and then sleep. ohhhh yes sweet sleep.
best buy scam
ouch!! i just got hit by this best buy scam.
apparently best buy teamed up with time warner to sneak recurring charges onto my credit card. yeah nice try! i only caught it by luck when i glanced at a statement online today and saw $39.95 from best buy and assumed it must be from a game but couldn't remember buying anything last month. it turns out i didn't and when i noticed the ENT WKLY letters and googled i discovered the details of the scam.
apparently they've been giving "free" magazine subscriptions to people by taking the credit card info you give them when you buy something there and handing it over to time warner. oh yeah that sounds legit. so i guess normally people start receiving some lame magazine and then quietly start getting billed for it. but in my case, where i have an address which is beyond the capabilities of label printing software to handle, all i get is a sneaky billing slipped into my credit card statement.
i think this ranks pretty high up there in the consumer abuse tactics hall of fame with things like mail in rebates (which always mysteriously get eaten by a post office monster), the car dealership rip off room (where you have to carefully dodge thousands of dollars of up-sell and useless services), and store extended warranties.
actually the store extended warranties always makes me laugh due to one occasion at a best buy. i was buying some nintendo dses and the cashier asked me if i wanted to buy an extended warranty for them. i said no way. so then she started telling me about all the ways the dses might break and how the warranty would help me. she was really cute so it took all my strength to resist doing whatever she said but i managed to refuse the warranty again. then somehow her manager comes over and after some quick small talk he immediately dives into pitching that warranty again and i had to tell him no over and over until finally the two of them gave it a rest. once i managed to get out of there i couldn't stop laughing at how hard they were pushing that warranty - it was as if they were sooo deeply concerned about the well being of the gameboys that they just couldn't let them go without better warranty coverage than nintendo already gives. yeah right.
anyhow this is just a warning to other best buy customers: shop somewhere else or pay with cash!
4k audio
so i've gotten sucked back into audio stuff a bit lately. here's what happened...
at the beginning of the month i was playing around with some graphics stuff for a demo and realized i could fit it into 4k with some tricks, so i spent time that weekend coding it up. after a bunch of optimization i got it down to around 3kb so it seemed i would finally have space for some audio! (you can see a couple fun 4ks i did here and here but i couldn't fit any music in them)
figuring out what to do for the sound is tough. i burned a bunch of my free time in 2004 doing synths and what not (though i found i enjoyed coding the ui's for them much more than the audio!) so i didn't want to get bogged down doing a ton of audio stuff again. anyways after some exploring and soul searching i determined the quickest thing to do would be to hack apart an old MOD player i did in that dark period of 2004 and now try out the trick of stealing audio samples from the windows gm.dls file.
so the next weekend was spent researching and learning about the gm.dls and creating code to snag samples from it and all that, then a weekend of hacking up my old MOD code and remembering how audio works :P, and finally a weekend of optimizing the player and doing a tool to strip MOD files down into a friendly and compressible format for the 4k.
phew! so i think i'm out of the audio woods again and can focus on finishing the graphics and animation. i think now MOD isn't the best way to go and i should really be using MIDI and a VST plugin but 1) all the tools i tried that with before i had to get uhh "trial" versions of and they were very complicated and took up gigabytes of my precious disk space and 2) this audio stuff has me ready to put a pencil through my eye so for at least this 4k i think i'll just run with this method!
writing binary files with maxscript
recently i've written a bunch of maxscripts to export test data from 3dsmax for various things. doing a c++ exporter would be waaay overkill when i just need a quick spline or mesh. thankfully writing binary data from max is trivial.
maxscript:
f = fopen filename "wb"
count = numKnots $ 1
writeLong f count
for i = 1 to count do (
p = getKnotPoint $ 1 i
writeFloat f p.x
writeFloat f p.y
writeFloat f p.z
)
fclose f
c++:
dword count;
FILE * f = fopen(filename, "rb");
fread(&count, sizeof(count), 1, f);
float3 * knots = alloc(sizeof(float3) * count);
fread(knots, sizeof(float3) * count, 1, f);
fclose(f);
thanks again maxscript! :)