I realized that while I could move around as many vertices as I wanted, I had no real way to actually bulk select stuff to move. So I created a nice box selector, which allows me to quickly grab large sections of map and manipulate them.
I also realized that some of my walls didn't exactly lin…
The most common feature that I use when building a 3D model in blender (other than sculpt) is extrude. I finally had all of the components ready to put them together into an extrude function, but I did it. Now I can make much more organic looking outdoor areas, without having to pick up…
I continued working on figuring out how to represent a forest with the limitations of my engine. I know from experience that in dense woods, light dims very quickly, so I figured I'd only need a few layers of real trees to sell the effect. This and the fog effect will make it seem as th…
I noticed a few missing features, such as being able to drag sectors around, or be able to select a vertex that's not exactly on the grid you're working with. I also spent the day actively trying to crash it or make asserts fail. I managed to do it a few times, but it was more reliable …
Noticing a few bugs that I need to fix in the editor as well as some features that I desperately need to make life way easier for anyone using the editor to make complex, beautiful geometry. I'm loving it. It looks like a very high density DOOM map, but with lighting that Doom Editors c…
I decided to create a brand new project to build a small tech demo, that I can release for free with the editor. Immediately, the Editor crashed, everything had been done so far in one or two projects and I hadn't created a new one for a while, so some features didn't get properly cleared out…
I was very underwhelmed with the use of numbers to represent platforms. It's always been irking me that I'm unable to call on materials by name when I need them so I thought about how to best fix that problem. I came up with reusing what I did for selecting shaders. I had a button…
I added a way to group geometry into platforms that can move up and down depending on game variables' states. I also added a raycast that happens when I press the interact button, so it can detect if a wall contains a switch. The switch can alter the state of game variables, which in tu…
For all of the normal map calculations, I had assumed that the light was all coming from one direction. Obviously this was deficient as obviously there were times when a surface is surrounded by light. I fixed this by adding a calculation into the baking that determines how much light i…
Last night and today was a cleaning session. I always had -Wall on, but I also added a bunch of additional compiler warnings. I then also went through and addressed all 100+ warnings that showed up, most were simple implicit conversions, which did actually show me a bug or two that I li…
With the light angle calculated correctly, I can now start working on actually making normal maps work. This will absolutely be something that will set it apart from other boomer shooter engines. Both the floor and walls are completely flat, but they have bump maps.
I also modified the l…
Since I now have a GUI, I made it show me a ton more information about what the light mapper is doing, and finally pinned down a bug that was really causing problems and had caused me to give up on normal maps. I can now click on a wall or plane, and have the lighting window show me exactly w…
I have to figure out how to store both the initial state of everything for saving and editing, but also a game state for moving everything around. I thought about just making them separate but I do want to be able to trigger doors and things in the editor mode, largely because that's how dyna…
I had to add a whole bunch of running lights along floors and ceilings, because some places were just too dark. This is just a test level, so I have no intention of prettying it up beyond this, but where you see some jagged and high contrast edges, in real levels, I would further tessellate t…
I completed the creation of my E1M1 clone and I wanted to post a tour of it before and after lighting has been baked. My engine does have a fancy sector-based lighting system that bakes realistically, but I haven't connected it to the GUI yet, so everything here is at full bright. I wan…
Got a few more minor bugs to work out, plus some more features for the editor, but I am now to the point where I can have a full level. To celebrate, you know those windows that let you see out into the courtyard in the first level of DOOM? I made one of them broken and thought it looke…
Check this out. This is simulating looking from something like water out into something like air. At the surface, rays that are going into it fairly directly are sent through, but with a huge bend, creating a fisheye effect. Rays that hit the surface at more of a glancing angles r…
Was working on skyboxes when I added an assert to check that the render angle was normalized. It wasn't, so I ran through everything, throwing tons of asserts to find where exactly the angle got out of the 0 to tau range. This is essential for working with refraction, as all angles must…
One of the things that I'm proud of is that my engine looks good no matter what resolution you play at. That's not true for most old-style games because you ended up taking pixel samples that were totally disjoint. I use mipmaps to properly blend things in the distance so you the distan…
I kept watching my FPS drop lower and lower, but didn't bother profiling until now. Turns out, I was redrawing the map window in a loop, so I fixed that to only serenader when it actually needs to. I then faced another problem, with the fixed, the adaptive resolution skyrocketed and so …
Using the editor again has made me notice some small quirks. I also have to get the threader worker again, it's too slow to render all of this AND the map editor and all the other UI components that I refresh too often for my own good. Since crashing is becoming less of an issue, I'll p…
To test any new engine, one must create a version of Doom's E1M1 to make sure everything works properly. Here is the first room. You may notice that the geometry complexity is greater than the actual floor and walls. This is to allow cell lighting to have nice gradients once baked…
My engine posts the calculated FPS over the last second on the window title, and also has an adaptive renderer that calculates how long each frame takes and adjusts the next one accordingly. I noticed that even though my render time was almost exactly 1 / 30th of a second, the frame rate was …
I underestimated the work on the UI that was needed, and I also rewrote some of the Material Window to make it easier to add things later, but I finally got the dynamic library loader to work properly and set up the UI that I could select and set volumetric. No refraction or height informatio…
The wife was up really late last night with some of her projects, so I sat myself up and programmed all night. I barely even remember it, but I went on an absolute tear. So up until last night, the further away something was from the camera, the darker it became. This mimicked the…
The way I had been blending was wrong the whole time, but only presented itself when alpha and reflections were used together. The math was sound, but because the functions were recursive, it would do all of the reflections before all of the alpha blends, which failed miserable. The sol…
I finished porting all of the editing functionality to the new windows, and have erase the old stuff. Now I'm just going to finish cleaning up a few known bugs. I also imported all of my materials for my game project so that I can start building with them in a real project file.
- The mate…
I can select and deselect sectors and individual planes in the sector. I made controls for changing height and texture offsets universal, and this helped me to realize that the texture offsets for the floors were not being taken into the calculation, which I immediately fixed.
The only things …