Skip to content

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

# Anyone who looks at this code instantly becomes insane #19

Open
opened this issue Jan 9, 2018 · 34 comments
Open

# Anyone who looks at this code instantly becomes insane#19

opened this issue Jan 9, 2018 · 34 comments

## Comments

### Hurricane996 commented Jan 9, 2018

 No description provided.

### Mcpg commented Jan 14, 2018 • edited

 Yeah it hurts to look at it edit: the last message i wrote X time ago was rather... unprofessional

### polytomous commented May 21, 2019

This statement is empirically untrue, i would request u close the issue or others similar to it @raxod502 just as a courtesy for other folks who may enjoy this code because it does not encourage meaningful / non-ableist dialog with the work, but i thought i'd add some more cents here before i totally sunset this github account, having spent some time engaged with the code earnestly and lovingly, as i would a friend.

• u cannot judge this code by its first glance. it is so much more than just a terrariaclone.
• i thought i could spend my time and like, never think about this code. but... well... here we are.
• these two statements are true because not only is the "first glance" so hard to parse apart...
• but that even some of the "ins*ne" compromises made in the code... are tolerable... if you really think about it.
• engineering is a human endeavor about failure; learning from failure; and failing less because we failed hard in the past. i fundamentally believe the Truth that "To Engineer is Human" and any view of engineering that is unwilling to accept that, or is willing to concede only some subset of the human experience as being "Engineerly enough", seems wildly insufficient to both my needs and also any practical uses of engineering.
• the strange thing, is that even though the naming and the messaging and all of the shit talking may convince us that this project is a failure... is it? can we learn nothing from it? making it public and exposing it to more people may actually be a more profoundly successful action than the sum total of every completed project every critic of this project has ever completed. i would be willing to make a long bet and show my work on that, but i also dont bet so that's a rough one.
• this project was made at a specific time, with a specific set of limitations + privileges, that enabled / constrained its design. i have directly alluded to this in some of my writing about this project from years ago, but very clearly like: the "norms" of what a person finds easy to understand are incredibly variable. One's persons u know, like, pristine incredible codebase can look like TerrariaClone to different ears.
• the unfortunate reality is that like, in return for earnestly sharing a piece of work that will be universally panned, the plausible outcome that you may expect in an open source community (that is: more eyes on software reduces the number of bugs) has instead given away to universal panning, ableism, whatever shit talking you pretend but lets be honest really isnt appropriate.
• if there is a failure in terraria clone, it is none of the code written from terraria clone, or any of the failed executions of terrariaclone, it is that given the proper tools for interfacing and modifying code that is open source, folks would rather talk shit than build something.
-terrariaclone has i think always shown us the promise of open source and the grim reality of the community that we have, largely, tacitly consented to. as a rhetorical ploy, publishing it is an incredible coup that i dont feel folks fully appreciate yet.
• i read through the things i wrote some time ago, and see the sets of patterns that are categorically failures, but that's fine, i can change what i say in the future. the sadness of terraria clone isn't nescessarily that people have to resort to lies to make fun of it, or that the code is bad... i realize instead the deeper sadness is that our community is not accepting enough to band together to make something that is compatible, but works. that accepts terrariaclone for what it is, and then says "ok, what can we do creatively to make this work."
• there's a potential future, right? one where someone mashes up TerrariaClone and working code, and suddenly, you know @raxod502 downloads it and has this beautiful nostalgia moment. the game, that dream, mystical and ethereal, a joke that has maybe invited scorn, but it runs! it works! in JAVA even! (what if it was in JAVA SCRIPT TOO? cant stop wont stop we're going too fast hn will only click rust links now, and please please please dont forget about python u have to be able to talk at a conference that people actually caption woah too questionable im sorry im gonna reign it in) maybe some of the crashing bugs are gone, but the quirks that are livable are preserved. the whole thing is manifest, real, a dream come true. imagine if you would choose to give that to someone instead of just idly saying "hahahaha anyone who looks at this code instantly becomes more likely to get shot by the cops".

