Object/Actor Architecture Question

Less than a year of experience, I have an architecture question.

I have an actor, APiece. It will never be destroyed. However, I routinely create and destroy a representation of that object in my game, a static mesh. So, in my new ue4 brain, I created AMeshPiece. This is the representation on screen that is routinely created and destroyed according to the presence of the APiece.

I’m trying to learn if this is the “right” thinking, or best practice. Couldn’t APiece just have a scene component and a static mesh component which are created and destroyed, without touching the APiece itself? Or given my current structure, could APiece actually be UPiece?

The APiece is part of my save object, and there will be a lot of them. (100-5000). So, if I’m thinking correctly, I’d want to keep APiece as bare bones as possible. Does having a Scene Comp and a Static Mesh Comp bloat APiece(for my save object), even though the pointers won’t be pointing to anything when its saved?

So…how would a more learned developer approach this and why? Thanks!

EDIT - After some research, I feel like I was on the right track originally, but I’m going to change APiece to a UObject. This will be the code representation of the piece. Then, my scene representations of these UPiece objects will be named AActorPiece. These will be spawned and destroyed as needed in the scene.

Hello! Can you describe it in more simple words? What is the purpose of this UObject? Can there be many of them in one level? Why it should have visual representation? And if it is connected to Save system, one if the most simple approaches is to store and refresh only things that can differ from template.

A game about multiple jigsaw puzzles in the same space. So, each underlying piece object can never be destroyed, just moved on a level or between levels. And you move into different levels where the visual representation of a number of pieces are created. And when you move away from a level, those visual representations are destroyed, without destroying the object.

There will be only 1 representation of 1 piece.

Very inetersting idea to distribute things that way, I mean puzzles around time and levels =) I think, this approach is fine - just recreate visual things as you need them and keep base things saved… But you may need to create a little bit of own save|load logic…

Thanks! Here’s a twitter link to my project, if you wish to follow.