Archive for the ‘Work Log’ Category

Progress (2 tasks until beta)

Saturday, January 5th, 2008

Hooray! That was an ass load of work but I’ve got the editor refactored now to nicely handle mods and standard Quake side by side. On the user side of things, to use a mod you just set a key/value in the worldspawn called “_game“. For example:

quothworldspawn.jpg

You can also see a key called “_cmdline” there. That’s for passing extra commands to Quake when running it.

The menus inside the editor dynamically adapt to whatever mod you’ve chosen. You can have standard Quake maps loaded alongside Quoth maps alongside Team Fortress maps. It all works seamlessly! You can even change the mod name in the middle of an editing session and the editor will adapt correctly. Entities that aren’t supported in the current mod will turn into black boxes but will retain their class names. If you switch back to the old mod, they will jump back to looking correct again.

Here’s a look at the standard entity create menu:

quakemenus.jpg

And here’s that same menu when you’ve told the editor you’re using Quoth:

quothmenus.jpg

I’m pretty happy with this set up!

Just 2 tasks left until I can feel good about letting beta testers at ToeTag. One is small and one may consume a good chunk of a day. Getting close! In closing, here are some Quoth editing shots:

quothpreview1.jpg

quothpreview2.jpg

Radio Silence

Tuesday, January 1st, 2008

I’m running into a bit of a wall with supporting mods like Quoth so I’m going to need to do some refactoring here. It won’t be exciting enough to post about as it happens so the updates will slow down here for the next few days (or more or less, depending how it goes).

See you on the other side!

Progress (5 tasks left until beta)

Monday, December 31st, 2007

Bugs

I found the last (I hope) bug in my MDL loading code so now all the models load correctly. There was a case where certain models would load but would be somewhat scrambled up. They all look good now so I think that code can finally sink into the background and “just work” from now on.

Texture Locking

I also took a look at the QERadiant source code and by doing so was able to figure out texture locking. It only works for dragging but that’s good enough for an initial release.

Texture Changes Undo/Redo

While I was near the texture code, I went ahead and solidified the undo/redo logic in there so that anything and everything you can do to a face (changing it’s texture, offsets, rotations, etc) can be rolled back.

Targeting Utilities

I added an easy way to connect entities. Select the first entity, then the target entities, and hit CMD+K. The editor will create unique target names and connect them all up correctly. Once entities are connected, if you select the one that targets the others, the editor will show you the entities that it targets with nice obvious lines and boxes. Like so:

targethighlights.jpg

Error Prevention

The editor now checks for bad entities/brushes both immediately after loading a MAP and immediately before saving one out. Culling these will help when something goes badly. Heh. It won’t catch everything but at least the obvious stuff will get cleaned up.

I’m probably going to refactor my approach to loading meshes for classes and mod support somewhat. In getting Quoth to work I discovered that maybe my current approach wasn’t the best. I’ll see what I can come up with…

Progress (7 tasks left until beta)

Sunday, December 30th, 2007

I got extrude working today to round out the initial set of CSG tools.

extrudepreview.jpg

I also started into adding mod support today. It’s not there yet but it’s getting close. I’m using Quoth as my test mod as it seems to be quite popular and is pretty extensive (so it’s a good stress test). I’ve got the classes loading and some of the models previewing. Check out my gug:

gugpreview.jpg

Mod support almost works. It’s uncovered a few bugs I needed to fix and it still needs some massaging but it’s moving forward at least.

Progress (12 tasks left until beta)

Saturday, December 29th, 2007

Nothing really visual to show off today, sorry. Just lots of internal code and tightening up of the user interface. Stuff like asking you to save changes if you’re closing a map you haven’t saved or making sure that you’ve specified a valid Quake directory in the Preferences panel.

Necessary stuff but a bit of a snore fest to read about.

Progress (16 tasks left until beta)

Friday, December 28th, 2007

Point Files
My QBSP now properly generates pointfiles for leak detection and the editor will load and display them.

pointfileloaded1.jpg

CSG Hollow
Make rooms in a flash.

csghollow.jpg

Did some optimizations today as well as refining the compiling tools.

Progress

Thursday, December 27th, 2007

I figured out how to embed the compiling tools (qbsp/light/vis) inside of the editor so now you won’t have to worry about where they are when using ToeTag. Just click the compile button and watch ToeTag do it’s thing. A quick shot of the compiler output window:

compilertools.jpg

My QBSP isn’t spitting out point files for some reason. Gotta fix that…

Level Preview

Wednesday, December 26th, 2007

I’ve stopped working on the code for a few days (aside from bug fixes) to give the editor a really good work out. I’ve come up with a small level using the metal set.

I’m not sure this will ever become something I can release but it definitely shows the editor can create and edit levels. As I run into bugs, I’m fixing them. Soon I’ll be back to work on the code but I’m staying in level design for a few more days.

levelpreview1.jpg

Progress

Monday, December 24th, 2007

Kind of a random day.

Select Matching

Added the ability to select matching things. This expands on the previous “select all faces with this texture” functionality. Now what will happen is that if you have faces selected, it will select all faces that match any of the textures on the selected faces. If you don’t have faces selected, it will select matching entity classes - meaning that if you have a light selected, it will select all lights in the level. I want to expand this eventually into an SQL style selection mechanism where you could, from the entity inspector, issue selection commands like: “select all lights that have a light value of 150″. Eventually.

Hide/Show

Added some basic functionality to hide and show entities and brushes. Not too exciting but it’s core functionality that had to get done.

What really works well here is the “Isolate” button that I added to the toolbar. This hides everything that is not selected. It’s great for working on small subsections of large maps!

Cylinder Brush Builder

Added some new brush builders that will create cylinders. I decided on options for 6, 8 or 12 sides for now. That should be as detailed as you want to get in Quake.

cylinders.jpg

Spike Brush Builder

Same as above except for spikes. Options for 3, 4, 8 or 12 sides.

spikes.jpg

Keypresses

CMD+A - Select everything in the level
CMD+SHIFT+A - Select matching (see above)
OPTION+A - Select all brushes in selected entities. This is handy for moving a door made up of multiple brushes. Select one brush, hit OPTION+A, and start dragging.

CSG Mania Continues…

Sunday, December 23rd, 2007

And today is, apparently, bug fix day. I found an egregious bug in the selection management routines that would leave stuff in the selection buffer long after the object that owned it was deleted and gone. This caused weird crashes when using undo/redo extensively, but that’s all fixed now.

Also a little more CSG today:

Bevel
Creates a bevel on the selected edges, using the current grid size as a reference.

csgbevel.jpg

I plan to do an extrude/inner extrude feature and then I think I’m done with CSG for a bit. Going to get to work on more core features like compiling from within the editor, hiding/showing brushes, editing maps for custom mods like Quoth, etc.