gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

OffTopic > Want to share your journey into programming?

#167249 - DiscoStew - Sat Mar 07, 2009 1:04 am

For me, my earliest memory of programming came from seeing GORILLAS running on my dad's PC under Q-Basic (I think I was 7-8 years old at the time). It was the first time I really wanted to make something because I got to see the guts of how it worked (though I didn't really understand it). So my dad taught me some basic instructions like Y = X + 1, and also showed me how to use the help section for more instructions.

He then put an old PC into the garage (we had no room in the house), and let me have at it. I got as far as drawing (not making) a simple background and an imp from Final Fantasy, all with separate DRAW commands. It didn't get any farther with it than that, because it felt like the wrong way to do it (of course it was the wrong way :P ), but nonetheless, I had learned many other actual programming stuff.

Many things happened since then, like creating an animated Starwars X-wing trench scene using simple lines in Q-Basic with a horribly implemented Tie-fighter attack scenario, and creating an actual working FF battle system with VB 6 using separate images of each thing in picture frames with masking (which was rough and sluggish, but everything worked internally).

The last thing I made prior to moving over to C and the GBA was something I called the RPG-Creator, which was to allow people to create their own games that played like Secret of Mana, having user-created tilesets, sprites, etc, which was stopped sometime back in 2001 as I was working on the AI system. It never really got anywhere though, as it became just too complicated. Too bad I can't find it now, because it might have been nice to try something like that for the DS.

The rest of my stuff made after that was relevant to the GBA/DS, and simple programs that helped in creating content for the two. Through my programming life, I've learned Basic/VB, C/C++, C#, and even some Assembly (which I am getting back into), with most of everything created outside the classroom involving games.

So, anyone else want to share their programming journey?
_________________
DS - It's all about DiscoStew

#167256 - samel - Sat Mar 07, 2009 8:54 am

I've started at 14 when my math teacher told me the basis. I understand that i can make a pc do 2*2 and then i tought "well ... can we make better, like y=bhla bhla bhla?".
At that time there was pascal, at 16-17 there were delphi and then at the university java.
From 2-3 year i've made a decision: no more other language than c/c++ [for now only c]. I'm learning quite a lot of c this way and i started coding faster e clearer.
I like ASM, but i use it only on the DS and only if needed.

In My life i use[used] Pascal,Delphi,VB,php,C/C++,some Flash [actionscript],ASM.

Also i've learned all out of school for passion. Now i'm at the last university year [and i'm learning quite .... NOTHING!!!! ]

Now, here it's 8:50 AM so ... it's time for some white coffe! 8)

bye

#167257 - sgeos - Sat Mar 07, 2009 9:09 am

samel wrote:
Also i've learned all out of school for passion. Now i'm at the last university year [and i'm learning quite .... NOTHING!!!! ]

If your teachers tell stories about their experience in industry, pay attention. You can learn the technical material anywhere.

#167258 - hacker013 - Sat Mar 07, 2009 9:27 am

I'm started 3 years ago when I was 12 with VBS and it worked create until I wanted to do more complicated things. I switched to Game Maker with GML. It did that for 2 years and then I decided I should go to c/c++. I'm that now doing for one year. First I written a simple dos shell. Then I made my own custom dos with free dos as kernel. And now i'm in the homebrew.

The languages I can: PHP, HTML, VBS, VB, C/C++, javascript, GML.
_________________
Website / Blog

Let the nds be with you.

#167264 - kusma - Sat Mar 07, 2009 1:56 pm

Warning, long post ahead! :P

My first experience with programming was around 9-10 years old, when my dad and I tried to type in a source code listing from a magazine on our Commodore 64. It took a lot of time, and we never got it to work :)

Later, when I got an Amiga, I started playing around with Amos (a basic variant for the Amiga geared towards game development), making small games and demos with some friends. I was only supposed to work on the graphics, and a friend was supposed to do the coding. But as it turned out, I had an easier time grasping the coding-concepts than my friends.

