AuthorTopic: Official Off-Topic Thread  (Read 207544 times)

Offline AdamAtomic

  • 0100
  • ***
  • Posts: 1188
  • Karma: +0/-0
  • natural born medic
    • View Profile
    • Adam Atomic

Re: Official Off-Topic Thread

Reply #260 on: April 16, 2007, 04:23:09 am
for a typical sidescroller, basic arithmetic will get you by.  for decent physics or simple 3D, a working knowledge of trigonometry or at least a passing familiarity with it (combined with a willingness to relearn what you forgot since its been like 5 years since you last took math) would serve you well.

as far as languages go, that's not really a cut and dry question.  C++ is not easy.  It requires manual garbage collection, strict typing, object-oriented design, and can throw REALLY absurd errors when you make simple beginner's mistakes, like missing a semi-colon here or there.  None of these things are easy for beginners!

That said, if you know C++, you can easily pick up any other language in a matter of days.  However, if you have commitment issues, I'd suggest starting with something a little more simple that will introduce you to some of the basics of a C-style language.

Python would be a great place to start, it has good clean syntax that is similar to C, but has a very forgiving interpreter and it is very well-documented.  Python also has available OpenGL and SDL bindings, so you can start to learn very useful graphic libraries without being hindered by a lack of a classical programming education.  When you begin moving on to projects that require a little more muscle and complexity, C++ would be a good second step.

The Processing library for Java is a great place to start learning the basics of programming as well.  Another C style language, Java does its own garbage collection and generally throws less cryptic errors than C.  Processing is a fun graphics API for doing simple experiments and learning the ins and outs of basic graphics programming without getting hung up on syntax.  It also has good documentation and a very active community.  Processing also has its own IDE which can make experimentation and quick "sketches" very fast and easy!

Offline dragonrc

  • 0010
  • *
  • Posts: 218
  • Karma: +0/-0
    • View Profile

Re: Official Off-Topic Thread

Reply #261 on: April 16, 2007, 05:10:23 pm
compared to coding, is gamemaker really bad? Is coding much more better or not?

Offline Gil

  • 0100
  • ***
  • Posts: 1543
  • Karma: +1/-0
  • Too square to be hip
    • http://pixeljoint.com/p/475.htm
    • View Profile
    • My Portfolio

Re: Official Off-Topic Thread

Reply #262 on: April 16, 2007, 05:37:07 pm
You can just do more stuff with real code.

I can write the next World of Warcraft in full 3D with real code, you just can't do that in Game Maker. If you can do something in GM that would look exactly the same when coded, and there's no speed loss and you do it in the same time or faster, then the tool is just fine.

You have to evaluate what is possible... As a learning process you better switch to programming something real eventually of course

Offline zeid

  • 0010
  • *
  • Posts: 200
  • Karma: +1/-0
    • View Profile
    • Pixel Class

Re: Official Off-Topic Thread

Reply #263 on: April 16, 2007, 06:09:01 pm
Any game/program you make with game maker will inevitably be more costly on computers in terms of size and speed then if it had been made with C, C++,etc. given that its programmed right of course (it is very unlikely you will program it exactly the way GM would compile it). Game maker is a good tool but it uses a lot of internal functions, etc. that wont be used all the time. For example all 'instances' in GM are automatically assigned a number of variables with preset values that wont necessarily be used. There are probably many other examples but i will leave it there coz i'm lazy. That said GM isn't bad as it allows for you to easily make games without having to tackle a lot of issues you find in coding, I think its good for prototyping and exploring if a game will actually be fun. Of course its also good for those who want to give game making a shot without knowing much or even anything at all about programming. My opinion is however if you want to make something at a bit higher level then for fun or to show to friends, etc. learn to program.
Java = good for mobile games, C to C++ = everything else. Java is again slower then the C languages for a few reasons but it is used in mobile games and thats something to keep in mind if you are interested in earning money programming.
View my Devlog... unless you aren't ready to have your mind blown.

Offline Stwelin

  • 0011
  • **
  • Posts: 567
  • Karma: +0/-0
    • View Profile

Re: Official Off-Topic Thread

Reply #264 on: April 16, 2007, 08:24:57 pm
compared to coding, is gamemaker really bad? Is coding much more better or not?

Yes.

To put it in perspective, it's similar to the difference between making a website in Microsoft Word, or coding it by hand in HTML and CSS.

While Word can do what you want it to, it has it's limitations, and really only gives you a 'wysiwyg' feel, whereas coding it by hand gives you utmost control.

Gamemaker compared to a real coding language is the same way. In gamemaker, you can make a game, sure, but you have no control over how the game handles it's collisions, or the real meat of the application, etc. Whereas in C, or C++, everything is up to the creator, the only limitations are those set by the machine.

