Sorry about the late reply, but I've been away on holiday. You wrote "Im not sure is the gameworld should grow inifitly. In the ruleset on wikipedia there is a fixed board size. The smallest one is 3*3 but I could implement is as one possible size to select from."
It's not your decision. Conway's Life simply *is* defined for an infinite world. Without that, it wouldn't be Turing-universal, as it is. The first sentence in the Rules section begins "The universe of the Game of Life is an infinite two-dimensional orthogonal <https://en.wikipedia.org/wiki/Orthogonal> grid". The ruleset on the Wikipedia page does NOT have a fixed size. The examples are shown just big enough to contain all the live cells, but that is another matter. There are four things you can do when emulating a game on a grid: (1) STOP when you hit the edge, deliberately or by crashing. (2) ERR by pretending everything outside is dead. The program does not stop, it just stops giving right answers. (3) REDEFINE the world to be a toroidal space instead of an infinite one. Again, this changes the rules enough to count as a different game. (4) GROW the world. Allocate a new bigger world and copy the old one across. But the best way to deal with limitations is to avoid building them into the program in the first place. It's a bit like concurrency. It took a while before I realised that "how do I add concurrency to my programs" was the wrong question and that I should have been asking "how do I learn to stop adding sequentiality to my programs?"