ZFGC

General => Boards => Archive => Sponsored Tutorials/Engines => Topic started by: Cassyblanca on March 20, 2012, 03:44:46 pm

Title: [GLZelda] Discussion, News, Design and Requests
Post by: Cassyblanca on March 20, 2012, 03:44:46 pm
Learning OpenGL Through Fan Game Development (http://zfgc.com/forum/index.php?topic=38946.0)

This thread will serve as a general discussion for the tutorial series, "Learning OpenGL Through Fan Game Development." Because this tutorial is focused on the community, I would love to have any input that the community is willing to offer in regards to the development of the series - any ideas, requests, questions, suggestions, or grievances that you have with the series itself are welcome in this thread. However, I ask that comments/questions affecting only a single tutorial in the series be placed in their thread (see the linked topic, above, for a tutorial index) for the sake of organization.

Things that I am specifically looking for at this point:
Title: Re: [GLZelda] Discussion, News, Design and Requests
Post by: Cassyblanca on March 24, 2012, 03:26:47 am
Unfortunately, my internet access has prevented me from being able to complete the update to Xcode 4.3.1, so I'm going to delay the release of the first tutorial until it completes. Gommen. (A 1.5-gig file on a 700Mb rolling download meter is a pain in the ass)
Title: Re: [GLZelda] Discussion, News, Design and Requests
Post by: DaSpirit on March 28, 2012, 09:47:03 pm
I've seen that screenshot you had in that other topic. I see you used glMatrixMode which is deprecated in OpenGL 3.0+, so this leads me to ask which version of OpenGL you're using.
Title: Re: [GLZelda] Discussion, News, Design and Requests
Post by: Cassyblanca on March 30, 2012, 12:50:26 am
I'm going to be using OpenGL 2.1 for this series, since most Mac systems are compatible with it. Along with this, it's easier to teach the fixed-function pipeline than the programmable pipeline, so early on the series will still be using some of those deprecated features. Depending on the skill level of the readers, I am planning on slowly building toward using the programmable pipeline during the series, but my primary focus here is teaching some of the newer developers, rather than instructing people who already know what they need to strike it out on their own.

With that, I've finished the Mac version of the tutorial, and am knocking out the Windows/Visual Studio version as I write this. The Linux/Code::Blocks portions will have to wait until I get to Arizona, because I'm not installing a Linux distro on any of my computers until I've got a reliable Internet provider.

Edit: Also, that screenshot isn't from the tutorial series. It's from an SDL/OpenGL test application I'd been writing to hammer out all of the Apple-specific tasks that'll be needed (like the custom build script that will be introduced later on in order to copy the game data to the Application Bundle).
Title: Re: [GLZelda] Discussion, News, Design and Requests
Post by: Theforeshadower on March 30, 2012, 03:53:00 am
I enjoyed the quick read of what you have written thus far.  Seemed to the point and easy to follow.  I like the layout and such as well.  Look forward to more :)
Title: Re: [GLZelda] Discussion, News, Design and Requests
Post by: Cassyblanca on March 30, 2012, 05:22:07 am
Posted a link to the project on GitHub in the Discussion topic.
Title: Re: [GLZelda] Discussion, News, Design and Requests
Post by: DaSpirit on March 31, 2012, 05:24:25 pm
I've looked at your tutorials and they seem well written so far. So will you only cover Xcode and Visual Studio? Also, do you plan to release these as a book eventually? Reading PDFs in web browsers are annoying, I would prefer just reading it on a website.

I also notice you're using SDL for window creation. I myself consider SDL to be bloated for just for that purpose, I would rather use something like GLFW. Does this mean you're going to be using SDL_image for texture loading?
Title: Re: [GLZelda] Discussion, News, Design and Requests
Post by: Cassyblanca on March 31, 2012, 06:37:23 pm
So will you only cover Xcode and Visual Studio?
No, I intend to add coverage for Code::Blocks and potentially KDevelop at a later point -- unfortunately, I'm sitting on a Satellite internet connection until mid-April, so I'm holding off on installing a Linux partition on any of my machines.

Also, do you plan to release these as a book eventually?
As a hard-copy, not likely. Jonathan Harbour had run into problems with Nintendo when he had tried publishing a book on homebrew development for the Gameboy Advance system, and I know I'll have less luck with a book on developing fan games. If the response to this series is positive enough, I may consider doing so in the future.

Reading PDFs in web browsers are annoying, I would prefer just reading it on a website.
Unfortunately, I feel that discussion boards are ill-suited for formatting tutorials. Normally I had posted tutorials on my blog, but since dropping my Linode and pointing my domain to Tumblr, that's not as nice an option at the moment. With the new system for ZFGC, we're planning to add enhanced support for all resource types, including tutorials - and I plan to port the tutorials to that article system as well.

