Becoming a games programmer

The place to hang out and talk about totally anything general.
User avatar
wwarnick
level5
level5
Posts: 1863
Joined: Mon Oct 02, 2006 8:44 pm
Location: Rexburg, ID

Postby wwarnick » Tue Apr 10, 2007 10:46 pm

Darksun wrote:There's no reason you couldn't make a 2D game using XNA

I'm currently working on a 2D strategy game with XNA. Really simple concept since it's my first effort.

cuber3, if you're like me, going head-first into a graphics library like OpenGL or DirectX can be intimidating. I'd recommend starting with something easier yet still plenty flexible for a beginner, like XNA, which allows you to skip some of the harder-to-grasp concepts and get right to the graphics (especially if you don't even know the language yet). Then again, you may be more determined and patient than I, and may find it challenging and fun. In which case, all power to you. But, personally, I'm starting with something small, and will work my way to bigger things in time. Work and school don't allow for much more.

Anyway, good luck.


wwarnick
User avatar
wwarnick
level5
level5
Posts: 1863
Joined: Mon Oct 02, 2006 8:44 pm
Location: Rexburg, ID

Postby wwarnick » Tue Apr 10, 2007 11:40 pm

Cooper42 wrote:...try modding a few of your favourite games.

I think it depends. Modding is a different experience than building a game (no matter how simple) from scratch.

Cooper42 wrote:...I know a number of people who have gone ahead and learnt programming of some description, only to find they don't have the talent to do anything with it, and so do not get to make the games they want to make (or just dump it as a career entirely).

Again, start with something easy and move up. To develop a real skill in programming takes real persistence (years). Test the waters first and see if it's what you want to do.

wwarnick
Covak
level1
level1
Posts: 17
Joined: Mon Dec 19, 2005 5:00 pm

Postby Covak » Wed Apr 11, 2007 2:46 am

2 cents I'd like to add:

If you want to learn object-oriented programming, don't worry much about which language you learn with. At all but the lowest levels, OOP is OOP. Don't start by focusing on learning the nitty gritty details of a particular language, trying to become a "<pick a language> programmer." A solid foundation in OO principles and general software engineering is infinitely more important.

But if you already have that, ignore this :)
zoombapup
level1
level1
Posts: 11
Joined: Tue Apr 03, 2007 8:44 pm

Postby zoombapup » Wed Apr 11, 2007 12:58 pm

I have to own up here and say up front that I am a lecturer at the University of Bolton and teach game programming and design, so you can discount what I say as propaganda if you like :)

When I first started programming, I was writing machine code on the old Atari 400. It was a hell of a system, had hardware sprites, had 256 colours (which was unheard of in the days of spectrums and such) it was 6502 so it was a simple chip.

I learnt assembler by reading magazines, having the BYTE 6502 chip reference manual (I think it was BYTE). Typing in listings and seeing what happened etc. The very typical bedroom coder.

After a while, I got onto a PC and started learning higher-level languages. My first was Pascal, which was a really nice language to learn, it had things like strong typing, functions, even some OOP stuff. I was into the demoscene at the time and hooked up with a few friends to do some demo stuff. Then one of the guys in the team told me to look at Watcom C. At the time memory management was a pain in the arse, with a load of paging and whatnot to take care of. With Watcom C, there was a thing called a "Dos Extender" which basically threw out all the paging mechanisms (holdovers from earlier 8086 chips) and gave you a flat address space (basically linear memory). Man that was great!! so we threw around chunks of memory and did all sorts of funky stuff. We used to do some pretty fun hardware bashing, things like messing with the video card to enable smooth scrolling (using a thing called Mode-X) and of course doing dodgy things with interrupts and the OS.

Anyway, after a while, the guy who got me into Watcom C told me to check out the new Watcom C++ compiler. He gave me a really simple example of a new thing (to me) called a "Class", his example was a file class, with file.open, file.read,file.write,file.close etc. It was a revalation!! Imagine having an "object" that could do stuff by itself!!!

Anyway, after a lot of C++ shenanigans, I was getting pretty handy with it. I'd been writing stuff like the Mode-X FAQ on and off for a long time, basically being active in the "scene" as it was and generally working at polishing my programming chops. It was all late-night bedroom coding with IRC sat in the background (hey, I had a modem connection to Demon in london and I used to phone-phreak a bit to some coder sites in the states).

I decided to go to Uni to get my skills up a bit. Met some great people and generally programmed a lot. It was fun and got me away from Hull where I was living. Great move there :) It also meant I could do some contract game stuff for various companies as a freelancer during the summer months.

