For my game I"m using mainly 3D assets with only a small amount of 2D ones. For the 3D assets, I've been using Maya and for the 2D ones, I've been using Photoshop.
For the fallen tree asset, I started in the feature spec, just drawing a simple image. This one was to demonstrate the hit box.
Then, I go into Maya, and begin creating the model.
I first made a cylinder object, then made the curved face into 8 sides. This follows the theme of the game being low poly. Like in the "reference" image above, there are small branches poking out, so I used the edge loop tool to divide up the log. Simply extruding the faces, moving them, scaling and rotating them was then done to make the branches look natural.
Once that was done, the model was exported as a .FBX to the unity assets folder, along with the Maya file, so that I could easily edit the model in the future. Implementing it into the game is the next step of the process.
For this object, it will be either spawning on the top or bottom of the road, poking inwards. So I get the model in the scene view and make it a child of an empty game object which is in the centre of the road. Simply inverting the Z scale of the parent game object flips the model to either side of the road.
A box collider was them added and the object was tagged as "SolidObstical". All the rest is done in the code, where it is spawned and placed in the game world.
As for the green appearance of the log though, that is just a placeholder material for now.
For 2D assets, Photoshop is used. In the case of the pothole object, it is a sprite that is placed onto a quad in the game world.
In Photoshop, a white oval with some outline detail is created. The reason it is white, is because in Unity, the colour can be tinted to be whatever colour is needed. So if I was to change the road colour or if the pothole was too dark for example, I wouldn't need to go into Photoshop and change the colours around. All I need to do is move a simple slider inside of Unity.
Once the sprite is complete, it is saved as a PSD to the Unity project asset folder, ready for use.
To make it an object in the world, first a quad object is created. Then a material with the sprite as the texture is made and placed on the quad. The material is set to cutout, so that the transparent parts of the sprite are transparent. Then a simple sphere collider is added, and the object is tagged as "NonSolidObstical".
That is it. It's pretty much a repeated process for all the 3D models and 2D sprites in the game.