สร้างความสนใจที่แท้จริงของบุคคลในการเขียนโปรแกรมเกม


30

ฉันสอนหลักสูตรการเขียนโปรแกรมเกมระดับ 3, 4 ปี (วท.บ. สาขาการพัฒนาเกมคอมพิวเตอร์) เราพบว่านักเรียนใหม่และที่คาดหวังมักจะสร้างความสนใจและความสามารถในการเล่นเกมการออกแบบเกมและการเขียนโปรแกรมเกม (ฉันรู้ว่าชื่ออาจมีความเฉพาะเจาะจงมากขึ้นหรือเป็นคำอธิบาย แต่มีเหตุผลภายในที่ทำให้เราไม่สามารถเปลี่ยนได้) เรามีวันเปิดให้บริการเมื่อนักเรียนที่คาดหวังสามารถมาพูดคุยกับอาจารย์และนักศึกษาปัจจุบัน

สิ่งนี้ส่งผลให้นักเรียนจำนวนมากลงทะเบียนโปรแกรมของเราที่พบว่าตนเองมีความสนใจและ / หรือความสามารถสอดคล้องกับระดับการศึกษาที่ตนเลือกผิด เรามีตัวเลือกสำหรับพวกเขาในการเปลี่ยนเมเจอร์ เราไม่มีตัวเลือกสำหรับนักเรียนที่ต้องการศิลปะหรือการออกแบบที่เกี่ยวข้องกับเกม ดังนั้นนักเรียนบางคนก็ติดมันเป็นเวลา 4 ปีที่ยากลำบาก / ไม่มีความสุขเพราะมันเป็นระดับที่ใกล้เคียงที่สุดสำหรับพวกเขาในการเล่นเกม

เราร่างเนื้อหาของโปรแกรมในหนังสือชี้ชวนของเรา แต่นักเรียนที่เข้ามาส่วนใหญ่มีประสบการณ์การเขียนโปรแกรมเพียงเล็กน้อยดังนั้นชื่อเรื่องเช่นโครงสร้างข้อมูล, วิศวกรรมซอฟต์แวร์หรือกราฟิก 3D ไม่ได้มีความหมายมากนักสำหรับพวกเขา

"ฉันไม่ได้คาดหวังว่าคณิตศาสตร์ในกราฟิก 3 มิติมากนักฉันคิดว่ามันจะเป็นเช่นการวาดภาพ ... "

Is there any way to help establish a person's genuine interest in game programming, so that they can make a more informed decision about their education?


7
Why is this like any other degree? Some of the harder engineering domains for example get exactly what you describe. Don't they just use "weed out" courses early on. I'd love to see more programs do that.
Paul

2
@Ken I know changing the name is probably not an option, but I am afraid the trend is that "game developer" is not necesserily a programmer. Here is a major Kickstarter success - try searching for "programmer" on their team page: tormentrpg.tumblr.com/teambios
Den

20
I am doing a PhD in Computer Graphics and I find really annoying when I tell someone "my PhD is in computer graphics" and they go "oh, I am terrible at drawing, you must be a good artist!". ARGHHHHHHHH
Dan

5
@Dan Sounds like the same thing electrical engineers have. "I'm studying electrical engineering", "Oh my uncle is an electrician!"
MichaelHouse

8
Reminds me of "I'm studying computer science." - "Cool, can you fix my computer?"
Exilyth

คำตอบ:


16

I still have a genuine interest in being able to teleport myself around. But I have my expectations based in reality. I think genuine interest is not what you should be gauging, but rather the expectations of the individuals.

Weed out classes are a must for any engineering degree. Make it clear that it's not a bachelor of arts, but one of science. Calculus, linear algebra, physics, discrete mathematics and algorithms should all be early in the program.

Additionally, implementing an exit survey should help you gather good information about why people are leaving and allow you to further refine your "marketing" of the course to future students.


fair comment about interest v's expectations, but if someone is really interested at least they'll be prepared to put the required work in.
Ken

2
True enough, though I think some people are not capable, even working their hardest. Even though the interest is there. The saying "you can accomplish your dreams if you work hard" is true for most, but not all.
MichaelHouse

We have a moderately high high-school maths requirement for applicants, so in most cases its not ability that's lacking. (although we do have our fair share of those who just "don't get" coding. Or linear algebra. Or calculus. Or mechanics. Or...)
Ken

If it's not ability, do you know what's causing the students to drop?
MichaelHouse

