Its a very interesting thing going into the past!

I looked into the history of my posts on this forum today. It is so weird, but I can not believe how absolutely terrible at game development I was. Hilarious really, I am almost ashamed lol. The best part about it is that I realize now that I learned most of what I know about programming, from programming with Unity.

I would like to thank all developers of this awesome tool, which helped me be where I am today. I would also like to thank all people on these forums who have helped me. I would not be where I am without any of you.

On a side note, I now remember what it is like to be a nooby. I hope I can help noobies to become better, just like I did.

I’m still nooby, but checking my history I can tell i was much much noobier :smile:

and yes, Unity is awesome. I love the community, I learn so much here.

We all must be “nubs” before we can be “leet”. lol

Seriously though, we all have to start somewhere, we aren’t born knowing how to do this stuff. :wink:

I always feel bad when I find old posts I had made years back.

I haven’t changed much, I’m still a wise ass hippo that is fairly peaceful but will take a huge bite out of you if you upset him.

+1, Gives me the giggles.

Id say im still ‘nub’ but I know ive improved, and it is mainly because of support. (: the work a forum can do ey.

My snarky side upon reading this:

immediately thought “Oh, you got better, when did that happen?”

I was about 10 and a half when I first learned to program in machine code. I have to be very clear about the age because when you are that young, those few extra months matter! Did you ever have an argument when you were six or seven, with your friends over who was the oldest and you were comparing mere weeks? Yeah, just like that.

Anyway, to continue the long, old-fart, rambling story, it has been 34 years since I learned to program, and I forget sometimes what it was like to not be able to write code without thinking about writing code. A bit like not being able to read or write, or walk, you just forget you can do it. I show obvious impatience when people who aren’t good programmers, or are just learning to code, ask what appears on the surface to be an inane question and they don’t seem to be “getting it” or “just not trying” and I scream inside my head “What is your problem? Why don’t you get this? It’s so trivial!” Sometimes the screaming isn’t contained to just my head, sometimes it leaks on to the forums.

In a cathartic way I have to admit I’ve made some of those stupid noob mistakes. My first programming language was machine code, a variant of 6502, then proper 6502, then on to Z80 and 6809, then Forth, and finally, two or three years later, BASIC. The computers I used came with BASIC, but BASIC was for people who were just learning or weren’t “real programmers.” If you were serious, you wrote assembly language or machine code directly. I had a little bit of experience with basic. I knew how to PEEK and POKE memory addresses, and that was pretty much it. After two or three years of writing software, and getting my games sold, I finally started to learn BASIC thinking I could speed up development by writing all the graphics code in assembler and the game logic in BASIC. I had just bought a shiny new Acorn Atom and I to call up a friend, who was intimately familiar with the Atom dialect of BASIC, and my question was “How do I add one to a variable in BASIC? Like, if I have a variable called A, how do I increment it?” It wasn’t that I didn’t know how to increment memory locations or load and store data to a labeled memory address, but the concept of typing:

LET A=A+1 was completely foreign to me when I was used to writing:
E6 85 D0 02 E6 86 Or in long-hand:
INC $85; BNE $2; INC $86A couple of years later I learned about this thing called “scope” when writing an adventure game for the BBC and discovered the LOCAL statement that would declare a variable local to a procedure.

Woah!

Mind!

Officially blown!

Up until that point everything I had written was in a global scope, all data was accessible, and the only time some piece of code or data was not in global scope was if I was using various disk paging mechanisms to dynamically load code and data into memory.

I forget some days what it is like to be introduced to these concepts, but I’ve often repeated this statement, usually to players in MMORPGs when they are talking about how uber-leet they are and how that hunter in the party is useless.

“Everyone starts at level 1. Even you.”

I have heard that a hippo’s jaws are capable of biting through a steel plate an inch thick. It must be hell on the dishes when you put pizza in front of them.

My sister was bitten by a hippØ Ønce, it was nåsty…

Quite the wise one aren’t you :L you and Hippo are proper daddy figures in the forum, hahaha

I was going through all my old post and I came to the realization that as a programmer I got worse.

Oh god, not that I’ve come that far from then, but looking back at my first question “what is wrong with this code”… wow, so many things wrong… I think I had hit my head on the entrance arch to level one and fell down the stairs (they have those on level one) all the way down to level -3…

I look at my code from just a few years back and think “wow, what idiot wrote this crap?” I cannot imagine the trash I turned out thirty years ago but thinking I was creating awesomeness just by being sat at the keyboard. I write code every day, I endeavour to solve one interesting problem every day, I always want to be improving. “You’ve just got to hold your hand in the air for an hour a day.”

Ouch, you shouldn’t judge. Especially since I don’t even post any work for you to judge upon.

Your story is awesome btw.

I think he was being sarcastic… but yes, the story was indeed awesome :).

