• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
Sugavanas

What is OpenGl ? Should i start with it ?

13 posts in this topic

Hello guys i have a doubt, what is opengl and should I start of with it ? And also is it necessary for anyone to make their game from open gl or they can start their own ??
0

Share this post


Link to post
Share on other sites

Hello guys i have a doubt, what is opengl and should I start of with it ? And also is it necessary for anyone to make their game from open gl or they can start their own ??

 

OpenGL is a 3D rendering API that provides a reasonably uniform way for your application to talk to the GPU driver, on Mac and Linux it is the only option you have for hardware accelerated graphics. (Allthough there are higher level libraries that you can use instead but those all use OpenGL under the hood).

 

On Windows there is also Direct3D which does the same thing (and alot of people consider Direct3D to be cleaner and thus less painful to work with), Direct3D tends to also have better support on intels GPUs (So for semi-advanced -> advanced games on Windows it is often the better option of the two since it allows users with cheaper hardware to play aswell)

 

You don't have to use either of them unless you need hardware acceleration, The only way to get hardware acceleration without using OpenGL or Direct3D (directly or indirectly) (On the PC, consoles normally have their own APIs but you don't have to worry about those at this point) would be to write your own driver for each GPU you want your game/API to support (This is extremely difficult since the necessary documentation is kept secret by the manufacturers and the number of different GPUs out there is growing constantly).

 

There used to be a few other vendor specific 3D APIs on the PC (Glide for example was used by the Voodoo series) but they're all dead now, any new PC GPUs that gets released must support Direct3D and OpenGL in order to work with existing software and game developers don't want to use an API that only works with hardware from a single manufacturer (unless its a console where all units will use the same hardware anyway) so introducing a new low level 3D API will be incredibly difficult.

 

If you don't need hardware acceleration you can use whatever 2D API your OS provides. (Or a higher level library).

Edited by SimonForsman
2

Share this post


Link to post
Share on other sites

so you mean that every game made is made with opengl or direct3d ?

 

Every modern game that uses 3D, yes. (post 2000 or so)

With exception of some consoles that have their own APIs

Edited by Olof Hedman
0

Share this post


Link to post
Share on other sites

so you mean that every game made is made with opengl or direct3d ?

No. He said that games could be using

A: OpenGL

B: DirectX

C: Your own drivers and custom API

D: The drawing API provided by the OSes of choice.

 

Naturally you can also create 3D games using C and D. Take a look at Quake, for instance.

That's software rasterized polygons. Simple 2D raycasting can be used to create games like Wolfenstein 3D (and Doom, if you're clever)