thinking about it a bit more, I think you are correct; expectation is the problem. "Game Dev sounds like fun!", until you're asked to build a view matrix. We can expect them to have a genuine interest in something they haven't hade much chance to be exposed to.
Ken

7

Consider upping the requirements to enter the program.

When I was entering school, Engineering required at least 3 heavily math-based courses: Calculus, Algebra, Physics. At the time Programming wasn't required, but I took it anyway. You could make it a pre-req now.

The pre-reqs should give students an idea about what they're getting into. In addition, be more selective about who you let in to the program: require a minimum of 80% in Programming & Math courses.

Some light should go off in their head .. prereqs imply expectation, which imply what is to come. "Hmm.. this program seems to want us to know a lot of math!"


6

As a graduated student from a Game Programming Bachelor I love your question. During the three years of my education the class shrunk from 60 students to 11.

While I may not answer your question, I want to share my thoughts:

  1. Be transparent, post some videos of some of the scarier lectures and topics. Of course it's important that the student is informed that he's not supposed to understand it all, but the natural reaction of a talent should be curiosity and fascination. Not a squirm and a chill down the neck.
  2. Don't be overly 'sexy' and selling in the description. Games are cool, 3d graphics are cool, AI is awesome, but don't forget to talk about some of the other topics they will learn. Software architecture, design patterns, debugging, vector maths, Newtonian physics, software testing, creative problem solving etc etc.
  3. Give the aspiring students a task, such as formulating a best strategy for solving a 3x3 tic-tac-toe. Or how to be able to always guess a number between 0 and 100 in 10 or less guesses. This could be hosted the first day of school, in a group or otherwise.

These are my 1137 bytes.


2
that dropout rate sounds familiar...
Ken

I believe you meant "These are my 1337 bytes." Then again, that's just my $0.02.
supersam654

Extremely late comment, but I believe the length of my post sums to about 1137 bytes. At least in UTF-8 ;)
AlexanderBrevig

6

Well, to start, lets take a step back from 'Game Programming' and talk about programming in general. Any program/call that involves writing code needs to say so explicitly, and refer to another description of programming its self.

There are few people who can program, and fewer still who will enjoy it. Obviously anyone perusing a degree in such a field should enjoy programming.

So prior to enrollment, students should fill out a survey of sorts to help them (and any guidance counselors) understand exactly what they are getting into, and whether or not they will enjoy it.

The survey should discuss the following areas:

  • Mathematics: Did the student enjoy high school algebra/precalculus?
  • Puzzles: Dose the perspective student enjoy solving puzzles?
  • Logic: Use some simple logic problems to see if the student has good logic skills
  • Critical thinking: Use some questions that test critical thinking skills

Any student that lacks the above will not enjoy programming, and thus will not enjoy game programming. You may even explain to them some basic concepts of programming, such as variables and basic syntax, show them some code and ask them to explain what it dose. If it is simple, it should not be too difficult for them to understand. A student who will enjoy programming will see the challenge and do their best to understand, and though they may get it wrong, this shows that they really do have an interest. Those who would not enjoy programming will probably not even answer, or they will answer very poorly, or simply realize that this is not for them.

Then there will be those who think they may enjoy it, but do not. Make sure students get into some real programming as soon as possible, so they can understand what they are getting into, and see how well they enjoy it.

Personally, I am just starting a degree in computer science, though I have been programming for years. I know that I love it because when I see a problem my first thought is "How could I write a program to solve this". I like to think about program structure, how could I make this more efficient, or how could I reorganize this to be more logical. I know I love it because I have tried it, and when I am programming I lose track of time, and find myself at 4 AM without having noticed that I past midnight.

To really know if someone is going to like programming, they need to try it. And you don't need a college course either, I learned most of what I know from the internet (Thank god for stack overflow!). You could try offering some kind of online introductory course (before enrollment) to programming (I would suggest JavaScript + HTML, it's easy to understand, and the effects of working with JS on a web page are much more gratifying than console applications). With such a course they will. . .

  • Learn about the importance of syntax
  • Learn basic concepts like variables, operators, conditionals, loops, and functions.
  • Learn problem solving skills
  • Understand what programming actually is

Anyone who truly will enjoy, and have an aptitude for, programming should have little difficulty in such a course. Students why find the introductory materiel difficult will probably not enjoy learning more challenging languages like Java and C++.

Once you establish that the student will enjoy programming in general, then determining if they will enjoy game programming should be as simple as asking them the question.


3

