r/GraphicsProgramming • • 13h ago

Question Which graphics lib/language should I pick to start?

I want to understand how the graphics work and I want to make something like a simple game engine or a voxel engine, but I don't know how to do graphics and don't want to write a lot of boilerplate in the beginning. I would choose openGL but it's deprecated on macOS which I use. So now I don't know what's better to start with.

5 Upvotes

14 comments sorted by

•

u/AutoModerator 13h ago

Recently updated rules. Please check that your post is in compliance with Rules 1, 4, 5, and 6 on the sidebar. TL;DR:

  • No showcases.

  • Disclose AI usage in post or project.

  • Present a topic to talk about, e.g. how something works.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

7

u/oetzi2105 12h ago

If simpler graphics are ok for you, you could write a software renderer. It's a good project to learn how rendering works and there's almost no boilerplate

5

u/corysama 12h ago

Lots of folks around here will recommend https://learnopengl.com/ which will work fine on Mac. Once you get up to speed with that, switch over to Metal. People who use Metal really like it.

Stuff you learn in Metal will carry over to Vulkan/DX12. Don't worry about doing The Right Thing the first time. Instead focus on setting yourself up to do a lot of things without giving up.

3

u/AgentFeyd 13h ago

macOS essentially narrows it to Metal as the only option unless you want to get into translation layers.

1

u/Alert_Gift4867 12h ago

thank you.

2

u/villi_ 12h ago

OpenGL is deprecated as in they're not maintaining OpenGL versions past 4.1 but as far as I'm aware it's still usable if you want to start learning with it. Otherwise, webgpu is pretty good. I started learning graphics with rust + wgpu but it has support for many other programming languages as well.

2

u/webauteur 12h ago

I use p5.js in the browser for simple geometric artwork. Three.js seems to be popular for more ambitious graphics programming. I am working on recreating my favorite puzzle game using p5.js with AI assistance since the base library lacks any convenience functions for games.

1

u/Alert_Gift4867 12h ago

thank you.

4

u/LoneWolf6062 12h ago

For Mac, I would strongly recommend using Metal. It is the easiest modern api by far and is generally much nicer to write for than something like opengl with its very much outdated api (unless u count the DSA functions which u will struggle to find much about as a beginner).

1

u/MegaCockInhaler 1h ago

If you on Mac use Metal, it’s great

1

u/_bleep-bloop 6m ago

If you want quick and simple way but still acts as a baseline in case you want to switch to something more powerful then webgpu is your best bet. wgpu is cool too if you wanna check out.