OpenGL or DirectX

which one is better for an indie game developer? why?

Other urls found in this thread:

community.amd.com/thread/205702
community.amd.com/thread/194895
twitter.com/AnonBabble

muh dick

vulkan

use opengl + GLM unless you hate yourself

ok, but why?

because GLM is the best math library for graphics that exists and shitloads of tuts and stack overflow questions use it

ok, i'll take a look to it! thanks

>indie game developer

Unity.
>OpenGL
how does it make you feel to be retarded?

>indie game developer
>OpenGL
>DirectX

Please just get a mcjob - if you think one of those is best then kys

Neither, Vulkan is the best API we have atm.

auschwitz

use vulkan

openGL needed to die 10 years ago

>itt memesters
Use OpenGL.

>"""indie game developer"""
>does not even know what's better

>I want to make a game
>okay here learn this API that will take 1 year for you to learn

You should trust the future of your little bullshit game to microsoft, the people that brought you the masterpiece of trash that is windows 10.

>Indie devs
These graphics APIs are for people with a strong understanding of the fundamentals. Indie """devs""" are often just glorified artists that lack this understanding. If any Indie dev is interested in graphics I would strongly suggest you read a real graphics programming book(not based on an API). The most you will need is a memory buffer and a SetPixel(x,y,color) function, from there its just data structures and math.

Once you know the fundamentals of graphics programming, these graphics APIs become interchangeable.

Code your own API

one is locked to windows while the other works on even phones

not really

there is an opengl for phones and one for computers

Good post

GL is better for indie developers
OpenGL + GLM + GLFW is the way to go

SDL or Allegro... don't punish yourself.

>indie game developer
If you're serious about actually making a game, you should be looking into engines and licensing costs. If you're just looking to dick around with amateur engine dev, do whatever you want.

>Unity
How does it feel to be retarded?

you don't need an engine unless you're a numale who only knows Javascript

ncurses

Or you could, you know, use an API or engine that uses it and abstracts it instead.

OpenGL because you can easily pick up WebGL from that and make games for the web

2D? SDL2, don't waste your time and energy.
3D? OpenGL.

Vulkan

Indie games most of the time are muiltiplatform to get as much money as they can. So opengl or vulkan

