• Advertisement
Sign in to follow this  

Unmaintainable code

This topic is 398 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Advertisement

I refuse to believe this is how it was programmed.

 

He's got to be screwing with us. Obfuscation, perhaps?

Ohhh that would be quite the entertaining possibility :D

Share this post


Link to post
Share on other sites

When I opened that link, for some reason it dropped me 2/3 of the way down the page. There was code on the far right side of my screen... none of it looked remotely intelligible...

I scrolled up a few lines, and noticed there were comments that were equally unintelligible...

I thought to myself, "I bet they have a whole bunch of uncommented global variables with less-than-perfectly descriptive names." I wasn't disappointed. Then I realized I was, in fact, *very* disappointed.

 

At least comparing my code to theirs makes me feel a little better about myself as a programmer.

Share this post


Link to post
Share on other sites

According to the copyright he worked on this for 7 years.

How do you…

 

 

Words fail.

 

 

L. Spiro

mouhouhaha, I love.

Share this post


Link to post
Share on other sites

Wow theres one hell of an if statement in there:

 

if(((((findLengthfast(&rotatetarget)>150&&(i!=0&&k!=0))||(findLengthfast(&rotatetarget)>50&&player[0].rabbitkickragdoll/*currentanimation==rabbitkickanim*/&&(i==0||k==0)))&&normaldotproduct(rotatetarget,player[k].coords-player[i].coords)>0)&&((i==0||k==0)||((player[i].skeleton.oldfree==1&&k!=0&&animation[player[k].currentanimation].attack==neutral)||(player[k].skeleton.oldfree==1&&i!=0&&animation[player[i].currentanimation].attack==neutral)||(player[i].isFlip()&&!player[i].skeleton.oldfree&&(i==0||k==0))||(player[k].isFlip()&&!player[k].skeleton.oldfree&&(i==0||k==0))||(i==0||k==0))))||((player[i].targetanimation==jumpupanim||player[i].targetanimation==jumpdownanim||player[i].isFlip())&&(player[k].targetanimation==jumpupanim||player[k].targetanimation==jumpdownanim||player[k].isFlip())&&(i==0||k==0)&&(!player[i].skeleton.oldfree&&!player[k].skeleton.oldfree)))

Share this post


Link to post
Share on other sites
Wow theres one hell of an if statement in there:

You can see a lot of hard coded value in this hell too, this file is a joke from A to Z.

Imagine the scene : "We have to change the jump height value"
Programmer of this file : "WHAT ?!"

Edited by Alundra

Share this post


Link to post
Share on other sites
<!-- Build website. -->
<exec dir="${src-dir}"
 executable="make"
 failonerror="true"
 searchpath="true"
>
    <arg value="html-no-deps"/>
</exec>

Like using xml to write a "make html-no-deps" command-line?

 

Oh no, that's normal practice.

Share this post


Link to post
Share on other sites

My favourite line (7201): http://hg.icculus.org/icculus/lugaru/file/97b303e79826/Source/GameTick.cpp#l7201

 																										if(((((findLengthfast(&rotatetarget)>150&&(i!=0&&k!=0))||(findLengthfast(&rotatetarget)>50&&player[0].rabbitkickragdoll/*currentanimation==rabbitkickanim*/&&(i==0||k==0)))&&normaldotproduct(rotatetarget,player[k].coords-player[i].coords)>0)&&((i==0||k==0)||((player[i].skeleton.oldfree==1&&k!=0&&animation[player[k].currentanimation].attack==neutral)||(player[k].skeleton.oldfree==1&&i!=0&&animation[player[i].currentanimation].attack==neutral)||(player[i].isFlip()&&!player[i].skeleton.oldfree&&(i==0||k==0))||(player[k].isFlip()&&!player[k].skeleton.oldfree&&(i==0||k==0))||(i==0||k==0))))||((player[i].targetanimation==jumpupanim||player[i].targetanimation==jumpdownanim||player[i].isFlip())&&(player[k].targetanimation==jumpupanim||player[k].targetanimation==jumpdownanim||player[k].isFlip())&&(i==0||k==0)&&(!player[i].skeleton.oldfree&&!player[k].skeleton.oldfree))){
Edited by Alessio1989

Share this post


Link to post
Share on other sites

At first I thought my computer was being so slow it wasn't loading at all... then after a minute or so I decided to scroll for some reason. Oh god, what's with all that indentation O_O

I can't believe I just fell for it again

 

(waiting for the code in that post to load... then I remembered it shouldn't take even a second and then what software this was from)

Share this post


Link to post
Share on other sites

 

On the other hand, it shipped as part of a pretty damn successful indie title. On that score, not bad?

 

On that score even worse, I'd say, as it might give out the idea that this is the way to write successful titles.  Sure, you can't argue with the success, but the ends don't justify the means.

 

I note from their blog post announcing it's release: "The coding style is what you might expect from a self-taught high school student, so it could be a challenge to understand" so at least the author(s) acknowledge it's dreadfulness (if in a somewhat understated way), and I've also found that some poor fool has (or had) a fork of the code with the intention of cleaning it up.  That's ... brave.

 

There's probably a moral to this story, something about not letting the endless quest for perfect code get in the way of actually getting stuff done, but this really does lie at one extreme whereas the ideal place to be would be somewhere in the middle.

 

As a self-taught high school student, YE GODS NO JESUS CHRIST PLEASE DON'T PLACE ME IN THE SAME CATEGORY AS THIS

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement