Jump to content

The state of game design today


jetcitywoman

Recommended Posts

I'm going to log a proper complaint on that game studios forum, but thought I'd share my rant here with you guys, and contrast it with someone who knows what he's doing - of course, I mean Jeff. I downloaded a cool new game from the app store called Dark Meadow. It uses the unreal engine, so as you can imagine its super cool to play. The problem is the designers got such hardons from the Unreal engine, that they forgot one of the basics... How to save your progress.

 

People who play on the iPad platform can be assumed to be, you know, mobile. Which means they likely get interrupted alot. I searched on their forum for other complaints about the inability to save/load your progress, and this is what their response is: things you've collected are saved, but each time you come into the game you start in the start location. It's actually a game objective to wake up 31 times. So they actually DESIGNED it this way, forcing you to watch the opening sequence and re-explore rooms at least 31 times in a row.

 

Unbelievable.

Link to comment
Share on other sites

Originally Posted By: Dantius
Originally Posted By: ĐªŔŦĦ ËRNIË
Originally Posted By: Randomizer
Unreal

understated corny line of the day


Almost Lilith-esque in its simplicity. Nine point five out of ten.


Almost, but it's trying a little too hard. Also points need to be taken away for the use of a capitial letter; something like 'thats unreal' would've worked better, in my opinion. 5/10, if we're being generous.
Link to comment
Share on other sites

Originally Posted By: Nikki.
Almost, but it's trying a little too hard. Also points need to be taken away for the use of a capitial letter; something like 'thats unreal' would've worked better, in my opinion. 5/10, if we're being generous.


That would drag it out too long and weaken its thrust. I agree that the capital letter did detract slightly, but simply "unreal" would be better that "thats unreal" by still communicating the exact message WLOG but in half the characters.

In retrospect, perhaps a nine. Definitely not a five, though.
Link to comment
Share on other sites

Indeed it was a good pun.

 

Just wanted to rant because it's sooo hard to find games up to the Spiderweb par, and I need to play SOMETHING in between SW game releases. This one has alot of brilliance, but then they kill it with something soooo basic. Isn't there a book on game design that these studios can read? (Or by this point in history, I would expect maybe five thousand books...)

Link to comment
Share on other sites

Originally Posted By: jetcitywoman
it's sooo hard to find games up to the Spiderweb par


That reminds me of what I've always wondered about since I learn that Jeff just wrote a game (Exile) and when it turned out to be a success, he just quit grad school and turned game making into his profession - just like that, and all by himself. He's a real genius and I regard him as my Guru.

Where and how did he learn to both design and program games ? I'm a game-making enthusiast and I dream of emulating Jeff, but if I just quit college and declare myself to be an indie developer, I wouldn't get very far. So how did Jeff do it ? He didn't go to any game development course, did he ? Did he just read books on the subject of computer game design?
Link to comment
Share on other sites

Originally Posted By: ɮɱα
So how did Jeff do it ? He didn't go to any game development course, did he ? Did he just read books on the subject of computer game design?


Yeah, he pretty much bought a bunch of books and taught himself to program. It's not exactly a method I'd recommend: if you want to be a programmer and you've got the time and the money to take a computer science course, it's worth doing.
Link to comment
Share on other sites

^^^ Amen. I've learned more in the past week from the C programming course I'm taking, than from reading Practical C++ Programming cover to cover.

 

The homework and lectures help. OTOH, so does having the right book (in this case the second edition K&R text). But I find I'm bad at setting my own pace; YMMV.

 

