Believe or not you can have a great floor surface by painting. When you think of all the colors and designs that are possible on walls why not try them on a floor: faux finishes, borders, etc.
Before you paint the floor decide on your color and design scheme. Then prepare the floor like you would any painting job. The floor should be dry and dent-free. Use a wood filler or floor leveler but not a caulking as it is too soft. Then sand the floor until is it smooth.
Wood, like plywood or oriented strand board, should be primed with a special sealer that hides wood grains and imperfections. this is usually a think, pasty-type material that is self-levelling but check with the instruction to see if it works on the material you will be covering. Concrete floors will probably need a concrete primer but make sure the floor is dvoid of peaks and voids beforehand otherwise the floor will look bumpy. If you are going to use a faux finish it is best to practice on a piece of plywood first. Oil-based paints tend to stick better so go with these.
For finishing it will take three coats of urethane to get the floor smooth but wit three days so that the undercoats will harden first. Try for a “non-yellowing” urehthane because, obviously, not every surface would look good as a yellow.