Always start with the basic gameplay, because everything else will depend on that and you might need to alter some art to your gameplay style. For example in map design alot of people use blockouts until the layout is set and only then they’re applying art to the map.
There are different approaches, but here is what works for me:
Create a basic prototype of your idea that represents a “vertical slice” of the final game - meaning, create most of the functionality / gameplay features FIRST before you worry about the art and level design. Create a “training” level where all your game play features can be tested (climbing, swimming, AI test, etc). Do most of your work there and once you polish the gameplay then import your models, etc.
I also use this phase to create “tools” to help me design the levels easier. For example, if Im creating a platformer, then I create helper blueprints that can be used to create different types of platforms. I find this helps me make quick changes and when the time comes, I can create levels very quickly.
If you are interested in this process, check out my devlogs for my last game jam game - Verto Machina. If you watch the playlist you can see how I started with the basic idea and then flesh out gameplay on the same level, and eventually create the levels.
Yeah, I would agree with creating a rough prototype first. Even with cubes or placeholder art. I’ve had a number of game concepts that sounded cool in my head, but, after getting a playable prototype built, I realized they didn’t work, or weren’t fun, etc. and you can save yourself a lot of time with concepts that won’t go anywhere. But, if the prototype is fun, you have some confidence in spending more time designing the mechanics, working on art, etc. on a solid foundation.