Noob questions about the capabilities of Lumberyard

Hi. I’m an experienced C++ programmer but have never used a game engine. A
few years ago I wrote some fractal planet code in DirectX 9. It was
sub-optimal as it simply used fractally generated heights wrapped around a
planet so it didn’t support caves and the like, however it did let you run
around a huge world in real-time and since none of the data was stored on disk
the world could actually be planet sized. I have recently updated it to use
octrees of prism shaped voxels, so it will now support any type of terrain
using something akin to marching cubes but with prisms. However, I have not
touched the graphics in a long time and I’m now wondering if I should attempt
to use a real game engine moving forward. My goal is to support a giant
MMO game with a single shard.

My dilemma is that I already do a lot of things myself and I’m thinking there
might be too many clashes to make the use of an existing game engine practical.
I’m hoping perhaps I can get some input from any gurus here. Here’s some
of things I need to support…

As it stands I generate a lot of chunked terrain in double precision. However
when I send it down to the card, I convert to single precision and transform
the chunks to their actual location. This way I avoid precision
problems. I guess in some sense I’m partially moving the terrain around
the player rather than the other way around. This works OK since I’m constantly
re-chunking the terrain as the player moves, so before a chunk of terrain gets
close enough to the player that the precision becomes a problem, it’s
re-chunked and sent back down. Can I still do something like this with
Lumberyard? There will be no levels or anything like that in this game,
just one big seamless world. Things like trees and buildings
require l lot of LODs since the distances are large and I want to avoid using
fog as a crutch. I’m working on an L-system based algorithm for trees so I can
handle that myself as long as the engine lets me do it.

The other thing is I generate two models of the planet, one for graphics, and
one for collision which only contains geometry surrounding the player at it’s
maximum LOD. I do this to avoid race conditions and keep the
responsiveness up. There are separate threads for each model. Since
everything is already generated in an octree, it doesn’t make sense to put the
data into some game engine defined structure because it’s simply wasted work
and I can’t afford to waste CPU cycles. However it would be nice to use
optimized collision detection code. I have my own collision code which works
OK, but I imagine it’s rather clunky, compared with game engine code. All I
really need is sphere, and possibly ellipse collision with meshes with
responses (i.e. kind of sliding along the mesh like characters do in a typical
MMO) . So the question is, is there a reasonable way to just do sphere to
mesh collision, using my own mesh for format?

Finally I implemented simplex noise in HLSL for terrain shading and I’ll
still need to use it, so I guess I need some sort of way to write shader code
directly that won’t clash with the game engine.

Sorry if this is long and rambling and I’m asking fuzzy questions. I’m
just tying to get some information up front to save time. Thanks in advance.

I have never tried to access the render pipeline but I think you have to convert everything to lumberyard componetes which will not be easy but physics will work fine at that point. You would have to use amazon severs too which might be a issue for your DIY style.