Christmas Project - Streaming Terrain Editor

Started by Kronos, December 18, 2019, 22:24:57

Previous topic - Next topic

Kronos

Vegetation layers is now working. Still needs some work and the process is a bit clunky. I'll probably do a demo in my next video.

Moving away from the idea of using texture atlases as I like the freedom to load any texture plus I am aware that there are certain problems with mipmapping and edges. Still want to add normal mapping to the terrain textures but not sure how at the moment. Was thinking of trying an approach where a single texture contains color and normal map.

Added physics. This slows down the loading of the terrain chunks a little.

Need to clean up and re-organise my code a little.

Also currently all the terrain files are just loose in folders so I want to compress these into a zip or into 1 big file.

Model Loader still needs some work, can't currently deal with multiple mesh objects. Also extra info for shaders may be required. mesh transformation options to correct weird rotations, scaling etc







William

:) i read your worklog. i dont know what to write, its not something i could take the time to do (write a terrain editor).

im interested in lang/app compilers like between blitz and thegamecreators. i dont know why. its neat what people do. dark basic forums were one of the places i've posted at (2001-02) i believe. someone convinced me of blitz so that is what i did. but had i gone with darkbasic maybe it would had been better. still, bmx is the freeware and it has a lot of modules like encryption, LUA and multi-platform support etcetera code archives, i really like the open source linux approach though its very indie.

i just want to write a game to play with others <3

were it not for other users, i probably would not be able to get very far on my own and would have gaven up.

so, better documentation of how to accomplish things could garner other users who have interest in.. if it can be defined what it is, blitzmax (or monkey) its kindof depends on us and especially the knowledgeable members.

i wanted to ask about appgamekit from you.
im still interested in oldschool app/gamedev

Kronos

Thanks for your interest.

Not sure I understand your question but I will try and answer. If you have never programmed before and don't intend to take programming further then appgamekit is probably a good place to start. Appgamekit forums are still active so you would get support for any questions you might have there.Its relatively current language and has alot of support for mobile programming etc.

I started with blitzmax which is alot closer to more modern object orientated languages eg c#. it has classes and methods, lists etc. Moving from blitzmax to appgamekit feels like a step backwards to me. From blitzmax I was able to move to C# without too much difficulty as blitzmax taught me alot of the core concepts of object orientated programming. I credit it with helping me to become a C# developer for a living. Unfortunately Blitzmax is pretty much dead in the water now so you might struggle to get answers if anything should crop up.

I think I already said I am writing this editor using C#, as its the language I am most comfortable with now, with the AGKSharp wrapper so that I can use its 3d graphics commands.





Kronos

#33
Trying to incorporate a normal shader into the terrain shading using textures that include the normal map ie top half is colour map and bottom half is normal map.
Its not really working. Not sure the normal calculations are correct plus setting generate mipmaps messes everything up. May try something else.
Also finding it exceedingly difficult to find a tree model that actually loads into Appgamekit correctly. All the models I have don't seem to work although they work fine in blitz3d. I have always found object loading in AGK problematic as it seems unable to load alot of multi-mesh files correctly.

Unfortunately back to work tomorrow so progress on this may be slow from now on.

Kronos

given up trying to add normal shading as I was getting nowhere with it.
Adding .obj loader that can handle multiple meshes as the AGK default loader is crap.

Qube

Yup, AGK's mesh handling is very fussy as I found when doing my IK+ game for the latest comp. Ripped my hair out for ages to get an animated FBX with normal maps working.

Oddly enough I found that loading my object into Blender and then exporting it out as FBX fixed many many issues I had. After that AGK would load them, I could parse through child meshes and texture + Normal as needed.
Mac Studio M1 Max ( 10 core CPU - 24 core GPU ), 32GB LPDDR5, 512GB SSD,
Beelink SER7 Mini Gaming PC, Ryzen 7 7840HS 8-Core 16-Thread 5.1GHz Processor, 32G DDR5 RAM 1T PCIe 4.0 SSD
MSI MEG 342C 34" QD-OLED Monitor

Until the next time.

Kronos

thanks Qube. I'll look into that, might save me alot of work.

iWasAdam

Here's something to give you a little inspiration ;)

3DzForMe

That is quite inspirational, its mind boggling what can be achieved these days.
BLitz3D, IDEal, AGK Studio, BMax, Java Code, Cerberus
Recent Hardware: Dell Laptop
Oldest Hardware: Commodore Amiga 1200 with 1084S Monitor & Blitz Basic 2.1

Kronos

Random thoughts..

Got a workaround for the tree loading issue I was having but it has revealed another problem. I set cull mode on the tree meshes to render front and rear faces but for some reason the shadows seem to be rendered from models with only front faces turned on so parts of the shadow are missing. I will ask on the forum about this.

The tree models I have mostly have 2 material groups, one texture for the trunk and one for the foliage. Appgamekit seems to only be able to load most model formats as one mesh group so one texture will cover the entire mesh. I wrote a little program that merges the two textures into one(basically split horizontally) and then adjusts the texcoords for each material face group so that they map to correct half of the texture. Only tried it with one tree model so far but it works well. It will probably go wrong if there are any texcoords shared between the two material groups though.

Running out of texture slots for the stuff i would like to implement. Cascade shadows for instance in appgamekit takes 4 texture slots. Evolved has posted some tasty shaders on the Appgamekit forums, the parallax occlusion mapping one caught my eye. Would love to see that on my terrain but it takes 3 textures per map. I guess one way to go would be to do multiple rendering passes on the terrain. But for 4 texture layers I would have to render terrain 12 times per frame with water reflections/refractions turned on so might be quite a hit on performance. I will probably experiment with this as I like the idea of not being restricted to 4 textures per terrain chunk. Also texture atlases but I have already played around with those and they seem to cause problems with mipmapping turned on, not just the bleeding edge issue.

I have found Bard has been quite useful for laying out general principles of how to do things etc.

Wondering whether I should put my efforts into learning how to use Flax Engine rather than trying to code my own terrain engine thingy(badly).

Anyway thats enough wittering for one day. Bye for now.