Whether this has any relevance to the real world is the debatable matter. I would argue that it does, there are many examples where strong communities have grown as a result of general goodwill and altruistic behaviours, and these communities prosper compared to those where exploitative behaviour is common. There is of course another element which a simplified model neglects - communities, once formed, exert a strong pressure on its members to conform to the norm, be it good or bad. This pressure has the effect that the individuals who depart from community norms are "evolved out" so to speak. In case of altruistic communities, this protects the group from infiltration by exploitative individuals. In case of exploitative communities, unfortunately, this perpetuates the communal problems. Eventually, if the two communities come into a conflict, the exploitative community will be eliminated.
Are you saying the simulation is not valid unless collaboration between individuals arises as an emergent behavior?
Unless you're disputing the existence of group selection in real systems, what does hard coding it change vs. a given system where it is an emergent property?
You can, of course, give a narrative argument on why you feel it is justified to exclude the interplay between these levels. But if you, at some point, try to show it is justified, by removing the assumption from your model, you'll struggle, I predict.
Evolving systems are very complex, it is an unwise assumption that you can chunk their dynamics into levels of abstraction and expect those dynamics to function independently or predictably when combined.
Without hard-coding the groups as separate evolving units, you'll have a hard time.
In general, it is easy to show the group behaviors you want if you can treat the group as atomic for the purpose of the model. But you've just moved the goalposts, your 'individuals' are not the unit of evolution any more, and you've simply set the required behavior in the fitness function.
So try it and see.