
Beginner-Friendly Vulkan Tutorials - ingve
http://stephaniehurlburt.com/blog/2017/7/14/beginner-friendly-vulkan-tutorials
======
Impossible
The advice to not learn Vulkan first is actually pretty good, because it
aligns with most people's goals when learning. Most people want to get some
graphics on the screen and maybe understand what a shader is, how meshes are
represented etc. OpenGL has less friction here, and I'd argue that you can
learn a lot of this starting in a higher level environment like Unity, writing
your own shaders and creating procedural meshes. This advice comes from the
same place as "if you want to make a game don't write your own engine", which
is probably works for most people.

Vulkan is great as a beginner if you want deep understanding of the graphics
pipeline and are ok with some pain and confusion and a lot of "boilerplate",
which comes from Vulkan having few defaults. Its a good representation of how
game engines tend to use graphics APIs vs toy applications, academic projects
and indie games you might see as smaller scale examples. As a beginner and a
hobbyist you probably don't need Vulkan or DX12 for anything you'll build and
you'll quickly be exposed to a lot of concepts you won't really understand,
but I think sticking with it will give you a level of understanding much
deeper than someone that dabbles with OpenGL.

~~~
throwawaybbq1
Is there a serious MOOC that gets into this? I'd like some academic rigour
rather than some kid on YouTube. I tried the Unity route and had issues with
shaders. Trying to get into GPU programming.

~~~
animal531
It's relatively easy in Unity to get OpenGL going.

For 3d Objects: 1\. Create a mesh. There are a lot of tutorials/free asset
store helper classes that can show you how to do this, alternatively just copy
the mesh out of an instanced object 2\. Assign a pre-made shader to it 3\.
Render it with OpenGL, e.g. GL.DrawMesh/Instanced

For general starter OpenGL you can just make calls using GL.Begin etc.

The nice thing about doing this is that things like lighting, shaders, OpenGL
state switching/machine etc. are already taken care of for you (and those
little things can take a long time to figure out if you're new).

~~~
throwawaybbq1
Thank you. The OpenGL calls you refer to .. is there a C# binding that is easy
to setup with Unity? I tried OpenGL in a computer graphics undergrad course
(sadly, one I dropped) and it was a crazy amount of C/C++ libraries and header
files (along with esoteric things like GLUT, etc.). I didn't realize I could
do OpenGL within a Unity/C# context.

------
bluejekyll
For those looking for something similar with Rust:
[http://vulkano.rs](http://vulkano.rs)

~~~
khedoros1
Or, you know, look at the third tutorial in the list.

~~~
bluejekyll
Ha. I read the intro piece, not the tutorial links...

------
k_sze
It saddens me that so many people focus on the graphics aspect of Vulkan.

I wish there were more beginner-friendly tutorials of Vulkan _compute_.

If I'm not mistaken, only 2 out of the 7 tutorials listed cover compute.

------
greggman
Vulkan seemes to be caught in a bad situation since it's not usable on Mac or
iOS. With OpenGL at least all major platforms where covered.

~~~
devbug
Hardly. Apple's drivers are notorious for their... "idiosyncrasies." Not to
mention that at best, you can expect 4.1 support.

------
k__
How do you get started with 3D in general?

I mean I studied CS and had computer graphic classes, but this was mostly
theory and clicking around in Maya.

What does it take?

I always find myself fiddling around with numbers for hours. Primitives,
sizes, positions, transformations and it looks shitty in the end.

How do 3D people start a new project and focus on stuff that matters to get
good results fast?

~~~
mrspeaker
Unity! Incredibly satisfying for such a minimal learning curve. I'm currently
learning WebGL/OpenGL from scratch - which is rewarding, but in the same time
it took me to get a few perspectively-rendered triangles on the screen I made
a weird "puppy simulator" in Unity
([https://unity3d.com/](https://unity3d.com/)) for my nephew and niece that
they spent hours playing with. They had far less interest in my triangles.

------
Hydraulix989
Vulkan is great except it doesn't work on anything Apple. Dealbreaker if you
want users.

~~~
MattRix
Not if you're making desktop games, where the vast majority of the users are
on Windows.

~~~
Hydraulix989
Mobile game revenue just surpassed desktop (and it's been on that trajectory
for several years now).

Vulkan means your users HAVE to run Android -- specifically, Android N (often
they do not because of things like slow-moving carrier controlled OS updates).

iOS is not supported.

~~~
animal531
Well, two things. Firstly a generic indie hoping to get a slice of that giant
mobile pie of cash is most likely going to end up very disappointed.

Secondly, the majority of games on mobile does not need Vulkan performance.
Sure, extra performance is always great, but the majority of big sellers are
your generic run of the mill 2d games.

But having said that, either way I really dislike the in-fighting between the
companies, each trying to get their own API/vision to the top of the pile (The
same is happening with VR etc). At the end of the day they're just damaging
their own ecosystems.

~~~
Hydraulix989
"Firstly a generic indie hoping to get a slice of that giant mobile pie of
cash is most likely going to end up very disappointed."

How is this a different situation than with desktop or console? What in
particular about mobile makes it worse for the indie developer?

For one thing, I contend that you have FAR more eyeballs in front of mobile
screens than desktop or console.

"Secondly, the majority of games on mobile does not need Vulkan performance."

The majority of apps on mobile don't need Vulkan, but the ones that do CAN
benefit from it (e.g. mobile VR is SO sensitive to framerate).

~~~
animal531
Sorry for the late reply.

The problem with mobile is that you have more eyeballs, but less investment.
The price of mobile games (if bought) are ridiculously low compared to
PC/console. As a result, go and look at the top sellers in the mobile market.
The big winners are all the f2p games that can sell in-app purchases to
whales, netting them a lot of money.

Your average developer (because of the giant size of the store) gets sidelined
by the store with no exposure, because the store doesn't believe he'll make
any money...and as a result he doesn't because no one discovers his game.

If you look at a graph of sales its heavily skewed to the front/top where
they're making all the money, then there's a rapid drop in profitability. The
guys on the bottom consider themselves lucky if they can recoup even the cost
to use the store.

This of course isn't true for all indies, there are many that are successful
(and once you are you can continue based on people knowing your previous
games). Sadly in general though odds are much better for you on desktop.

