Ok so I'm enrolled in a computer game design class and first thing i find out is that we won't actually be learning to program, the code
that we use will be pre typed code that we will copy and paste when we're using it (well i wanna learn code) so i'm already annoyed a
little with the fact that i have to teach that too myself but what is really bothering me is what we are doing at the moment. We are
learning the basics of object-oriented programming through i program called [URL="http://fuse.microsoft.com/page/kodu.aspx"]Kodu[/URL]. it makes everything so simplistic a 4 year old could do it. Is this a waste of time. I wanna be way ahead of the rest of the class because i (unlike everyone else) have wanted to make video games all my life. So i know we will be using xna later so im learning c# (i dont know which language we will be using but im gonna go
ahead and learn c# because i hear its a good gateway to c++) But im on a tangent, so anyways, do you think this kodu thing is
pointless or do you think it will actually help? also any general advice would be helpfull.
Are you taking this in high school?
I wouldn't think your teacher is wasting time. I was going through the same thing in my programming class (I would end up being finished first with full marks on every assignment). The reason it's simplistic is mainly because it's an easier way to teach people who don't get the concepts of oop right away as well as motivational reasons.
There's also nothing stopping you from self-teaching some C# on your spare time. Personally, when I was finished my assignments, I went onto making projects that were more challenging (as well as I was made to finish all of the assignments within a chapter rather than a certain amount because I could finish it very quickly).
Also, XNA uses C#.
Just a small tip, you dont need to learn C# as a gateway into C++, or any other language for that matter
In response to your question, its probably mildly useful in order to learn the concepts of programming (though i personally wouldnt touch it with a 100 foot pole), but beyond that, yes they're wasting your time. I imagine they're trying to compensate for the lack of immediate reward in programming, as often the only output you get from a program is "program returned 0" (or fuck all). Education peoples nowadays seem to think interactivity and the like helps people to learn and do shit, so i suspect this is why this is being forced on you
My advice is to do your own thing in your spare time
[QUOTE=Icedshot;31794256]Just a small tip, you dont need to learn C# as a gateway into C++, or any other language for that matter[/QUOTE]
Agreed, I started C++ at 11 and I know at least a few others in this section did as well. My advice is to take up C++ immediately if you want to do game design professionally - though you should still pay attention to any game design theory they teach you, it'll make it easier to get into game design once you know a language well enough.
I went from a game scripting language to C++. Had I known how hard it would've been learning using only Internet resources, I would've tried Python or C#.
You're going to have to get USED to teaching things to yourself, that is what at least 50% of programming is, even if you are enrolled in a computer science university course dedicated solely to programming.
That's life. Every (competent) programmer here has gone through it, and I assume most even enjoyed it.
so basically i should do my own thing in my free time and learn c++ straight off. thanks for the advice
everyone, im glad it wasnt just me who thinks i could skip this whole kodu part. i mean im sure there are a few fundementals i could grasp from it, but come on.
You said it's a "game design" class. That's different from "game programming" — game design is coming up with concepts and rules for a game, i.e. figuring out what will be fun to play. If that's what the class is about, I'm not surprised if it doesn't delve into programming.
I learn best when I'm being taught by a teacher or when I self teach by experimenting.
Online tutorials and books seem like a chore to me, whereas its fun to just experiment in visual studio see what i can come up with and Google references if i need it.
I don't think the course is a waste of time though, I don't like kodu.
You are right it seems like any 4 year old could make a game in Kodu.
And this is why, if you want to program [games], you should enroll in a generic Computer Science / Engineering course and not a "Game Design" course.
[QUOTE=q3k;31802466]And this is why, if you want to program [games], you should enroll in a generic Computer Science / Engineering course and not a "Game [b]Design[/b]" course.[/QUOTE]Emphasised that for you.
These courses are designed to teach you how to make a game that is a fun to play (but I doubt they do), not teach you how to program a computer.
[QUOTE=danharibo;31802839]Emphasised that for you.[/QUOTE]
[QUOTE=q3k;31802466]And this is why, [b]if you want to program[/b] [games], you should enroll in a generic Computer Science / Engineering course and not a "Game Design" course.[/QUOTE]
Emphasised that for you.
[b]EDIT[/b]: Disregard that, I suck cocks.
[QUOTE=q3k;31809830]Emphasised that for you.[/QUOTE]
It was aimed at the OP, I accidentally made the same point as you, sorry.
I would love a game design course, the worst part is coming up with ideas for me.
I enrolled on a Games Development course at college, sat through a year of it without doing anything apart from planning and writing stuff to submit at the end of the year, without one touch on creating a level, texture or anything related to a game at all, and this course sounds similar, I was led to beleive I would be actually creating a 2D/3D game, and when it came to it it was alot less technical than I expected, using GameMaker and such, so I quit, but if you are serious about doing games development, follow the course through and go to Uni (if its offered) like was offered at my college course, and although I am very interested in the subject, I don't have enough attention span for it, and don't think I could've done it as a job, but try stick it out if you can
Rewriting code from a book (like copy-pasting) and then compiling it, while not being that educational, makes you believe that you can do and learn this stuff. Lots of students don't get programming not because they are stupid, but because they threat computers as black magic and don't [i]believe[/i] they can learn anything.
[QUOTE=Nikita;32053125]Rewriting code from a book (like copy-pasting) and then compiling it, while not being that educational, makes you believe that you can do and learn this stuff. Lots of students don't get programming not because they are stupid, but because they [B]treat[/B] computers as black magic and don't [I]believe[/I] they can learn anything.[/QUOTE]
That is something I have noticed pretty well in our programming class.
Well the only image of Kodu on the site apart from screenshots is
[img]http://az9711.vo.msecnd.net/files/2011/4/Kodu%20Screenshot%206.jpg[/img]
And a "Intermediate Tutorial" is moving a camera.
"It can be taught by any teacher, no previous programming expertise required
Ages 8 and up typically have the most success"
So the above post pretty much answers your question, OP. You're wasting your time programming the same things 8 year olds are.
IMO a visual programming language is the best way to start learning programming. I don't know anything about Kodu, but I can't imagine it being a lot different from Game Maker or Alice except for the younger target audience.
[QUOTE=Cassel;32057229]IMO a visual programming language is the best way to start learning programming. I don't know anything about Kodu, but I can't imagine it being a lot different from Game Maker or Alice except for the younger target audience.[/QUOTE]
The first time i started learning a programming language, i started with a visual one and hated every second of it. Especially something like Kodu, which dumbs it all down so its not so interesting anymore
I disagree with a lot of the consensus here. It's important to learn something simple before moving on to something complex in programming terms. This guy makes a strong case for that in the appendix of his article: [URL="http://norvig.com/21-days.html"]http://norvig.com/21-days.html[/URL]
[quote]Several people have asked what programming language they should learn first. There is no one answer, but consider these points:
...
Keep it simple. Programming languages such as C++ and Java are designed for professional development by large teams of experienced programmers who are concerned about the run-time efficiency of their code. As a result, these languages have complicated parts designed for these circumstances. You're concerned with learning to program. You don't need that complication. You want a language that was designed to be easy to learn and remember by a single new programmer.
...
...Given these criteria, my recommendations for a first programming language would be Python or Scheme. But your circumstances may vary, and there are other good choices. If your age is a single-digit, you might prefer Alice or Squeak (older learners might also enjoy these). The important thing is that you choose and get started. [/quote]
From my own experience, I took and completed a simulation and game development degree, and I think it was way more useful to my game development career than a basic compsci.
In the game dev industry, experience is much more a factor than academic achievement, so I decided to take two years of college and spend the other two working on my own.
If you compare the first two years of a compsci degree to the two years I spent in game design, the game design was way more useful and stupidly cheap. I finished school with no debt!
I've not seen the course layout for a recent compsci degree, but expect to spend at least two semesters discussing Visual Basic, at least one semester with a low-level language like assembler, and two or three semesters on databases and database architecture.
I don't mean to say that those are completely useless to game development, but VB is the laughing stock of programmers everywhere, programming in assembler is like trying to pedal a boat across china, and databases are somewhat less critical to game development than traditional programming applications. (Still applicable, but not quite as important)
Meanwhile in your OOP Python or Java classes you will probably spend a lot of time doing projects like hannoi towers, endless string manipulation, buttons and GUI stuff, and other things that are specifically engineered for business software development.
Again, these are not useless exercises. However, they are not targeted at your field of interests. You might even find out that programming is actually way harder than you thought:
[quote]
[URL="http://www.codinghorror.com/blog/2006/07/separating-programming-sheep-from-non-programming-goats.html"]http://www.codinghorror.com/blog/2006/07/separating-programming-sheep-from-non-programming-goats.html[/URL]
Despite the enormous changes which have taken place since electronic computing was invented in the 1950s, some things remain stubbornly the same. In particular, most people can't learn to program: between 30% and 60% of every university computer science department's intake fail the first programming course.[/quote]
My first game design class worked a lot with game maker. Game maker and kudu have a lot in common; they both are aimed at rapid prototyping game concepts and both can be programmed by eight-year olds. In my game maker class I remember a lot of people failing really badly at the code concepts, but I also remember showing it to my nine year old brother and seeing him make an entire platformer without tutorials. I guess the point I'm trying to make right here is it's not about the low-end entry barrier, it's what you can accomplish within the software. Later when we worked in gamemaker on team projects we built an entire RTS in two weeks of class with dynamic fog of war and everything. When we worked in Alice I built a flight simulator. Eve Online was at least partially built in Python:
[quote]
[URL="http://www.python.org/about/quotes/"]http://www.python.org/about/quotes/[/URL]
EVE Online
"Python enabled us to create EVE Online, a massive multiplayer game, in record time. The EVE Online server cluster runs over 50,000 simultaneous players in a shared space simulation, most of which is created in Python. The flexibilities of Python have enabled us to quickly improve the game experience based on player feedback" said Hilmar Veigar Petursson of CCP Games.
[/quote]
I'm not saying that a compSci degree is useless, but I am saying that a targeted game development degree is not useless to someone who wants to become a programmer. It's an unusual background yes, but it directly deals with things related to active game development. Instead of VB you learn things like gamemaker and Unity(c# or javascript), instead of java you learn C#, instead of C++ you learn, well, C++, but probably with some kind of wrapper like [URL="http://www.thegamecreators.com/?m=view_product&id=2128"]DarkGDK[/URL]. You learn about libraries and relevant tools to help you accomplish the job, but it's a different set. Who is going to teach you about the programming end of Unity, the UDK, Scaleform, XNA, HLSL, the slew of game development related autodesk products, and so on? Yeah you might learn about HLSL, but it's not very important to business programming and more likely to be replaced with more database. Plus you learn about the industry itself, I never knew I lived right near Epic Games, Funcom, and 20 other game development companies. I didn't know about the yearly TGC, SIEGE, or I/ITSEC, or even the monthly IDGA get-togethers.
You might get more education than you expect if you stick with a targeted degree.
[B]EDIT:[/B] sorry about wall of text
[quote]Keep it simple. Programming languages such as C++ and Java are designed for professional development by large teams of experienced programmers who are concerned about the run-time efficiency of their code. As a result, these languages have complicated parts designed for these circumstances. You're concerned with learning to program. You don't need that complication. You want a language that was designed to be easy to learn and remember by a single new programmer.[/quote]
I have to really disagree with this. People like notch have shown that it is very much possible to create a game, while not being the most amazing programmers and while not being concerned about runtime performance. They were not designed for large teams of experienced programmers. C was originally created as an easier, more cross platform language as an alternative to asm, so if anything it was designed to make programming easier (and C++ is almost a superset of C, so the same applies)
[QUOTE=Icedshot;32057343]The first time i started learning a programming language, i started with a visual one and hated every second of it. Especially something like Kodu, which dumbs it all down so its not so interesting anymore[/QUOTE]I think writing code contains too many distractions to teach efficiently at the beginning. With a visual language you can get basic logic and the "black magic -> dumb machine" transition down without having to worry too much about data-types and identifiers. I'm not saying that languages such as Kodu should be used as a tool for the whole duration of a course, but maybe the first 1-2 weeks.
[QUOTE=Icedshot;32057580]C was originally created as an easier, more cross platform language as an alternative to asm, so if anything it was designed to make programming easier (and C++ is almost a superset of C, so the same applies)[/QUOTE]
While it is true that C++ makes programming simpler than say, asm, it is completely incorrect to say that it is a superset of C. It's a completely different language.
[QUOTE=gparent;32058454]While it is true that C++ makes programming simpler than say, asm, it is completely incorrect to say that it is a superset of C. It's a completely different language.[/QUOTE]
No its fairly correct, C++ is [i]mostly[/i] C with quite a lot of things added into the language. Yes, there are differences between the languages in some aspects which might stop C compiling properly under a C++ compiler, but C++ is still mostly a superset of C
[url]http://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B[/url]
[editline]1st September 2011[/editline]
[QUOTE=Cassel;32057691]I think writing code contains too many distractions to teach efficiently at the beginning. With a visual language you can get basic logic and the "black magic -> dumb machine" transition down without having to worry too much about data-types and identifiers. I'm not saying that languages such as Kodu should be used as a tool for the whole duration of a course, but maybe the first 1-2 weeks.[/QUOTE]
Perhaps, but for me i think something like Kodu would have detracted from the experience of learning about programming by removing any interaction with the actual.. Nuances of the computer itself, like memory management. I find it interesting to work my way around the computer, not simply give it a set of instructions and click "go" to get my result. Id use game maker if i wanted to do that, or id be using OpenGL right now instead of writing my own software renderer
Even if it was that, which I personally would not say, it' still a bit far from being a 'portable assembly'.
Of course C has gotten features nowhere found in assembly languages (e.g. const correctness) and the constructs make you think differently than in assembly (e.g. for counting something you can easily use the for-loop instead of having to think about implementing it as a 'traditional' loop, using switches, chained ifs 'n stuff instead of having to think about labels and jumping).
But it's still a very low-level language, whereas in C++ you get massive abstractions, e.g. polymorphism, template meta-programming, RAII (in the STL).
And the point you made is that C (and by that extend C++) was made to make programming easier than using assembly, which is not what the person was suggesting at all.
Just because it's easier than assembly, doesn't mean it's easier than other programming languages.
I'd think it's true that C and C++ sacrifice ease of use for the freedom to 'shoot yourself in the foot'. Of course care is taken to minimize the likelihood, but there are languages which make it harder to do something wrong.
For example, in C (and C++) you could easily do *(int*)0 = 5;, which introduces undefined behavior, while the equivalent in Java would be (Integer)null = 5;, which I'm not sure will either not even compile, or if it does it'll just throw an exception.
The advantage of the C/C++ route is that you expect not to have the overhead of someone else checking if what you're doing makes sense, which probably also makes it more flexible. The disadvantage is of course that errors are more unpredictable.
[QUOTE=Icedshot;32058600]No its fairly correct, C++ is [i]mostly[/i] C with quite a lot of things added into the language. Yes, there are differences between the languages in some aspects which might stop C compiling properly under a C++ compiler, but C++ is still mostly a superset of C
[url]http://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B[/url]
[/QUOTE]They may well be 'compatible', but when you're writing software you should be using either C or C++, not mixing them
Sorry, you need to Log In to post a reply to this thread.