Run down of things I need to learn and tools needed

Apprentice
Posts: 6
Joined: 2009.04
Post: #1
Hey everybody.
Been lurking here for some time, have a couple questions regarding what I need to learn and which tools I need.

Have a game idea that I've developing for the last year or so. I want to make it into a reality. Though there are some things I need to figure out before I get too ahead of myself.

I have background in graphic design, music production, and web design. So have those basses covered.


General Needs
The game is a 4x game (like the civilization series for those that don't know the term). With an isometric camera view that can zoom in and out. I would like the map to be 3D/2.5D. The animations would be the various units on the map moving from region to region. There would also be various menus, pop up events, and panes overtop.

Now what should I use, openGL?

Language and Library
I've settled on Objective-C for the language. I have a background in graphic/print design. So due to the use of classes, makes more sense to me. Working my way through a couple objective-C books right now.

What I would like some help with is which library should I use? SDL? I hope to be able to sell this game once all is done. The current SDL license though does not permit this.

Assets
Think I've settled on Zbrush or Muxbox for my modeling tools.
Though I am not sure what I should use for animation.



I understand this is a huge undertaking, but I have a lot of spare time. Wink
Quote this message in a reply
Moderator
Posts: 613
Joined: 2004.09
Post: #2
For the zooming and panning ideas that you have OpenGL would probably be best.

Take a loot at GLUT over SDL, I prefer GLUT and there is no licensing fee.

Sounds like you are approaching this correctly, you are right this is a huge undertaking I would suggest partnering up with a more experienced developer. This will allow you to contribute the art assets and still learn to program at the same time. If you want to run it solo go for it. It will be a difficult project and expect to redo things a number of times but if you have the spare time and commitment it might be doable. Take it very very slow and break it down to the most basic elements. Treat everything as a milestone to stay motivated.

Good luck and keep us posted.

Kyle Richter
DragonForged.com
Twitter: @kylerichter
Quote this message in a reply
Apprentice
Posts: 6
Joined: 2009.04
Post: #3
Thanks for the tips. Looking into Glut and checking out some of the sample code.
Wondering if I can handle all this on my own. I am aware we'll probably be at osXI by the time all is said and done. Wink

Currently putting learning objective-C on the back burner and working on writing out all the game rules, concepts, ideas, and mechanics. Calling it "Concept Development". Want to get everything sorted before I worry about how to code it in.
Quote this message in a reply
Member
Posts: 63
Joined: 2005.12
Post: #4
As far as I am aware, SDL is licensed under the LGPL, with an alternative commercial license available for version 1.3. Unless I'm missing something, there's no reason you can't sell products developed using SDL. May I ask why you believe this to be the case?

Personally I would recommend SDL over GLUT. You might also take a look at GLFW or SFML.

Another option would be to go with a higher-level game authoring tool, such as Unity. This would allow you to focus more on the game itself and to get something playable up and running more quickly.
Quote this message in a reply
Member
Posts: 260
Joined: 2005.05
Post: #5
_jyk_ Wrote:Personally I would recommend SDL over GLUT.
Any specific reason? I have seen comments about some kind of problems with keyboard/mouse interaction with GLUT, but so far it has been able to do just about anything I want. Except one thing: I don't want a lot of GLUT stuff in the menus, I want to customize them.

What I don't like about SDL is that it is a separate installation. I suppose one can put the SDL framework inside the app to get around it.
Quote:Another option would be to go with a higher-level game authoring tool, such as Unity. This would allow you to focus more on the game itself and to get something playable up and running more quickly.
High-level tools or libraries tend to be fast and easy up to a point. Then they get in the way. With Director, you can point-and-click animations nicely, but most of the work is done in scripts for a single frame and you didn't win that much. I have seen several projects based on OGRE, and they say the same thing: The moment you get beside the main track, you are on very rough grounds and things get hard.

I think one should try the high-level stuff, but also be aware that there are times where you should jump off them.
Quote this message in a reply
Member
Posts: 63
Joined: 2005.12
Post: #6
Quote:Any specific reason? I have seen comments about some kind of problems with keyboard/mouse interaction with GLUT, but so far it has been able to do just about anything I want.
SDL and SFML in particular are both considerably more powerful and feature-rich than GLUT, and also (as I understand it at least) are under more active development. Also, GLUT's architecture (blocking main loop function, etc.) is not particularly well suited for serious game development. GLUT's original purpose was to serve as a simple windowing toolkit for developing OpenGL-based applications - I don't think it was ever intended to be a fully functional game framework of any sort.

That's just my experience though. My best advice to the OP would be to investigate the various tools that have been mentioned here and choose whichever he feels most comfortable with.
Quote:What I don't like about SDL is that it is a separate installation. I suppose one can put the SDL framework inside the app to get around it.
If you're referring to including the SDL framework in your application bundle, then yes, that's how it's typically distributed. The end user shouldn't have to do anything special or perform any separate installations.
Quote:High-level tools or libraries tend to be fast and easy up to a point. Then they get in the way. With Director, you can point-and-click animations nicely, but most of the work is done in scripts for a single frame and you didn't win that much. I have seen several projects based on OGRE, and they say the same thing: The moment you get beside the main track, you are on very rough grounds and things get hard.
The particular authoring tool I mentioned (Unity) offers a good mix of customizability and ease of use. As with all things, there are tradeoffs; by using an authoring tool such as Unity, you might lose some flexibility, but also save a few weeks or months of development time. Whether this tradeoff is acceptable depends of course on the project and on the developer.
Quote this message in a reply
Member
Posts: 260
Joined: 2005.05
Post: #7
_jyk_ Wrote:SDL and SFML in particular are both considerably more powerful and feature-rich than GLUT, and also (as I understand it at least) are under more active development.
The original GLUT was left to rot, but GLUT is not dead. In particular, FreeGLUT is deing developed. Latest version (release candidate): 23 Apr 2009.

Are there any particular features that SDL have in its favor?
Quote:Also, GLUT's architecture (blocking main loop function, etc.) is not particularly well suited for serious game development.
I do prefer to have more control over that central loop, but it isn't bad to use a timer either. In particular, GLUTs main loop prevents the use of any other package that has its own main loop.
Quote:GLUT's original purpose was to serve as a simple windowing toolkit for developing OpenGL-based applications - I don't think it was ever intended to be a fully functional game framework of any sort.
But the purpose of Game GLUT definitely is games.
Quote:That's just my experience though. My best advice to the OP would be to investigate the various tools that have been mentioned here and choose whichever he feels most comfortable with.If you're referring to including the SDL framework in your application bundle, then yes, that's how it's typically distributed. The end user shouldn't have to do anything special or perform any separate installations.
Yes, that what I had in mind. I find frameworks dumped inside the app to be a bit of a kludge. We definitely agree on what is nice to the user. Smile

Let me stress that I am not in any way against SDL, but I see GLUT as a viable and easy alternative, and I am seriously interested in learning about any advantages of SDL that I didn't know about.
Quote:The particular authoring tool I mentioned (Unity) offers a good mix of customizability and ease of use. As with all things, there are tradeoffs; by using an authoring tool such as Unity, you might lose some flexibility, but also save a few weeks or months of development time. Whether this tradeoff is acceptable depends of course on the project and on the developer.
Precisely. I am sure there are many projects where it is just great (just like with Director and OGRE).
Quote this message in a reply
Member
Posts: 63
Joined: 2005.12
Post: #8
Quote:Are there any particular features that SDL have in its favor?
I would have to do some research to make a really informed comparison between SDL and GLUT. My recommendation of SDL over GLUT is based primarily on my own experience using both APIs (I haven't used GameGLUT), and from what I've picked up from developers on other forums (which is that, generally speaking, GLUT isn't the best choice for commercial game development due to its lack of flexibility and its limited feature set).

As for particular features, one thing that's pretty much necessary for a modern game is to be able to query the supported video modes of the host system. I looked around in the GameGLUT docs a bit, and see that you can query whether a particular mode is supported, but I didn't see any way to get a list of supported modes. Perhaps there's a way to do this though, and I just missed it.

There are also a number of add-on libraries that can easily be used with SDL. By using (e.g.) SDL_net, SDL_image, and SDL_mixer along with SDL's core functionality, you get basic networking, sound, and image loading.

SDL_mixer provides solid support for basic audio, but it has a few shortcomings, and doesn't offer more advanced features such as pitch shifting. However, it's certainly a viable option if your audio needs aren't too demanding, and it's very easy to use.

Here are a few other SDL features for which I'm not aware of a GLUT counterpart. It sounds like you know GLUT quite well though, so please correct me if any of these are available in GLUT:

- Ability to 'grab' mouse input in windowed mode.
- Enable/disable key repeat and set key repeat rate
- More event types, including application/window focus loss and gain
- Two-way event queue
- Event filtering
- Basic multithreading support

All of the APIs that have been mentioned have their own strengths and weaknesses, of course - there's certainly no 'one size fits all' solution. Again, the OP should use whatever works best for him.
Quote this message in a reply
Apprentice
Posts: 6
Joined: 2009.04
Post: #9
A lot to consider, thanks for the suggestions and opinions guys.

Unity looks interesting, though I think I'd rather not use a tool like that.
Think I would always be trying in hack the code into doing what I wanted it to do. Though it being cross platform is interesting.
Quote this message in a reply
Apprentice
Posts: 6
Joined: 2009.04
Post: #10
Ok, SDL it is. Reading a lot on it.
Something I am not sure of if I use SDL to create the interface to my game?
Going to have a bottom and top to display various information/stats, as well as other sub menus with more options inside. Should I use an additional gui library for that or can SDL handle those types of things?
Quote this message in a reply
Apprentice
Posts: 6
Joined: 2009.04
Post: #11
Thought I had added another reply here.

Here it goes again.

SDL it is. I don't know where I got the idea that couldn't use it for a commercial game.
Can SDL handle my ingame info bars? Going to have a top and bottom bar with various info displayed in them. As well as bottom to open sub menus were more detailed information and choices can be made. Should I look into an additional library for this kind of stuff or will SDL suffice.?
Quote this message in a reply
Moderator
Posts: 3,579
Joined: 2003.06
Post: #12
jaked Wrote:Thought I had added another reply here.

You did. Sorry jaked, we have to approve the first few posts for new members to weed out spam. I approved both of your posts. You can choose to delete one, or you can just leave them both and maybe that'll leave you over the "first few post barrier" so you don't have to be approved anymore. I don't know how many posts are required or if it'll reset if you delete one...
Quote this message in a reply
Post Reply 

Possibly Related Threads...
Thread: Author Replies: Views: Last Post
  Need to learn SDL clapton541 13 5,006 Jan 13, 2007 09:38 AM
Last Post: clapton541
  "Learn C" ? Marjock 15 6,835 Jul 5, 2004 01:23 PM
Last Post: Marjock
  NSAffineTransforms, among other things suhbataar 5 3,183 Jan 16, 2004 07:13 AM
Last Post: suhbataar