Hello! A variety of questions, need some direction! :)

Kassandra
Unregistered
 
Post: #1
Hello, I just registered here^^

I'll start off with some background.

Recently, I came up with an idea for a game, it's very novel, to the best of my knowledge it has never been done before. I won't go into any detail about it because I don't want some experienced developer ripping off my idea before I have the ability to impliment it myself.

I have it all in my head, a complete game. I plan to do a 2D version first, to get various gameplay concepts working, and once I have a playable game out of that that is using all of my fundamental ideas for the mechanics of the game, start building a 3D game out of it. This is no summer project for me, I really want to bring my vision to reality because I think it would bring some innovation to the game industry. I intend (regardless of how long it takes or how much it costs) to get a development company going and get a publisher. I plan to release a 2D version for DS and possibly the Mac, and the 3D version for Mac, Windows, and Linux, and possibly Nintendo Wii if it's still around in 5 or so years. I have a plan and I think it can work. I have 2 people so far who will help develop the game once I have gotten some of the beginnings of it off the ground. I plan this to be a commercial, retail release in the final 3D version. I think I can build a great game once I know the tools and language of the trade.

Due to this rush of ideas, I've decided to give programming another go now that I'm on my platform of choice (I switched to Mac OS X from Windows in February...Finally). I decided to start with something simple and easy for me to follow: AppleScript.

I have nearly completed a book on it, and had originally planned to move on to C after understanding some of the basic principals of programming like variables and if statements and datatypes and functions and things like that. However, upon reading some up on a variety of topics, I have some problems and questions.

First off, Objective-C and Cocoa seem very easy to use, however, they are OS X only. Would it be ridiculous to port from Objective-C to C++? Code portability is very important to me in this. Java is not an option.

Secondly, where should I go from where I am now? I have a C book, but for one, no books or tutorials I have seen have you using Xcode. They all say use a text editor and compile via CLI or are Windows-specific. This will eventually be quite a major project so learning Xcode is important to me. For two, many of the books and tutorials I see are Windows-specific, especially on the games front, which I won't even be getting into until I have a reasonable understanding of some flavor of C. While Windows is a target platform for me, I don't intend to do much development on it beyond the early stages of a port. When I have something good going on the Mac, I'll bring someone in to port most of it and manage the Windows version as things progress. I already have someone for the Linux version.

This may all sound like something lightyears beyond me, but I really want to do this so I will perservere until I can bring my idea to life.

Also, could anyone point me to some 2D oriented OpenGL resources and tutorials? I won't need them for quite a while but I would like to do some reading on it. There's plenty of 3D resources out there to get me started after C I'm sure.

Any good Xcode tutorials? Or C tutorials/books centered around Xcode? (Yes I mentioned already lol but this would be good for me I think)

Also, does anyone think I should do something else before C? I have done some C++ tutorials in the past, but never stook with them because simple things confused me. I have a good grasp on them now though thanks to AppleScript. Has anyone else started with AppleScript?

Alright I think thats about it. I'm just looking for some "street signs" so to speak to give me an idea of what direction I should take next towards actually getting to a point where I can begin this.

Thanks very much for any replies, I would greatly appreciate your wisdom.
Quote this message in a reply
Member
Posts: 21
Joined: 2009.05
Post: #2
Greetings and welcome to IDG!
I know exactly where you are coming from, for I have just started down this fun and exciting trail myself. The members here have been super helpful in suggesting books, tutorials, and what to learn first compared to what not to learn.

Your choice to start with AppleScript is fine, IMO. I think it will give you a bit of a step up while learning C, if you have not programmed anything else before. If you want portability, Cocoa is not the way to go - however, it is still something good to learn, just in case you want to do anything with the mac interface. I plan to learn Objective-C and Cocoa to program a few applications for my writing site before moving on. I feel this will help give me a better foundation to which I can start video game programming.

Before I go any further, I feel you should read the following thread that is pinned in this forum. It has helped me a lot. http://www.idevgames.com/forum/showthread.php?t=11896

So, you want a good book that teaches C and Xcode. I posted this same question just a few months ago. To help you out, I will just link to what information I was given:

Learning C with Xcode (book suggestions)
http://www.idevgames.com/forum/showthread.php?t=12123

After I finished this book, I was still clueless as to how to make a video game. Learning the fundamentals of programming is a slow and rigorous process. However, I am glad to have made it this far. So, I posted a new thread:

Transitioning from programmer to video game programmer:
http://www.idevgames.com/forum/showthread.php?t=12173

Check out those three threads and see if that helps. If not, I am sure there will be several members here to help you out. Once again, welcome to this great community! They are super friendly and helpful... to us newbs. Rasp

Have a good one!
Quote this message in a reply
Moderator
Posts: 508
Joined: 2002.09
Post: #3
Quote:I plan to release a 2D version for DS <snip> and possibly Nintendo Wii

How exactly do you plan to do that? If you're just starting, don't even thing you'll get the developer tools from Nintendo. Besides, it'll cost you quite a lot.

Quote:I decided to start with something simple and easy for me to follow: AppleScript.

Wrong choice. If you're serious about programming, and especially games, you should learn a serious language like C/C++

Quote:First off, Objective-C and Cocoa seem very easy to use, however, they are OS X only. Would it be ridiculous to port from Objective-C to C++? Code portability is very important to me in this. Java is not an option.

Use C++ then. Separate the platform specific parts from the general game parts, ie handling events like mouse and keyboard are different in Mac and Windows. You should use a library like SDL for handling the platform specific things and use OpenGL as your rendering "engine".

Quote:Secondly, where should I go from where I am now? I have a C book, but for one, no books or tutorials I have seen have you using Xcode.

Learning a language is the basis and the most important part. How you compile the code is entirely up to you. You can use an IDE like Xcode, but you can use CLI tools and compile everything manually. But you should learn the language well before learning how to compile.

Quote:While Windows is a target platform for me, I don't intend to do much development on it beyond the early stages of a port. When I have something good going on the Mac, I'll bring someone in to port most of it and manage the Windows version as things progress. I already have someone for the Linux version.

If you use SDL and OpenGL, you'll have no problems in compiling your game for other platforms. Just keep in mind about the platform specific parts and you'll be fine.

Quote:Also, could anyone point me to some 2D oriented OpenGL resources and tutorials? I won't need them for quite a while but I would like to do some reading on it. There's plenty of 3D resources out there to get me started after C I'm sure.

Try Google

Quote:Any good Xcode tutorials? Or C tutorials/books centered around Xcode? (Yes I mentioned already lol but this would be good for me I think)

Try Apple Developer Connection

Quote:Also, does anyone think I should do something else before C? I have done some C++ tutorials in the past, but never stook with them because simple things confused me. I have a good grasp on them now though thanks to AppleScript. Has anyone else started with AppleScript?

Learn C, do some small games first before attempting something big. That's how most of us started. Also learn enough math to move things and do collision detection. If you feel you need to work with classes (ie do OOP) learn C++.

I learnt AppleScript first, but I sure didn't learn it to do games. For that I started with C and then C++.

"When you dream, there are no rules..."
Quote this message in a reply
Oldtimer
Posts: 834
Joined: 2002.09
Post: #4
Stay away from AppleScript. It's a nice (erm) language for scripting applications, but it won't give you much help when moving on to gaming, and I personally think that it is a very frustrating language. There's a risk that you'll in fact take step back...

If you think C/C++ are too tricky (and they may very well be, they're not toys...) I'd heartily recommend looking into Python and PyGame, or Ruby. Nice languages with plenty of game libraries.

Also, have you considered creating your game in Flash?
Quote this message in a reply
Luminary
Posts: 5,143
Joined: 2002.04
Post: #5
I'd also recommend avoiding AppleScript -- this is a language which professional programmers have trouble with. That suggests that it works completely differently to the more common languages, anyway, and it might be as difficult to move from AppleScript to something useful as the other way around.

That said, in general, language and development environment will be the least of your troubles. Yes, they can seem like a huge mountain when you're just beginning, but don't stress about them. Find an environment you're comfortable working in, and get yourself started there before worrying about the precise environment you'll use to build your final game in.

As far as beginning languages go, either Java or Python is my recommendation. They'll get you programming with a minimal amount of effort. Java has LWJGL for games, and Python has PyGame. You will almost certainly need to know C or C++ for your final game (even if you don't use them very much), but they're not the easiest place to start, and the skills you learn in Java or Python will stand you in good stead no matter what language you end up using. I don't know why you write off Java for the final game so quickly, either.

If you're in need of real-time help and advice, you should stop by #idevgames on freenode; there's usually plenty of people there to help out.
Quote this message in a reply
loki74
Unregistered
 
Post: #6
OneSadCookie Wrote:I'd also recommend avoiding AppleScript

