programming guidance and careers (18)

1 Name: #!/usr/bin/anonymous : 2008-05-25 13:23 ID:KJBAVqmP

at the moment i am on my second year (re-taking it) of a computer games programming degreeat university. In my first year they had us learning java and darkBasic and a little assembly, whereas ive heard its best to get learning c# or c++ straight away for games. in the first year we did modules on hardware, computer science, Object oriented java etc

ive decided i'd like to do a masters degree after uni. I enjoy algorithm type stuff (finite state diagrams etc) and i absolutely hate working with databases. what would be a good choice to do a degree in?

also im studying to get a head start on my second year, as im retaking the year and we did C++/directx last time, i bought ivor hortons beginning visual c++ 2005, and sams teach yourself directx in 21 days, im not sure what else there is to help me on my merry way

2 Name: #!/usr/bin/anonymous : 2008-05-25 13:56 ID:HQLqmHXV

i'm pretty excited about d for games. plz, no c++ if you can help it.

3 Name: #!/usr/bin/anonymous : 2008-05-25 14:03 ID:KJBAVqmP

c++, its kind of a requirement for my degree, it was the same for my diploma in college
i dont get whats so bad about it

4 Name: #!/usr/bin/anonymous : 2008-05-25 15:19 ID:Heaven

>>3
There's nothing bad about C++, whereas there are many things bad with D.
It's just that 90% of the C++ programmers don't know how to write C++.

My advice for you is to learn C++ as best as possible, and then learn DirectX or OpenGL, not with sams teach yourself books.

5 Name: #!/usr/bin/anonymous : 2008-05-25 18:39 ID:Heaven

>>4 There is plenty wrong with C++...

>>1 Consider the following:

Many games written in C++ fail. Let's say only about the top 2% of C++ games succeed in any markletplace. Meanwhile, almost every game written in Lisp is a financial success.

This isn't because Lisp is better for writing games (even though it is), but it's because being an expert Lisp programmer puts you beyond heads and sholders above your C++-programming "peers", and thus being an expert programmer will make your programs better.

The odd part is that it's a lot harder to become a C++-expert than a Lisp-expert. The reason why is that C++'s substantial complexities cannot be ignored in order to write useful C++ programs. This is why you see people indicate there's one-true method to making C++ work- whether they promote RAII-for-everything, or smart_ptr-for-the-win, and so on. In Lisp this simply isn't so...

6 Name: #!/usr/bin/anonymous : 2008-05-25 19:42 ID:Heaven

>>5
Seems like a flawed example. Programming quality isn't the be-all and end-all of a game's financial success or quality; far from it. Bugs and crashes can injure a good game, but lack thereof won't make a bad game any better.

If you can derive anything from that example, I think it's that games written in Lisp are more likely to be a hobbyists' labor of love (because the average PHB will not stand for such wackiness) and have a down-to-earth, realistic budget (because of the hobbyist thing, and also- I think- that Lisp is subpar in terms of performance and thus unsuitable for creating the type of mass-market game that really demands the moolah.) These two things do correlate to financial success, but you can do them in any language.

The point is, though, that if you really want to make a game and not be a programmer you should consider high-level languages. You'll be sacrificing a certain amount of performance, power, and knowledge of the low-level workings, but you'll be able to focus wholly on creating a fun experience instead of getting bogged down in data structures and network sockets.

All of this, of course, is irrelevant to the OP's main question which was about which masters' degree he/she should choose. I'd recommend good old computer science, as OP sounds like they're more into the mathematical/technical side of things and would probably dislike mass market programming (databases galore,) which is what most of the spinoff tech degrees like 'software engineering' are about. Game programming doesn't have as much of a database fetish either, AFAIK, so you could continue with that if you enjoy it (and if they even offer master's degrees in it.)

I personally think game programming/development is more enjoyable and fruitful as a hobby though... commercial games are pretty trashy these days.

7 Name: #!/usr/bin/anonymous : 2008-05-25 20:48 ID:KC/XHTCS

> I think- that Lisp is subpar in terms of performance and thus unsuitable for creating the type of mass-market game that really demands the moolah.)

http://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp

> All of this, of course, is irrelevant to the OP's main question which was about which masters' degree he/she should choose

Not at all. >>1 says they enjoy algorithm-type stuff.

8 Name: #!/usr/bin/anonymous : 2008-05-25 21:00 ID:Heaven

Yeah, I know about GOAL. Is it publicly available? Has it been ported to PC? Can you make your own games in it without being excessively limited by legal or portability issues? Otherwise it's kind of irrelevant. Sure, you could create your own Lisp implementation and compiler optimized for game development from scratch, like Naughty Dog did, but it'd be far easier to just suck it up and do the entire game in C++.

