General workflow for game development

I wanted to know what is the general workflow that a game developer (indie, max 4 people team) would follow? I know this is a broad question but i want the answer specific to UE4 as the workflow could change between engines and technologies to make some optimizations. Generally what i do is creating everything as needed so i first start by creating a main menu and the assets needed for it, then the first level, etc.

Is it better to do gameplay first, then assets, then hud, or what kind of workflow is best and most standard to follow?

I’m not a 4 man team, but i can tell you how i work.

First i make a big mindmap on what i want to achieve with the game at all. Just brainstorming. After that, i think about the smaller parts, like what can the player do, what else in the world do i need.
Than i start ordering it. Like first i need to code my CharacterMovement. After that i start with the first basic feature i want to implement. In my case it was an Inventory.

So i started with making a Blueprint that is my standard Item. I wrote my code for picking up that item and storing it.
After i wrote everything from picking up to placing and deleting, i thought about a way to display the inventory.
So i took some time, brainstorming on a second paper, to get an idea of how i could do this.
Later i started coding and used some basic placeholder graphics for buttons etc.

Now that my whole inventory is graphical implemented too, i can set a checkmark on this and start doing the next thing on my list, like a crafting system (that would be dumb to do first without any inventory and items) or Character Stats that increase and decrease and can be viewed by pressing c. After that comes my questsystem and so on.

Everything without a single Texture or Model. When i finish my GamePlay Code, so that the game can be played from just pressing “play”, i will start making a Menu that launches my GameLevel and provides some Options or so.
Than i add the IngameMenu (not inventory, more like pressing ESC) to the game to get back the over all Menu, to save or something like that.

And after this is all done, i start making Models and Textures for everything.

That is how i do it. Don’t think that this is the best way, but it works for me.

Sometimes, when i can’t find a solution for my problem, i start coding someting else that can be done without the other one being completed.

Important is that you write down solutions if they come to your mind and always keep track on what you want to do and how.

The exact order of your GamePlayElements depens on the game itself.

If you do a TowerDefense game or RealTimeStradegy it could be different.

Hope that helps you (: