dream

i began coding back when i was a teenager because i wanted to learn how to mod team fortress 2, a game that i loved playing with my friend joe. i gave a talk about this.

tf2 tightrope
me showing off my tf2 playtime at heart of clojure

it was very hard to learn how to do it all. but i learned it thanks to all the documentation and tutorials and guidance and help that i got from the alliedmodders community.

i created a new community called tf2 tightrope that was based around my mod. it became quite popular and i soon had a lot of people asking me for requests and things. i struggled to do any, or even most of them.

requests
tf2 tightrope's logo

eventually i became burnt out and handed the community over to other people. i wrote a post about this.


in the back of my head, i wondered how i could have possibly managed to get all those requests done. there were so many people with so many ideas and i felt sad that they never got to happen. it felt wrong that i was the gatekeeper of everything, just because i knew how to code.

the system i made for the mod was quite confusing and badly written. it was full of BAD CODE which made it quite hard for other people to jump in. and what's more, i felt embarassed by it, so i was reluctant to even share anything at all.

i had a dream that i could make a much better system that's so easy to understand and use that you can use it even if you don't know how to code. you can use it to make your ideas a reality.


your fortress

i started making a new mod called your fortress that lets you customise any part of team fortress 2.

you use it by changing settings files. you don't need to write any code at all. you can just fill in a few config files and it changes the game.

it started simple. you could very easily configure the game's various items and classes: make a gun more powerful, or less, or make a character move faster, or add some flamey effect to their hat, or that kind of stuff. it was easy. you just changed the settings.

a custom weapon from tf2 tightrope

i also had aspirations of enabling more complicated customisations. for example, you might want to make something special happen every time a certain event happens. for example, maybe you want your character to catch fire every time they jump (for some reason?). i tried to support events like this and all sorts of other things.

i also tried to make all your customisations combine with each other well and cleanly. your customisations should be combinatorial, like in the binding of isaac.

the binding of isaac

it was really really really hard to make this new mod, especially because i was really bad at coding and i was coding in sourcepawn which meant i had to do a lot of manual memory management. but still, i perservered and got really really far.

yes, i was pleased with how far i got. it pushed me a lot. i liked how it was both a technical and a design challenge. i had to put my mind into the head of someone who doesn't know how to code. i was trying to make it seem magic. i wanted to take this wonderful feeling that i had: of being able to change the computer software in front of me. i wanted to give that amazing feeling to other people too.

i wanted people to code without needing to code.




i realised, of course: in my attempts to let people code without coding, i was in fact creating a language: a language for coding. so if people were to use it, they would be coding after all.

it didn't matter that you wrote this language by writing config files. it had become so strange and esoteric with so much strange syntax in its properties and values that it had grown into a language of its own.

i had failed. the dream was over. i gave up.



thing

i had a seeing-myself-from-outside-my-body moment. i realised i was wasting spending so much time on making an entire language for nothing more than a video game mod.

"what's the point??", i wondered to myself. "wouldn't i be better off trying to make a real language instead of some silly toy one for some silly game??"

so i began on a new dream: i started making a real language instead, called thing.


on to the dream

Notes, old weird habitat: https://mas.to/@TodePond/111652905535555909