Thanks for your input Elliot, it led me on to find my solution.
I realised I wasn’t using the LIKE operator for my meta_value query and therefore the wildcard values weren’t be recognised. I changed my query to the following and it now returns posts:
$games_id_array = $wpdb->get_results(
$wpdb->prepare(
"
SELECT *
FROM wppp_postmeta
WHERE meta_key LIKE %s
AND meta_value LIKE %s
",
'contributing_game_creators_%_game_creator_roles',
'%'.$search_value.'%'
)
);