When I was around 13 I got a PC, and picked up QBasic, which seemed to be the closest match to Amos. Together with some friends from school, I made some games and demo effects, which had been a big passion for me since the day I saw Spaceballs' demo "State of the Art" on my Amiga. After a while, I started struggling with performance, and felt more and more that QBasic was limiting me. So, a friend gave me a disk with Turbo Pascal, since he had heard that was what the "elite" programmers were using. So I started learning Pascal, and quite quickly found that one of the tricks was to use inline assembly to speed things up.

Then, Quake was released, and I heard that it was written in this increasingly popular language called "C". So I downloaded DJGPP (a gcc port for DOS) and 3DICA (a very comprehensive 3D coding guide) and started hacking away on my first 3D engine.

At around 16, I started studying arts. I was going to become an illustrator (or a painter if I was lucky). Programming was supposed to stay as a hobby. This had been a decision for a long time; I was a lot better at drawing than I was at programming anyway.

Two years later, I took a one-year break from the art-studies and took a one-year IT course at a folk high school. My goals for this year was to learn C++ and DirectDraw. During that year, I joined my first demo group, went to my first demo party, and released my first demo. I also got a GPU, and started playing around with OpenGL. Over this year, I greatly improved my programming skills. I continued my art studies, and continued contributing to the demo scene as a programmer and an artist.

Fast forward a few years. I was broke and unable to pay for art school, so I worked as the night-shift at a 7Eleven in Oslo (where I had always been living, with the exception of the one year at the folk high school). One night I got robbed at gun-point while working, and a friend from the demo scene thought I'd might reconsider my decision to keep programming as a hobby, and offered me a job in a new start-up company in Trondheim he had recently joined himself. This company was called Falanx, and was making GPUs for mobile phones. My experience from writing software rasterizers and writing demos in OpenGL was something they needed on the OpenGL ES driver-team, which so far consisted only of my friend. I joined them in December 2003 as employee #3, excluding the four founders.

While saying at my mom's for Christmas 2004, I picked up a GBA emulator, downloaded a cross-compiler, and wrote my first effect for the GBA. I started looking at the demos out there, did some calculations, and concluded that they weren't pushing the hardware hard enough. When I got back to Trondheim, I started talking to a friend about making demos for the GBA. He got as exited as I was, and he too concluded that we could do better. So we did. I gave him the beginnings of the 3d-engine that I had made during that Christmas, and he started adding features while I worked mainly on effects. The result of this cooperation turned out to be the Shitfaced Clowns demos.

In June 2006, ARM Ltd acquired Falanx, and we became ARM Norway. At the point of the acquisition we were around 25 employees. I've been working on the OpenGL ES drivers for Mali-200 and Mali-400 MP since around then.

Next week will be my last week as an employee of ARM. I'm leaving the company to start in a new job at a small company called Hue AS, where I'll be working on their OpenGL renderer. It's sad to leave all the good people at ARM, but it's time for change. I've been doing OpenGL ES drivers for more than 5 years now.

One fun thing about this story is that Spaceball's "State of the Art"-demo was pretty much what ignited my spark for computer graphics. The friend that recruited me to Falanx was Slummy/Spaceballs, and the guy that recruited me to Hue AS was LoneStarr/Spaceballs, the author of "State of the Art" :)

#167273 - samel - Sat Mar 07, 2009 4:54 pm

