One file per screen. The StateMachine just forwards enter / update / draw to whichever state is active — pattern explained in Game States.
- BaseState.lua — empty interface every state inherits
- TitleScreenState.lua — press enter to start
- PlayState.lua — gameplay
- WinState.lua — press enter to replay
Full tree: BTTF project page. Template: Starter Template.