I may be a noob myself, but I definately can agree with this! Seems to me that AppleScript would aslo be a chore to port to Windows.

I would reccomend C++ with GLUT. As I understand it GLUT is supposed to be pretty easy to port, and it will allow you to quickly implement OpenGL. If you do use GLUT, however, be prepared for a couple of things--
-Don't expect to be using a NIB for your menu and windows--GLUT creates its own. This does make standard window handling a little more complex, but I'm sure it could be done.
-Don't expect to use the normal Carbon event loop--GLUT has its own.
-You don't get a close button on your windows by default, but this won't be a problem if you run fullscreen, which is good for games anyway.

(if any of the above is inaccurate, please correct me, I'm pretty new to this stuff as well).

I'm assuming you are already familiar with C, so I guess you only need to get used to Xcode and OpenGL. Xcode... well Xcode comes to you with time. Just fiddle around with it, do some of ADC's tutorials and check out the sample codes! I'm still learning my way around it, but it is much easier to use than what I first imagined it would be.

As for OpenGL... the most important concept (IMO, others might disagree) is the state machine. This basically means that you put OpenGL into various modes, and being in a certain mode will present certain capabilites. For example, you could be in drawing mode, which will let you draw stuff. The current color may be blue, so everything you draw until you change the current color will be blue.

Also of paramount importance is error handling, display change handling, and capability checking.

NeHe is a site I have been frequenting for the past few months or so, just to get a feel for what OpenGL can do and (sometimes) how to do it. The tutorials are for PC, but they may still help you get an understanding of how this stuff works.

Check this out for an Xcode port of NeHe's Tutorial 1, and a step-by-step GLUT implementation.

Best of luck, hope I could help!
Quote this message in a reply
Member
Posts: 67
Joined: 2006.06
Post: #7
Just curious, why is Java not an option?

The machine does not run without the coin.
Quote this message in a reply
Nibbie
Posts: 1
Joined: 2010.11
Post: #8
StealthyCoin Wrote:Just curious, why is Java not an option?

Well, to be honest I enjoy Java as a language and find it quite powerful and easy to use. I can code a game in Processing (processing.org a free Java IDE/library with a strong focus on interactive graphics, quite apt for making games) in maybe 5 days that would take me a month in anything else (http://www.staronesw.com/StarKnight0.8.zip), but unfortunately Java is not a natively compiled language. This means that rather than turning your code into bytecode for your mac, or your PC, it compiles it for a made up bytecode, in this case the one used by the Java Runtime Environment. While this means that your code will run virtually unchanged on many platforms (Mac, Windows, Linux, HDDV and BluRay disk players, your cell phone), it also means that it lacks the speed of a compiled language. On a fast, modern computer it is quite possible to make a basic 3D game, or any 2D game, but you will find yourself limited by the fact that Java runs similar code at maybe 1/3 or 1/5 the speed of C (I could be off on this estimate). This is easily fast enough to make a complex 2D game using OpenGL and Java, or a simple(graphically, *do not* try a MMORPG until you're good enough to realize that you shouldn't on your own) 3D game like RuneScape.

Another advantage of Java is that it has a similar structure to C (algol inspired, but nobody cares), although it is *far* more forgiving and its syntax error reports are more clear than most C compilers. This means that (as long as you don't get into OOP), Java code isn't too difficult to switch to C, you just need to write C functions for all of your favorite Java ones. So, wrapping that rant up: Java=great for 2D, Java=not so great for 3D or Physics intensive games.
Quote this message in a reply
Luminary
Posts: 5,143
Joined: 2002.04
Post: #9
Most games these days have a large amount of the game logic coded in a language *much* less efficient than Java. The JIT compilers for Java are really quite good these days, particularly on x86 (anyone who's basing their judgement of Java's speed solely on its speed on a PowerPC Mac is in for a pleasant surprise when they switch to an Intel one).

I tend to find that my games end up graphics-bound, anyway, at which point the language used to code them is virtually irrelevant.

You probably won't want to write a physics engine in Java, but you'd be more likely to write Java bindings for ODE or Newton anyway Rasp
Quote this message in a reply
Post Reply 

Possibly Related Threads...
Thread: Author Replies: Views: Last Post
  Direction of normal Miglu 3 3,469 Oct 4, 2010 05:08 PM
Last Post: Skorche
  Direction formula? TimMcD 2 5,021 Nov 11, 2009 11:42 PM
Last Post: TimMcD