• Advertisement


  • Content count

  • Joined

  • Last visited

Community Reputation

129 Neutral

About java_head

  • Rank
  1. College Gaming Program in Need of Advisory Committee

    A professor who failed to do the recommend reading?     Let me provide some brief quotes from the reading I recommended above:   Before you accidentally provide a disservice to your students and to the industry, please first learn about the subject you want to teach.   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    At this point we have assembled the required committee and this thread can be considered "closed".  Thanks everyone for the input!
  2. College Gaming Program in Need of Advisory Committee

    Thank you all for your replies.  I'll address some of the points mentioned above:       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.       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
  3. Greetings GameDev.net! I have a rather odd request and I'm unsure if this is the right place to ask such things, but here goes:   First some background:   I teach Web Development at a rural community college in Iowa.  I've also taught some elective game development classes.  In recent years there has been great interest from high school students in the area wanting learn about game development.  In an effort to meet this need, my college has tasked me with putting together curriculum for a full 2-year Game Development & Design degree.  I have completed this task and now I need your help...   A request: I am in need of volunteers that have experience working in the gaming industry to give their opinions and input regarding the curriculum we have created.   Basically, you would be serving on the "Advisory Committee" for the program.  As I mentioned, my school is located in rural Iowa so we are without direct access to game dev. companies locally.  Advisory Committee meetings would be held online once per year, or ongoing through a forum or group chat of some kind.  Once the advisory committee gives its blessing on the curriculum, it can be pushed through the necessary state agencies and departments.   In conclusion: Dedicated professionals need only apply.  Even though graduates of the program would most likely need to travel to find entry level employment, the need and desire is here and we want to provide students the opportunity to succeed in the field.     Mods, of course, please move this to a more appropriate home, if you feel there is one.    Thanks for your time! Kevin
  4. Teaching Very Basic Game Dev. - Best Program to Use?

    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.
  5. Hello Fellow game dev'ers!   I've been tasked with teaching some younger folks (middle-school to junior high age) basic game development this summer.  I'm not used to teaching at this age level, so I thought I'd solicit some advice from this very knowledgeable community.     I really want to shy away from teaching a programming language.  I'd rather teach programming concepts through some kind of visual point-and-click program that is also be used to build games.  We have a bit of a budget so the program doesn't necessarily have to be free/open source. What pieces of software like this exist?     We have about 4 days and a few hours each day with evenings to work on projects.  Obviously the kids won't be able to obtain an in-depth knowledge of anything really in this short time, they just need to be able to present some kind of "final product" at the end of the 4 days.   Thanks for your suggestions! Kevin
  6. Merge Sort

    [CODE] #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]); } [/CODE]
  7. Merge Sort

    I'm not new to programming, but new to the C language. I'm using it as my vehicle for exploring different classic algorithms and I'm a bit stumped when it comes to this particular divide-and-conquer algorithm known as Merge Sort. I understand conceptually how it is supposed to work, but when actually implementing it in a programming language, my code below is causing my program to crash. Any help or feedback would be appreciated! Oh and no, this isn't a homework assignment [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img] Please find the code below...
  8. Algorithm Question

    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...
  9. Algorithm Question

    Quote:Original post by dmatter Quote:Original post by Dancin_Fool You should be able to traverse through all your rooms using a simple recursion function. Here's some pseudo code that I think should work.Not quite, recursion requires a base case to prevent infinite recursion; you could add a flag to check for already-visited rooms. Or, if you went for a purely queue-based traversal technique, then you only want to be expanding nodes on the open-list iff they are not in the closed-list. The problem I run into with the flag for already visited rooms is the condition of what it means to be "already visited". A node may be already visited, but need to be revisited. Ahhhh! This is driving me crazy :p
  10. Algorithm Question

    This is what I have so far. Sorry if it's a lot, but I thought you all might find it interesting. It works and draws properly for the current world configuration, but goes into an infinite loop. Also, pRoom is the previous room. private void drawRooms(Room room, Room pRoom, Pen pen, Rectangle rectangle, Graphics graphics) { graphics.DrawRectangle(pen, rectangle); setRoomTraversed(room, pRoom); if (room.northRoom != null && !room.northRoom.visited && room.northRoom != pRoom) { rectangle.Y -= OFFSET; if (getConnectingCount(room.northRoom) == 1) drawRooms(room.northRoom, room.northRoom, pen, rectangle, graphics); else drawRooms(room.northRoom, room, pen, rectangle, graphics); } if (room.southRoom != null && !room.southRoom.visited && room.southRoom != pRoom) { rectangle.Y += OFFSET; if (getConnectingCount(room.southRoom) == 1) drawRooms(room.southRoom, room.southRoom, pen, rectangle, graphics); else drawRooms(room.southRoom, room, pen, rectangle, graphics); } if (room.eastRoom != null && !room.eastRoom.visited && room.eastRoom != pRoom) { rectangle.X += OFFSET; if (getConnectingCount(room.eastRoom) == 1) drawRooms(room.eastRoom, room.eastRoom, pen, rectangle, graphics); else drawRooms(room.eastRoom, room, pen, rectangle, graphics); } if (room.westRoom != null && !room.westRoom.visited && room.westRoom != pRoom) { rectangle.X -= OFFSET; if (getConnectingCount(room.westRoom) == 1) drawRooms(room.westRoom, room.westRoom, pen, rectangle, graphics); else drawRooms(room.westRoom, room, pen, rectangle, graphics); } } private void setRoomTraversed(Room room, Room pRoom) { bool flag = true; List<Room> connectingRooms = new List<Room>(); if (room.northRoom != null) connectingRooms.Add(room.northRoom); if (room.southRoom != null) connectingRooms.Add(room.southRoom); if (room.eastRoom != null) connectingRooms.Add(room.eastRoom); if (room.westRoom != null) connectingRooms.Add(room.westRoom); connectingRooms.Remove(pRoom); foreach (Room r in connectingRooms) { if (!r.visited) flag = false; } if (flag) room.visited = true; } private int getConnectingCount(Room room) { List<Room> connectingRooms = new List<Room>(); if (room.northRoom != null) connectingRooms.Add(room.northRoom); if (room.southRoom != null) connectingRooms.Add(room.southRoom); if (room.eastRoom != null) connectingRooms.Add(room.eastRoom); if (room.westRoom != null) connectingRooms.Add(room.westRoom); return connectingRooms.Count; } }
  11. Algorithm Question

    Ah graph traversal. I thought it might be related to this, but wanted to be sure. As you know C# provides mechanisms for easy drawing of rectangles, so my questions aren't really related to drawing. Regarding the pseudo-code, I have tried code resembling that, but there is nothing to terminate the recursion. Also, if you keep a list of visited rooms it gets a little hairy, because a room could be visited, but you may need to come back to it after, for instance, drawing all of it's north rooms. Still scratching my head on this because it seems so simple, but when I try to do it simply using recursion, there are all kinds of cases that come up such as marking rooms visited, resetting the drawing rectangle and keeping track of the previous room visited to do retrace backwards in the graph. Thanks for the help so far everyone, I'll keep plugging away at this!
  12. Algorithm Question

    Hello, I'm designing a text based RPG in C# that has a graphical world editor. The "world" data structure consists of a List of type Room, where the room class looks like this: class Room { public int id { get; set; } public string name { get; set; } public string shortDescription { get; set; } public string longDescription { get; set; } public Room northRoom { get; set; } public int northRoomId { get; set; } public Room southRoom { get; set; } public int southRoomId { get; set; } public Room eastRoom { get; set; } public int eastRoomId { get; set; } public Room westRoom { get; set; } public int westRoomId { get; set; } public Room inRoom { get; set; } public int inRoomId { get; set; } public Room outRoom { get; set; } public int outRoomId { get; set; } public List<Item> items; public List<Npc> npcs; public bool visited = false; public Room(int id, string name, string shortDescription, string longDescription, List<Item> items, List<Npc> npcs, int northRoomId, int southRoomId, int eastRoomId, int westRoomId, int inRoomId, int outRoomId) { this.id = id; this.name = name; this.shortDescription = shortDescription; this.longDescription = longDescription; this.items = items; this.npcs = npcs; this.northRoomId = northRoomId; this.southRoomId = southRoomId; this.eastRoomId = eastRoomId; this.westRoomId = westRoomId; this.inRoomId = inRoomId; this.outRoomId = outRoomId; } public Room() { } public void addItem(Item item) { items.Add(item); } public void removeItem(Item item) { items.Remove(item); } public void addNpc(Npc npc) { npcs.Add(npc); } public void removeNpc(Npc npc) { npcs.Remove(npc); } public List<Room> getExits() { List<Room> exits = new List<Room>(); if (northRoom != null) exits.Add(northRoom); if (southRoom != null) exits.Add(southRoom); if (eastRoom != null) exits.Add(eastRoom); if (westRoom != null) exits.Add(westRoom); if (inRoom != null) exits.Add(inRoom); if (outRoom != null) exits.Add(outRoom); return exits; } } As you can see, each room can point to a number of other rooms. The world structure loads fine, I can walk around between the linked rooms, etc... My dilemma is drawing this structure on the screen. I'd like to draw squares on a canvas with lines linking the rooms together for a visual representation of the world. I've tried numerous home grown algorithms which quickly get out of control in complexity. This seems to be a fairly abstract problem with many applications so I'm wondering if there is an algorithm (or category of algorithms) that would help me solve this problem. Any help or suggestions would be greatly appreciated! Thank you!
  • Advertisement