how tKo make a custom desktop environent?

I would like to know how to make a desktop environment like gnome or mate from scratch

Get the source code. What exactly is that you hope to do?

E17 was written over a period of 12 years. It takes a long time to develop any product i guess
Good links:-
how do we create a desktop environment from scratch?
Basic Graphics Programming With The Xlib Library

I have the source code for cinnamon but i dont know how to compile so i can make my own version

Hi
Have a look at the OBS project on what packages are required and how to build…software.opensuse.org:

https://build.opensuse.org/package/show?project=X11%3ACinnamon%3AFactory&package=cinnamon