Anyway, after leaving uni, I spent a year or so in a distributed database place doing programming and customer support. It was ok but not my ideal job. After deciding to leave one day, the VERY NEXT DAY I got a phone call from my mate Charlie Wallace who was the programming manager for Team17 at the time (he's now somewhere in hollywood I think). He said "Phil, come up for an interview ok?" and I did. Anyway, he showed me some funky new hardware, which really impressed me. It was the 3dfx chip and would begin a 3D revolution. I'd been doing 2D and 3D stuff with my friends, writing our own software rasterisers and blitters and generally learning the ropes. Now I was working at a real games company doing all sorts of funky stuff!

Anyway, my time at Team17 was great. I decided to leave a few years back because they'd gotten stuck in a rut of sequels and doing whatever the publisher wanted, I think I was on my 6th worms game. Which wasnt like the early days when I started there. I decided to go indie and do my own thing, but luckily got a job teaching game programming and design at the Uni to help me fund it and stay sane.

I'm not saying my story is going to be typical, or even useful. But hopefully you can see that having an interest in game development and programming should be a goal itself. If you want to turn that into a job in a games company, you'll need to be able to keep at it, even when things get really difficult. You'll need to be active in developing your own skills and it never hurts to actually spread your knowledge and be active in game development communities (try gamedev.net for instance).

At the end of the day, you are a game programmer if you program games. Dont get hung up on languages or genres. If you want to end up in the games industry, then C++ is a good thing to learn. In fact, I think C++ is good to learn anyway, because its quite close to the hardware. I'd even suggest learning some assembler, mainly becuase its easy to understand AND teaches you something about the hardware youre using.

The best way to learn, is by doing it.

Now the sales pitch.

I know its probably going to be viewed as propaganda, but I do honestly think that if you have the aptitude and really REALLY want to become a well rounded game programmer, you can do worse than taking a GOOD course at a University equipped to teach game development. When I say GOOD, I say it because there are lots of BAD courses out there trying to trick you into starting without really having much in place (there is a place in london with 112 courses with "games" in the title). So pick a place with a good programme and you would get a lot out of it.

Why do I think its useful?

1) You get 3-4 years of just doing game development
2) You meet people who are the same as you
3) In a good programme, you get to meet and be taught by people who've already done it
4) The social aspects are also of benefit in the long run

I wouldnt say you HAVE to go the University route, but if youre in the UK, its definitely something I'd advise. It can get quite expensive in the US, so not so sure how it works out over there.

But let me state clearly, that a University course WILL NOT make you a game programmer. YOU will do that. Only YOU can gain the skills and be able to convince people you have them. The University is the enabling environment to help that, but it cant make it happen.

Hope I didnt go on too long. Its got me on a roll :)

Phil.
User avatar
NeoThermic
Introversion Staff
Introversion Staff
Posts: 6254
Joined: Sat Mar 02, 2002 10:55 am
Location: ::1
Contact:

Postby NeoThermic » Wed Apr 11, 2007 3:22 pm

zoombapup wrote:I have to own up here and say up front that I am a lecturer at the University of Bolton


Is "sneezy" the uni proxy then? :)

I'm currently doing games programming at the University of Bedfordshire. While it's a great course, I'm having issues with the uni trying to screw me over (they are incompetent; they've lost five pieces of my coursework and one of my exams...).

While it seems like a strange question, please tell me Bolton isn't as incompetent as Bedfordshire? :)

NeoThermic
zoombapup
level1
level1
Posts: 11
Joined: Tue Apr 03, 2007 8:44 pm

Postby zoombapup » Wed Apr 11, 2007 7:18 pm

Hmm, I'm not a student, so you'd have to ask them for a real response. I've heard of work occasionally going awry, but our system is generally pretty good (unless there are more than one lecturer doing the module, which could confuse the office staff who accept submissions).

Exams could never go missing, or at least I've never heard of it.

How are you finding the education approach to becoming a game programmer btw? Did you program before you started the course? Do you do much of it outside of Uni hours?
User avatar
Chris
Introversion Staff
Introversion Staff
Posts: 1172
Joined: Sat Nov 25, 2000 7:28 pm
Location: Cambridge, UK
Contact:

Postby Chris » Wed Apr 11, 2007 7:21 pm

I totally agree with zoombapup here. University is a fantastic way to learn the skills you need, but it won't teach you to be a game developer, since so much of that comes from within. But you should go to university so you can learn all the things they _dont_ teach you in lectures. All four of us Directors went to Imperial College in London, three of us doing computer science and one of us (Tom) doing electrical engineering. Imperial taught us to be good software engineers. We taught ourselves to make games, working after hours on our own projects and learning all we could. And of course, Imperial brought us together - without Imperial there would be no Introversion, and it's the same story for many startup companies around the world.