Working on a “remake” (different concept same code structure) of a old game of mine. I still suck and have a lot to learn. But if the draw calls went down from 300+ to <10 I think I can say I have made a little progress lol.

I did say it was snark. :slight_smile:

I remember very clearly discovering how bank switching worked. How I could have the program counter PC at one memory address, strobe a memory location, and the contents of the memory being executed would be switched out with completely different values, and then the CPU would execute the next instruction, and when that code routine was done, strobe the bank switch memory location again, and get the old data block back.

Two different chunks of memory being switched back and forth and code interleaved between the two.

This was a neat concept to learn in the first few months of programming a computer. I recall figuring out how I could plug extra 2114LC RAM chips on top of the already existing RAM chips inside of my computer and with a few other components make a shadow copy of memory that could be switched in and out at the same address space. I loved have a little circuit board inside my computer that could switch out multiple 4K EEPROM chips to provide different programming utilities as I needed them instead of having to load them from tape.

I was used to printing characters on the screen one at a time, either by writing the screen memory location directly with the character I wanted, or by assembling a bitmap graphic in memory and copying the individual bits over, or by calling an operating system routine with a JSR instruction, and this would be done one character at a time in a loop I had to write.

You want to know why I was asking how to add one to a variable in BASIC? So I could write code like this:

  10 DIM A(11)
  20 A(1)="H": A(2) = "E": A(3) = "L" : A(3) = "L": A(3) = "O": A(3) = " ": A(3) = "W": A(3) = "O": A(3) = "R": A(3) = "L": A(3) = "D"
  30 LET B=1
  40  PRINT A(B);
  50 LET B=B+1
  60 IF B > 11 THEN GOTO 80
  70 GOTO 40
  80 END

And I recall thinking out very loudly to myself, because forums didn’t exist back then, and had they, I would have posted some ranting nonsense that went like “BASIC is totally broken! What retard invented this? It’s no wonder people who aren’t good programmers use it!” I was probably 12 or so and I really glad that the internet didn’t exist back then because I would be cringing today reading the crap I would have written.

Actually I probably didn’t write the code exactly like the above because being a machine code programmer my brain worked backwards so the string would have been defined as “DLROW OLLEH” and I would have been decrementing the counter instead and branching on non-zero back to the start of the loop. But the code adequately illustrates the point. “Everyone starts at level 1.” But sometimes we forget that. :slight_smile:

I am so extraordinarily glad I don’t need to program in machine code. I think I would go bonkers.

Haha - did the same on my good old ZX Spectrum:
soldered the RAM chips onto the built in one ( piggy-pack style ), except for the chipselect pin which i connected to an external dip-switch ( remember that name :wink: ). Disconnected the chipselec conductor path and wired that to the switch too

  • so whenever i flipped the switch, i had access to the second memory “bank” :wink:

The power of this forums is amazing. Without the doubt the best forum and community i have seen so far in my history of computer use. Its not just community that is great here, but also forum is so well designed. It might be a little funny to say yeh thats nice looking forum, but forum appearance is very important to me. When you come from dark-heavy forums like UDK or Crydev you really start to appreatiate this light feel of this forums. For me it is also very interesting to see that in first year on this forum almost all of my topics or replys were questions. Basically i wanted to know how to do this and that, now in second year i can already start to contribute to community by answering on some of the questions posted by other users.

Actually, when I look at my old code, I think “wow this is some impressive stuff, how did I get so bad” - it is like I am in a steady decline of doing more commenting and less actual code as I get older! or maybe less code is needed for the job, but it still doesn’t bode well!