but noone has to shoot terrariaclone, it gets to live. and be loved. and grow to become something incredible. code gets to survive in ways that we may never will, change like a shakespeare play and now suddenly there's a whole score of people have been playing around with how they could also make something, we could be having vibrant dialogs about different strategies for accomodating real bugs, real realities role played through a project that noone will love that directly mime the actions that will be done in the work force with code you're paid to pretend to love and cant acceptably / trustworthily complain about.

• broadly speaking, a world where everyone was complaining/lovingly joking about terrariaclone (treating it like a friend, like a spider u know? not gonna kill it but also gonna make sure the webs arent in ur personal space) and working on how they'd refactor it to make it still work and still be terrariaclone, fostering a common improvisational community, with shared languages that can broadly accept all sorts of people of all skill / energy / english / etc levels, is much more desirable than what has happened since the first two years i imagined that could even be thinkable. we have so many places we could go, and so little chance that anyone will want to go there.

I stand by what i wrote when i first started working with this code, though some of it needs editing (as evinced by like, some aesthetic shifts in more modern albeit now less available work.) I will repeat a relevant section of it in full here, but with the contingent edits and changes i'd make to more faithfully express how my views have changed ellided for future work and given more space for reflection:

Even though the code is objectively terribly written, it represents an immense amount of grit and effort. The tenacity to manually copy paste code and refuse to use functions or even better variable names far surpasses anything I can muster. The sheer mental strength to carry so much global state in ones mind baffles me. The person that wrote this code has mental capacity that I simply cannot match. Someone on twitter claimed that this code was a cure for imposter's syndrome. I believe that's a lie; This inflamed my imposters syndrome intensely. Additionally, to be comfortable enough with revealing this level of depravity to the world takes a certain kind of courage. I sincerely have nothing but the deepest respect for Raxod502. But I'd certainly hope if we ever pair programmed together that we could write better code than what I've seen so far. Kappa

# ... Why is this code interesting?

I think TerrariaClone gives us one of the best possible environments to try out refactoring and testing experiments. I'm dead serious. It's code everyone thinks is terrible. The author even compared it to hell so you are pretty much free to make any kind of joke about it. You probably don't understand it off hand (unless you've read spoilers) which means that any refactoring you do resembles the sort of work that you would do in the real world with serious code that you have to maintain. And lastly, it's so terrible and complicated that there are numerous different ways to go about restructuring the code, which would make for great discussions about how to write software correctly.

If a software engineering technique can somehow help make this kind of code better, it can probably work with any kind of code.

