You all suck at programming

Discussion in 'Technical Discussion' started by jman2050, Apr 7, 2008.

Thread Status:
Not open for further replies.
  1. Hitaxas

    Hitaxas

    Retro 80's themed Paladins Twich streamer Member
    1,438
    0
    16
    Litchfield,CT
    Becoming a Twitch partner, and getting my life back together
    I agree with that to the highest extent, however, I do know SOME C++, not enough to say I am good at coding, hell, I don't think I will ever be. I love reverse engineering, that is what really strikes my fancy. Taking what I like and making it even better brings me more joy than making something from scratch, which could potentially suck a load of cock compared to the mod/hack.
     
  2. jman2050

    jman2050

    Teh Sonik Haker Tech Member
    633
    0
    16
    Lots of stuff here already I see.

    Hey, hey, don't misunderstand me. I didn't mean to imply that programming means doing everything yourself, although I know a few people who are glad to go that route. I mean, when I implemented the Sonic 3 shields into Sonic 1, I examined/copied a lot of code from the SK disassembly. The difference is that simply copying the code, while it may work, doesn't help you *understand* what you're examining. In the case of the S3 shields, I used the knowledge I gained from examining SK's code to more easily understand the structure of other parts of the code for future use. I also understood the correlations and differences between SK's and S2's code base so I could figure out the context of each code piece in SK and thus figure out exactly where I needed to place it in S2's code.

    So basically, copying and understanding code is fine, and actually encouraged, as it will likely help your abilities in the long run. Going to a guide, copying code without actually knowing what it does at a low level, and then balking and quitting when it's necessary to modify code for your needs is not. Fortunately, I know a few people are eager to really learn what it is they're doing, and I commend them for that. Unfortunately, many of them attempt to go about it doing it the really hard way.


    Well, fortunately, this topic isn't for you. You fall into the category of people I described who use existing tools to facilitate their other skills, in your case level design. People should always have a goal in mind when doing things of this nature. If your goal is simply to make new levels under the game's restrictions, and you think it's satisfactory, then why would you need to learn programming :P


    I'm going to be honest, I really think you knock yourself too much for your lack of programming skills. If the rest of your post is any indication, you actually get it. I mean, programmers vary in skill levels and specialties, and it seems you have a lot to learn. So learn it! Don't sit around and mope that your skills will never be good enough. If you find learning with modifying Sonic games to be too much of a pain, then go another route. See what you can do with a high-level language, and I think you might be surprised at what you already know and what you can already do. You're so good at data manipulation of that nature precisely because you actually understand programming concepts and understand the context of the data you're dealing with. Think about that in the future when you find yourself discouraged.

    See my reply to this above.


    Don't try to be antagonizing to the forum base. I think a lot of the problem has to do with the elitist attitude some of the more knowledgeable members have here (myself included at times, and it's something I've tried to change gradually). Yeah, taking the initiative is encouraged, and I think it's foolish and a bit selfish to just wait for other people to do things you want to do, but I also think that there are people out there who really do want to try and learn, but are intimidated because, according to us, they suck and should die. We shouldn't have to do all the work like you're saying, but I think when someone "releases" a crappy hack out of ignorance, it's better to be constructive then to drive people away.

    Well, frankly, criticizing a hack because they didn't do any ASM editing is foolish. Criticize them for having crappy level designs, crappy art or what-not, but don't criticize because they intentionally decided that they didn't want to do any ASM hacking.

    Agreed completely here, and see above.

    The problem isn't necessarily that they consider themselves programmers, it's that if they want to do something, instead of learning how to do it, they just look to see if somebody else did it and don't bother to learn anything themselves. If you're not interested in code modification beyond what's already been done, like Tets above, then I suppose there isn't a problem.


    Point taken. I could answer this completely but this post is long enough already. What I will say though is that I find programming to be pretty similar to architecture. Now, I'm no architect but I took classes on it in school so I would hope I have a general idea of what it entails. Architects have a set of limitations to deal with from the beginning based on building codes, lay of the land, etc (platform/language for programmers). They possibly have a general design as dictated by their clients. From there, their job is to create a set of instructions based on the design and limitations, and to ensure that all necessary components and details are clearly defined in an understandable manner. For them, they draft this on paper or using AutoCAD. For programmers, they write these instructions in a standard text file. After this, the instructions are used to finally build the building, conforming to the exact instructions given by the architect. For programmers, this is handled by the compiler/assembler, which converts your instructions into a set of machine code that the computer understands.

    Possibly, but only as far as motivation goes.

    I'll cover this more in a bit, but the main idea is that you have to take the good with the bad, and there's going to be a lot of bad, especially in regards to the debugging process.

    I'm not sure whether my statement counts as hyperbole or sarcasm or what. Regardless, you get the idea :P

    Yep

    That's actually a really good summation of the entire topic. Well done.

    Likewise.


    The first part I'll chalk up to difference of opinion. I don't really subscribe to the belief that you're born to do something. With enough time and patience and dedication, you could learn any skill despite your inherent shortcomings. Of course, since we typically have only a finite amount of time to work with, for practical purposes you're right in many cases. As for 'enjoying' programming, I think I should've been more clear in my OP. I honestly didn't want to imply that programming is all bad, all annoying, and the worst job possible. There's a lot of joy to be had as you're problem solving, figuring out how to implement your idea, and the audble "YES!" that comes out of your mouth when you finally nail it. Many would-be programmers think of the above and assume everything is all nice and rosy. But along with the joy comes what I described: frustration, tedium, boredom, etc. The debugging process alone can be a daunting task, and one has to be ready to deal with the problems and hard work you'll face if they want to do this. In this case, programming is much like a lot of other professional jobs. It can be a nice enjoyable hobby for you in your spare time, but it's hardly what I'd call accessible, and if you want to get into it, you better prepare to endure. As drx said though, the payoff can be enormous, and as you gain more experience and practice, it becomes a more enjoyable, although still difficult, job.

    So true.


    But that's the point, many people don't actually exert any real effort, they just take the easy way out and complain when people call them out on it. The point about time availability is sound, but that's one of the factors one has to consider whenever they try to get into hobby work like rom hacking.

    This discussion is really good so far, keep at it :(
     
  3. TmEE

    TmEE

    Master of OPL3-SA2/3 Tech Member
    1,726
    0
    16
    Estonia, Rapla City
    T-04YBSC-A !
    I'm one of those programmers who has to have my own code in my programs, I don't copy any code. I love to re-invent the wheels, in many cases I get something that rolls very nicely. That's one reason I don't do any hacks... if I'm gonna do something Sonic, it will be started form scratch, all art, music and code (hint). I enjoy coding, and enjoy some attention I get when I make something nobody has done before (like my sound engine for MD, it does one thing no other driver does at that quality).
    I started with QBASIC, moved to QuickBASIC and there I am. Then learned ASM and find it THE MOST EASIEST form of programming on this planet, Especially on 68K, I don't miss high level language when doing something for it. Z80 is fun too, but not as fun.
    I have no idea if I was born with certain skills, but my childhood dream(make game console and a game with one character) made me wanna learn programming and hardware stuff, but I do think when you have enough motivation you can achieve anything. I consider myself a good (ASM) programmer, who is never happy until his code is optimized to the max.

    I have no idea where I'm getting... "Assembly is NOT hard, just tricky sometimes" - Tiido Priimägi :(
     
  4. Hayate

    Hayate

    Tech Member
    Seconded.

    There seems to be no fast OS anymore. Even Linux, which everyone probably knows I am a great fan of by now, is ridiculously slow compared to an ideal.
     
  5. Bibin

    Bibin

    DON'T LET THE SUN LAUGH AT YOU. Member
    882
    0
    0
    New York City
    Ghost in the Machine
    I'm going to have to put out a "ditto" here. I can modify the code just fine by some trial and error runs, modifying some minute values, noting the effect, and modifying it again. Through this seemingly tedious process (it got easier as I learned what kinds of things should be modified, and what things would be pointless to modify) I can do some basic modification of the source code. After I realized that this progress could slowly but surely work, I abandoned copying code entirely, and from this date my only copied code is the Sonic 2 spindash, which even then I modified myself into a rev-able peelout. If I copy code, but don't understand it, that'll haunt me until I make myself understand it enough to the point where I can accurately comment it. Copying code for learning is just fine if you ask me, but blindly using it and just letting it sit is not only stupid, it could be inefficient and/or buggy depending on where it is being used, and for what. This is the same reason I hate when people copy in school. Drives me nuts.

    That said, I'm hardly a programmer; more like a half-assed programmer with partial knowledge. The only language I can code from scratch well in is C, and even then I hardly know enough to get past console apps. That said, I understand the way a lot of code works in terms of the syntax, so I guess I could say I somewhat understand programming in general (I'm wording this horribly, but I hope you get my point).
     
  6. Bibin

    Bibin

    DON'T LET THE SUN LAUGH AT YOU. Member
    882
    0
    0
    New York City
    Ghost in the Machine
    By the way, this is like golden discussion for a skypechat, something that needs to happen. That sonic skypechat for the proto release was a good break from the keyboard.
     
  7. jman2050

    jman2050

    Teh Sonik Haker Tech Member
    633
    0
    16
    Well, there *is* a reason high-level languages exist you know. Portability says hi :P

    I see what you mean though.
     
  8. Dark Sonic

    Dark Sonic

    I'll find the old avatar eventually Member
    12,379
    97
    28
    Working on my art!
    Off topic but D:

    You've stopped working on Sonic 2: Advanced Edit? That thing looked wonderful.
     
  9. Roxie Mika

    Roxie Mika

    It's TECHNOSTASY, SINCE 1987 Oldbie
    Personally, I still have a long way to go before I can consider myself a programmer in any way, shape, or form.

    However, I do like that this community encourages people to progress, instead of just dumping an all-purposes tool into a turd's lap and letting them fly. *coughsmw-hackingcough*
     
  10. jman2050

    jman2050

    Teh Sonik Haker Tech Member
    633
    0
    16
    hey man, diss the SMW community all you want, but don't even touch Lunar Magic. It's still arguably the single best hacking tool for a specific game in existence, and for good reason.
     
  11. Overlord

    Overlord

    ...did we just switch realities? Moderator
    17,571
    60
    28
    Berkshire, England
    Learning Cymraeg
    I've been writing code on and off now for the better part of a decade (earlier if you want to count BBC BASIC at school. =P), and I've even released one or two hacking apps, but even now looking at ASM code makes my brain explode. I did a crappy little Sonic 2 hack long ago and I know there's no point in me even bothering to try doing anything further with it becase although I can program, I'm simply not at a high enough level to do it - and I doubt I ever will. Even C/C++ makes my brain ache.

    I'll stick to my desktop apps and PHP scripting, I think. =P

    while (OLHasNoAbilityToUseASM) { whine(); return 0; }
     
  12. Roxie Mika

    Roxie Mika

    It's TECHNOSTASY, SINCE 1987 Oldbie
    Eh, perhaps I posted in haste.. Recently I've been seeing less of the "generic same-ol'-hack" that was once all too common, and more of the "creative-use-of-LunarMagic-and-ASM-hacks" type of hack, and indeed, Lunar Magic is great. Its comprehensiveness doesn't seem to have been matched by any hacking tool yet.

    Guess that's what I get for posting with my fingers and not my head.
     
  13. Tweaker

    Tweaker

    Misfit
    12,389
    1
    0
    Lunar Magic is like ESE—it's a wonderful tool, but it's abused to high-hell by people who would otherwise have no idea what they're doing. Everybody uses the same freely-available graphics in every hack ever and I've not seen a thread of originality in a Mario hack since the VIP series. It's like people can't function on their own, with the exception of a select few (BMF is a brilliant programmer, for example).

    I tried for years to learn how to do things manually, without tools, or format breakdowns, etc... but I've found absolutely nothing. It annoyed the hell out of me, because I wanted to learn how things worked internally, not how to work a tool.
     
  14. Upthorn

    Upthorn

    TAS Tech Member
    239
    0
    0
    I contradict you. You do a lot of coding, but very little programming. You get credit for trying new things, but your hack releases are buggy as hell-- you can type out 1000 lines a day or however much, but if you can't design it so that it works, or if you can't analyze your design to see how it's flawed, it's not really worth a whole lot. Part of what Jman was saying in IRC yesterday, as what prompeted him to make this topic, is that nobody seems to realize that 90% of programming is bugfixing.
     
  15. Hayate

    Hayate

    Tech Member
    SATSEE Beta 4 was buggy as hell. Almost every bug in it has already been fixed, though. Beta 5 will be much less buggy.

    I often write new code and realize while I'm writing it that there will be a minor problem with it. If said problem would take a long time to fix, is minor, and the added buggy code makes the result better overall than without, I ignore it, implement the feature, release and worry about fixing it later.

    90% of what I do /is/ bugfixing. Over half of the SATSEE builds redscreen as soon as I try to do whatever new thing I added.

    Here's a question I have for you: As far as I can see (and not trying to boast or anything here), SATSEE has more total added features than any other hack I can think of. Because of that, it naturally has proportionally more bugs. Do you know why? Because I don't worry about the bugs. I know what I want in my hack, and I know a release sooner is better. New SATSEE versions come out relatively fast because I pay little attention to minor bugs, especially if I can easily fix them after the release for the next version.

    Ignoring private tech members' lounge betas of anything, people have to stick to old versions of most hacks, which don't have any of the features they see e.g. all over Youtube. When I start announcing new features, I keep working on it until a release, and if I go on hiatus (which I do a lot), it happens after the release, not after adding something awesome without releasing it. I think players would be much happier ignoring a few minor bugs in a build full of lots of new features than downloading revision after revision only to have a bug or two fixed.
     
  16. drx

    drx

    mfw Researcher
    2,235
    212
    43
    :rolleyes:
    Let me paraphrase this into perspective:

    Ignoring private betas of anything, people have to stick to old versions of Windows, which don't have any of the features they see e.g. all over Youtube. When MS starts announcing new features, it keeps working on it until a release, (...). I think consumers would be much happier ignoring a few minor bugs in a build full of lots of new features than downloading update after update only to have a bug or two fixed.

    /joke
     
  17. Tweaker

    Tweaker

    Misfit
    12,389
    1
    0
    Releasing before bugfixing is the absolute worst thing you could ever do in any situation, no matter what you're working on.

    Secondly, Megamix has shittons more than SATSEE, so please get over yourself. And, if not Megamix, than S1EE still knocks your shit out of the water. The worst thing about you is that not only do you do things poorly, but your ego is so huge that you can proclaim it as the "right way" while completely disregarding basic principles of design. If you think "release now, fix later" is the right ideology to follow, then I'm insulted that you're even attempting to call yourself a true programmer.
     
  18. Hayate

    Hayate

    Tech Member
    How would you like me to say

    ?

    Besides, I do want to get beta 5 in this year's hacking contest.

    I hope this isn't going to make me go the same way as nineko any time soon. -_-;;

    now if you'll excuse me, I must go train my pokemans.
     
  19. jman2050

    jman2050

    Teh Sonik Haker Tech Member
    633
    0
    16
    Actually, yeah, that's precisely what I think you should say.
     
  20. nineko

    nineko

    I am the Holy Cat Tech Member
    what
     
Thread Status:
Not open for further replies.