(Also, if you go this route, be careful where you take your programming courses. The ones I'm taking are credited night courses at UMass Boston, and are comprehensively excellent. But I've also seen some at Northeastern, which were similarly priced but abhorrently bad. Not all universities will give you your money's worth.)

Link to comment
Share on other sites

Originally Posted By: Lilith
Originally Posted By: BMA
So how did Jeff do it ? He didn't go to any game development course, did he ? Did he just read books on the subject of computer game design?


Yeah, he pretty much bought a bunch of books and taught himself to program. It's not exactly a method I'd recommend: if you want to be a programmer and you've got the time and the money to take a computer science course, it's worth doing.
I always assumed Jeff had some initial programming experience as part of his math degree. A lot of people learn some programming during math/science/engineering degrees... but that might be selection bias on my part.

I TA'ed an introductory CompSci course that used the first book here as a textbook (the course content didn't actually follow it, but it was used as a reference textbook). As with any textbook, it isn't perfect (most notably, it avoids OOP, which makes some of the later examples very ugly), but anyone wanting to learn something beyond AvernumScript could do a lot worse. If nothing else, it's very good at teaching basic concepts like what identifiers, variables, functions, etc. are.

(No idea what the second book's like; it wasn't available at the time.)
Link to comment
Share on other sites

Originally Posted By: Randomizer
It depends upon the instructor. Some just sit and read the book to you. I heard a story of one professor playing a tape of him reading the text book and then rewinding to replay the important parts. smile

i had a professor who would download powerpoints from the instructor site and then read it to us word for word.
Link to comment
Share on other sites

Originally Posted By: Miramor
The ones I'm taking are credited night courses at UMass Boston, and are comprehensively excellent.


I'm delighted to hear that UMB has something good. I did a sort of glorified TA job there for a year once (where glorification equalled a fair bit of money) on a horribly lame joke of a large-enrollment course. I did my best to make it interesting, not least because I needed to make it interesting for me, and invented a novel learning exercise that I still kind of like; but it was a depressing experience still. There were a few really good students, and I was torn between being glad they were there, and wanting to shake them and yell in their faces that they could be doing so much better for themselves somewhere else.

I didn't yell at them, and I always hoped that other courses at UMB were more reasonable. I'm glad to hear it's true.
Link to comment
Share on other sites

