I don't spank, I don't do time outs, I don't do conventional "punishments" but I do think children do have to occasinally be told no, you cannot do that. You cannot destroy property. You cannot hurt other people. This behavior is unacceptable.
When my children do something wrong, I tell them "that behavior is not acceptable because..." and if their behavior made me upset or sad or even angry, I let them know that too.
I have no problem with my children feeling guilty. In fact, if they have done something wrong they should feel guilty. That is what I call "having a conscience."
And when they do show remorse for what they have done, I forgive them, and we move on, and they very rarely do the same (or similar) thing again.