Program Languages 101

Discussion in 'Mac Programming' started by MstrPBK, Sep 23, 2008.

  1. macrumors newbie

    MstrPBK

    Joined:
    Jun 20, 2008
    Location:
    St. Paul, MN
    #1
    I know the question I am about to ask is not a simple one; but I also know I will have considerable learning to do after it is answered.

    Question: Could this community give me a list of languages I ought to consider learning to start me on my way to producing my own RPG game. With the assumption that current training is a good foundation: 1970's BASIC language and an decent immersion into the FileMaker Pro/Advanced environment. Where do I go from here? Going back to school is not an option here.

    Aside from the standard interfaces that are expected, the project will entail significant 3D work, managing polygons (beyond squares, rectangles, hexagons), hopefully the implementation of fractal geometry, animation, a complex tapestry of background management.

    Feel free to ask questions of me to refine the suggested list properly.

    Thank you for your interest in this inquiry.

    Peter Kelley
    St. Paul, MN
     
  2. macrumors G4

    Joined:
    Jan 5, 2006
    Location:
    Redondo Beach, California
    #2
    What you will find is that the language itself is the easy part. For example C can be learned quickly but when you program some non-trivial task you need to make many, many calls into many, many libraries. For example if you decide to use OpenGL for your graphics (A very good idea) you find that the Open GL book is about three times the size as the book that covers just C. And so it goes with the other frameworks, like the one that you would use to create windows and dialog boxes that are needed for user interaction. There are a number of these APIs that you need to become very famiar with. Most C programs are just strings of calls into these APIs.

    The direct answer is C and the related C++ and Objective C languages.

    But what if you wanted to write a science text book on say microbiology? You would have to know how to spell and type and construct paragraphs. But you'd also need to know microbiology. If you are wrinting an FPS, knowing the programing language is like knowing how to spell and type and use a work processor. That's the easy part.
     
  3. macrumors 603

    mobilehaathi

    Joined:
    Aug 19, 2008
    Location:
    The Anthropocene
    #3
    Definitely learn C/C++ and ObjC if you want to do Cocoa stuff. I don't know much about programming graphics, but OpenGL is probably a good place to go.

    Its going to take a lot of work. Best of luck!:)
     
  4. macrumors 68020

    Joined:
    Dec 9, 2004
    #4
    Sounds like you want to use Unity. The advice to learn C and do everything from scratch is years outdated; most games are made with 3rd-party engines these days. It's just too much work otherwise. The additional cost of buying an engine license is significantly outweighed by the immense amount of effort you save.

    --Eric
     
  5. macrumors 65816

    Muncher

    Joined:
    Apr 19, 2007
    Location:
    California
    #5
    Sadists! Sadists all! :p:rolleyes:

    The OP only knows BASIC; you expect him to pick up OpenGL?

    I can't imagine what it would be like trying to learn entirely on a Mac. I know quite a bit about unix environments and C and xcode now, but when I first tried, I was really confused. Either learn non-gaming APIs in Obj-C first, then OpenGL, or learn SDL with C, and then Obj-C and OpenGL later. There's really no direct path. Don't take any lessons in online tutorials for granted, and learn as many algorithms for game physics and the like as you can. With some determination, you can get pretty good.

    Good Luck!
     
  6. macrumors 603

    mobilehaathi

    Joined:
    Aug 19, 2008
    Location:
    The Anthropocene
    #6
    Well I got the impression s/he was looking to invest some serious time and energy into producing a very refined product and wanted to implement particular graphics from scratch. Not sure why I thought that...just did.

    I don't see how what I said was any different than you...just more distilled.:)

    I mean, to learn C/C++ and OpenGL from scratch sufficiently to program a polished 3D RPG sounds like many many years of hard dedicated work. Somehow I got the impression that's what the OP was planning. I also got a "I wanna do-it-myself" vibe.

    I dunno.....:D
     
  7. macrumors 65816

    Muncher

    Joined:
    Apr 19, 2007
    Location:
    California
    #7
    Huh... now that I read your post...

    I do have an explanation though! I wrote something else, but decided I didn't like what I wrote, so I wrote something different.
     
  8. macrumors 68000

    TheReef

    Joined:
    Sep 30, 2007
    Location:
    NSW, Australia.
    #8
    You could use REALbasic, I've made simple games in REALbasic, a small 2D RPG game was one of them where you could move around, collect items, use items on field etc.
    That's for 2D through.

    It's great for quick stuff, but performance wise (important in games) it isn't the best option.

    As you already know BASIC it isn't a great step up, it's just learning how an object orientated environment works.

    http://www.realsoftware.com/products/realbasic/index.php

    As your looking at 3D, you could try looking at a game engine such as Unity or Torque.
     
  9. macrumors 65816

    Joined:
    Apr 18, 2007
    Location:
    California
    #9
    I recommend Python with either Pygame or Pyglet for graphics. Python has a very simple yet powerful syntax and it comes included with OS X.
     
  10. thread starter macrumors newbie

    MstrPBK

    Joined:
    Jun 20, 2008
    Location:
    St. Paul, MN
    #10
    First to clear the air ... I am male.

    Second I realize there are many routes to the same end. All of them not very easy. All your thoughts are valued and appreciated ... more is welcomed. Your input is showing the path that I have to follow - thank you.

    Third ... (pause) ... I would rather be off working on the project definitions / narratives for this project to hand to the programmer(s), and then consult with the programmer(s) as they need input.

    However there is a brick wall between me and that scenario (will try to avoid the soapbox here).

    As a person with disabilities and fighting to get off the (American) welfare system the probabilities of me finding a programmer (much less a team of programmers) seems pretty unlikely being that I am in the lower 10th of the US employment strata. Working Pro Bono with the hope of "some" return at some unknown date is not what most professionals call appealing or even exciting.

    Rather than complaining about my situation I am doing something about it while remaining within the welfare guidelines: THAT IS learning. Then using what is learned to my advantage. In addition I have no expectations of becoming wealthy, nor do I expect to become famous. I just have the hope that someone will appreciate what I have produced ... assuming it ever reaches that point.

    I just have this 30 year old dream and walking this path alone the best I can. Anyone want to join me???

    Respectfully Submitted,
    Peter Kelley
    ST. Paul, MN
     
  11. macrumors member

    Joined:
    Aug 16, 2008
    #11
    MstrPBK :

    You know, although I'm not going to offer suggestions as to HOW to go about achieving your goal - I just wanted to say the following...

    No matter how many people disbelieve your abilities, no matter how hard it will sometimes seem to accomplish your goals, and despite anything else that you may see as a barrier - don't ever lose sight of your target and don't ever give up until you reach it. Your 30 year old dream is just as obtainable as anyone elses, and there's no better time and place than here and now, to just go for it.

    Good luck with it buddy, I hope you make it work for you.
     
  12. macrumors 603

    mobilehaathi

    Joined:
    Aug 19, 2008
    Location:
    The Anthropocene
    #12
    I totally didn't see that you'd signed your name in the first post, thereby clarifying your gender. Sorry! I'm just so used to being gender neutral on boards that I sometimes ignore the obvious facts!

    Anyway, you might consider trying to develop apps for the iPhone/iPod Touch. Having the device isn't absolutely necessary, so you wouldn't have to worry about wasting money on that. You would just need a Mac and $100 (one time fee) to post apps to the store. Honestly, the barrier to entry is pretty low and the potential returns are astonishing. Give it a thought...

    If you dedicate some serious time into learning to program, it can be incredibly rewarding. Best of luck!
     
  13. macrumors 65816

    mysterytramp

    Joined:
    Jul 17, 2008
    Location:
    Maryland
    #13
    I'm sure almost everybody saw this, but just in case you didn't:

    [from MacRumors news... Sept. 19]

    iPhone Game 'Trism' Makes $250,000 in 2 Months

    Trism developer Steve Demeter revealed at a conference that he had generated $250,000 in income from his popular iPhone game since its launch on July 11th.

    Trism is a gravity based puzzler which generated some press ahead of the App Store launch.

    Trism presents the player with a playifeld populated by colorful, triangular tiles or “trisms.” The rows of trisms can be slid in six different directions (thanks to their triangluar shape) in order to achieve a match of three or more like-colored pieces. When a match is made, the like trisms disappear and surrounding trisms fall in to fill their place in the direction of gravity.
    Trism is available from the App Store for $4.99. At that price, Trism would have had to have sold over 71,000 copies to generate that level of income, or an average of almost 1200 copies a day.

    App Store Link: Trism


    It's mind-boggling that he generated that amount of cash in such a short period of time.

    Pull that off MstrPBK, and you can hire that team of programmers your RPG needs!

    mt
     
  14. macrumors 603

    mobilehaathi

    Joined:
    Aug 19, 2008
    Location:
    The Anthropocene
    #14
    Exactly!
     
  15. macrumors 65816

    Muncher

    Joined:
    Apr 19, 2007
    Location:
    California
    #15
    The more I think about it, the better that option sounds. Learning Python is good because it's currently one of the best languages for any platform. It also looks extremely, and I plan to learn it myself when I get the time. You can't beat the core C language for compatibility, but Python code can be adapted for Windows, Mac, common linux distros, and more.

    The only problem with Python code is speed. Because it is interpreted, it will inherently be slower than C code.

    If you're determined, you can do anything. Just look at the story of the kid who was a teenager when he cracked CSS. When/if you get good at C/Objective C/C++, and you have a working knowledge of OpenGL or DirectX, you might take a shot at this or this. Put something good up there, and you're sure to get recognized by someone.
     
  16. thread starter macrumors newbie

    MstrPBK

    Joined:
    Jun 20, 2008
    Location:
    St. Paul, MN
    #16
    Some novice loose ends ...

    This discussion has been very helpful.

    I am assuming that C; C++; and Object C are variants of the same language. As they were being brought up it is unclear to me if these are to be learned on a "either/or" basis, or if I ought to learn each of these, or some combination of them?

    Other languages (in alphabetical order) on the priority list seem to be:

    Cocoa
    Open GL
    Python
    SDL


    (referring to my initial post) While I know FilmMaker Pro and Advanced; is there any need to consider SQL since that has export options for that? [From my view] are there other unknown ways to interface with the FM Pro databases that I have previously created?

    There have been suggestions for me to investigate Unity and Torque.

    Is there anything that I may have missed before wrapping this up to produce the final homework list?

    Peter Kelley
    St. Paul, MN
     
  17. macrumors 65816

    Joined:
    Apr 18, 2007
    Location:
    California
    #17
    C, C++, and Objective-C are all compatable with eachother. The only difference is feature set. Cocoa, OpenGL and SDL are not languages but APIs(Application programming interface) that allows you to do fun stuff like make user interfaces, or do 3d/2d graphics. You would/should learn Python before learning c/c++/objc/opengl etc. because it is simple enough to get you up and running quickly and will teach you the concepts of programming and object oriented programming without having to deal with complexities in c/c++/objc.
     
  18. thread starter macrumors newbie

    MstrPBK

    Joined:
    Jun 20, 2008
    Location:
    St. Paul, MN
    #18
    OK, refining my question then ...

    Trying to get this right (per se), and not afraid to learn.

    The project that I am proposing to create will entail BOTH 3D and 2D graphics. If C, C++, and Objective-C are all compatible between each other and the only difference is the feature set are you suggesting that ALL of these ought to be learned because of the differences in the feature sets?

    Over all the previous discussion was focused on OpenGL and SDL. Should I expect to learn both of these or are these an either or choice?

    I will note to learn Python first and follow that up with the C Languages as they are decided (above).

    Respectfully submitted,
    Peter Kelley
    St. Paul, MN
     
  19. macrumors 65816

    Muncher

    Joined:
    Apr 19, 2007
    Location:
    California
    #19
    To clear up the languages:

    C is the basic language, which both Objective-C and C++ are based off of. Both Objective-C and C++ have very different syntaxes (how they look), but are often used to accomplish identical goals. Objective-C is very Mac-friendly, while C++ is much less so, but highly windows compatible.

    OpenGL and SDL are both graphics libraries. OpenGL is harder to learn, but faster. SDL is built on OpenGL, and is easier but less powerful.

    Hope that helps.
     
  20. thread starter macrumors newbie

    MstrPBK

    Joined:
    Jun 20, 2008
    Location:
    St. Paul, MN
    #20
    Homwork list refined and summerized ...

    Trying to get this down to a final summery here. The input consensus seems to be that in my case I ought to learn the following (alphabetically again)


    • [*]C language
      [*]Objective C
      [*]Open GL (as my API)
      [*]Python

    I will learn Python first and follow that up with the C Languages.

    Thank you all for your input to the initial question and guiding this person in a direction. This discussion is continued in THREAD Program Languages 202

    Peter Kelley
    St. Paul, MN
     
  21. macrumors regular

    Joined:
    Jul 16, 2007
    #21
    I would actually read the forums at idevgames.com and also ask the same question there. Learning a language and framework is only a part of creating a game and if you are new there are many challenges along the way of which learning a language is only one of them. idevgames.com has some very experienced indie programmers and frequently get requests on how to start game design/programming. Ask there, not here. You will get much more focussed advice.
     
  22. thread starter macrumors newbie

    MstrPBK

    Joined:
    Jun 20, 2008
    Location:
    St. Paul, MN
    #22
    Mongrol I fully understand what your saying.

    Up until now there are other things I have not discussed that I know about my background. But before I list those let me also list the what I view as the subdivisions of work on this project. I know that between my experience and my direction of learning will only take me so far. Others will inevitably have to be pulled in. But if you fully read the entire thread here you will also see some limitations in my life (please read again).

    The team will need:

    • [*]Animation and Special Effects Specialist
      [*]Background Specialist
      [*]Internet and Server Specialist
      [*]Second Database Specialist
      [*]2 Music Specialists
      [*]Second Programming Specialist
      [*]3D Rendering Specialist
      [*]1 Research Specialists (if I am very lucky)
      [*]Sales and Distribution Specialist
      [*]Customer Service Specialist
    There may be other specialists that have not dawned on me at this point. But the list is a starting point of knowing my limitations.

    My skills range from:

    • [*]College level Animation training (Cell and Computer)
      [*]Database Development
      [*]Desktop Publishing
      [*]Foundational Music Theory
      [*]Foundational Market Research Theory
      [*]Foundational Website Theory
    Respectfully Submitted,
    Peter Kelley

    P.S. For the sake of your post Mongrol I will take your advice and get a second opinion, or is it (smirk) a third!
     
  23. macrumors 6502

    Joined:
    Dec 6, 2006
    #23
    Before you decide to go down this path, what level of Math do you have?

    I am not trying to dissuade you from doing this, but there will come an inevitable point where you will need a solid understanding of linear algebra, and definitely an understanding of calculus. You don't need to be an expert in the subject, you have to be comfortable dealing with integrals and derivatives.

    C programming is easy. You will pick that up in a week. You seem to have the time.
    C++ is essential for the games industry. Unless you are writing games specifically for a Mac, C++ is the only way to get a job, though that may not be your intention.
    Objective-C is essential for writing apps that utilise the Mac correctly. The Java bridge is dead, and good riddance to its corpse.

    OpenGL is a gigantic subject. Getting a cube on a screen is easy. You don't even have to worry about co-ordinate systems. Getting objects to interact with each other and also have their own co-ordinates requires far more coding, e.g. switching between camera, world and local co-ordinates.

    The Math is required when you want to perform object movement either in straight lines, boring, or using non-linear motion paths, such as quarternians.

    Someone else pointed out that you should use an engine. That's true, but 3D engines aren't by definition easy. They have to understand all the math, and co-ordinate transforms, so before using one, you need to understand how one works.
     
  24. thread starter macrumors newbie

    MstrPBK

    Joined:
    Jun 20, 2008
    Location:
    St. Paul, MN
    #24
    GarethLewis2 you make an excellent point. While I had High School Algebra. I never made it to calculus. I did a improvised project with algebra in programming (must have impressed instructors because I never received a failing grade in either class). Looks like I need to back track a little with the math area - thank you for the heads up and the reality check.

    Will add books in those directions on my own.

    Thank you again,
    Peter Kelley
    St. Paul, MN
     
  25. macrumors 65816

    Muncher

    Joined:
    Apr 19, 2007
    Location:
    California
    #25
    Calculus is not essential. An understanding of coordinate systems and other pre-calc topics will be.
     

Share This Page