The second reason I find this code particularly interesting is that its deepest sins are incredibly common in most of the code I read today. TerrariaClone is not an isolated atrocity. You probably wrote some code just as bad a few days ago. (It's OK. We can always make it better, friend.) It takes serious discipline to write good code, and TerrariaClone shows us a number of ways that we tend to not use discipline when we should. It's an object lesson in how not to write code, and a moment for us to gaze into the abyss and realize our own monstrosity.

I will repeat myself :

If a software engineering technique can somehow help make this kind of code better, it can probably work with any kind of code.

maybe the resistance to actually making this code better is just the clearest possible indication that our software engineering technique is actually not up to the tasks it advertises.

Please close this issue; people shouldn't have to think about this trash while they're freely exploring what actual real world code they may get paid to work on will look like, and the demands for compatibility that often outweigh our aesthetic desires when on a paycheck. Insofar as i've been patiently trying to help folks on twitch not write code like terrariaclone, with the same conceptual tools i used to try to improve terrariaclone, and that the same resistance + backtalk i've gotten would have encouraged the same sets of design decisions that made terrariaclone so repugnant to folks, i have come to believe that we are just so hesistant to realize that like, "its my code too. im writing terrariaclone right now. oh what hath i wrought" and we need radically new tactics.

Thank you again for writing this code @raxod502 if we ever meet you'll know me, i would love to talk more about the code you've written and the code you've had to deal with that reminded you most of what you've liked least with what you've written and really any thing else that tickles your fancy

### polytomous commented May 21, 2019

 um yes 100% if ur reading between the lines i literally just said that raxod's original terrariaclone is a work of writing on par with shakespeare. if there gets to be a software canon someday and this is not on it there has been a grave grave mistake. ur gonna have to get over ur self and deal with that truth someday sorry yall it's actually 100% empirically more true than anything you've even thought of writing sorry to tell u honest

### raxod502 commented May 21, 2019

 Whoa there, let's calm down. I'm not going to close anything. Making fun of the code doesn't imply that it was a mistake for me to write it, and I certainly don't take offense at it. I agree that we learn primarily from our failures, and this project was very educational for me. And while I appreciate the attention to political correctness, I'm not going to shut down existing discussions in service of it. I'm happy to let people engage with the project however they would like. That's open-source.

### polytomous commented May 21, 2019

 Don't tell me to calm down, I wrote you a well sourced, very clearly argued point about how the discourse of "this project drives me insane" can be unhealthy. Feel free to double check what i wrote and really rethink if it's "just" a pc thing. The issue is empirically untrue; the burden of proof for "this drives anyone ins*ne" is far higher than "ableist discourses are persistently harmful."

### polytomous commented May 21, 2019

 i have relatively recent experience with interpreting this code, i have written about it, and have a very unique perspective. the inability of your open source thinking to understand a very earnest appreciation for whole realms of possibility and construe it as being unduly hostile may be indicative of the weaknesses of open source thinking more so than my appropriate level of "chill"

### polytomous commented May 21, 2019

 id also like to point out that i've been graciously even permitting the room for like, a "gradual" sort of degradation of mindstate, as compared to the claim of instantaneous impairment from reading this code. What statements are more grounded? more reasonable? have more data that could be mustered to defend them? come on. dont gaslight me about "this is open source" when the complaint about polite conduct is that maybe we have to edit future conduct too.

### raxod502 commented May 21, 2019

 While I'm sorry if I offended you, I'm going to stick with my current policy. I do not think further conversation in this thread would be helpful, so I will not reply any longer. Thanks for your thoughts.

### leffsu commented May 21, 2019

 Its quite fascinating that we've got something like this on the awesome meme repo @polytomous I feel pretty sad for you if you're not trolling at this point @raxod502 Please set it to 'wontfix' tag and close

### polytomous commented May 22, 2019

 @leffsu i double checked the data, and largely convinced that the only one here feeling any real "objective" sadness derived from any meritous work or rationality is maybe me. But I'm not sad, there's so much hope. there's a very specific, among with others more nebulous, beautiful future this code enables and yall dont percieve it yet. that's ok, i have my data and can show my work when needed. remind us all, how much time have you, leffsu, specifically read this code / thought about how the code you write or have been proud of is exactly like it? do you have any specific ideas on what issues / management of certain things may contribute to the long term health of an open source experiment? how is an empty issue with non-empty risk that is empirically untrue considered to have more merit / value / reason / appropriate tone than my perspective, given i've actually worked with the code? This thread is evergreen. I've literally worked with this code, years ago, I know more about it than you do @leffsu, but knowing something about something that's hard to interpret is just engineering its not some skill / prestige thing that could make me feel good about myself. none of y'all ever say the word "meritocracy" if you can think that the sad one is me while real life code situations are just sitting there for free for folks to learn with and the opportunity is being roundly squandered. I'm not fucking around when i say i've seen professional "reasonable" serious code that looks exactly like this code and plays by roughly the same sets of design patterns. I wonder if i've maybe written about that though? nah, no merit just pc @raxod502 did i say i was offended? you think what you will, i'm just showing my work. its been around for a while, i'm allowed to take largely wtf tone i want if ppl pretend i dont know what im talking about when they're the one more like jon snow ;) curation of the issues you keep around conveys messages about the project, and your goals. you get to choose what you keep open.

