Como você estava usando o Game Maker, suponho que você esteja no Windows, então entre no fundo do poço com o SDK direto x. As amostras fornecem o código-fonte e também fornecem uma amostra do poder disponível. Só porque você quer fazer um jogo em 2D não significa que você deve ficar com uma biblioteca em 2D, em algum momento você provavelmente fará algo que a biblioteca não implementa por si mesma (sombreadores ou rotações ou algo aleatório que você acabou de fazer). NECESSIDADE para o seu projeto).
O SDL - e provavelmente o SFML e o Cinder - fornece uma abordagem de alto nível " desviou o básico" de ser um mecanismo, para que você tenha todo o poder de fazer isso do zero (para ter pixel shaders no SDL), mas você não aprenderia como as coisas são feitas. Você faria C ++ real dentro de uma estrutura auxiliar, o que ajudará a fazer as coisas, mas não será uma grande ajuda para ensinar como desenvolver jogos, se você estiver trabalhando em uma empresa de desenvolvimento de jogos.
SDL, SFML e até Cinder são maneiras inteligentes de evitar o aprendizado sobre as coisas difíceis em C ++. Eles normalmente envolvem o OpenGL, o que é útil para aprender se você deseja codificar gráficos para máquinas que não sejam Windows, mas há muitos recursos para realizar o trabalho no Direct-X também (provavelmente mais porque o vírus do Windows se espalhou por todos os cantos do mundo).
Se você não quiser aprender coisas interessantes, tudo bem, mas, caso contrário, não tenha medo de começar com um aplicativo Win32 bruto.
Sugiro que, para maior conforto, você comece com todos os diferentes pacotes de ajuda que puder encontrar, mas siga para escrever seu próprio mecanismo de renderização. Escrever um mecanismo é muito divertido e pode fornecer um recurso para você olhar para trás em seus projetos futuros. Nada cria um bom código como a sabedoria de fazer errado no passado.