Well I am a student of Computer Games Development course, although the title is not exactly the same ( Mine is Interactive Software Technology ). As a student myself, the first thing that matters the most to establish interests in game programming/development is the way the lecturer lectures. In my course, I have subjects like Calculus, Computer Game Development ( Game design theories ), Computer Game Programming ( Real programming stuffs ). I have excellent lecturers for Computer Game Development and Computer Game Programming.

Theories, everyone hates them ( mostly ), same goes to me. But guess what? I'm motivated and interested to study the theory and practicing programming on my own due to the lecturers, or at least the major influence came from them. The way they conduct the lectures is fun, interactive, they encourage us to think and have fun with it.

In my opinion, good lecturers don't just conduct lectures, instead, they inspire and motivate their students. The name of your program doesn't really matter after students enrolled in your course a week or two later. You should make it to be like this, students enroll for the course's name, stay because of the interesting contents it has. Just like in game design, game story attracts the players to play for a period of time, learn the game mechanics then it should be the game mechanics to keep the players keep on playing. In order to keep the players to keep on playing, the game mechanics must be interesting. Same goes to your course, make it interesting, and your students will be motivated or at least interested to continue learning. And oh, one thing I noticed in my course is, we will have competitions for game designing & game programming, winner gets the prize. And I noticed some of the lazy classmates suddenly became so passion about programming and game designing, worked through day and night without much sleep. Maybe it will help you a little bit :D

Well, just a thought of a student. Hope it helps, if it doesn't , I'm sorry :)


It's great that you have good lecturers and you're right that the approach to lecturing has a big effect on students, but I think the OP is asking something more fundamental. I mean, you're assuming the person would be motivated by a good lecturer, but to me someone saying "I didn't expect so much math in 3D Graphics, I assumed it would be, like, drawing..." is just plain in the wrong major. I teach some college classes, so I've been in the position of telling someone they may be a better fit in a different major (aside: it's weird that people get so up in arms over honestly given advice)
jhocking

@jhocking Haha yes, lucky me. The reason why I posted this answer is due to "Is there any way to help establish a person's genuine interest in game programming" so yeah, I thought this would be appropriate. Yeah, he might be in the wrong major but it's not the end of his study in the course right? Yup, I understand that, because to students they will feel ashamed and maybe have "You're saying I'm not smart enough" this kind of mindset thus the emotion. I mean, it's real hurtful to hear that :(
Xeon

1
I think the confusion leads from "establish". It looks to me that the OP wanted to convey "determine", "find out about", whereas you understood it as "generate","create".
mikołak

Hmm, now that you said it, I guess you're right. What a mistake :D
Xeon

3

I'm currently in my fourth and final year of a Games Programming degree, so whilst I might not be able to answer your question directly I thought I'd share my experiences. The university I study at does have a 'Game Design' course however; which is basically 3D modelling and the use of middleware (e.g. Unity), and some students choose to switch to this course (or a hybrid design/programming).

  • When I applied to my university there was a pre-acceptance interview in which I was basically asked about my background, what I wanted to achieve etc. I don't know how much impact the interview actually had on me being accepted, but it could help dissuade students who don't have a genuine interest in game programming.
  • We were told up-front the programming languages used on the course, though prior programming knowledge isn't required it was made very clear how technically involved the course would be. There was also an indication of the level of maths involved, and if I recall correctly the course required at least a B in maths at A-Level.
  • At the open day there was plenty of students' work on display, primarily from the first years. The stuff on show was relatively 'primitive'; simple 2D games with basic mechanics, this might help reel in the expectations of students who think they are going to be making the next Call of Duty, for example.
  • I also had the opportunity to speak to current students on the course (and I got some great advice) which definitely gave me some insight into the skills necessary and challenges involved.
  • Right from the start of my degree there have been 'weed out' modules, including complex maths, programming and general graphics theory. If a student was expecting to be 3D modelling they would know fairly soon that they were on the wrong course.

Ultimately there's always going to be some students who can't keep up; over a 4 year course my class has shrunk by about 75%, but I don't think there's much else you can do other than making clear to students what the course involves.


Is there any way to help establish a person's genuine interest in game programming

In an attempt to answer your question however, would the simplest solution be to ask them? From the quote you gave of one of your students, it seems as if they know what they wanted to do, but they misunderstood the course content.


You suggestion to "ask them" is actually why I like zeel's answer. He also suggests asking them (ie. a survey) but gives specific questions to ask. It's not just about asking, it's about asking the right questions.
jhocking

2

I am not a teacher, but I'm studying computer science (though, not some game degree).

We tend to get some people every year who think they can 'do computers' when all they know is how to use an office suite or who think they know how to program when all they ever did is copy paste together a webpage. My university works hard to keep their numbers low, but there's always some who don't take hints.


At my university, when there's an open day, faculties display some of the projects they're working on or have been working on. They usually exhibit the resulting programs in the lecture halls.

To help explain the projects, they hang up posters with images, text and mathematical formulas. This might be e.g. a poster explaining pathfinding in RTS games, which also explains A*, or a poster explaining projections, showing the math behind projection matrices, or a poster explaining traffic lights modelled using petri-nets. Often, problems are described in a way visitors can relate to (e.g. traveling salesman as the shortest sightseeing tour or taxi route), with an explanation about how the problem is solved.

This serves a twofold purpose: first, visitors can see how the topic in question works, which might spark further interest. Second, there's math right there, so it doesn't come as a suprise. (also, as a side effect, visitors informed enough will often grok it right there.)

Upside: Let's people take a look at interesting stuff and the concepts behind the 'magic' being pulled of.

Downside: Lots of preparations necessary.


Faculties also run orientation courses before the semester starts, where students can get a refresher on programming and math. During orientation, prospective students are also toured around the campus and they're being helped with finding the informations they need to put together their lecture plans. At this point, students will be shown the amount of math courses (The information (what courses need to be taken and a rough outline of their content) is also freely available on the faculty websites and in study guides, so students can see what they're up for long before they sign up). During orientation, faculty members and students helping with orientation will usually talk about their own experiences (stories about pulling all nighters and working more than a day on exercises/assignments are always being told).

