Well, I made progress in many different areas since the last update. The Editor has seen some improvements, along with the camera zoom, and also some infrastructure and some collision fixes.
Last night I fixed the camera zoom to not be a pure linear move. I don't really zoom the camera ( ie adjust the field of view ), as that can be very unsettling to the viewer. Rather, I move the camera up & down in world space. Right now it works via the mousewheel. I did have it so that each click of the mousehweel moved the camera up & down a bit, but found the choppy movement annoying. Also, I found that I either wanted to be zoomed in, or zoomed out, and not really in between, so I made the mouse wheel make the camera go up and down over time in a linear fashion.
Last night I fixed it so that the camera motion slows down as it nears its desired height, which has a much more natural feel.
I just realized that I could retain this motion method and still allow for multiple levels of zoom, rather than just two. I could even interpret many radpid mousewheel clicks as 'just zoom out dammit', etc.
Ever since I added capsules for the entity collision, the shooting wasn't working great. The enemy shots were fairly
inaccurate, since I was using some of the old sphere code to test for collisions. This morning I switched it to use the new Collidable interface, which I extended to support Ray casts in order to handle particle collisions, like laser shots. This will also fix debris collisions and any other particle-based collision system.
Now the small remaining problem is that the spherical bubble shield needs its own collisions shape, or I need to make it
render as a capsule instead.
This afternoon I added an Object tab to the level editor. This displays all editorobjects, which includes everything you can create, other than triangles or vertices, like meshes, entities, lights, etc. This way you don't have to visually hunt for every item you wish to select, or use the overkill 'Select All' method. Right now the Object display only shows the object name, and lets you select, deselect, or delete individual objects or entire categories, as well as create most object types from this menu as well. Later on I may add per-object property display, like light color, mesh size, etc.
I also worked on the level I began yesterday. I'm not wild about it, but I do like it more as I add more objects. Not only do they add visual interest, but they also add a key tactical element to the combat, as well as to stealth, as they can block an enemy's line of sight to you, as well as provide shadow cover.
I got some enemies chasing me, and was able to get them running around a pool after me. The good news is none of the three
got stuck, bumped into each other noticably, or fell in the pool. Perhaps I don't need dynamic obstacle avoidance after all, if I can afford just to do a partial repath every few seconds for each enemy.