[quote="sgeos"][quote="samel"]Also i've learned all out of school for passion. Now i'm at the last university year [and i'm learning quite .... NOTHING!!!! ][/quote]
If your teachers tell stories about their experience in industry, pay attention. You can learn the technical material anywhere.[/quote]

mmmmmmm, not here, not in my uni. Here there are too theoretical prof/subject. I've learned a lot of thing but from a little circle of prof/subject.
That said, the uni in his complex is very good, may be one of the best if you like theoretical study.

Anyway, you are right when you say "You can learn the technical material anywhere". This is a very good point about IT.

#167275 - gauauu - Sat Mar 07, 2009 5:58 pm

When I was 5 or 6, my parents picked up a Texas Instruments TI99-4a computer, which came with a book called "beginner's basic"....I was immediately enthralled. I started typing in sample programs, and writing my own cheesy text games. (As you can imagine from a 6 or 7 year-old, they weren't very good).

A few years later we got an apple ][c. So I started trying to makes game in basic for it. I made a number of other cheesy text games. I tried doing graphical stuff, but basic on the apple wasn't fast enough for all but the simplest graphical games. So I started trying to dig into assembly. Unfortunately, we lived miles from anywhere useful, and there were few books at the library or bookstores about anything lower-level than basic , so I really didn't get all that far. But that (around 10 years old) was when I realized that if people got PAID to do programming, I wanted in.

A few years later (14 years old now?) we got a 386 dos machine, and I discovered qbasic. It was finally fast enough to do graphics! I made tons of ridiculous little games (space invaders clones, tetris clones, a few turn-based strategy games, a couple simple side-scrollers, etc). I finished quite a few, but started WAY more than I finished. My high school let me do a self-study programming course (since they didn't have any teachers that knew anything about programming), so I got to sink a lot of school time into learning. I remember the day I stumbled across recursion...I was trying to solve some "difficult" problem and suddenly it occurred to me that I might be able to call a function from within that function. My world was rocked.

I also managed to get a job doing programming for a local factory during the summers in high school...that helped learn real-world stuff...supporting users, trying to understand requirements, etc.

Went to university to get a Computer Science degree ... didn't do much programming then, actually -- it's amazing how school can suck the passion out of you. Then got my first real job doing web programming at the university after I graduated. Then took a job with a Chinese software outsourcing company, which was quite an adventure. Then back to the university, this time writing scientific simulation stuff for predicting damage from earthquakes.

But the whole time doing random hobby programming -- built a 2d real-time rpg engine in delphi (of all things?), and some various other fun little projects. Then discovered GBA homebrew, wrote some little demo apps, then started work on Anguna (my dream since I was young was always to make a complete playable adventure game for a "real" console -- so I finally did it!). Now am helping with a CoD5 mod, and trying to decide what my next project will be.

#167314 - DiscoStew - Sun Mar 08, 2009 8:57 pm

Thanks all for sharing how you got started.

After making this thread, I decided to go on a scavenger hunt to see if I could find anything I made that was prior to entering into GBA/DS territory. What I thought I lost, I actually found. I don't remember if it is the newest or an older version of it, but it's my Secret of Mana game creator from way back before 2001.

The fodler it is in was a jumbled mess, but here's a pic I just took of it running (can't believe it actually runs still).

http://img16.imageshack.us/my.php?image=som.jpg

One controllable character. The rest under extremely simple AI. They can attack each other, then retreat for a few seconds while the attacked target recovers, then attacking commences again. It does bug out, and friendly targets can sometimes turn into enemy targets.
_________________
DS - It's all about DiscoStew

#167322 - Miked0801 - Mon Mar 09, 2009 2:59 am

My Journey began while watching a friend type away at his C64. I was already an avid gamer, playing Adventure and such on my 2600, but the C64 was amazing to me. My step dad then picked up a Timex Sinclair 1000 with just enough memory to store 1 or 2 screen's worth of basic code. My first real program was a basic app that displayed an ascii picture of the United States and asked "Do you want to play a game?" ala war games. It blew my parents away so much that they scraped together enough money to buy a C64 for Christmas. That was my best gift ever. I still have it in a box and pull it out every now and then to play some old games. I never wrote anything but basic, but did take on some 'epic' projects. I wrote an ascii slot machine that my parents loved to play. It paid out very well due to my limited concept of pay table math. I started writing Rampart, but had no idea how to detect if pieces were connected. I started writing a farm game, but it was lame so I left that alone. I wrote a skiing game with randomly generated letters you had to dodge and a capital H for a hero. Anyways, I hacked away on that guy until college when I was introduced to a real language - PASCAL.

I thought I was hot stuff coming in with my basic background. I learned quickly about structured languages and such and that's where my abilities really started to blossom. I took every class they offered at the jr college - C, FORTRAN, and Asm. Lots of fun. I became a lab rat. A few other like minded individuals and I put together some fun demos, but nothing huge. I wrote a neat asteroids game in C, a RPG overworld scroller in x86 (without comments that I couldn't understand a week after I wrote it,) and a space battle type game that split the screen into 2 huds with each player using 1/2 the keyboard for their commands. That game was my most polished by far. My best friend and I would play that game for hours together.

Then, I applied for a job as a game programmer at a local company before finishing my 2 year degree. I received a rejection letter in the mail a week later, another one 2 days after, and then I received a phone call from the same company asking for an interview as a Production Assistant. I've worked for the same people since, though the company was bought by another. I was coding within 6 months of being hired and have loved almost every moment of it.

#167330 - albinofrenchy - Mon Mar 09, 2009 9:39 am

Quote:
For me, my earliest memory of programming came from seeing GORILLAS running on my dad's PC under Q-Basic (I think I was 7-8 years old at the time). It was the first time I really wanted to make something because I got to see the guts of how it worked (though I didn't really understand it). So my dad taught me some basic instructions like Y = X + 1, and also showed me how to use the help section for more instructions.


