So I've been toying with some game dev too but rather than just using unity like a sensible person I decided to write my own engine in C++ using opengl3
What i've got is not quite a game more a collection of systems and parts I'm still playing with. I'm not flying completely blind in that there are some excellent tutorials online for this sort of thing and the original design of this was based heavily on a series of lwjgl tutorials by a chap called ThinMatrix on youtube but that's java so I've had to make quite a lot of changes and figure out various changes needed to make things work. Plus I've added a load of my own ideas on top of that like using xml for a lot of the object parameters and things like the gui.
It's mostly crappy programmer art I botched together and a few things that I swiped. It currently supports things like normal maps but mostly I've not added any it even has code for parallax maps but there are none of that. It does do specular maps which most of the items have one in there. The terrain is generated using a height map and then has a texture blending system to determine grass vs path vs dirt etc. It's using three types of lights run in the shaders one directional ambient light (eg a sun) then point lights and spot lights it runs multiple lights the 10 most nearest spot and point lights get loaded into the shaders to calculate the lighting on top of the directional one. It also has distance fog but not any culling as yet. There is a simple particle system.
I was sort of playing with a minecraft/factorio sort of game so I have minerals you can see coal, copper ore, iron ore, and trees for wood. The engine uses texture map to determine where the resources should show up. You can see I've got it harvesting stuff by the bar filling up and the stuff appears in the inventory.
I've done some buildings like chests which you can drag and drop things into furnaces that can take ore and fuel then turn it into metal the recipies for that are stored in the XML. I also started on a factory that can make other buildings but it's a bit buggy. Buildings it also have a series of state machines that can be defined in the XML that allows for lights or particle systems to react to the building state. You can see this in the furnace as it turns on with a flickering light and particle system when it fires up.
You can already place buildings and other buildable objects into the world it indicates where you can and can't place stuff based on the colour of the thing.
I've also toyed with a few other things like a turret that currently just spins, a sort of moving truck thing that runs a simple fake assembly language to allow it to be configured in the game but I've not put an interface in there to change it yet. Also just added some enemies with some very simple AI they randomly wander about until they see the player and then follow you around unless they loose sight of you then they go back to randomly moving.
I've just got skeletal animation working using collada files (sort of I can import files but the ones I generate come out a bit odd) it took ages to figure out how to get it to work even with a few tutorials I found and it's still a work in progress.
Up until now it's mostly been about making the engine nuts and bolts working loading models rendering them getting them animated working with opengl but it's getting more to the point that I can try out more game ideas. Theres still a lot of graphics and utility stuff I could work on the text rendering is an old system that has to be seperate from the gui so it always goes over the top of things I really want to fix that, things like shadows water post processing effects things like a skybox reflections view frustum culling and so on. It's also the way of things that I'm tempted to stop working on this version and redo since I can see a load of ways to improve things. We'll see where it goes from here.