Gotta agree with
no__name... the difficulty with "meaningful choices" is the inevitable "side" content. As soon as a developer implements any systems which might be considered a "points" system... be it love_points, corruption_points, whatever - you're effectively created a "good route" and a "bad route" through your game. At the very least, you're likely gating off content that once a walkthrough gets written - a good portion of your players will never see.
Choosing to dedicate time (be it story writing time or rendering time) to that "other" choice is hard. Since most devs don't have it them to write equally compelling or rewarding story for the "side" routes.
A compromise that occurred to me when reading previous replies might be some sort of "hardcore mode". In normal mode, the player can reach a harem - but include or exclude partners as they see fit. If they want to end the game with nobody... that's fine. But in hardcore mode, a harem is impossible. Choices with a positive impact on one character, (sometimes) negatively affect others.
The negative points would only be taken off in hardcore mode. In normal mode, no points are deducted (at least for this reason). The negative points, in effect, stop the ability to have a harem.
Maybe the redhead and the blonde both work at the local coffee shop and gossip. Maybe four of the girls are all on the same cheer team and one of them just can't keep her latest sexual conquest to herself. Maybe being nice to one sister is the only way to earn points with the other. Maybe a story arc only become available to the love interest with the highest current points. To make it more challenging, perhaps you need to woo the librarian to make any progress with roommate or her arch enemy (who gets jealous, because of the time you spend with library girl). But that in turn locks you out of library girl's best friend.
It would be incredibly hard to balance - but if you could keep your sanity while writing hardcore mode, harem mode would be a breeze of just NOT penalizing the player for good choices with other potential harem members.
The code could be as simple as this:
Python:
define st = Character("Stacy")
define ly = Character("Lynne")
default st_points = 0
default ly_points = 0
default hardcore = 0
label start:
scene black with fade
menu:
"Hardcore Mode : ON (A harem will be impossible)"
"Hardcore mode activated. Choices matter A LOT. Be careful what you wish for."
$ hardcore = 1
"Hardcore Mode : OFF"
$ hardcore = 0
# later
menu:
"Invite [ly] out on a date."
$ ly_points += 1
$ st_points -= hardcore
"Invite [st] out on a date."
$ st_points += 1
$ ly_points -= (hardcore * 2)
Obviously... make decisions a little more complicated than that to keep your game interesting and challenging. Otherwise players will just pick a single girl and choices become banal. As I said earlier, cross-interactions (that perhaps only happen in hardcore mode) between potential love interests sounds like a viable solution to that problem.
To make things a little more reactive... the negative points choice could be a percentage of the overall points of the other girl.
$ ly_points -= (1 + int(st_point * 0.20)) * hardcore
. Where multiplying by
hardcore
values of 1 and 0 just result in the number always being zero in "normal mode".
Now you've got a game which satisfies both groups of players you're concerned about.