At the mid-range we see laptops with either the NVIDIA GTX 1060, or for a bit more money, a GTX 1070, both of which are a powerful gaming GPU in a mobile form factor. ASUS offers the Republic of Gamers branding Strix lineup, and the GL504 model is their 15.6-inch range. Featuring the GTX 1060 in the GL504GM, and GTX 1070 in the GL504GS models, there's a wide range of performance here depending on budget. ASUS offers either the Intel Core i5-8300H quad-core, or the Core i7-8750H hex-core CPU, and up to 32 GB of DDR4 RAM support. There's a full range of SSD choices, and you can of course also fit it with a HDD for extra space.
Theoretically, you may find a gaming laptop with an Intel Core i3 or one of AMD's CPUs installed, but those are uncommon: Systems with Intel Core i3 and comparable entry-level AMD processors are certainly capable of playing many games, but why limit yourself from square one? That said, if you have to make the choice between a high-end CPU and a high-end GPU, go for the graphics. For example, we'd recommend getting a Core i5 CPU over a Core i7 if the money saved could then go toward an Nvidia GeForce GTX 1060 GPU instead of a GTX 1050. Spending the money on the GPU makes more sense than spending it on the CPU if gaming is your main concern.
If you want a gaming laptop for less than $1,000, get the Lenovo Legion Y530. Because of its lower-powered graphics card, the Y530 won’t play demanding games as well for as many years to come as our top pick, but it keeps cool and has a bright screen, a comfortable keyboard, and a responsive trackpad. The Y530 is also about a pound lighter and significantly more compact than the Dell G7 and G5, but it’s a pain to upgrade. We recommend the model with an Nvidia GeForce GTX 1050 Ti graphics processor with 4 GB of dedicated memory, an Intel Core i5-8300H processor, 8 GB of RAM, a 128 GB solid-state drive, and a 1 TB hard drive. But if the Y530 costs more than $900 at the time you’re shopping, we recommend saving up for our top pick and its more powerful graphics processor instead.