So it turns out that I actually code a lot more effectively if I have a specific set of tasks to complete. I created a step by step guide to have the basic features required to build a simple test map. The test map is nothing spectacular. It's basically got a box that's been scaled out and had a face cut out of it for a 'connection' to another room. The other room is the same thing of another box with a face cutout that is going to be snapped to the first one. Each box starts with it's normals facing out but I am going to need to invert those so that the walls face in. I am also going to have to be able to assign a texture to each wall. So that's pretty much it. I have a lot of that functionality in there but none of it is really completed. There are a few bugs with each thing but now that I've tasked out everything, I am going through 1 by 1 and making sure everything works as expected before moving on. It's really nice to have a goal to work towards and having something tangible come of it.
Here are the tasks that I've prepared in order to be able to do the test room. This is the order that I have been tackling them since yesterday so hopefully when I am finished, there won't be much else to do.
1. Clear the scene
2. Translate tool
3. Scale tool
4. Box placement
5. Simple normal manipulation [just reverse them for now]
6. Texture assignment [per face or per object]
7. Face removal from a box
8. Vertex snapping
9. Object snapping
10. Light placement [point light]
11. Sprite icons for lights
12. Color adjustment for lights
13. Player start placement
14. 'Trigger' volumes
15. Rotate tool
So I think that should more or less add the required functionality to be able to create the room I want. I think I am going to always sit down, plan out the creation of something, and break it down similarly in the future. It lets me know how long I'll be towards a target, keeps me focused on getting something useful accomplished, not just something cool, and it also gives me a specific feature to drive towards completing at any given time.
That being said, I sat down today and did some actual work. I managed to fix/implement the first 4 features of that today. Granted, almost all of the framework was there but I at least fixed some bugs and made the scale and translate tool function as they are supposed to.
As it stands now, I've given myself the weekends and 2 'work days' throughout the week to be spending on this. I also gave rough estimates for how long things will take. Based on that [which may be horribly inaccurate], it appears that I should have all of this done by mid August some time. As far as that is, I think I can pull it back into late July which will be nice.
As far as the editor is concerned, I won't be recreating Maya/Max at all but I will be allowing for simple face manipulation that will allow you to create a basic room, block off some sections with walls, and place ramps and things so you can have multiple levels. Anything more complicated than that and I'll have to allow you to import it as a mesh from your favorite modeling package. I will have to create a suite of tools to allow you to place objects easily and line things up nicely so that will probably be coming soon as one of the next few use cases.