Increasing FPS for tile-based game

I’m currently creating a Space Station 13-esque project to learn more features of source, and due to the tile based system of SS13, I decided I’d like to try and re-create it.

I’ve tried multiple methods of lowering the hit on FPS, While I am looking at 470 unrendered individual entities on flatgrass, I have 60 FPS.
If I draw their model, I get 25~30 FPS.
If I render 2 triangles as a mesh instead of their model, I get around 30~34 FPS.

Since individual tiles can all be manipulated in this, I believe I’m stuck with each tile being an individual entity, all of which have a model of a 1x1 PHX plate that I use for the physics.
My current solution is to make the project top-down, rendering all the tiles that are within vision. This leaves me at a solid 50~55 FPS, but I’d still like to know - Are there any better ways to do this?

If you’re creating a tile based games, why use entities? Entities seem to use a huge amount of networking, etc, which will cause fps drop compared to rendering client-side models and only updating network data when needed.

Good point. I had that suspicion but I didn’t really want to acknowledge it

Since each tile requires a variety of functions to be strapped to it, the first thing that comes to mind is having that 2D table for positions, then putting a table of the tile’s functions inside.
Mind you, that sounds like a horrible, messy idea but it’s all I got. Are there better ways around it I can learn? I can still work with this regardless.

You could make all entities a single one that is the ‘world’.
This ‘world’ entity would take care of rendering and networking.
Each tile would be an ‘object’ that would act like an entity, but they wouldn’t actually be one.

You could also split the world entity into chunks ala minecraft for culling and networking.

That sounds like a pretty good way to structure it. Thanks a bunch for the help!