All GOAL shows is that Lisp has the potential to be a good language for professional, mass-market game development (and I expect every nearly language does, if you're willing to re-implement it like that.) Unless you're Andy Gavin, the reality is far different.

9 Name: #!/usr/bin/anonymous : 2008-05-25 21:06 ID:KJBAVqmP

hi, OP here

making games isnt what im mainly interested in, but its something i definitely want to know how to do, which is why im doing CS afterwards (ultimately, i want to discover at least one thing and name it before death) so i agree with >>5 about it being better as a hobby, i wouldnt say no to getting some work exp in that area though, for a short while.

Im very interested in CS, i know sets and sequences, finite state diagrams/transducers, traversal, recursion etc and also logic gate circuits, karnaugh maps etc

about programming, im getting a little confused because everyone i know IRL says C++ is this amazing incredible standard, that everyone should know, and people around these boards say lisp and such.

after lurking around and reading here im disappointed in my university, they have never even mentioned a language besides c++, and they never got us using any CS on a pc instead of paper

10 Name: #!/usr/bin/anonymous : 2008-05-25 21:42 ID:DYuGe6Fq

>>9
C++ is akin to Windows or to the English language as a standard. There's nothing amazing or incredible about it, except possibly backwards-compatibility and being easy to pick up if you already knew the previous mainstays (C and Pascal), and it became dominant more due to historical circumstance than anything else. It's true that everyone should know it, but that's because you're probably not going to get a job in programming without it (or with Java, which is closely related) - and you may want to want to interface with a C++ library in a language for which no bindings exist at some point, so it comes in handy to know it then.

Lisp and similar languages are talked about here because they use different paradigms from most 'popular' languages and are a great way to open your mind, think about problems in different ways, and increase your productivity. Even if you're in a situation where using something other than C++ is impractical, being well versed in languages that are very different will have made you a better programmer.

Ideally, you should dabble in as many languages as you can (within reason- you'll find that some of them have nothing new to offer over others except syntax tweaks or garbage collection, while others will introduce you to a totally new way of thinking; focus on the latter) to increase your problem-solving skill. If you particularly like one, it's fine to delve deeper into it, but keep your mind open and don't fall into the trap of believing C++ is the one true language or Scheme is the gospel of programming. Every language has its uses and benefits, depending on the situation.

11 Name: #!/usr/bin/anonymous : 2008-05-25 22:43 ID:KJBAVqmP

op here again
so you guys think i should get to grips with c++ before university starts in september, then do what they say and get A's, then when Uni is over i should learn lisp and other languages
seems fairly linear so far, i already know java so hopefully that will be useful right?

12 Name: #!/usr/bin/anonymous : 2008-05-25 23:12 ID:Heaven

>>5
Notice that %2 of successful C++ games is made by that 10% of C++ programmers I mentioned; So we agree.
Also, no, there is nothing wrong with C++. It serves a purpose, and it serves it well.

13 Name: #!/usr/bin/anonymous : 2008-05-25 23:25 ID:KC/XHTCS

>>10 C++ like Windows seems great until you use something else. Anything else. Lisp is about as anything-else as they come which is why learning it improves the capabilities and capacities of any programmer between four and ten-fold.

English has a technical capacity which is valuable, but its poetry is awful. Certain idioms are easy to express in Lisp that are difficult to express in C++, whereas the inverse isn't true.

14 Name: #!/usr/bin/anonymous : 2008-05-26 16:29 ID:KJBAVqmP

Im very interested in Lisp now, at what point should i take a break from C++ and start looking at Lisp?

15 Name: #!/usr/bin/anonymous : 2008-05-27 04:25 ID:THA1bFv/

You all seem to think that switching languages is a big issue, but it's not.

Once you master one and are familiar with a few others, you can easily make small modifications in languages you've never learned using only a simple reference sheet. You can easily learn more than one at the same time.

And you definitely shouldn't choose C++ (or Java for that matter) as your first language to master completely.
You want something that is enjoyable to use and won't bother you with inane details. Some better choices would be python or ruby.

Learning any good language will make you a better coder in every other by introducing you to new ways of thinking about your problems. It's a much better long-term strategy if you intend to be good about coding.
I'd bet it's also a much better short-term startegy even if you only care about a C++ diploma.

16 Name: #!/usr/bin/anonymous : 2008-05-27 04:25 ID:Heaven

> make small modifications in progames in languages

I meant

17 Name: #!/usr/bin/anonymous : 2008-05-27 04:26 ID:Heaven

And now I fail at spelling in my correction, great.

18 Name: #!/usr/bin/anonymous : 2008-05-27 12:00 ID:KC/XHTCS

>>14 Why not today?

Try a short tutorial on the subject at http://lisperati.com/casting.html - you don't need to download anything.

Let it sink in for a week, then read this one: http://www.gigamonkeys.com/book/

Then try and make something useful; something you might presently use some other language for.

This thread has been closed. You cannot post in this thread any longer.