ok, here's the deal.
When you play a video game, depending on the quality settings, it will use more or less CPU.
On top of this, OBS uses CPU just to run. It uses a little bit more just to capture your game or display.
And even more CPU gets used the more stuff you add to your stream such as overlays, gifs, browser sources, etc.
The more you have going on in your scene, the more CPU OBS uses.
THEN, it uses even MORE CPU just to encode the scene into a stream.
go into stream settings and make sure you are adjusting settings for stream and not for recording.
Then change the bitrate to 2500 and make sure it's set to software x264 encoding.
Go to base resolution and change it 1280x720 and set the output to the same.
Then set downscale filter to bilinear.
You can keep it at 30fps if you like.
Now, hide everything in the stream striping it down to the basics of just the game and your webcam if you use one.
Resize these items to fit inside the new base resolution window.
Now, go to settings and set the option to record your stream using the same settings as streaming.
Then, instead of going live, hit record and record some footage.
play the footage back with a media player like VLC to see if there's any chopping issues.
If there is none, then you can go back in and start enabling a couple of in stream stuff here and there. Nothing too fancy, just maybe an overlay of some kind that makes it more unique looking to you.
Then record again and pay attention to any issues.
Assuming you have more than one monitor where OBS is on a second monitor that you can see while you play games, then take a look at the CPU usage. You should not be hitting 100% at all. Also take note of the fps it shows next to the CPU usage which will tell you if there is frames being dropped or skipped at all.
Also, consider lowering the graphic settings in game to medium preset just to be safe because encoding for streams takes up a lot of CPU, and to game while streaming is tough for most any CPU because games nowadays typically uses about 50% all on their own on a lower average and more depending on the type of game and the level you set the graphics to.
Also, try setting it from high quality to one step down on encoding quality.
Alternatively, if you have a bit going on in your stream that uses up enough CPU that you can play our game and have OBS running but don't have enough CPU left over to encode without lowering the game quality and encode quality to low levels, then try using GPU encoding (NVENC) and set it to normal encode level (which should be default) this will make a special dedicated chip that is on the GPU do all the encoding so that your CPU doesn't have to. This chip is exclusive to this kind of purpose and has nothing to do with the other hardware on your GPU and therefore will not impact performance of gaming in any GPU related way.