SoT is a physicist, and from his description it sounds like he was working as a professor/lecturer/adjunct (although adjuncts don't, as a rule, make a fair bit of money) there once upon a time.

 

—Alorael, who wonders somewhat about the sorts of people who show up in different courses. His night classes have been very different from those he takes during the day. The former are more likely to have students just filling in needed credit hours and not really paying much attention. Night classes have some of those too, of course, but they're more likely to have professionals pushing themselves hard to get a degree, or another certificate, or some other necessary qualification. You get a wider range of people, and more of them are engaged and focused.

Link to comment
Share on other sites

Originally Posted By: Lilith
Yeah, he pretty much bought a bunch of books and taught himself to program. It's not exactly a method I'd recommend
I tried this method with C++, but it didn't work out too well. You'd think I'd have an easy time, thanks to previous classes in other programming languages....
Originally Posted By: Lilith
if you want to be a programmer and you've got the time and the money to take a computer science course, it's worth doing.
Doing that now. Or more accurately, taking a refresher (and prerequisite) programming logic course. Then I'll start with C++ in the fall.

Originally Posted By: Miramor
^^^ Amen. I've learned more in the past week from the C programming course I'm taking, than from reading Practical C++ Programming cover to cover.
I also have Practical C++ Programming, and I find it does a much better job as a handy reference than a teaching tool. For me, C++ Without Fear is a bit better teacher.

One book I was told to avoid was C++ For Dummies. After flipping though it once, I can see why; it's horrible.
Originally Posted By: Miramor
The homework and lectures help. OTOH, so does having the right book (in this case the second edition K&R text). But I find I'm bad at setting my own pace; YMMV.
That's why I decided to go back to college; apparently I don't have the self-discipline to do it on my own.
Link to comment
Share on other sites

Lilith,

You are oh so right on this. Without the concepts of structured programming techniques to make my code more readable, documented and maintainable, or a good understanding of data structures, I wouldn't be working at the top level of the cybernetics pyramid. These are things that always get short shrift in any book about programming in a particular language. There are books out on concepts, but they are most often overlooked by people who go down the self-training model.

 

I have seen code written by people who had not had any training, and their code is inefficient, slow and almost impossible to understand or maintain. There are, of course, exceptional people who just "get it" without a lot of formal training, but these are rare eggs.

Link to comment
Share on other sites

It was nominally a physics course, but it was 'Science for Humane Survival', or some such thing. A large enrollment course that a lot of people took just to punch their core science requirement ticket. It had started in the 70's or something as some kind of idealistic 'science for the people' course, or something like that, but by the late 90's it had sunk to such a pathetic low that the lecturer had to take attendance, and threaten to assign marks for it, to get the students to show up for his lectures. The students were only being sensible. His lectures were staggeringly awful. I sat in on one for which he simply clicked up HowStuffWorks.com on the lecture hall's big screen, and then proceeded to misinterpret what was written there.

 

But at that time it was the physics department's main reason for existence, because it brought in most of their enrollment. The course included discussion meetings, as well as the lectures, and needed a TA to run these. I'm not sure they had any grad students at all, but at any rate they had none who would do this course, so they paid me $5000 a semester for a few hours work per week. At the time I was between jobs as a senior post-doc at MIT and a full professor in Germany, so they kind of lucked out. I think I did a good job for them, and made the course somewhat worthwhile for some of the people.

 

At the time I didn't actually know I would get the job in Germany, and that my wife would be willing to move, so I was quite discouraged. I went as far as to meet with a psychiatrist to see whether I was clinically depressed, and she tentatively concluded that I wasn't. But I did see a couple of counseling psychologists, and they were really helpful. Absolutely earned their money, as far as I was concerned.

 

One advised me that I needed to find a way to make this job at UMB interesting for myself, or it would be a disaster. So I tried to do that, and invented what I think was a new educational exercise: the idealized transcript. After every discussion meeting, the students were each supposed to turn in a transcript of the discussion, not as it actually was, but as it (in their opinion) should have been. The statements they attributed to other people in their transcripts had to be accurate; I took notes in the actual discussion, and would penalize them if they grossly misquoted anyone. But they were allowed to express other people's statements in their own words, and to pick and choose whom to quote, in order to make a transcript that coherently followed a theme. They were also allowed to entirely invent contributions from themselves, putting into their transcripts quotes from themselves that they had never actually said during the class; but only up to half of the total transcript length.

 

It worked quite well. It only took one or two weeks for the students to get the idea of what they were supposed to do. It made for interesting discussions, in which everyone paid close attention to what everyone else said. I think there's a lot to be said for the exercise. For one thing, it really isn't easy to do it well, but it isn't so hard to do a reasonable job. I had a few really bright students, who produced some really good discussions, and a fair number who barely understood English, but kind of got the idea.

 

One guy still kind of haunts me. He was really smart. He regularly made the points that I was planning on making, and had been patting myself on the back for being clever enough to make. But he was clearly not very well educated. He did not know how to write in the style that commands academic respect. I wish I had somehow taken him aside and explained to him what his situation was. In fact, he made such good points that I found myself arguing with him, and he seemed to just take this as me slapping him down. It was more like the coach getting getting unexpectedly tapped on the jaw by a youngster in the boxing club, and hitting back hard in reflex. He made me think, and forget to teach. On the other hand, I expect he has probably found a way to do okay. I wish I could have helped him more than I did, but probably he didn't really need any help from me.

 

Anyway, since then UMB physics has hired at least one professor that I know is a seriously good researcher. He works cleverly, and on important topics. So I'd like to think they've come back from the dead and become a serious place. I always hoped that the rest of the school was better even at that time. I'm pleased to know that it is.

Link to comment
Share on other sites

Wow. Sad story there.

 

I will say, regarding the courses I'm taking, that they've so far been consistently interesting and consistently difficult - not because of poor instruction, but because the material requires serious thought. These are 200-level CS courses though, not sure what this says about lower or higher level courses.

Link to comment
Share on other sites

Originally Posted By: Harehunter
I have seen code written by people who had not had any training, and their code is inefficient, slow and almost impossible to understand or maintain. There are, of course, exceptional people who just "get it" without a lot of formal training, but these are rare eggs.
I've seen code written by professionals that was so bad that I nearly gagged.

I guess I was just lucky to have had a good teacher back in the late 90's. He taught the COBOL class I was taking, and was slightly fanatical about writing good documentation and efficient, reusable code.
Link to comment
Share on other sites

That's soooo easy. I can teach you some.

----------

So, is it going to be scripts? or actual game programming?

(Both are for absolute beginners)

----------

For scripts, you can check some posts about item and spell ids.

----------

For actual game programming, you need to download Game maker, the demo can teach you a lot already...

Link to comment
Share on other sites

What language were you thinking of learning ?

 

I'm no expert, but I think its good to start with 'BASIC'. Its usage of simple English words to perform elementary operations makes it quite beginner-friendly.

 

Then move onto C/C++. Once you know how a programming language works, you should have less trouble understanding the flow of control of a new one. After all, they are just different ways of instructing a computer.

Link to comment
Share on other sites

Mystic.

I have to agree with you. But there are many "professional" programmers who have not had any training. And just because someone has had formal training in programming, it does not guarantee that their code would be much better than that written by a thousand monkeys.

 

We used to have one of those professional programmers who would use a GOTO statement from some unrelated section of code into the ELSE clause of an IF-THEN-ELSE construct, just to save a single WRITE statement. It was enough to drive any spaghetti sorter straight into the asylum.

 

Want to know the scary part of that? That kind of coding technique, if you could call it that, runs rampantly into our application security subroutine.

 

@Cairo Jim,

While C++ and C# are probably the most applicable language to learn, they are not the easiest language to learn. BASIC is by far the easiest to learn, but it lacks features you would need to learn in order to become a proficient programmer.

 

I would recommend PASCAL as a good compromise. It has a simpler syntax like BASIC, but it also has the features of functions and scope of variables that allows you to write recursive code which is sometimes needed to efficiently work with some data structures. It's too bad that it does not get used for any real programming.

Link to comment
Share on other sites

What your first programming language will be really depends on what your goal is. If you want to be a web developer, I'd recommend starting with something like PHP and Javascript (and HTML and CSS). If your goal is to start modding games, start learning your engine's scripting language. If you want to animate, learn Flash or whatever. If you have a specific goal in mind, learning a generic programming language is kinda like learning Latin if all you want to do is learn Spanish. Sure, learning Latin helps if you want to learn all the Romantic languages, but if all you want to do is learn Spanish, just learn Spanish. That said, if your goal is "I want to program", then do start with something like Java or Python.

 

Speaking from personal experience, I'd recommend against QBASIC (or any of the BASIC languages) being your first language. They'll give you bad habits, and little actual understanding of the underlying theory. Though its influence can be unlearned in time.

 

(Perl is another language I learned early on that also teaches you bad habits. I still use it, though, because it's so bloody well suited for certain tasks.)

 

C/C++ are fine languages, but they are 'low level' languages, the next step up from assembly. For this reason, I think every programmer should know them, not only because they are popular, but also because they force you to understand the underlying architecture of computers. But for the same reason, I'd recommend against them being your first language. It's more important for you to understand what a variable is, or a function is, than to understand how strings are stored internally, or what the difference between the stack and the heap is.

 

C# is another decent language, but there's not that much difference between it and Java (C#'s history is steeped in lawsuits). I would recommend Java over it, simply because there's more free support for Java than for C#, but again, this depends on what your goal is.

 

My two recommendations for a starting language are Python and Java. You can check an earlier post of mine in this thread for more about Python, and a link to an online textbook. I'd recommend finding a textbook online or in your library if you are being completely self-taught. Both Python and Java have good online tutorials and documentation at their home pages (though I haven't done any Java programming in a while, so maybe things have changed now that Oracle has taken over). I find that Python is an easier language to teach, but my internal jury is still out on what the better language to learn is. Once again, it all depends on what your purpose is.

Link to comment
Share on other sites

Originally Posted By: Harehunter
Mystic.
I have to agree with you. But there are many "professional" programmers who have not had any training. And just because someone has had formal training in programming, it does not guarantee that their code would be much better than that written by a thousand monkeys.

We used to have one of those professional programmers who would use a GOTO statement from some unrelated section of code into the ELSE clause of an IF-THEN-ELSE construct, just to save a single WRITE statement. It was enough to drive any spaghetti sorter straight into the asylum.

Want to know the scary part of that? That kind of coding technique, if you could call it that, runs rampantly into our application security subroutine.
Sounds similar to the code I saw. eek I wish I had a copy; I'd post it here as a great example of how not to code.

The professionals I'm referring to had been writing programs for decades, and some of them learned FORTRAN and COBOL shortly after languages' beginnings. Needless to say, these guys should've long since known better. But when you're looking through some code, and one line is documented with, "Only I know what this line does," you know you've found some scary stuff--especially after the original programmer has long since retired.
Link to comment
Share on other sites

Originally Posted By: Dintiradan

C/C++ are fine languages, but they are 'low level' languages, the next step up from assembly.


What, really ? We were taught that binary is low level, assembly is middle level and C/C++ (and all the rest of it) are high level. grin

I guess the term 'high level' was just loosely used to mean that they are as similar as is possible to a language which humans communicate in.
Link to comment
Share on other sites

Programming is definitely something to actually take classes on. Visual arts you don't need schooling. You can YouTube "how to use Photoshop" and you will find great videos showing you how to use specific tools in the program. No such things exist for programming, at least as far as I have found

Link to comment
Share on other sites

Originally Posted By: BMA
Originally Posted By: Dintiradan

C/C++ are fine languages, but they are 'low level' languages, the next step up from assembly.


What, really ? We were taught that binary is low level, assembly is middle level and C/C++ (and all the rest of it) are high level. grin


I was reading about this the other day. Since there's a lot of new langauges coming it, they're making C/C++ look a bit antiquated
I haven't got any specific long term goals, mostly because I don't know what learning something like this is capable of. I've been using or been around computers for a long time, but haven't learnt bugger all about them. So I thought I may as well learn something that could be useful.
Link to comment
Share on other sites

Originally Posted By: BMA
Originally Posted By: Dintiradan

C/C++ are fine languages, but they are 'low level' languages, the next step up from assembly.


What, really ? We were taught that binary is low level, assembly is middle level and C/C++ (and all the rest of it) are high level. grin

I guess the term 'high level' was just loosely used to mean that they are as similar as is possible to a language which humans communicate in.
Maybe 'lower level' or 'mid level' would be a better term; there's not really any consensus on what languages get what label. Most people would consider assembly to be the lowest level (nobody writes in binary). Something like Python or Java would be a high-level language. C/C++ are sort of 'mid-level' languages. They can do anything that high level languages can do, but the focus is different. Memory management is explicit, you're working directly with pointers, you're able to do low level operations like bit shifts, or signal handling. C is good for writing device drivers, or operating systems, or applications where performance is an issue and thus you want to directly handle how memory is allocated. But you're also missing a lot of safeguards that higher level languages offer, like preventing integer overflow or subscript checking.

There's not really any (good) programming languages that are as high level as natural languages are. People have tried, but replacing glyphs with words doesn't really do much; you still need a formal grammar with no ambiguities.

(Well, I guess the highest level languages are natural languages. Somebody writes a design document, and passes it to a human compiler, also known as a programmer, who compiles it into a program. tongue )

Originally Posted By: shoopypit
Programming is definitely something to actually take classes on. Visual arts you don't need schooling. You can YouTube "how to use Photoshop" and you will find great videos showing you how to use specific tools in the program. No such things exist for programming, at least as far as I have found
You can find stuff like 'How to make a blog with Ruby on Rails in 10 minutes' online easy enough. If all you want to do is perform a specific task, you can usually use your Google-fu to find a tutorial. But Slarty's right, tutorials won't cut it when you want a broader understanding.
Link to comment
Share on other sites

Originally Posted By: Harehunter

@Cairo Jim,
While C++ and C# are probably the most applicable language to learn, they are not the easiest language to learn. BASIC is by far the easiest to learn, but it lacks features you would need to learn in order to become a proficient programmer.

I would recommend PASCAL as a good compromise. It has a simpler syntax like BASIC, but it also has the features of functions and scope of variables that allows you to write recursive code which is sometimes needed to efficiently work with some data structures. It's too bad that it does not get used for any real programming.


Now thinking about it, maybe learning something like Basic (or equivelant)first would be the go, just to see if I et the hang of it. Hopefully I can find a decent, practical use for it down the track.
Link to comment
Share on other sites

We have this on the whiteboard in the CompSci common area at the moment:

languages.jpg

 

Apologies for the image quality; I took it with my netbook's webcam. It started out with just C and C++ arguing, and like always, people just added to it.

 

A while ago, we had the old Prolog joke. How many Prolog programmers does it take to screw in a light bulb?

 

Click to reveal..
Yes.
Link to comment
Share on other sites

Originally Posted By: shoopypit
I guess it depends on your natural skills. For me it is easy to learn how to use programs.


Well, I found it quite easy to learn how to use a piano. You tap the little keys, and it makes different sounds!

But in a sense I'd agree, after all. A talented artist who has done a lot of drawing can be cranking out some cool stuff with Illustrator or Photoshop after merely learning the basic ropes of the application, and then messing around for a few hours. If you don't have that skill, though, you can master all the menus and palettes, and still be quite unable to draw.
Link to comment
Share on other sites

Speaking of programming languages, has anyone heard of one called FORTH? It was a stack-based language, i.e. all operations were performed by pushing values on the stack, an popping them off for calculation or storage. For example:

 

COBOL

ADD A TO B GIVING C

 

FORTRAN, BASIC, PASCAL

C = A + B

 

FORTH

A @ B @ + C !

(Meaning:

A - get the address of variable A and put it on the stack

@ - pop the address off the stack and push the value onto the stack

B - get the address of variable B and put it on the stack

@ - pop the address, push the value

+ - pop the top two values from the stack and push the sum on top

C - you know the drill by now

! - pop the address off the stack and pop the value off under it to storage.

Link to comment
Share on other sites

Open Firmware for PowerPC Macintoshes was written in Forth...

 

I don't know much about the language itself. I've heard it's more robust than C, and has similar performance, but is harder to learn (not surprising looking at the syntax). Also there's the small issue of almost everything on the desktop being written in or otherwise based on C.

 

Kind of a shame IMO; it seems to me that there are several other low-level langauges available, with more features and less fragility. Fortran 95 is supposed to have some impressive capabilities for instance.

 

(Hmm, and Fortran 2003 is supposed to be wholly interoperable with C. Alas, GCC doesn't entirely support the 2003 standard.)

Link to comment
Share on other sites

I highly recommend starting off by learning Whitespace. tongue

 

But seriously, PHP in my opinion is a good starting language. HTML knowledge is a good idea, but you can certainly make PHP do stuff without using HTML. Pretty easy syntax as well, and it's easy to use both procedural and OO code without things getting too unhandy.

 

If that's not to your liking, I would then recommend C++ or Python.

 

One thing that seems to happen a lot that kind of bugs me is Java. Probably just bias on my part, but the only useful thing I have seen about Java is that it is easy to learn. Beyond that, I have yet to see a Java applet that is actually decent. It's useless on the desktop (and in my experience is a massive resource-hogging beast) and as a web technology is about as useless, compounded by the fact that decent stuff like Javascript and HTML5 (Hell, even Flash) is destroying it on the market. I'd like to see someone prove me wrong here, it'd be nice to see such a pain in the ass language being not a pain in the ass.

 

Anyway, back on track, PHP and C++ are both pretty much at the head of their respective markets/fields/whatever. C++ you just need a compiler, PHP requires you to set up a webserver or use the unhandy command-line version, but is nice in that you don't have to compile. Python is particularly popular in the FOSS arena, it seems.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...