Jump to content

  • Log In with Google      Sign In   
  • Create Account

Prof G

Member Since 26 Jun 2009
Offline Last Active Apr 19 2014 09:51 PM

Posts I've Made

In Topic: College Gaming Program in Need of Advisory Committee

11 June 2013 - 12:51 PM

Design through coursework in Modeling/Animation

A professor who failed to do the recommend reading?  dry.png
 
Let me provide some brief quotes from the reading I recommended above:

What is game design? It isn't programming and it isn't graphics. Game design is the setting forth of a series of documents that describe in detail what a finished game will be. It's like drawing a blueprint for a building. It's like drawing a road map of a cross-country SUV race. The purpose of game design is to create a plan that will enable the development team to create a game under a single vision.
 
To become a game designer, you will need a broad education. ... Game designers are, ABOVE ALL, effective communicators and storytellers. Don't sleep through your writing, acting, and speaking classes.  ... The point is that game designers, as creators of worlds for players to inhabit, need to have a solid understanding of what worlds are made of. ... Professional game designers like me use Microsoft Word to write design documents. I use Excel to create my tables and graphs, and I use Microsoft Paint to make most illustrations for my game design documents.  You DO have to be a writer to become a game designer. So the most important tools of the game designer are those that help him produce game design documents.

 
Before you accidentally provide a disservice to your students and to the industry, please first learn about the subject you want to teach.

 

as I mentioned there is a hunger is this area for these types of classes and we want to meet the demand.

Unfortunately, that is precisely why people (correctly) assume that most game schools are frauds, a waste of money, and should be avoided.
 
Consider both the supply and the demand.
 
First, the supply of designers.  People think "I have ideas for better games, I like games but I cannot program and cannot create art, I should be the idea guy who bosses everyone around!"  Consequently there is a huge supply of people wanting to make games.  Most of the supply is absolute garbage.  It is a very sad thing that many of these people spent money in 'game design' schools and classes only to discover real life and debt on the other end of their education.  Sadly the education system (and scammers) are pandering to these folk, taking their money and certifying hundreds of 'designers' every year.  
 
Next, the demand of designers.  A game team of fifty or one hundred people will include one or two designers.  A studio of 200 people can really only employ perhaps 4 designers total.  Openings are extremely rare since turnover is low.  New jobs are even less common, perhaps ten or twenty design jobs are created GLOBALLY at game studios every year. Most of these jobs are filled by people who already have game development experience.  Game designer is not an entry level position, and there is no reliable route to breaking in to the industry through design.
 

It is disgusting and sad to watch scammers and well-intentioned schools induce people who lose years of their lives and tens of thousands of dollars on a game designer certification that has no real-world value.

 


  
Programming is a somewhat different topic than design.  There is more turnover and many jobs available to those already in the field, but still there are only a few hundred entry level game programming jobs GLOBALLY at game studios every year.  Contrast this with the over 12,000 CS bachelor's recipients every year in just the US.
 
 
Many traditional schools will offer their traditional degrees in art or programming and include some classes focused on interactive media, games, or simulation development.  Augmenting a traditional program with a few game-related and media-related topics is useful.  If your 2-year degree were at the master's level focusing on those topics that would be somewhat useful.  However, a 2-year associates-level degree in "game design and programming" is a disservice.
 


In your haste to give students what they think they want (and what they are ignorantly willing to pay for), you may be unwittingly setting them up for real-world failure and unnecessary student debt.

 

 

Understood smile.png   At this point we have assembled the required committee and this thread can be considered "closed".  Thanks everyone for the input!


In Topic: College Gaming Program in Need of Advisory Committee

11 June 2013 - 08:30 AM

Thank you all for your replies.  I'll address some of the points mentioned above:

 

 

Remove the word "design" from your program title. That is, remove it unless you actually are teaching budding game designers, in which case remove the programming aspect.


As for it being a two year program, that is not enough for game programming. If you want a game programming job you need a 4-year degree in computer science or similar. Graduates of a two year program will be disappointed when they learn their two year degree compares negatively against the armies of graduates from 4-year programs, and the degree will not yield a job in the industry.


Go take a look at Tom Sloper's site and pay attention to the articles on game schools. Thanks to a number of for-profit schools pushing bad degrees in 'game design' you will need to overcome a lot of stigma. The articles include tidbits of what to look for in good schools, so make sure you include those good things while avoiding the bad things.

 


Yes, we are teaching both design and development.  Design through coursework in Modeling/Animation and Level Design as well as a general theory course and programming through classes in data structures,  C++ and Game Engines.  (A detailed breakdown of the curriculum and specific classes would be available to members of the advisory committee.)

 

