A thread is a line of code. Each core has a specific amount of bandwidth at its disposal. Normal operation each core processes a single line of code in one instance. Hyperthreading allows the use of a single core to process 2 lines of code simultaneously, IF bandwidth allows. A core is a logical component, a hyperthreaded core is a virtual component. So on a hyperthreaded cpu, you'll have 4 logical and 4 corresponding virtual cores as seen as 4c/8t.
The issue with many older games is the code strings were getting so long that hyperthreading was getting next to useless as the bandwidth couldn't be split up to accommodate 2 lines simultaneously. Use of less than 4 cores got the same results from a logical cpu as from a hyperthreaded cpu.
Battlefield 4 was one of the first AAA titles to optimize code strings, shortening them enough to allow hyperthreading to benefit in a meaningful way, allowing even the AMD FX to finally get usage of its node/2core setup, an 8350 barely being beaten by the i7 4790k, and placing it ahead of the faster i5 4690k.
Assassins Creed series and some others are not optimized very well, hyperthreading suffers but higher physical core count still benefits.
With Ryzen IPC still a half step behind Intel, and Intel greater clock speeds, in a single thread Intel wins. But single thread is useless on a modern platform as no games use that matrix anymore, far too complex. It's multi-thread that matters most.
On a core to core basis, Intel wins every time, but it'll depend entirely on the game whether it can make best use of a 6 core 6 thread Intel or a 6 core 12 thread Ryzen. Win some, lose some.