for a typical sidescroller, basic arithmetic will get you by.  for decent physics or simple 3D, a working knowledge of trigonometry or at least a passing familiarity with it (combined with a willingness to relearn what you forgot since its been like 5 years since you last took math) would serve you well.

as far as languages go, that's not really a cut and dry question.  C++ is not easy.  It requires manual garbage collection, strict typing, object-oriented design, and can throw REALLY absurd errors when you make simple beginner's mistakes, like missing a semi-colon here or there.  None of these things are easy for beginners!

That said, if you know C++, you can easily pick up any other language in a matter of days.  However, if you have commitment issues, I'd suggest starting with something a little more simple that will introduce you to some of the basics of a C-style language.

Python would be a great place to start, it has good clean syntax that is similar to C, but has a very forgiving interpreter and it is very well-documented.  Python also has available OpenGL and SDL bindings, so you can start to learn very useful graphic libraries without being hindered by a lack of a classical programming education.  When you begin moving on to projects that require a little more muscle and complexity, C++ would be a good second step.

The Processing library for Java is a great place to start learning the basics of programming as well.  Another C style language, Java does its own garbage collection and generally throws less cryptic errors than C.  Processing is a fun graphics API for doing simple experiments and learning the ins and outs of basic graphics programming without getting hung up on syntax.  It also has good documentation and a very active community.  Processing also has its own IDE which can make experimentation and quick "sketches" very fast and easy!

My brother has been pressuring me to puck up python, and get into programming with pygame. Though i've read documentation on it's methods of redrawing the screen, and they appear to have some issues with some machines. (in the documentation i read, it said that on some PCs, redrawing the whole screen with no other overhead can only run at 28 fps. 0_o )

Although, pygame really appeals to me, since it seems a lot more friendly than C++, and it will be easier to narrow down the things i need for game development specifically. Also, it's multi-platform, which reeeaaally appeals to me. My brother is a hardcore linux junkie, and it would be awesome if he'd actually get to beta test games for me without having to switch over to his Windows partition every time. :yay:

I have begun to work my way through some online tutorials with pygame, so i guess i will just put off the coding part of my little project for a bit, and focus on learning pygame. (i can always do the artwork if i get bored, too. :P)
« Last Edit: April 16, 2007, 08:31:58 pm by Stwelin »

Offline AdamAtomic

  • 0100
  • ***
  • Posts: 1188
  • Karma: +0/-0
  • natural born medic
    • View Profile
    • Adam Atomic

Re: Official Off-Topic Thread

Reply #265 on: April 16, 2007, 08:50:46 pm
if pygame doesn't cut it for you for performance reasons i believe there are python bindings for SDL and OpenGL so you could build your own engine, but still get the benefits of using python period.  I know for sure there is a wxWidgets binding for python that you could use in place of SDL as well.  good luck!

Offline Fizz

  • 0001
  • *
  • Posts: 84
  • Karma: +0/-0
    • View Profile

Re: Official Off-Topic Thread

Reply #266 on: April 17, 2007, 12:06:28 am
Quote
Java = good for mobile games, C to C++ = everything else

I read that was a stereotype.  Isn't Java only 1.1-1.3x on average slower than C++ nowdays?  :o  Java should be ok for a decently fast game?
« Last Edit: April 17, 2007, 12:11:37 am by Fizz »

Offline AdamAtomic

  • 0100
  • ***
  • Posts: 1188
  • Karma: +0/-0
  • natural born medic
    • View Profile
    • Adam Atomic

Re: Official Off-Topic Thread

Reply #267 on: April 17, 2007, 12:13:06 am
if you're doing most of the work in a hardware layer, like OpenGL, java isn't a whole lot slower.  however, you do still sacrifice variable size and more precise control over memory, which can matter a lot for high-performance games.

Offline robalan

  • 0010
  • *
  • Posts: 337
  • Karma: +0/-0
    • View Profile

Re: Official Off-Topic Thread

Reply #268 on: April 17, 2007, 04:24:11 am
One thing about Java (for me at least) is that while my laptop is unplugged, anything java-based runs rather slowly.  Running on AC power it's fine, but if I'm using battery it's sad.  Maybe it's just this type of laptop (I've heard others complain about the same thing), but I don't know.

Also, I'm starting to learn Python for my summer job, and am finding it to be rather nifty.  Now I just have to find time to really get to know it...
Always remember: a preposition is not something you should end a sentence with.

Offline Stwelin

  • 0011
  • **
  • Posts: 567
  • Karma: +0/-0
    • View Profile

Re: Official Off-Topic Thread

Reply #269 on: April 17, 2007, 04:30:41 am
It's pretty easy to pick up if you have worked with another language, and understand the basics of programming in general. It's really nice for coding fast, because, as the documentation states, it doesn't convert anything into machine code. It's all based on interpretation.