Haha!!!

I got my start on GORILLAS and NIBBLES! I remember hacking NIBBLES so I would never die just to see all the levels. I vividly remember typing in something like "There are vampires that have 100 life and you are are a werewolf that hunts them" and hitting run, wondering what it would do before I found any of those examples.

After I got decent at q-basic, I jumped into Borland C++. I really wish I still had code from when I was doing all that, I'm sure it was all very buggy and memory wasteful, but I was persistent enough to be able to work my way through it. From there I picked up Java, PHP, etc etc.

Now I'm in university studying Artificial Intelligence, which I've been interested in since forever ago.

I'm sure we can all relate to this:
[Images not permitted - Click here to view it]

#167333 - Echo49 - Mon Mar 09, 2009 10:31 am

I started off with QBasic as well, around 8-9? My cousin was showing it to me and I was immediately captured by the ability to tell a computer what to do.

Then I got into HTML (which I know isn't a programming language, but it taught me a few things anyway ;P), and programming my Casio FX-9750. I made a few pretty cool games on it, but my calculator died D:

Afterwards I had a few lessons with a friend on VB and Java (I was probably about 11-12 at that time). I continued to VB.Net and picked up C++, but mostly stuck with VB (I know, a bad idea - but I didn't know any other languages that could make a visual form running on Windows so easily :/)

At high school I switched to C# and taught myself PHP and SQL. I joined a project online which was using C# and I learnt a lot of different programming techniques from it (eg. design patterns). I also messed around quite a bit with sites like hackthissite.org, where I learnt a bit about ASM in general just by trying to hack simple apps.

At one point I'd looked at GBA homebrew but I had neither a GBA nor a flashcart. But now I have both a DS and a Supercard, so my DS programming journey began (about 2006). I brushed up my C/C++ skills and started programming a game on and off. I've recently started programming this again; expect this game soon :P

Right now I'm in first year university, studying Software Engineering.

#167367 - ScottLininger - Tue Mar 10, 2009 5:08 am

Ha! This is a fantastic quote...

gauauu wrote:
I got to sink a lot of school time into learning.


Let's see...

Gradeschool: The TRS-80 had basic and a tape drive. My first real game was a sidescroller submarine game with a cave that was randomly generated, but no badguys.

Middle School: The IBM PS-3 had qbasic and a 3.5" floppy drive. School had some Apple IIEs with basic. Built a text-based trivia game as a school project.

High School: The 486 had qbasic and a mouse driver. Built a qbasic, mouse-driven Risk clone, assorted gorillas variations, racing games, etc. I saved up my pennies and bought a copy of Pagemaker and a little hand scanner and started working on assorted desktop publishing projects. Wrote a font editor so I could make sci-fi + fantasy fonts a character at a time.

College: The Pentium had an ftp+telnet client, and my college gave me web+cgi space. Picked up HTML+Perl as part of a class on Human/Computer Interaction Design. Did a bit of C++ for undergrad CS classes. I worked at a Mac store and got free access to Photoshop. Changed my major from CS to Fine Art. Eventually got a job as a junior graphic designer and starting building lots of web sites, including hand-coded shopping carts and other basic web forms. Picked up Visual basic on the side to continue goofing with games.

Post College: My long series of Macs had Perl. Webservers all had Perl. Worked as a graphic designer, but continued to do more and more complex web programming projects.

Post-Post College: Girlfriend (now wife) bought me a GBA-SP, and the next day I found this forum. Did a bunch of GBA projects in C. Meanwhile, I was doing buttloads of complex flash programming, and got a job as a Web Developer at a web apps company doing mostly ASP, but a bit of ColdFusion and Java/JSP. Started picking up more and more freelance clients and along with that had to gain PHP/MySQL skills.

Few years ago: Quit my job as a UI designer at a enterprise software company to start my own consulting company doing random programming, design, and animation work. Got even cozier with Actionscript, and managed to sell a couple of real GBA homebrew projects as paying gigs.

Recently: Was at the right place at the right time and managed to sell one of my little companies to a much larger one and went back to a 9 to 5 gig. Now I'm doing a lot of Ruby/Javascript and some C++. Recently started monkeying with the Android Java API, which ROCKS, btw. It's like gameboy programming but with access to the web, huge amounts of RAM, etc. I highly recommend it.

Uh, I think that's it. Bottom line: almost everything I know is self-taught. This stuff is totally doable if you put your mind to it and choose projects that are completable, and if you stick with it it might just be your career.
_________________
Some of my GBA projects

#167396 - sajiimori - Tue Mar 10, 2009 8:09 pm

It took me 12 years to figure out programming.

Tried BASIC when I was about 10. Tried C, didn't get it.

Thought I wasn't smart enough to be a programmer, worked various crappy jobs.

Unemployed for a year, when I was 21. Studied Linux (which I haven't used since) and C again (which I still didn't understand).

Crappy printer testing job at Epson, spent most of my time studying Perl and C++, got fired as a result.

Unemployed for another half year, studied Lisp and more C++. Started to understand programming.

Studied GBA. Answered questions on gbadev, got hired. Designed an engine, shipped 6 DS games on it. Switched to PSP, started rewriting that engine...

#167421 - keldon - Wed Mar 11, 2009 12:05 pm

My memory is not as good as it once was, but I will try to tell you as I remember:

- Flow diagrams and board games in early years. Learned binary sometime around 8 years old. Had a strong interest in maths, always figuring out my own things (not aware it was a study).
- Read book on programming basic at 10 (didn't have a computer).
- 12/13, attended Mathematics Masterclass; learned assembler
- Got my computer sometime around then (286). Learned QBasic, then got Borland Turbo C++ 6.2 (woo hoo, 3D baby) + DOS programming + debug.exe assembler. Learned image manipulation and 3d modelling too.
- Used QBasic to test my concepts, formulas for maths, etc.
- Learned HTML and JavaScript at some point.
- Introduced to emulation&pokemon&no$ around 14, or whenever it came out in Japan, which led to me finding homebrew. Learned homebrew at some point, dissected mechanics and learned about game engines, etc.
- College, Uni, SI-Games; Java, C++, design patterns, algorithms, mathematics, AI, programming competitions etc.