What's the best way to implement a book library?

I would like to implement an interactive library with 1000s of books. The 3D models are already set up on Nanite. Everything is already programmed. I have bookshelves and can put books in and take them out again. Each one individually. But now I’m worried about the performance. Each book is a ChildBlueprint and therefore has the StaticMesh, a TextObject etc. I turn off the collision as soon as it is in the cabinet. But there is still an Actor on the shelf. Do I have to pay attention to anything so that I don’t lose performance with 1000 books later? The game should also run on older computers and is graphically rather minimalistic. Can I leave the books on the shelf as an actor or would it be better to just display a StaticMesh and convert it back to the ChildBlueprint etc. when I take it out?

How would you implement this with which functions?

  • perhaps the books should be fake while in the library - how to handle it depends on the desired presentation
    • take fake book (hide it) => spawn a real book actor => push in the book data
    • put book back => destroy the real book => unhide the fake book
  • how many books can be read simultaneously? If it’s only a handful, spawn that many real book actors only once and keep them hidden until needed → update the actor with new data when the book is picked up.

Could that work here?


On the other hand, there is technically nothing wrong with a 1000 actors for as long they’re not ticking and you’re not running 1000 element long loops.

Why not spawn 2000k book actors and run it on a target potato PC?