Your point about a 2-year vs 4-year is well made and certainly something we have considered.  We are aware that a 2-year degree would not stand up against a 4-year, however as I mentioned there is a hunger is this area for these types of classes and we want to meet the demand.  We believe that through careful advising, graduates could leave our 2-year program and transfer to a university to finish their education.

 

 

I live too far away to be an "advisory person", but I do have some ideas.

 

1:  Since you already teach web development, focuses your game dev classes on JavaScript (HTML5) and PHP ( maybe some Action Script also )

2: Since it's a popular fad right now, start an "intensive learning" class, that only lasts 5 - 9 weeks - they are called "Programming Boot Camps" .

3: Make sure the classes do not teach irrelevant material.  ( One college I looked at had 60% of the credits coming from English literature, world history and public speaking ).

 

We have a class in the program dedicated to Web-based games through Flash/ActionScript.  I know Flash is a hot issue right now, but considering the success of many online Flash-based games, we decided to include this class.

 

That seems like a very high percentage of general coursework.  Regulations require that we do include some general classes, but definitely not 60%.

 

More thoughts and suggestions are welcome!

Kevin


In Topic: Teaching Very Basic Game Dev. - Best Program to Use?

08 January 2013 - 02:51 PM

Thanks for the feedback everyone.  I really like what I see over at http://scratched.media.mit.edu/ so I'm leaning towards this solution with Game Maker as a backup.  

 

I'd like to show them some basic programming concepts like logic statements, looping structures, and basic object oriented stuff relating to methods & attributes.  What I want to get away from is throwing a language like C at them and then having to spend 2 hours finding a missing semicolon.  Granted, this can be a very real part of the process, but I think our time would be best spent working with a more "visual" code creation tool like Game Maker or Scratch.


In Topic: Merge Sort

24 October 2012 - 12:58 PM


#include <stdlib.h>

#include <stdio.h>

#include <time.h>



const int ARRAY_SIZE = 11;

void merge_sort(int a[], int l, int r);

void merge(int a[], int i, int j, int k, int size);

void print_array(int* a[]);

int main(){

    int a[] = {10,9,8,7,6,5,4,3,2,1,0};

    printf("AFTER SORT\n");

    clock_t begin, end;

    double time_spent;

    begin = clock();

    merge_sort(a,0,ARRAY_SIZE);

    end = clock();

    time_spent = (float)(end - begin)/ CLOCKS_PER_SEC;

    printf("TOOK: %f TO SORT", time_spent);

    getchar();

}

void merge_sort(int a[], int l, int r)

{

    int mid;

    if(r <= l)

	    return;

    mid = (r+l-1)/2;

    merge_sort(a, l, mid);

    merge_sort(a, mid+1, r);

    merge(a, l, mid, r, r-l+1);

}

void merge(int a[], int i, int j, int k, int size)

{

    int ipos = i;

    int jpos = j+1;

    int mpos = 0;

    int m[size];

    while(ipos <= j || jpos <= k){

	    if(ipos <= j && jpos <= k){

		    if(a[ipos] <= a[jpos]){

			    m[mpos] = a[ipos];

			    mpos++;

			    ipos++;

		    }else if(a[jpos] <= a[ipos]){

			    m[mpos] = a[jpos];

			    mpos++;

			    jpos++;

		    }

	    }else if(ipos > j){

		    while(jpos <= k){

			    m[mpos] = a[jpos];

			    mpos++;

			    jpos++;

		    }

	    }else if(jpos > k){

		    while(ipos < j){

			    m[mpos] = a[ipos];

			    mpos++;

			    ipos++;

		    }

	    }

    }

    return m;

}

void print_array(int* a[]){

    int i = 0;

    for(i = 0; i < ARRAY_SIZE; i++)

	    printf("%d: %d\n", i+1, a[i]);

}


In Topic: Algorithm Question

01 January 2011 - 05:35 PM

So thanks to Wikipedia, I've come up with the following:



private void bfs(List<Room> rooms, Room room, Pen pen, Rectangle rectangle, Graphics graphics)
{
Queue<Room> q = new Queue<Room>();
q.Enqueue(room);
room.visited = true;
Console.WriteLine(room.name);
graphics.DrawRectangle(pen, rectangle);
while (q.Count != 0)
{
Room v = q.Dequeue();
Console.WriteLine("v: " + v.name);
foreach (Room edge in v.getExits())
{
if (!edge.visited)
{
edge.visited = true;
Console.WriteLine("edge: " + edge.name);
q.Enqueue(edge);
}
}
}





This code appears to successfully traverse the graph. Now, the difficulty is deciding where to set the rectangle position and where to draw it. The physical drawing of the graph will be very logical and grid-like since there are only N,S,E and W exits (also, IN and OUT which I'll deal with later). Each room will be 100 pixels from it's connecting room. Of course this also introduces the problem of overlapping rooms...

PARTNERS