OpenGL for compatibility (easier to port the game after if you can't into native)

DirectX for "windows only" ((((xbox 1080))) purposes (has become a meme since 9.0c days)

>because an indie dev totally wants to write their own engine

No, you want to make games, retard. Unity's the best tool if you want just that.

Neither, nobody directly uses opengl/directx. It's not the 90s anymore.

>I want to do something but I don't want to put in any of the effort required to do it.
That's you

That's not entirely true. Creating every effect from scratch is a lot of work. Engines can take a lot of that work out of making a game.

But, I think it's important for a game developer to at least try to make their own engine from scratch before thinking they'll have any success using someone else's engine.

opengl. directx isnt much superior and restricts to one platform; vulkan/metal are mindfucks

10-15 years ago, OpenGL was behind in terms of development due to noone taking responsibility for it. These days, that's not true anymore and there's really no reason to prefer DirectX.
With OpenGL, at least you get some measure of cross-platform compatibility, but DirectX just literally has no advantage.

>vulkan
If you're fine with only supporting ~10% of hardware out there, then yes, that's the way to go.

OpenGL might be is capable of's DirectX 11, but it's an absolute cluster fuck, where you need hacks to even get the thing to run correctly which is what Nvidia did AMD implemented it OpenGL per the spec. See where that got both of them.

>you need hacks to even get the thing to run correctly
Please clarify. I haven't noticed any hacks in my OpenGL usage.

>But, I think it's important for a game developer to at least try to make their own engine from scratch before thinking they'll have any success using someone else's engine.
just like it's important to build your own car before you get your driving license

What the fuck are you babbling about, retard?

/thread

No other api is worth it anymore. We've already seen the doom gains and compatible across every platform even phones where it rapes es

Unity fags always discourage engine builders

Vulkan if you hate yourself, OpenGL if you hate yourself in a slightly different way. There's no real reason to use DirectX unless you're actively trying to destroy your code's portability.

OpenGL or Vulkan. Why? openGL supports all hardware and operating systems and Vulkan is basically a better implementation of openGL.
But if you're indie dev just pick between engines instead:
>Atomic Game Engine
>GDevelop
>GameMaker studio
>Godot Engine
>Unity
>Unreal Engine 4
Any of these will do, depending on what you already know or want to learn and what budget and resources you have. It's not really worth going deep into either openGL or dX if you're just an indie dev.

He was talking about dX which is shit because it's only on windows, and Xbox (which nobody uses anyway).
Well meme'd. You have no idea what you're talking about.

Fuck off. I've built an entire game engine from scratch and yes you absolutely should avoid doing it yourself. There is no sane reason in the current year for people to have to write their own asset file loading infrastructure, it just wastes time that could be spent on actually developing new software.

>But, I think it's important for a game developer to at least try to make their own engine from scratch before thinking they'll have any success using someone else's engine.
This is true though, don't go all the way, but building a little shitty one will help a ton.

Driving a car is a hell of a lot simpler, you aren't building new pieces of machinery that plug into the existing machinery and expecting it to work. If you found somebody who was doing that, you might well suggest they build a mock-up of the system they're trying to interface with first. (This is if you're doing non-trivial stuff like adding complex mechanics or rendering features, if you're just building pixel platformers you can skip it obviously).

If you're an indie dev and you want money and you don't already know computer graphics, forget API and learn to use an engine.
But if you want to learn low level computer graphics (which is probably one of the more fun areas of programming) OpenGL is still the best choice. You can go straight to learning about projections and matrix transformations and whatnot with minimal setup. The new DOOM is amazing on vulkan because the devs knew their shit. Vulkan isn't magic that makes everything faster, it just gives you far more control. DirectX is fine and all but it's Windows only.

Not that user, but I disagree completely. You don't need to know how the underlying engine works in order to make high quality games. The quality of the product can improve, for sure, but in the end, you can still deliver high quality without this knowledge.

The car metaphor is really apt. Can you drive a car without knowing how a car engine works? Sure. Can you fix it if something goes wrong? Well, depends, do you have a mechanic? And that's what Unity is, a car with a mechanic.

Is learning a graphics API worth it? Sure is, if you're interested in how game engines work. At best it'll help you optimize your game better. But if you have a dream to make games and not game engines, then there are way more important things to learn. Instead you should be focusing on learning other way more useful things, like source control, AI techniques, procedural generation, linear algebra, design patterns, software craftsmanship, tooling, and how to use your engine effectively.

>just like it's important to build your own car before you get your driving license
Knowing how the car works certainly makes you a better driver than if you willfully try to ignore it. You might not *need* to build an engine, but dabbling in it certainly makes you a better game developer, just like how repairing your own car helps you understand how it works.

True, but if you're not highly experienced with graphics APIs Vulkan will be a fucking bitch to learn.

This.
Add in GLFW. If collisions are simple in your game do it yourself otherwise use bullet physics for realism.

>GLM
I don't really get the point. The necessary math functions are arguably the one simplest thing to implement. You arguably need to understand the maths anyway in order to use them efficiently, and if you do, the actual code is trivial to implement. But even if you don't, the vast majority or just a few multiplications and additions you can just scrape from any OpenGL tutorial.

I mean, sure, there probably won't be much difference from the code you implement yourself vs. what GLM does anyway, but at least you can integrate it more natively with your project structure.

> I've built an entire game engine from scratch

this shows me you are retarded

you think that a game engine is something that every game must have, and it is necessarily a complex thing.

really you could make a shell of a game from OpenGL up in like 500 lines of code, plus the shaders.

this right here

Not so sure. I still haven't used Vulkan personally, but OpenGL isn't exactly trivial to get up and running either, especially not post-3.0 OpenGL where you have to put vertex data in buffer objects and compile shaders and all that stuff anyway. And even when you're done with that, you still have to juggle the GL states around, whereas in Vulkan you have complete and whole PSOs instead. Sure, there's a bit more allocation work and synchronization going on, but I'm not sure that's really such a huge deal.

GLM is done extremely well. Better than whatever shit you could throw together.

It is very fast, preserves compiler SIMD optimizations, and is all done in templates so it is easy to use.

pygame

>Unity
please no

> "muh software craftsmanship"

if you understood "software craftsmanship" you would understand why engines are a bunch of shit. There is no craftsmanship in using an engine. Your design patterns and faggy comments don't matter because your code is totally trivial.

Really, you can't push any boundaries in an engine game. Go back to Bangladesh and jeet in street.

What did you mean by this?

OpenGL. How is this even a quesiton?

I'm not him, but you're a fucking retard - here's why:

He's obvious more interested in the actual game/application development moreso than the leaning the API.

If he were asking on which API to learn he would have asked "which API is best for learning 3D programming."

But no retard, he didn't say that, he said "indie game developer". Meaning he wants to actually make games

Because what he's really asking is which API he should support for his game. I.e. he's asking whether or not to use a game engine programmed in directx or opengl.

And the answer is of course opengl.

How many games and engines have you written so far?

>I've never used opengl

1 engine that works with heightmaps and loads a couple types of models plus various ray tracers, one of which runs on a GPU in OpenGL.

If you are so successful game developer why are you shitting in Bangladesh instead of commenting on Forbes.

I'm not but I know my 3d graphics, unlike you, Ashish

To make OpenGL work correctly Nvidia had to heavily modify OpenGL itself for it to even work. You saw this in doing before the Vulcan implementation.

>Because what he's really asking is which API he should support for his game

My point still stands. Real graphics programmers wouldn't even have a second thought about OPs question. Any competent programmer who, actually understands graphics programming, would just re-implement their draw calls with whatever graphics API preforms best. Using openGL on windows is fucking retarded when Direct3D has often has better driver support.

Also
>he said "indie game developer". Meaning he wants to actually make games

pic related.

Vulkan
open standard that works for android/windows/linux/mac (if they accept it)

maximum bandwidth capability and very targeted at the hardware

dx is closed just like nvidias binary drivers

You need to be careful of broken driver support for some functions with OpenGL for AMD cards.
community.amd.com/thread/205702
community.amd.com/thread/194895

openGL because it's crossplatform.
You're an indie dev, you want to reach as many people as possible. openGL makes it possible. directX limits you to windows users

Confirmed as a basement dwelling neckbeard faggot. Maybe if you'd work on a game slightly more complicated than flappy bird, you'd understand what I mean. My latest MOBA project has spanned 2 years, with things like matchmaking, client side prediction, and a cloud data backend. If you'd work on a project of the size I have, you'd understand what I mean about software craftsmanship.

> muh low level api

Hows your CS degree coming along?

>GLM is done extremely well. Better than whatever shit you could throw together.
What would be the difference, really?

>preserves compiler SIMD optimizations
It is complete bullshit that whatever anyone could throw together wouldn't be transformed the same way by a vectorizing compiler.

>all done in templates so it is easy to use
Sepples programmers really believe this is a good thing, huh? This is why you have 10-second compile times for every source file.

>Direct3D has often has better driver support
Citation needed. This may have been true in 2004, but there's been some time since then.

> he made a MOBA

So you made another DOTA clone with probably some really cringey graphics that nobody plays.

You're another mediocre game developer. Congrats.

The compile time is negligible.

Templates are good because they allow you to really gild your library if it is gonna be used by many people.

Obviously it was a good choice because probably hundreds of man-years were saved by motherfuckers not writing new vector libraries and being able to use GLM's overloaded operators.

OPENGL
Directx is winfag pajeet shit

Directx if you like money, OpenGL if you don't want AAA status.

I realized I suck at OpenGL the moment I couldn't render 10k objects that all use the same texture and shader without my performance going to shit.

I just couldn't figure out batching, which in turn made me realize I wasn't really understanding OpenGL.

Best

What book would you reccomend?

>2017
AMD = Always Mediocre Drivers
Nvidia = Not Very Impressive Drivers In Action

Neither, you shouldn't be programming at a level that you have to worry about OpenGL or DirectX. You should be using a game engine which handles everything for you.

>game developer
neither.
game development != graphics library
should be the LEAST of your worries

openGL and DX are APIs

game development isn't API calls to draw shit

why not?

because gd is about making a fun game, which is a full discipline all its own. drawing it should be seen as an extra final burden which of course is best handled by a pre-written game engine with higher-level api calls.

in fact, it would be best to have an agnostic api that can draw to the screen using any api, including cli.

see tetris as an all round example of what I mean.

define "fun"?

...

>Open GL or DirectX
Let me fix that for ya
Vulkan or Metal

so nothing objective then?

See now you're worrying about the right stuff for game development. Design a "fun" game first, depending on what that means for your genre. Do the research first. Draw the game last.

ok guys can we get to the bottom of this?? whats better to learn?:
1) an API to not "waste" time learning to make an engine
2) Learn computer graphics and make your own engine

VOTE NOW

3) 1 & 2 time permitting

But you gotta go to bed now, Kyle. It's past your bedtime, and I told you to stop hanging around this Sup Forums guy.

opengl is depreciated

No, it's about being a worthless faggot neckbeard gaymer and buying a 1200$ GPU

P.s. an engine or any library has an API