I also notice you're using SDL for window creation. I myself consider SDL to be bloated for just for that purpose, I would rather use something like GLFW. Does this mean you're going to be using SDL_image for texture loading?
I'm going to be honest, I'd never even heard of GLFW (though it certainly seems to be a decent library). Usually, I prefer to implement the application layer myself (I've got a bit of a Direct3D background, so Win32 is no stranger to me - though I'm not as familiar with Cocoa or X), but SDL provides a lot of things that were appealing to me in the context of this series:

1) It's easy for new developers to wrap their minds around. This is probably the most important thing to me, as new developers are my target audience.
2) Although I don't use it for most personal projects anymore (Horus being the exception, but that engine's largely focused on being a testing ground for things before they go into GL-Zelda), I do have some familiarity with SDL.
3) Most importantly, SDL provides a uniform method for handling a large subset of tasks - loading images, loading/playing audio, etc. Looking over GLFW, it's deprecated its texture loading features, and similarly has no support for audio. Unfortunately, covering the setup of DevIL (my image library of choice) and other libraries in a cross-platform manner is a little cumbersome for new developers.

SDL may have feature bloat, but it isn't so bad as to cause any problems. Its uniformity with API calls and ease of adding plugins (Such as, yes, SDL_image) ultimately won out as the best choice for teaching new developers.
Title: Re: [GLZelda] Discussion, News, Design and Requests
Post by: DaSpirit on March 31, 2012, 09:52:52 pm
I see.

I also noticed you want to use GLSL. In that case, will you be using GLM, or will you have your own Matrix classes and such?
Title: Re: [GLZelda] Discussion, News, Design and Requests
Post by: Cassyblanca on March 31, 2012, 10:27:12 pm
Whenever we transition to that point, GLM. That it's entirely header-based and incredibly lightweight is brilliant, and I have yet to see a better implementation (the first time I'd started playing with OpenGL, I had used kazmath - can't say I cared for it all that much). It's honestly a shame that GLI has so few supported file formats (only DDS, if I recall correctly), because I love the implementation model.

My plans at the moment are to develop the game using the fixed-function pipeline, developing a slightly-abstracted graphics system so that when I feel users are ready to transition to a programmable pipeline, I can dedicate a small set of tutorials to implementing VBOs, then re-implementing the abstracted API through shaders (I'm still considering how best to tackle this right now).
Title: Re: [GLZelda] Discussion, News, Design and Requests
Post by: DaSpirit on March 31, 2012, 11:38:05 pm
I suppose it is a good idea to teach using the fixed-function pipeline first, as it mainly teaches concepts (though I didn't really understand most of them until I started learning about shaders). I feel like I'm bothering you asking all of these questions ^_^' lol but what for audio? OpenAL? Looking at the lastest OpenAL, it looks exactly like OpenGL 3.0+, but I don't know much about how audio works, never got that far in making a game.

I don't meet much nice people who are experts at game programming.
Title: Re: [GLZelda] Discussion, News, Design and Requests
Post by: Cassyblanca on April 01, 2012, 12:21:23 am
I suppose it is a good idea to teach using the fixed-function pipeline first, as it mainly teaches concepts (though I didn't really understand most of them until I started learning about shaders).
That's how things generally work with any library that hides the details behind pretty ease-of-use features - SDL's surfaces, for example, help to teach newer programmers about the importance of graphics buffers - but doesn't explain all that much beyond the general scope.

I feel like I'm bothering you asking all of these questions ^_^' lol
No problem at all - I'm always happy to see interest in things I'm working on.

but what for audio? OpenAL? Looking at the lastest OpenAL, it looks exactly like OpenGL 3.0+, but I don't know much about how audio works, never got that far in making a game.
I'm still trying to decide between using Audiere, SDL_audio and OpenAL. I prefer working with FMOD, but the size of it is a little overboard for the series. Ultimately it'll probably come down to the ease with which it can be packaged for multi-platform use.

I don't meet much nice people who are experts at game programming.
Believe me, I'm no expert - programming is just something I enjoy doing, and graphics programming has been the area I've been focusing on learning most recently. Writing these tutorials helps me as much (possibly even more) as the tutorials themselves help new developers. It's the same philosophy I had when training new Marines when they got to my unit - as I taught them, I had them focus increasingly on teaching others, which helped to solidify their understanding of the subject (in that case, network architecture and Cisco hardware).

Contact Us | Legal | Advertise Here
2013 © ZFGC, All Rights Reserved