### polytomous commented May 22, 2019

 broadly if anything actually sad, it's that design patterns that people hate from here here and consistently criticize as whatever slur they like, tend to be loved when they're implemented in contexts where power differentials obscure the criticism that would try to prevent those mistakes. switch statements and "ugh its pc talk again" are probably the same equivilence class of "ideas that make terrariaclone and all the code like it not as awesome as it could be" i use jargon sometimes, but im also sloppy on purpose, and its great b/c u can think "that word makes no sense that way u dont know what ur talking about" or u can think of the relavant lit and go "oh shit, good point"

### polytomous commented May 23, 2019

 Foreword to The Little Schemer In 1967 I took an introductory course in photography. Most of the students (including me) came into that course hoping to learn how to be creative---to take pictures like the ones I admired by artists such as Edward Weston. On the first day the teacher patiently explained the long list of technical skills that he was going to teach us during the term. A key was Ansel Adams' Zone System'' for previsualizing the print values (blackness in the final print) in a photograph and how they derive from the light intensities in the scene. In support of this skill we had to learn the use of exposure meters to measure light intensities and the use of exposure time and development time to control the black level and the contrast in the image. This is in turn supported by even lower level skills such as loading film, developing and printing, and mixing chemicals. One must learn to ritualize the process of developing sensitive material so that one gets consistent results over many years of work. The first laboratory session was devoted to finding out that developer feels slippery and that fixer smells awful. But what about creative composition? In order to be creative one must first gain control of the medium. One can not even begin to think about organizing a great photograph without having the skills to make it happen. In engineering, as in other creative arts, we must learn to do analysis to support our efforts in synthesis. One cannot build a beautiful and functional bridge without a knowledge of steel and dirt and considerable mathematical technique for using this knowledge to compute the properties of structures. Similarly, one cannot build a beautiful computer system without a deep understanding of how to previsualize'' the process generated by the procedures one writes. Some photographers choose to use black-and-white 8\times/10 plates while others choose 35mm slides. Each has its advantages and disadvantages. Like photography, programming requires a choice of medium. Lisp is [a] medium of choice for people who enjoy free style and flexibility. Lisp was initially conceived as a theoretical vehicle for recursion theory and for symbolic algebra. It has developed into a uniquely powerful and flexible family of software development tools, providing wrap-around support for the rapid-prototyping of software systems. As with other languages, Lisp provides the glue for using a vast library of canned parts, produced by members of the user community. In Lisp, procedures are first-class data, to be passed as arguments, returned as values, and stored in data structures. This flexibility is valuable, but most importantly, it provides mechanisms for formalizing, naming, and saving the idioms---the common patterns of usage that are essential to engineering design. In addition, Lisp programs can easily manipulate the representations of Lisp programs---a feature that has encouraged the development of a vast structure of program synthesis and analysis tools, such as cross-referencers. The Little LISPer is a unique approach to developing the skills underlying creative programming in Lisp. It painlessly packages, with considerable wit, much of the drill and practice that is necessary to learn the skills of constructing recursive processes and manipulating recursive data-structures. For the student of Lisp programming, The Little LISPer can perform the same service that Hanon's finger exercises or Czerny's piano studies perform for the student of piano. Gerald J. Sussman Cambridge, Massachusetts 

