Non penso davvero che il C ++ sia "multipiattaforma" perché devi compilare una versione diversa per ogni piattaforma. Certo, c'è un compilatore per ogni piattaforma, ma ciò non significa che sia così semplice come "il codice di porta quindi premere il pulsante di compilazione". Non è neanche lontanamente così semplice.
Se vuoi fare la programmazione di giochi indie, probabilmente non vuoi reinventare la ruota: ci sono già motori di fisica delle licenze gratuiti basati su motori di gioco basati su renderizzatori grafici. Perché provare a costruire tutto da solo?
Raccomando JMonkeyEngine. Non penso che sia necessario C ++ o DirectX per realizzare giochi di grafica veloce a meno che non si stia provando per giochi all'avanguardia come Skyrim; e anche allora potresti continuare a fare la maggior parte del lavoro in Java e aggiungere patch da altre lingue.
EDIT: Inoltre, se comprendi "le basi e la sintassi di C ++" questo non è un'indicazione che capisci C ++ e capisci Java. C ++ ha un gran numero di sfumature ad esso. Ad esempio, se dichiari e assegni una variabile su una riga rispetto a due linee, ciò potrebbe cambiare se viene chiamato un operatore di assegnazione sovraccarico rispetto a un costruttore di copia. Per questo motivo, i programmatori C ++ di solito hanno bisogno di sapere molto di più sulla lingua rispetto ai programmatori Java per programmare in modo sicuro nella lingua.
Niente di tutto ciò è ridimensionare il C ++, ma è necessario sapere cosa aspettarsi se si vuole usarlo. Inoltre, se usi DirectX invece di OpenGL e se vuoi farlo da solo senza usare un motore di rendering con licenza aperta, allora dio ti aiuterà.