I would suggest using 2 distinct "names". The first is as you suggest - an unlimited text field for their "real" name which is simply stored as entered. Then have them choose a "unique identifier" for the site to use, like the names used in email systems.