Initialize the GenServer State
Learn how to initialize the GenServer state.
We'll cover the following...
GenServer
in the game.ex
module
Until now, we’ve relied directly on the built-in start_link/3
function from GenServer
to start new processes. However, we can do better.
When we run GenServer.start_link(Game, <initial state>)
, the idea that we’re starting a new game process is buried in the arguments. It would be much clearer if we could bring the Game
module out front by writing Game.start_link(<initial state>)
.
To do this, we follow the GenServer
pattern and define a public function that wraps a GenServer
module function. This module function then triggers a callback.
Let’s start with a public start_link/1
function in the Game
module and have it wrap the GenServer.start_link/3
function. One player will start the game and the second will join later. Let’s have ...