### polytomous commented May 23, 2019

 forward to any schemer, a mad ad lib. feel free to use it if you want to dialog with me someday: Foreword to The Little Schemer In ____ I took an introductory ______ in ______. __________ of the students (including me) came into that ______ hoping to learn how to be creative---to take __________ like the ones I admired by artists such as ________. On the first day the ________ patiently explained the long list of technical skills that ________ was going to teach us during the term. A key was _s' ________ System'' for previsualizing the ______ values (_____ in the final print) in a ______, and how they derive from the _______ intensities in the scene. In support of this skill we had to learn the use of _ to measure _ and the use of exposure time and development time to control the ____ and _____ in the image. This is in turn supported by even lower level skills such as loading _______, developing and printing, and mixing _________. One must learn to ritualize the process of developing sensitive material so that one gets consistent results over many years of work. The first laboratory session could be devoted to finding out that developer feels slippery and that fixer smells awful. That first laboratory session was devoted to finding out that ______ feels ______ and that ______ smells ______ and that (.*) can _________. But what about creative composition? In order to be creative one must first gain control of the medium. One can even begin to think about organizing a great photograph without having the tools to make it happen (yet). In engineering, as in other creative arts, we must learn to do analysis to support our efforts in synthesis. One cannot build a beautiful and functional bridge without a knowledge of steel and dirt and considerable __________ technique for using this knowledge to compute the properties of structures. Similarly, one cannot build a beautiful computer system without a deep understanding of how to previsualize'' the process generated by the procedures one writes. Some photographers choose to use black-and-white 8\times/10 plates while others choose 35mm slides. Each has its advantages and disadvantages. Like ______________, programming requires a choice of medium. Lisp is [a] medium of choice for people who enjoy free style and flexibility. What else might they enjoy? Could we learn from it? What might it tell us about ourselves? Lisp was initially conceived as a theoretical vehicle for recursion theory and for symbolic algebra. It has developed into a uniquely ___________ and flexible family of software development tools, providing wrap-around support for the rapid-prototyping of software systems. As with other languages, Lisp provides the glue for using a vast library of canned parts, produced by members of the community. And i guess u could say its like that for ______, too. In Lisp, procedures are first-class data, to be passed as arguments, returned as values, and stored in data structures. This flexibility is valuable, but most importantly, it provides mechanisms for formalizing, naming, and saving the idioms---the common patterns of usage that are essential to ______ and ______ and engineering design. In addition, Lisp programs can easily manipulate the representations of Lisp programs---a feature that has encouraged the development of a vast structure of program synthesis and analysis tools, such as cross-referencers. The Little LISPer is a __________ approach to developing the skills underlying creative programming in Lisp. its okay if the only dream that can get you through the night is the promise, the hope that you too, yes, you specifically, can someday painlessly package, with considerable wit, much of the drill and practice that is necessary to learn the skills of constructing __________ and manipulating _______ ______-structures. For the student of ________, if i had to give it a derivative title, "This Little _________er" can perform the same service that _______'s _________ exercises or _______'s ________ studies perform for the ___________ of ________.  i know what goes in my blanks to tell my story. i have the same vision that i had years ago, stretching out years forward and backward and honestly i doubt its linear or i could ever really be asked to make it so. this code doesn't make someone insane. this code cannot kill you. you will not bleed from this code. you will not have to hurt any more from this code than the social mores around failure or difference will allow you. this code is like a home. im sure you could countless return to it for prodigal fun. its a bag of shit maybe in a certain light, but did you see it? thats also just fertilizer. u have a space to control the medium, to learn what you can, and then go chase your dreams. if terrariaclone is hell, and neitzche or however u spell that name says u gaze into it or whatever and become bad, my question is more daunting; but dante already trode this path... had a 3 step plan thru hell, worked through some middle phase, and then a glorious future. i want to invoke dante first and sometimes when i talk about this code beacause it's not like the terrariaclone is the end. countless clones can live on. we will never run out of shakespeare plays. they'll repeat and change endlessly, shifting in tone and interpretation as time goes on. what would a set of unit tests look like for performances of public domain works? would you want to validate that folks interpreted it right somehow? constant referrents open to interpretation, with blank spaces to fill in your story. the tools we have that permit or allow this forest of difference to grow or wither are tightly linked with narratives of control + agency. the fact that this has already obviously been accepted as a meme project merely confirms my first analysis when working with this code. if this is a meme project, what do we want the meme to be? is this hell? is this shakespeare? is this just fantasy? caught in a landslide with no escape from reality? is there a purgatory with some brighter future waiting at the end? can we engineer a meme that would expose as many people as possible to any of the joys we enjoy about this field of inquiry? honestly reconciling with both "yeah code is interpreted as bad sometimes" but also "we can leave it better than we found it?" i know what i want. i played with this topic. yall can too lol. best wishes you can always get in touch with me somehow probably, but you also dont need to.

