Второй вариант звучит более оптимизировано, т.к. все объекты уже заранее подготовлены и остаётся их только отобразить если я всё правильно понял, но стоит ли хранить всю эту информации в памяти и вообще как часто игрок будет смотреть этот журнал (допустим сгенерировали мы кучу разных экземпляров, храним их в памяти, а игрок так ни разу и не открыл этот журнал, получается зря используем ресурсы

)? А вообще преждевременная оптимизация - это не лучший подход. Возможно, что первый способ более прост в реализации, а так же более гибкий и универсальный, а разница в производительности между первым и вторым способом составит пару миллисекунд. Я бы вначале попробовал реализовать то что проще и посмотрел бы как оно тормозит или нет.
В первую очередь в оптимизации нуждаются самые загруженные места, т.к. их исправление и даст больше всего прироста производительности.