Upside: People know what they're in for and have an easier start.

Downside: Needs preparation. Websites need to be kept up to date. Some prospective students skip this optional preparation.


Then, most of the math courses are put at the start and are quite grindy, persuading those who didn't get the broad hints upfront to go looking for greener pastures. Also, most of the interesting courses come later and have the basic courses as a requirement (e.g. graphics programming after algorithms and data structures and, above all, after the math course which covers vector spaces).

Excercises for the basic algortihm and data structures lectures require (after a one time tutorial) programming from the get go. This is another major factor contributing to drop outs. (Students can flunk up to four excercises in this lecture... after four weeks, thoose who can't program are gone.)

Downside: Many people quit after the first semester or change to other fields. About 50%-75% loss total after the second semester, I'd guess.

Upside: The remaining people know what they're doing.


0

I suspect that the problem is that your program isn't drawing high caliber people, because this kind of fundamental confusion is plain stupid. (Does your engineering department have students who think they would be learning to drive trains?) Stupidity shows a fairly good inverse correlation to these things called grades, especially in academic subjects.

Doesn't your department look for good grades in subjects like mathematics and the sciences? Would someone with an A+ in Algebra or Physics think that making computer games doesn't involve tough computer programming? Or did you set the bar low in order to attract applicants, so that the program looks more popular? Another thing: do you have an entrance exam?

Do you have orientation or mentoring programs or activities? Is there some organized activity in which freshmen, or prospective freshmen, can spend time interacting with third or fourth year students? Or even alumni? Keep tabs on alumni and send them spam inviting them to volunteer with froshes.

Then there is the freshman course lineup. Various university programs need students to develop skills and knowledge which are missing in generic high school programs. The courses to fill in these gaps are brought in from the beginning. For instance, CS students usually face some tough data structure and program design courses in the first and second years. Specialized branches of math necessary in disciplines are brought in as early as possible, as are special skills. For instance, freshman engineers may have to take a course in drafting, with labs doing CAD. A game development degree should bring in the math and programming right from the first semester. Students who have the wrong idea can find out that they are wrong right in the beginning.

Undergrads who drop out are cash cow for the school, right? There is hardly any additional cost in adding more bodies to a class of 200, if there is physical space, but a lot of extra income. So what is the downside? It's a fantastic racket. Every department has a narrowing "pyramid": a year by year attrition of students. Look at the sizes of the yearly grad class photographs hanging in their hallways, and then look at how many kids majoring in the same program are packed into just one first year lecture hall. Why would this game development degree program be any different? Compare your attrition to that of other departments, and only worry if it is significantly different. If almost every freshman who enters your program graduates from it, that's not necessarily a good indication, and neither is a very low rate either.


1
I don't necessarily disagree with everything you're saying, but boy does it come off as insulting and/or bitter. Statements like "It's a fantastic racket" are pretty passive aggressive (or maybe just straight up aggressive.)
jhocking
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.