### polytomous commented May 24, 2019 • edited

 Considering how many fools can calculate, it is surprising that it should be thought either a difficult or a tedious task for any other fool to learn how to master the same tricks. Some calculus-tricks are quite easy. Some are enormously difficult. The fools who write the textbooks of advanced mathematics — and they are mostly clever fools — seldom take the trouble to show you how easy the easy calculations are. On the contrary, they seem to desire to impress you with their tremendous cleverness by going about it in the most difficult way. Being myself a remarkably foolish fellow, I have had to unteach myself the difficulties, and someday beg to present to my fellow fools the parts that are not hard. Play with these thoroughly, and the rest will follow. What one fool can do, another can. 

### polytomous commented Jul 31, 2019

 If time flows all directions, know that my love for you flows in all directions. This is the part that is only auditory. This is the part that can't be captioned. This is the part where just I say thank you one last time. On my gratitude list, TerrariaClone, that home that I found, will always be there. Help me keep it alive. Here I share my voice, because if I can lend my voice in the hopes of changing this story, I will gladly do it. What I wrote, spoken as I always write, hearing myself saying it to a friend. https://vocaroo.com/i/s0i1y7xCPZ4J

 no

### fernandolujan commented Aug 1, 2019

 I think @polytomous read the source code and now they've gone insane.

### miguel550 commented Aug 1, 2019

 I listened the whole audio that @polytomous recorded in vocaroo, I think now I can start contributing to this project

### LulzRose commented Aug 1, 2019

 You should never close this beauty of an issue

### gldev commented Aug 1, 2019

 Absolutely based gentlman.

### devgrips commented Aug 1, 2019

 Petition to share #19 (comment) in r/copypasta

### polytomous commented Aug 1, 2019

 I'd like to remind the peanut gallery that i have forked this code and i have at least 651 coin flips more worth of Meritocracy Points than yall. Kappa. Thats been sitting around for a while and i didnt see any of u pressing f for codeTooLong smh. https://github.com/polytomous/TerrariaClone Currently planning the second return to this code, except where Umapathy 17 is a guiding reference and the work is pair programmed instead. @miguel550 i would love the joyous privilege of working with you! Feel free to hit up my fork for inspiration. We can work on getting the fresh new branch started up if you want to avoid spoilers

### shuchow commented Aug 1, 2019

 yall. It's "y'all." "all y'all" may be permitted in this situation. Source: Am Texan.

### polytomous commented Aug 1, 2019

 @shuchow >tfw u try to correct the typing of someone who is clearly Down for the Great Typography Punctuation Struggle. 🤣🤣🤣

### cktang88 commented Aug 2, 2019

 Please engage in civil discourse.

### polytomous commented Aug 2, 2019

 @cktang88 the enforcers will enforce. but i must presume myself to be free.

### bencooper222 commented Aug 2, 2019

 this is why the chinese are going to take over the world

### floodski commented Aug 2, 2019

 This has been a pleasure to read, keep up the good work

### jennasisis commented Aug 2, 2019

 Is no one going to comment on the fact that his soliloquy was unedited?

### Hrxn commented Aug 2, 2019

 This is great. History needs to be preserved..

### swashdev commented Aug 2, 2019

 This is my favorite GitHub thread of all time.

### LulzRose commented Aug 3, 2019

 This thread will be viewable forever https://web.archive.org/web/20190803033120/https://github.com/raxod502/TerrariaClone/issues/19

### UziTech commented Aug 9, 2019 • edited

 The invoicing system I wrote for myself in highschool consists of a single php file that inlines all of the html, css, and javascript (including authentication). It is atrocious, but I still use it to this day because it works. 😂🤣😂🤣 This repo has inspired me to put it on github in the name of learning. bad-code

### jmatzen commented Dec 9, 2019

 Not that bad. I've seen code in AAA games that looks similar, probably worse. Some older AAA stuff written in 16-bit C makes this code look like a gift.
to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
You can’t perform that action at this time.