In my SceneMax3D project , I have added the ability for the end-user to build / modify the scene on-the-fly while the game is running.
In this demo, I’m demonstrating building a scene from scratch , adding some models, skybox, run animations etc. All by typing some script commands inside a small Nifty text editor.
I really like this feature
Been working on level design lately, as I’ve been burnt out on coding and needed a break for a while.
So far, all of the maps I’ve made for my game are unfinished and are unfortunately in a sloppy/unpolished state. But this is the first map that I’ve managed to get to a decent size without becoming too large for me to manage as a single developer. I’m hoping to make this map the first complete level which will be available for player testing, hopefully before the end of the year.
Very charming!
(video link at end of post)
I’m starting to architect the actual new Mythruna engine. It occurred to me that the hardest biome type to get right will be deserts. To me, for deserts to be interesting, they should be so big that you can get lost and die of thirst. That presents an interesting challenge for a block world game since if you can only see 200 meters or so, you only ever see a tiny postage stamp size and things are pretty lame.
This is also the hardest test for all of my far terrain rendering prototypes since you can see all the way to the horizon and popping of large structures will be SUPER apparent.
So as I build the engine, this is where I will start. A giant desert world. If I can make that look good then the other biomes are relatively easy.
…and if I can’t make that work, well that’s ok too because then at least I will know where my constraints are.
Anyway, I started by trying to find a good fractal for deserts. I ended up with this in my map maker tool:
Kind of swirling dune like… next was to see what it looked like in the far terrain engine prototype just to see what the real structure looks like.
Pretty decent:
Even has some nice relatively flat areas:
Next was to try to get some rocky cliffs sticking up like islands in the sand. To that I thought I could layer the sand with the regular terrain fractal but tweaking the curves so that it was more ‘pointy’.
I wrote a quick and dirty Swing app that let me type some groovy script to test different curve remappings:
Top is the original terrain profile (in green) with the desert fractal super imposed on top of it (yellow). The blue is the sea level.
Bottom is the one with adjusted curves and you can see the script transform I used in the bottom edit field. (That’s not the function I ended up with but testing different ideas was SUPER fast… tweak script, ctrl-enter, see instantly.)
And finally, an HD video flyover:
Impressive is an understatement. It looks beautiful. I’m genuinely looking forward to being able to play this.
One thing that sprung to mind, though, since you mentioned distance, is heat refraction. It might help maybe with being able to see so far, or at least make it a little bit more interesting to the eye to break it up a little, maybe?
All things in the fullness of time.
Heat signatures, in as much as they are doable at all, will not greatly affect the rendering engine one way or the other. So it will have to wait.
The interplay between block-world style rendering, mid rendering, and far rendering, somehow supporting live user-edits to that far terrain, lighting, etc… All of that very much does affect the architecture.
Hopefully it doesn’t turn out to be impossible. There is a plan and so far the riskiest parts of the plan turned out ok… so I proceed with hope.
Refraction + oases = Fata Morgana fake oases?
Looking great, too! It all looks like it goes together really well, and the effects are just subtle enough to work. Great Job!
I’m using pure code for creating my games , working with InteliJ as code editor but one of the things which was constantly consumed a lot of time from me was positioning the game objects in the scene so to accelerate that I have created a simple visual editor which saves a lot of time. When finish placing the objects in the scene , simply click on “Save” and everything is generated as code
Working on a prototype of real-time water simulation for a 2D game. Not perfect yet. I’m sure I can speed it up and probably make it look better, but hey, it works. It balances itself using a pressure system, so the water levels out eventually. You can adjust the thickness of the fluid to simulate lava or whatever, too.
You’ll have to excuse the animated GIF. I didn’t want to upload such a small video to youtube.
I’d been coding non-stop on rebuilding parts of the app to be more ‘real’ and I took a break to fix a long standing visual issue.
This is a pretty typical terrain LOD problem where one level of detail hits another. As I recall, JME terrain solves this in a really complicated way of stitching the edges of the meshes. Totally unnecessary.
Around 2002 or so, I learned a trick where you just drop a small skirt down on the edge with the same exact coloring as the real edge. I never believe it will work. It always does… like magic:
In fact, it worked so well that I didn’t realize I’d accidentally raised the geometry up by 5 units so the gap was even worse than before:
…and it still totally went away.
Basically free.
Edit: really if anyone ever wants to rewrite JME terrain stuff, the key new features should be 3x3 grid instead of 2x2 and skirts instead of knit mesh edges. Sooo much simpler.
Edit2: and because why do work when you can take screen shots. Here it is without the hires view:
…super hard to see the skirt even now. But it’s there in the reflection in the water.
Here is one where I highlight the bottom edge as red:
Just magic.
What’s the advantage of the 3x3 grid?
It’s simpler.
In a 2x2 grid, you have to load the new edge when you are half way across some tile.
The argument for 2x2 has always been “but it’s less data”… but that’s not a good argument because you always have a lot more loaded than you need.
When you just cross the half-tile threshold and it loads in those new quads, somehow the green distance is still visually ok but now I have almost three times that much (the red distance) on the other side.
Odd numbered sizes are what most terrain stuff seems to use… depending on how many levels out you want.
It’s simpler. When you leave the center, you have a new center and fill in the empty edge.
Edit: note that it’s also possible that I’ve grossly misunderstood what JME terrain is doing… but that’s a problem, too.
With the simplify class I use a lot it detects the edges. It’s rules state that if an edge isn’t shared it’s a boundary. And if that’s true, don’t touch it. That way the meshes always join together with the benefit of no additional vertices.
The simplify class removes vertices, though, not indices. It would be nice to have one that does.
Working on my Outside Engine. Built my own jfx file browser for game masters to upload or find files.
What’s Outside Engine about?
I am doing demo of cs game on android, and I use nifty to create virtual buttons. However, I found that nifty only handles the first finger pressed event with PointerId of 0. Can anyone tell me where to modify nifty so that nifty handles all touch pointer events? I need to use multi-touch. Currently, I have no plans to change to lumer, so I hope someone can help, thank you.
Please create a new thread. This is the monthly screenshot thread.