I started to try to make a generator in Lua, so it could maybe be worked into the game using a function, but I'm finding out I really don't like the way Lua does things. I guess I'm spoiled by Ruby, but Lua seems to do things in strange and non-intuitive ways.
I set up three tables, one for first names, one for the first part of the last name, and the last one for names that could go anywhere. The idea being the code will join the first name and the anywhere name table and pick one randomly for the first name. Then it will join the "first part of the last name" table, and the anywhere name table to pick the first part of the last name. Then it will just use the other name table to pick the second part of the last name. Then it will add a "Mc" to the name 10% of the time, put it together, capitalize the first letters of the two names, and return a string. Simple, right?
But Lua doesn't allow me to really join two tables temporarily. If I make a function to do that, it joins them permanently, I either have to undo the join manually, copy the two tables into a new table, or some other weirdness. If I wanted to be this careful with my data, I'd be using C. All functions tend to modify in place, I don't understand why Wikipedia says it can be used functionally, just because a language has first class functions doesn't mean it's functional. Everything seems to have side effects in Lua. I can see how it would be a giant pain in the butt to manage them if you were to ever start seriously coding in Lua. No thanks.