Regarding languages, we use C++ exclusively, and all of our games have been written in this. Microsoft's visual studio is our most important tool. All of our graphics are written in openGL. I can honestly say that I learnt absolutely everything I know about graphics programming from the openGL red book. I have an old second edition copy with dog-eared corners and worn out pages, and the occasional coffee stain. I bought this book just before I started work on Uplink and learnt openGL as I went along. It never left my desk during Darwinia's long development. Six years later and I still get it down from the shelf every few days - in fact I used it today on Subversion. It's the openGL bible.

That said, none of us learnt to program in C++. In fact I tried and failed several times to get into C++ when I was younger. For a while I made games in Visual Basic! Whatever tools you have to hand can be used to make games, and Visual Basic allowed me to learn quick and put together projects super fast. Before the PC I was a total Amiga junkie and spent hours in AMOS basic. Before that I learnt basic on the Spectrum 128. You have to start somewhere simple and work your way up - C++ is the language to aim for, but probably not the starting point. If you've already got lots of experience in Flash then maybe you're ready - but don't feel you need to just because its the standard. Loads of great games are made in Flash all the time.

Good luck to you!
User avatar
The GoldFish
level5
level5
Posts: 3961
Joined: Fri Mar 01, 2002 9:01 pm
Location: Bowl / South UK
Contact:

Postby The GoldFish » Wed Apr 11, 2007 8:29 pm

University taught me how to sew, apparently.
-- The GoldFish - member of former GIT and commander in chief of GALLAHAD. You could have done something, but it's been fixed. The end. Also, play bestgameever!
User avatar
wwarnick
level5
level5
Posts: 1863
Joined: Mon Oct 02, 2006 8:44 pm
Location: Rexburg, ID

Postby wwarnick » Wed Apr 11, 2007 9:05 pm

At the moment, I'm on a fairly small campus without a CS program; only C&IT (Computer and Information Technology), which is primarily everything but programming. Last year, I took the final programming course, which was the basics of java. I've since dedicated my time to teaching myself everything I possibly can, and have learned tons more than I ever did in school. So I'm transferring this next semester to a larger university with a CS program. There's no game development track, but I think CS should be sufficient as long as I continue teaching myself along the way.

wwarnick
Stewsburntmonkey
level5
level5
Posts: 11553
Joined: Wed Jul 10, 2002 7:44 pm
Location: Nashville, TN
Contact:

Postby Stewsburntmonkey » Wed Apr 11, 2007 9:29 pm

wwarnick wrote:There's no game development track, but I think CS should be sufficient as long as I continue teaching myself along the way.


I'd actually stay away from game development tracks because from what I can tell most look to be nothing more than gimmicks. In general I would think more traditional computer science tracks would serve you better.
martin
level5
level5
Posts: 3210
Joined: Fri Nov 19, 2004 8:37 pm

Postby martin » Thu Apr 12, 2007 10:03 am

Chris wrote:That said, none of us learnt to program in C++. In fact I tried and failed several times to get into C++ when I was younger. For a while I made games in Visual Basic!


yay! there is hope for me :D and mark said that VB sucked ;)
GENERATION 22:The first time you see this, copy it into your sig on any forum and add 1 to the generation. Social experiment.
Rkiver
level5
level5
Posts: 6405
Joined: Tue Oct 01, 2002 10:39 am
Location: Dublin, Ireland

Postby Rkiver » Thu Apr 12, 2007 10:29 am

Chris wrote:That said, none of us learnt to program in C++. In fact I tried and failed several times to get into C++ when I was younger.


Yes, I believe that was called Uplink. :wink: (Harken back to that nightmare quote you made.....)
Uplink help: Read the FAQ
User avatar
xander
level5
level5
Posts: 16869
Joined: Thu Oct 21, 2004 11:41 pm
Location: Highland, CA, USA
Contact:

Postby xander » Thu Apr 12, 2007 3:05 pm

martin wrote:yay! there is hope for me :D

No, there isn't.

xander
User avatar
Montyphy
level5
level5
Posts: 6745
Joined: Tue Apr 19, 2005 2:28 pm
Location: London, England

Postby Montyphy » Thu Apr 12, 2007 3:28 pm

xander wrote:
martin wrote:yay! there is hope for me :D

No, there isn't.

xander


On a related note, martin, don't you think it's time you changed your avatar? :P
Uplink help: Check out the Guide or FAQ.
Latest Uplink patch is v1.55.
User avatar
KingAl
level5
level5
Posts: 4138
Joined: Sun Sep 10, 2006 7:42 am

Postby KingAl » Thu Apr 12, 2007 3:48 pm

Inter-series rivalry will always be relevant. ALWAYS. Also, as I have pointed out before, crowbars = fun.

Return to “Introversion Lounge”

Who is online

Users browsing this forum: No registered users and 32 guests