My engine can now concoct and export a wad file from a bsp (via a boolean in the descriptor) and also use a wad as a source of replacement textures. Pak is about done as well - both directions - read pak/convert current level to pak. It has to be that way for now cause this isn't intended as a pakscape replacement. Actually, I'm not really sure what convert-level-to-pak is good for, maybe nothing, but, in begat out and it is what it is.
regarding collision detection - I'm detecting. I spent 3 days reading collision solutions and the accompanying math. I just need some more time for it to stew and I will write my own "physics" from scratch with no reference. I could totally rip and port from some quake source but, I have managed to keep 99.999% of my code quake sourceless and I intend to keep it that way.
Also, my PVS system is about to be different. I have an idea of how to convert leaves to portals. This is necessary. Spike and I had a mini-discussion in my Real Flash Quake thread and the "hybrid solution" was to essentially treat a bsp like a collection of texture models...marking visible textures at any given point and dumping the non-visible ones from the buffer. That way isn't bad but it isn't good either. Consider a bullet with an RTL attached. Currently, that light has to be applied to every visible texture in the map simultaneously. If I'm rendering a whole lot of world that isn't even visible, firing that bullet becomes unnecessarily expensive. I have a hybrid-hybrid solution that still considers the bsp as a bunch of texture models but chops it up into portals as well. There will still be some unnecessary geometry rendered, just far less of it. From there, I will spin my own file type of BSP "results". I did this a long time ago when I first started this project but quickly dumped it due to not being sure of what "results" will actually be. Now that I have some actual direction to my pvs and what-not I can contour the results to compliment my system. The "file-type" is nothing mysterious. It's nothing more than a flash object saved as bytes. My engine will still totally support all the BSPs that it already does but, can unify and export all that to one big generic object of "instant" results. This will speed some things up because there wont be a parsing stage. Unless you consider this a parse
var bspObject
bject = bspObjectBytes.readObject();
//assign children to geometry
My hope is to finish my collision detection, physics & pvs systems at about the same time, rounding my engine off to be a completely viable game engine. From there it should just be a bunch of HUD crap and Map entities hanging. I'm sure I will find some way to make that take forever. IDC. It's not a race. I'd rather program it to death and have rock solid results than just "whip something up" that isn't worth shit. Honestly, when I get to the point where I am "done", I will probably go back from the ground up of my entire source and make sure there is no possible way I could do it better. Then start stripping the entire away3d api down to the barely-any-of-it that I'm using and move those classes into my engine. I didn't realize how little of the API I was using until the other day. Lights and Materials are about it and barely any of the Materials (like 2 out of like 20). I wrote my own Geometry classes a long time ago.
edit: woops - Lights, Materials and PARTICLES. I will not strip the particle engine out and merge it into my source. Lights and Materials are nothing fantastic and I could totally write those classes myself. Particles, on the other hand, were programmed to death by someone really talented and I wouldn't feel right making it seem like it is built into my engine. Particles will be the only external package to my source.
regarding collision detection - I'm detecting. I spent 3 days reading collision solutions and the accompanying math. I just need some more time for it to stew and I will write my own "physics" from scratch with no reference. I could totally rip and port from some quake source but, I have managed to keep 99.999% of my code quake sourceless and I intend to keep it that way.
Also, my PVS system is about to be different. I have an idea of how to convert leaves to portals. This is necessary. Spike and I had a mini-discussion in my Real Flash Quake thread and the "hybrid solution" was to essentially treat a bsp like a collection of texture models...marking visible textures at any given point and dumping the non-visible ones from the buffer. That way isn't bad but it isn't good either. Consider a bullet with an RTL attached. Currently, that light has to be applied to every visible texture in the map simultaneously. If I'm rendering a whole lot of world that isn't even visible, firing that bullet becomes unnecessarily expensive. I have a hybrid-hybrid solution that still considers the bsp as a bunch of texture models but chops it up into portals as well. There will still be some unnecessary geometry rendered, just far less of it. From there, I will spin my own file type of BSP "results". I did this a long time ago when I first started this project but quickly dumped it due to not being sure of what "results" will actually be. Now that I have some actual direction to my pvs and what-not I can contour the results to compliment my system. The "file-type" is nothing mysterious. It's nothing more than a flash object saved as bytes. My engine will still totally support all the BSPs that it already does but, can unify and export all that to one big generic object of "instant" results. This will speed some things up because there wont be a parsing stage. Unless you consider this a parse
var bspObject

//assign children to geometry
My hope is to finish my collision detection, physics & pvs systems at about the same time, rounding my engine off to be a completely viable game engine. From there it should just be a bunch of HUD crap and Map entities hanging. I'm sure I will find some way to make that take forever. IDC. It's not a race. I'd rather program it to death and have rock solid results than just "whip something up" that isn't worth shit. Honestly, when I get to the point where I am "done", I will probably go back from the ground up of my entire source and make sure there is no possible way I could do it better. Then start stripping the entire away3d api down to the barely-any-of-it that I'm using and move those classes into my engine. I didn't realize how little of the API I was using until the other day. Lights and Materials are about it and barely any of the Materials (like 2 out of like 20). I wrote my own Geometry classes a long time ago.
edit: woops - Lights, Materials and PARTICLES. I will not strip the particle engine out and merge it into my source. Lights and Materials are nothing fantastic and I could totally write those classes myself. Particles, on the other hand, were programmed to death by someone really talented and I wouldn't feel right making it seem like it is built into my engine. Particles will be the only external package to my source.
Comment