You can access much in cross-platform drawing through the use of browsers. It's easily the most cross-platform way to create games, and doesn't necessarily depend on OpenGL (That's the browser that decides on rendering.)

 

So there's no rules as of what to use where.

Only it's probably more common to use existing API's for Hardware acceleration when developing 3D applications (As Olof said, most modern 3D games use them)

Naturally, higher level frameworks and libraries such as SDL allow even more abstraction than basic DirectX and OpenGL.

Edited by SuperVGA
2

Share this post


Link to post
Share on other sites

Every game will probably need to communicate to the GPU in some way. Thats what Direct3D and OpenGL are there for (in PC at least). You choose one or the other to communicate to your GPU and tell it what to do.

0

Share this post


Link to post
Share on other sites

so you mean that every game made is made with opengl or direct3d ?

These days, yes. Glide is long-gone.

These days DirectX 11 is the de facto standard in 3D graphics. Newer OpenGL versions aim to mimic the functionality of DirectX 11 but still retain the flaws of the past where bind-to-edit made a small semblance of sense.
DirectX 11 is closer to how hardware actually works and gives you closer access to the root of the hardware.

Another problem with OpenGL is that its support varies quite widely between vendors. What works for you will not necessarily work for your friend when you ask him or her to test your game. Due to DirectX’s strict guidelines this is much less common in DirectX. I know of only one single mobile graphics card and driver version in which what works for you may not work with your friend. Otherwise, if your friend does not have that mobile Radeon graphics card and that specific driver installed for it, what works for you works for all.

In any case, all relevant consoles are using API’s that are either DirectX 11 or extremely similar, and this is where the industry is heading. It is basically your best bet for now as far as learning an API relevant to the future of game programming.


L. Spiro Edited by L. Spiro
2

Share this post


Link to post
Share on other sites

If your just starting out programming start by learning C++ and maybe SDL...Then check out OpenGL once your more confident.

I'm just starting and going with Allegro as my API which I think also links into OpenGL

 

SDL or Allegro give user inputs, sound etc then u can use OpenGL to do the graphics if u want.

0

Share this post


Link to post
Share on other sites

There is really no reason to write your own graphics engine anymore.

For several reasons:

...

 

There is nothing left to invent. A graphics engine just organizes the steps of setting up vertex buffers, render states, and draw calls. Everything interesting after that happens on the GPU. It's all standardized behavior. So regardless of what your code looks like, the end result is entirely up to your content(models, shaders, materials).

 

Hardly true at all. If Doom, the Quakes, and then Rage have proved anything, it is that there is still a lot left to be done on even current-gen hardware. Rage running at 60FPS on the equivalent of a Radeon X1800 is nothing to laugh at, and neither is the notion of writing one's own graphics engine. As far as having "nothing left to invent", again, not true at all. A game made with Unreal Engine 3 will look different and run much slower (invariably) than a game made using, say, id Tech 4 or Unity.

0

Share this post


Link to post
Share on other sites


A game made with Unreal Engine 3 will run much slower (invariably) than a game made using, say, id Tech 4 or Unity.


How so?
0

Share this post


Link to post
Share on other sites

id Tech 4 and Unity 3D are rather different technologies from UE2.5-3. Comparing between these three engines running identical hardware, Unreal Engine 3 is going to invariably be slower than id Tech 4... Not necessarily "worse".

 

Don't get me wrong, I personally hate the Unreal Engine and have hated it since 1997, but what I was really trying to say was "a game engine written X years ago is going to run faster than game engine Y written yesterday." Get what I mean?

0

Share this post


Link to post
Share on other sites

id Tech 4 and Unity 3D are rather different technologies from UE2.5-3. Comparing between these three engines running identical hardware, Unreal Engine 3 is going to invariably be slower than id Tech 4... Not necessarily "worse".

 

Don't get me wrong, I personally hate the Unreal Engine and have hated it since 1997, but what I was really trying to say was "a game engine written X years ago is going to run faster than game engine Y written yesterday." Get what I mean?

 

Not necessarily. An engine written with the proper optimizations could be designed to run faster than an older engine on the same hardware. Using technologies such as CUDA or OpenCL allows you to take some of the work off of the CPU and place it on the GPU. id Tech 4 games like DOOM 3 don't support GPGPU functionality while newer engines such as UE3/4 or CryENGINE 3 do.

 

And UE3 isn't slower because its newer, its slower because it requires better hardware than what is required for older (or lower-end) game engines. UE3/4 and CryENGINE 3 belong in a different class from id Tech 4 or Unity3D. both UE3/4 and CryENGINE 3 are designed to push the limits of modern computer hardware, while id Tech 4 and Unity3D are designed to run on current and older hardware.

 

Comparing UE3/4 with id Tech 4 is like comparing Battlefield 3 with Battlefield 1942 or Call of Duty: Black Ops 2 with Call of Duty 1. They are designed for different hardware generations. I'm sure if you pumped UE3 level 3D models into id Tech 4 it would run even slower than UE3 itself because it wasn't designed to handle 3D models of such high detail.

 

I've had the pleasure of working with all four engines (UE3, CryENGINE 3, Unity3D, and id Tech 4) at one time or another and can say this: "Each engine has its own strengths and weaknesses. Depending on where you want you game to be strong depends on the engine you should choose."

1

Share this post


Link to post
Share on other sites

Hardly true at all. bla bla bla

Every word of what I wrote is true. I'm not even sure what you are arguing with? Because I did't post anything about engines and their speeds. This is a thread about how someone new should proceed.

If someone wants to make a game, they should go grab an engine, learn to use it, and start putting in their content. There is no need to waste time learning to program D3D or OpenGL if your goal is to make a game. I'm sure his game idea isn't a rotating, normal mapped, teapot or Standford Bunny. Rendering behavior has become pretty standardized and there is no need to go fooling around with all those low level calls. Barring a graphical feature or two (which amount to useless niggling), your content will look like whatever the artist came up with.

Now for the rest of that crap you prattled on about.

A lot of old OpenGL games certain DON'T run better on newer hardware. Especially when they can't find all the outdated extension strings they are looking for, and switch to software fall backs, or worse rendering techniques.

For instance, my newer PC in 2007 with a newer geforce couldn't run Quake2 anywhere near as good as my old machine with a Riva TNT2 in it. One start-up the console would scroll past a huge list of missing extensions, one of which was an old multi-texturing one. So now the game was doing multiple passes over every frame, and I was struggling with it at 800x600.
1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0