Let’s use IntelliJ as a game engine, just because we can by Alexander Chatzizacharias

Can your IDE run games? Watch how IntelliJ becomes a game engine running classics like Pong and Pacman at 120 FPS, using just the plugin platform and Kotlin. No Swing required!

Key takeaways
  • IntelliJ can achieve 120 FPS rendering for games, outperforming some major game publishers who release at 30 FPS

  • Games were built using the IntelliJ plugin platform and Kotlin, avoiding Java Swing and external game engines

  • The presenter created several game examples including:

    • Pong
    • Pacman clone
    • Code Hero (Guitar Hero clone for copy-pasting code)
    • Space Invaders variant focused on removing mutable state
    • A Sonic-inspired platformer
  • Games interact directly with the code editor by:

    • Using the PSI (Program Structure Interface) to read/modify code
    • Treating the editor grid as a game canvas
    • Utilizing IntelliJ’s repaint cycle for rendering
  • Technical challenges included:

    • Limited documentation for the plugin platform
    • Color and transparency limitations
    • Lack of direct APIs for timing and rendering control
    • Need to handle coordinate system differences
  • Key learnings:

    • Game development doesn’t require perfect physics/realism
    • “Fake it till you make it” approach works well
    • Experimenting and “messing around” can lead to innovation
    • IntelliJ’s plugin platform is more capable than expected
  • Future improvements requested:

    • Better PNG/image support
    • MP3/WAV audio support
    • More control over write actions
    • Direct access to repaint cycle timing