The Enzyme World Creation Suite and 3D Game Engine
Milestone 3 to Milestone 4 In which the Indoor Level Editor graduates from neat toy to useful tool with the addition of level saves, textures, lights, and sub-object manipulation.
1 User Settings Screen Clean up the User Settings Screen Remove test items such as fonts and edit boxes, fix the screen layout
100%
2 Project Screen Indoor Level Editor Button interferance with the new project name input box fix interference
100%
3 Indoor Level Editor Screen Alternate camera zoom Keyboard input to move camera forward and backward
100%
4 Indoor Level Editor Screen Selection Order Current selection order is not working properly. Fix.
100%
5 Indoor Level Editor Screen Depth Buffer Add a depth buffer such that solid blocks are drawn in the correct order
100%
6 Project Screen Editor Buttons turned off if there is no currently active project loaded Shouldn't be able to enter an editor without a project
100%
7 Project Screen Turn off all except active editor button When an editor button is pressed, all other buttons should be turned off
100%
8 Project Screen Display indoor level list in selection box Upon selection of the level editor button, display a list of all existing levels for the current project
100%
9 Project Screen Cancel option Upon selection of the level editor button, display cancel button to back out and re-enable the editor buttons
100%
10 Project Screen New Level option Upon selection of the level editor button, display New Level to allow user to create a new level.
100%
11 Project Screen New Level Name Upon selection of the level editor button and creation of a new level, allow the user to name the new level. Validate the new name
100%
12 Project Screen Rename Level option Upon selection of the level editor button, display Rename button to allow the user to rename an existing level
100%
13 File Handling Save Level List in Project File When creating a new level or renaming an existing one, update the project file to include new data
100%
14 File Handling Load Level List When loading a project file, load the indoor level list
100%
15 Indoor Level Editor Screen Display project and level name Show the project and level name at the top of the information boxes (next to the close button)
100%
16 Indoor Level Editor Screen 3D Camera Rotations Use Quaternions to rotate 3D camera (Yaw, Pitch, and Roll) while avoiding Gimbal Lock
100%
17 Indoor Level Editor Screen Material Adjuster Upon an object selection, give the user an interface that allows them to adjust the material parameters for the object
100%
18 Indoor Level Editor Screen Save Button Save the level button
100%
19 File Handling Save level Upon save push, save the level geometry to file in player directory. Also save camera positions etc to file in project directory
100%
20 Indoor Level Editor Screen Face Selection Allow user to select individual faces rather than an entire object
100%
21 Indoor Level Editor Screen Face Movement Move a face along it's normal or perpendicular to it's normal (e.g. along it's plane)
100%
22 Indoor Level Editor Screen Chord Selection Allow the user to select a chord (a line between two vertices) rather than an entire object
100%
23 Indoor Level Editor Screen Chord Movement Move a chord (by moving it's two vertices). Be careful to check any vertices that share the same space on the same object and move them as well
100%
24 Indoor Level Editor Screen Vertex Selection Allow the user to select individual vertices. Verts on the same object that share the same space should be counted at a single vertex
100%
25 Indoor Level Editor Screen Vertex Movement Move a vertex. Be careful to check any vertices that share the same space on teh same object and move them as well
100%
26 Indoor Level Editor Screen Object Triangulation Triangulate objects when created or when faces, chords or verts are changedTriangulate objects upon push of Triangulate button.
100%
27 Indoor Level Editor Screen Vertex cache Precreate a vertex list after triangulating objects for better performance
100%
28 File Handling Save vertex cache data When saving level, save the pre-cached triangulation data to player directory
100%
29 Indoor Level Editor Screen New Chord Creation Allow user to create a new chord by selection of two vertices
0%
30 Indoor Level Editor Screen New Vertex Creation Allow user to place new vertex on any existing chord
0%
31 Indoor Level Editor Screen Texture Selection interface Upon selection of an object or face, show texture selector (large picture)
0%
32 Indoor Level Editor Screen Used Texture Selection interface Show all textures that have been used for this level and allow them to be selected for the current object
0%
33 Indoor Level Editor Screen Browse for new textures file browser for new textures, showing bitmaps
0%
34 Indoor Level Editor Screen Assign texture to object or face Show the texture for the object or face in the build area
0%
35 File Handling Save texture data object and face textures should be saved in the player directory
0%
36 Indoor Level Editor Screen TU and TV adjuster Upon selection of a vertex, show texture position modifier interface and allow the point to be moved around
0%
37 Indoor Level Editor Screen Light control Modify second side box to be a light control, move other controls out
0%
38 Indoor Level Editor Screen Tab for selection of ambient light or point light control change interface box as appropriate
0%
39 Indoor Level Editor Screen Ambient Light Color Control In addition to the master light control, add controls for individual colors (RGB) as well
0%
40 File Handling Save ambient light data Save amibient light parameters in player file
0%
41 Indoor Level Editor Screen Point light model create a model for point lights
0%
42 Indoor Level Editor Screen Add a checkbox for show/hide point light models interface for displaying the point light model at position
0%
43 Indoor Level Editor Screen Show point light models display the point light models, use appropriate material values
0%
44 Indoor Level Editor Screen Point light selection box display a selectable list of all point lights
0%
45 Indoor Level Editor Screen Add point light Add a point light at the current active camera location
0%
46 Indoor Level Editor Screen Point light statistics Show location and material statistics for currently selected point light
0%
47 Indoor Level Editor Screen Highlight selected point light In build area, if point light models are shown, highlight the currently selected light (wireframe box)
0%
48 Indoor Level Editor Screen Point light deletion delete the currently selected light
0%
49 Indoor Level Editor Screen Point light move Move the point light via drag
0%
50 Indoor Level Editor Screen Point light sliders Add sliders for point light parameters (specular, intensity, color, etc).
0%
51 Indoor Level Editor Screen Adjust point light statistics upon change of slider, change the statistis of the light
0%
52 Indoor Level Editor Screen Point light material change the point light model material to reflect the positions of the sliders
0%
53 File Handling Save Point light data Save the point light data in the player file
0%
54 Misc Miscellaneous tweaks and minor bug fixing Whatever comes up
0%
---------------------------------------------------------------------------------------------------
Milestone 2 to Milestone 3 In which the world gets its structure from the indoor level editor, which takes its first baby steps into the world. Also, we let the user know when something goes catastrophically wrong instead of keeping it a secret.
1 Base Graphics Catch the window resize messages and rebuild graphics using the new resolution When the window is resized from its current size, rebuild the graphics to fit to the new resolution. Otherwise they get blurry as the resolution changes
100%
2 User Interface Message Box Class Background, message text (text box class), okay button
100%
3 User Interface Add a Message Box to the Directory Crawler Class For general use during directory and file operations
100%
4 User Interface On file or directory error in Directory Crawler, display Message Box (modally) with relevant error message Invalid drive (e.g. CD drive with no CD in it), read error, and so on
100%
5 Project Screen On opening of project file, validate the file Make sure we really opened an Enzyme project file
100%
6 Project Screen Project File validation error If project file not validated, display Message Box with relevant error message
100%
7 Project Screen Project file validation warning If project file is out of version synch with Enzyme current version, display Message Box and let the user know the file will be updated to current version
100%
8 Project Screen Enable the Level Editor (Indoor) button on the Project Screen. Set up the button for use. Our first editor!
100%
9 Indoor Level Editor Screen Basic setup of Level Editor (Indoor) screen Keyboard and mouse handling, escape back to Project Screen, background drawing (probably straight black(?), and so on
100%
10 Indoor Level Editor Screen Divide screen into two sections One for building area and one for control panel (small strip along bottom and possibly right side). Keep building area as large as possible
100%
11 Indoor Level Editor Screen Add Exit button Return to Project Screen
100%
12 Indoor Level Editor Screen Add Text Box to Level Editor (Indoor) screen For display of hints, strip along bottom of screen (one line, we'll have to keep the hints very short)
100%
13 Indoor Level Editor Screen Add two buttons for selection of 1 or 4 panel build area Exclusivity as per radio buttons, but we need an image
100%
14 Indoor Level Editor Screen Add separatory lines for 4 panel build area. Center line meeting point in build area. 3-5 pixels thick. Remove on selection of 1 view build area
100%
15 Indoor Level Editor Screen Cursor change when over the separatory lines Need left/right, up/down, or 4 arrow cursor. Use default window cursors for this
100%
16 Indoor Level Editor Screen Move separatory lines upon drag Move the meeting point of the lines as appropriate. Limit to 1 pixel size for width and height of individual build areas
100%
17 Indoor Level Editor Screen Set up four cameras One for each possible panel. Set to top, 3D, front, and right views (all wireframe) for now. Center on origin
100%
18 Indoor Level Editor Screen Background color of build panels. Probably blue?
100%
19 Indoor Level Editor Screen Selection of particular panel with a 4 panel build area upon mouse press Slightly changed background color
100%
20 Indoor Level Editor Screen Draw grids in build panels Scale grids to current zoom level and remove grid lines that get too close together
100%
21 Indoor Level Editor Screen Zoom in or out on mousewheel movement Move cameras along appropriate axis depending on the current view. Zoom the currently selected build panel. Panning with right mouse hold
100%
22 Indoor Level Editor Screen Set up control section for each panel on the control panel. Four control sections. Turn off three of them when selecting one view build area
100%
23 Indoor Level Editor Screen Highlight the control section for currently selected panel. White border?
100%
24 Indoor Level Editor Screen Display Grid scale on control section (where 1 is full zoom in, x is full zoom out) Zoom: x
100%
25 Indoor Level Editor Screen Set up view selection on control section Drop down box for selecting view type for that build area, types to include: top, bottom, right, left, front, back, 3D
100%
26 Indoor Level Editor Screen Mark origin in build panels with red diamond wireframe Just what it says
100%
27 Indoor Level Editor Screen Set up check boxes in control sections to turn off origin marker and grid in build panels. Two check boxes
100%
28 Indoor Level Editor Screen Create a section on the control panel for an object palette. An area where the user will get to select what they are going to work with
100%
29 Indoor Level Editor Screen Add Structural Block to object palette as a button This will be the first (and for now the only) button on the object palette. Set up as a push button with an image (box) and set to pushed
100%
30 Indoor Level Editor Screen On Left Mouse Down in selected build area, snap to closest grid point The closest grid point AS SHOWN on the screen. Hidden grid points due to zoom are not considered. Hidden grid points due to having the grid off are considered as normal
100%
31 Indoor Level Editor Screen Create a statistics area in the control panel This will show statistics about the currently selected object
100%
32 Indoor Level Editor Screen Show current location and currently selected object type in statistics area X, Y, Z point (the origin point set to where a drag begins) and what it is (can only be a structural block for now)
100%
33 Indoor Level Editor Screen On mouse drag, create a temporary structural block Show its statistics (location, width, height, etc) in the statistics panel. Default position and size for non-controllable dimension (e.g. height when creating a wall in the top view). Show as a wireframe in all views
100%
34 Indoor Level Editor Screen On Left Mouse Up, validate the structural block (no 0 dimensions) If validated, assign a unique name to the block and make the block the selected object
100%
35 Indoor Level Editor Screen Show all current structural blocks as wireframes in all views Now show all blocks created, not just the one BEING created
100%
36 Indoor Level Editor Screen On shift-click, select closest wall to pick-ray If a wall is already selected and is in the pick-ray, select the next wall back. If there is no next wall back, select nothing. If there is no wall in the pick-ray, deselect all
100%
37 Indoor Level Editor Screen Display statistics of currently selected wall Update the statistics display when a new object is selected
100%
38 Indoor Level Editor Screen Highlight currently selected wall different wireframe color
100%
39 Indoor Level Editor Screen Add a Delete button which deletes currently selected wall and sets selection to none Allow delete key to perform same function
100%
40 Indoor Level Editor Screen Add deselect button to control panel to deselect all Allow Control-D as same function
100%
41 Indoor Level Editor Screen On mouse drag, if a wall is selected and the drag starting point is over the selected wall, move it rather than creating a new wall Change the origin and update statistics display
100%
42 User Interface Slider bar class Very similar to scrollbar class, Probably only need a slightly different graphic
100%
43 Indoor Level Editor Screen Create a Caulk texture Bright pink with yellow striped border. Should be very easy to spot (on purpose!) if accidentally left in a level
100%
44 Indoor Level Editor Screen Set all structural block textures to Caulk texture This will be the default. Caulk texture should never get transferred to the Player Directory
100%
45 Indoor Level Editor Screen Add wireframe and texture mode buttons to control sections Exclusivity as per radio buttons, make these push buttons with images
100%
46 Indoor Level Editor Screen Draw blocks as wireframe or textured depending on button used The texture will be Caulk. Levels will be very bright at this point!
100%
47 Indoor Level Editor Screen Add ambient lighting slider bar to control panel and adjust ambient light based on input Textured views only, this should have no effect on wireframe views
100%
48 Misc Miscellaneous tweaks and minor bug fixing Whatever comes up
100%
---------------------------------------------------------------------------------------------------
Milestone 1 to Milestone 2 In which we put together the project screen, handle a couple more user interface classes, and fix a font issue
1 Project Screen Project Screen Backgrround Set up and draw the screen background. Stub in all the mouse and keybaord handle routines
100%
2 Project Screen Add Quit Button Put in a quit button, exit on press
100%
3 User Interface Constant Text Size Text takes up different amounts of screen real estate depending on the screen resolution. Fix this so that the text always takes up the same space no matter what the resolution
100%
4 Project Screen New Project Button Add button and stub to a directory crawler upon press
100%
5 User Interface Directory Crawler Class Select directory or file (depending on flag setting), allow creation of new directory, select button, new directory button, cancel button
100%
6 File Handling Engine File Copy Upon successful New project, create subdirectory structure and copy core engine files to selected directory. Create a project file. Disallow new project if a project file already exists in this directory
100%
7 User Interface Progress bar class Text colors, titles, bar drawing, update of percent complete, total for completion, okay and cancel button
100%
8 Project Screen Add progress bar for new project file copy Update progress bar, handle cancel, handle completion
100%
9 Project Screen Save Project Button Add button and save project data upon press (not much to save at this stage). NO directory crawler
100%
10 File Handling Project File Add entries to project file based on keywords. Write and Read file
100%
11 Project Screen Load Project Button Add button. Enter directory crawler and read project file upon selection
100%
12 Project Screen Add Editor Buttons Add buttons to enter sub-sections of the program. Level editor, Particle editor, Skin editor, Shader editor, Script editor, Model editor, Generator editor, Container editor, Item editor, NPC editor, Sound editor, Movie editor, Player editor, UI editor. Disable all buttons at this stage.
100%
13 User Interface Text Box class Similar to an editor box, except read only and multiple lines. Auto break text between words
100%
14 Project Screen Add Text Box to Project Screen Upon hover, give instructions / hints as appropriate
100%
15 User Settings Screen Add Text Box to User Settings Screen Upon hover, give instructions / hints as appropriate
100%
16 Project Screen Recent Projects list Add recent projects to file. Load file upon start
100%
17 Project Screen Display Recent Projects on Project Screen. Allow selection of recent project or load of a non-listed project
100%
18 Project Screen Auto Load most recent project Load the last project worked on when entering Project screen from User Settings Screen
100%
19 Misc Miscellaneous tweaks and minor bug fixing Whatever comes up
100%
---------------------------------------------------------------------------------------------------
Milestone 0 to Milestone 1 In which we set up basic windows, some initial file handling, Direct3D, DirectInput, fonts, and a lot of things to do with user interfaces
1 Windows Basic Windows Initialization Master window registration and creation, message pump, standard window message handling, exit key (escape) functionality
100%
2 User Interface Interface Manager Class Control instances of specific screen classes, channel screen dispaly control, handle global input, channel non-global input to specific screens, set initial screen to D3DSettingsSelectionScreen
100%
3 Input Keyboard Input Direct Input Initialization, keyboard buffering, repeat key timer, use DI for exit key (escape) instead of windows message
100%
4 Logging Error Logger Get DirectX error if appropriate, notify user if error is fatal, log to file, post a quit messsage if error is fatal
100%
5 Input Mouse Input Use windows messaging to control mouse movement and button pressing, channel input to correct screen handler through interface manager class
100%
6 Base Graphics Direct 3D Initialization Initialize Direct 3D, hardware enumeration
100%
7 Base Graphics Texture Class Name, Width, height, UV coords
100%
8 Base Graphics Texture Management Class Control of texture loading and unloading, reference count textures, return pointer to texture address
100%
9 User Settings Screen D3DSettingsSelectionScreen Class Request background texture, display background texture, handle keyboard input (escape key to exit), stub for mouse input
100%
10 User Interface FontManager Class Handle instances of fonts, handle text dispaly requests by chanelling to font class
100%
11 User Interface Font Class Create font, destroy font, display text
100%
12 User Interface StaticText Class Text, location, font name, display function (channeled to font manager)
100%
13 User Settings Screen Add StaticText to D3DSettingsSelectionScreen As appropriate
100%
14 User Interface Radiobutton Class Request three graphic textures (selected, unselected, disabled), arbitrary number of selections, default value, selection on graphic or text, font style
100%
15 User Settings Screen Add radiobutton selection to D3DSettingsSelectionScreen (windowed or fullscreen) if supported by current adapter settings Request two graphic textures, arbitrary number of selections, default value, detection of click, selection on graphic or text, font style
100%
16 User Interface Button Class Request up to four graphic textures (unpressed, pressed, disabled, hovering), text and font, detection of click
100%
17 User Settings Screen Add two buttons to D3DSettingsSelectionScreen (Okay and Quit) exit on quit, use selected D3D settings and change interface to project screen on okay
100%
18 Project Screen Project Screen program shutdown exit on escape key
100%
19 User Interface Scroll bar class request graphic textures, horizontal or vertical, location of widget, default settings, click detect, widget movement
100%
20 User Interface Selection Box class request graphic, fonts, members, list of member, highlight of selected member, scroll bar class
100%
21 User Interface Edit Box class request graphic, font, text, click detect, cursor and cursor movement, control keys
100%
22 User Interface Drop Down Selection Box class request graphics, default value, selection box on arrow click, selected member
100%
23 User Settings Screen Add selection boxes to D3DSettingsSelectionScreen adapter, texture mode, screen settings, adjust possible options on changes
100%
24 File Handling On Okay button press, write settings file send to file if and only if settings have changed from read file
100%
25 File Handling Before entering D3DSettingsSelectionScreen, read settings file parse file, validate settings, default to basic settings if no file exists
100%
26 Misc Miscellaneous tweaks and minor bug fixing Whatever comes up
100%