API's or low-level programming

Started by
5 comments, last by mmakrzem 10 years, 4 months ago

Hi,

I started game programming with XNA because I found it easy and fast. Now I want to learn SDL because XNA is dying and I want to improve my C++ knowledge. The question is if I can do professional looking games using an API or I need to learn low-level programming (directx or opengl). I've seen that games like Neverwinter or FTL are made with SDL but they are also using their own tools?

Sorry for my english.

Thank you!

Advertisement
Games like NWN used SDL only for input and basic window management. All the graphics and audio are handled outside of SDL. SDL does not provide very much functionality when it comes to audio and doesn't do any 3D rendering of its own, offering only a minimalistic 2D rendering API. If you want to do 3D or do any kind of advanced audio then you're going to have to learn more advanced APIs like OpenGL, Direct3D, OpenAL, Wwyse, FMOD, etc., or pick a pre-made game engine to use.

Sean Middleditch – Game Systems Engineer – Join my team!

Depending on what you mean by "professional quality" games, you can almost certainly accomplish what you want by just using existing libraries.

"Professional" game developers generally build on top of libraries anyways, they just might be proprietary libraries that are owned by the studio and not publicly shared.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

If you want to keep using XNA, look into MonoGame ;)


The question is if I can do professional looking games using an API or I need to learn low-level programming (directx or opengl)
DirectX and OpenGL are APIs. SDL is an API. Commercial game engines will have APIs. XNA is an API.

"Low-level" programming is generally used to build an engine. You use these "low level" APIs like SDL and OpenGL, and wrap them up into an easy-to-use "high level" API, which you call an engine.

To make a game, you can then do so with very little "low level" programming by using the high-level engine API instead.

"Professional looking" games can be made using just about any level of abstraction, ranging from DirectX to GameMaker or Unity. The more critical factor, I think, is having a professional art team at your disposal ;)


The question is if I can do professional looking games using an API

I would go as far as to say "Without an API, you will almost never do a professional looking game". If writing tools and engines is your goal then fine write them but, if you want to write a game then find a suitable SDK, API, Engine, Tool or whatever and get started.

Professional looking games will require you to dive into the world of shaders. That means you'll need to be able to program at the video card hardware level. Both OpenGL and DirectX have their own shader languages for this.

If that is something you don't want to get into, then you'll have to rely on an engine to give you the functionality that you want, but then you can only do what the engine supports. If you want to tweak how something looks and the engine doesn't support it then you'll be out of luck.

So it really depends on what look you are going after.

This topic is closed to new replies.

Advertisement