JeffR Posted December 17, 2015 Share Posted December 17, 2015 Old Branch: https://github.com/Areloch/Torque3D/tree/NewTemplateTestFinal Testing Branch: https://github.com/Areloch/Torque3D/tree/NewBaseGameTemplateFinalPR itself: https://github.com/GarageGames/Torque3D/pull/1953BlockingNote: As this will be the new template base, no other PRs that are script-changing will be merged until this is wrapped and merged in so we're not trying to juggle two paths with this. As such, the faster we can test and finalize this, the faster we can get back to script changes being rolled in.The new template is solid enough for people to start poking at it and looking for anything that I may have missed. Go ahead, give it a pull, make a new project with it and give it a whirl.Should have full multiplayer capability, and the new options menu should be working fine.Known issues that will be corrected shortly:Screen Brightness menu doesn't change brightness when you adjust the slider, but the brightness does actually change.Todo: Link to comment Share on other sites More sharing options...
saindd Posted December 17, 2015 Share Posted December 17, 2015 What's new on this new template? Link to comment Share on other sites More sharing options...
JeffR Posted December 17, 2015 Author Share Posted December 17, 2015 Biggest thing is it's a restructuring and cleanup.a LOT of excess and duplicated code is stripped out, and the whole thing is a lot more streamlined now.It's also set up to utilize modules/assets, and also the tools are initialized on-call rather than when the game is started, leading to a much faster launch time(I get about 3 seconds from splash to main menu).From here, I'll be doing a FPS game package to replicate the functionality of the full template that can be simply dropped onto this template and go, meaning that we'd further reduce duplication because the only stuff in the FPS package is stuff pertaining to the package specifically. Link to comment Share on other sites More sharing options...
saindd Posted December 17, 2015 Share Posted December 17, 2015 I never had heard about modules before. Guess i'm going to start to backport a few of those features to the Full template! :mrgreen: Link to comment Share on other sites More sharing options...
Johxz Posted December 18, 2015 Share Posted December 18, 2015 nice! thanks!If I encounter with a issue, it is reported here? btw I'm creating a new fps tutorial template to replace the old one, so I will wait this template is finished ;)EDIT: I found a error. See the attached.error.zip Link to comment Share on other sites More sharing options...
rlranft Posted December 18, 2015 Share Posted December 18, 2015 nice! thanks!If I encounter with a issue, it is reported here? btw I'm creating a new fps tutorial template to replace the old one, so I will wait this template is finished ;)EDIT: I found a error. See the attached.Probably here : https://github.com/Areloch/Torque3D/issues Link to comment Share on other sites More sharing options...
JeffR Posted December 18, 2015 Author Share Posted December 18, 2015 Actually, I'd say just keep any issues noted in here for now. Keeps it all consolidated specific to getting the template ironed out and prepped for a PR roll in.@Johxz Thanks for the report!Looking at it, the editor uses the old getMouseAdjust method(I separated that into two separate ones to have separate horizontal and vertical sensitivity), meaning that the mouse move scaling wouldn't work there and the numbers would go crazy. I'll get that corrected today :) Link to comment Share on other sites More sharing options...
Johxz Posted December 19, 2015 Share Posted December 19, 2015 1) when I choose "Lighting" the engine crash with this errorstools/worldEditor/scripts/editor.bind.ed.cs (34): Unable to find function getMouseAdjustAmountMapping string: EditorOrbitCameraSelectChange to index: 3Linux Compatibility Warning: warnMat.dds != warnmat.ddsDirectInput deactivated.Activating DirectInput...client is backlogged, time is frozenclient is no longer backlogged, time is unfrozen (26 ms elapsed)GameBase::setDatablockProperty - Could not find data block "DefaultStorm"d:\newtemplate\torque3d\engine\source\core\stream\bitstream.cpp(339,0): {Fatal} - BitStream::writeInt: value out of range: -165909/1024 (10 bits)2) If I choose "Join Server" I can't go back to the main menu.3) The forest editor don't work. Link to comment Share on other sites More sharing options...
JeffR Posted December 24, 2015 Author Share Posted December 24, 2015 1) Do you mean Lightning? I'm guessing so, since the log tidbit mentioned the DefaultStorm datablock. I got a similar crash though. It doesn't have to do with the template, this looks like there's a bug in the Lightning strike net event that snuck in causing a problem. I can look into that tomorrow.2) Thanks for the spot on that! Fixed.3) That's an issue where the file it's looking for exists. but it doesn't contain the right data. I removed the blank file and also fixed the notation of where the file should be, as currently I moved the forest brushes file to be with the forest tool itself.That raises an interesting question though: datablocks and the like that exist JUST for the editors, namely, the forest brush info: should those be in with the tools themselves? That seems the most logical way to go about it to me.Also think I quashed the issues with the controls menu and the menu sounds are working as expected now. Link to comment Share on other sites More sharing options...
Timmy Posted December 24, 2015 Share Posted December 24, 2015 That raises an interesting question though: datablocks and the like that exist JUST for the editors, namely, the forest brush info: should those be in with the tools themselves? That seems the most logical way to go about it to me.. Good point, also other areas like this but reversed. For example this stuff is bundled in with the world editor https://github.com/GarageGames/Torque3D/blob/development/Templates/Full/game/tools/worldEditor/gui/objectBuilderGui.ed.gui#L991-L993, if you happen to not ship the world editor obviously problems happen. Link to comment Share on other sites More sharing options...
Johxz Posted December 24, 2015 Share Posted December 24, 2015 (edited) HiI will keep it organized in one post. Past post----------------------------------------------------------------------------------------FIXED 1) when I choose "Lighting" the engine crash with this errorsFIXED 2) If I choose "Join Server" I can't go back to the main menu. :?: 3) The forest editor don't work. Because is base template will not have brushes?? this is a issue? :?: ----------------------------------------------------------------------------------------------FIXED Options/Screen Brightness/ the defaults button doesn't work, should move to the middle I suppose.FIXED The same for audio the Defaults button don't move to the defaults valuesFIXED In the menu if I press F11 show me two levels "blank" and "Empty". With blank level t3d don't start and freeze in the loading screen. FIXED Empty Level load ok, just a few warning/Failed. Failed to create resource: [data/levels/Empty_Room.mis.decals]FIXED Empty Level load ok, just a few warning/Failed.Executing data/scripts/datablocks/guiSounds.cs.Failed to create resource: [data/sound/cheetah_engine.ogg]SFXProfile(TestSound)::onAdd: The preload failed!FIXED In the main menu F10 don't work. I need to press F10 two times to work. (See the attach)FIXED Don't load the leveld:\newtemplate\torque3d\engine\source\gfx\d3d9\gfxd3d9shader.cpp(91,0): {Fatal-ISV} - Failed to open include '/common/lighting.hlsl'.http://i.imgur.com/rz22Vlyl.jpg :!: 1) Options/Audio The Gui/Effect/Music Volume don't save the new value. Only the Master Audio save the new value. :!: 2) Camera setting the same issue with the defaults button. Don't save the new value.But if I restart t3d all values goes to the defaults values. Don't save any change. :!: 3) Black Screen. Do the following in the exact order. (See the attach)Click SingleplayerStart LevelF11Lighting->Basic LightingLighting->Advance LightingFile->Exit LevelSingleplayerStart LevelF11 BLACK-SCREEN :!: 4) Black Screen. Do the following in the exact order. F11File->Exit LevelOptions->Graphics SettingsGraphics Driver(Here just play with the arrows)->Cancel->CancelF11 (Black Screen) VS 2010 Debug Log: http://pastebin.com/22s9GdVaT3D Console Log: http://pastebin.com/aHkJ4AqhAnd the Scene tree show this:http://i.imgur.com/jV6cIbv.png :!: 5) Black Screen. Do the following in the exact order. F11File->Exit LevelOptions->Graphics SettingsClick the right arrow and go to LightingShadow Quality (Play with the arrows) my last value: HighShadow Caching (Play with the arrows) my last value: OnSoft Shadows (Play with the arrows) my last value: LowCancel->CancelF11 (Black Screen)Go to materials (Crash) VS 2010 Debug Log: http://pastebin.com/c0hMjrJyT3D Console Log: http://pastebin.com/5XrHzdM1Engine/source/scene/sceneObject.cppL741http://i.imgur.com/DTf0VQXl.jpghttp://i.imgur.com/TfDyL1f.png :?: 6) I think in the menu the GuiButtonCtrl needs to be shorter. (This is a issue) :?: Look the highlight the button from far away... some time I click it by mistake.http://i.imgur.com/54ssqsB.pnghttp://i.imgur.com/8DNccer.png :idea: User: oXYnary http://forums.torque3d.org/viewtopic.php?f=40&t=484&start=10#p4231Suggested Redo templates lights vfx characters environments skies clouds cubemaps (material reflection) panoramas (level)regards,Johnconsole-F10.zipconsole-blackScreen.zip Edited January 10, 2016 by Johxz Link to comment Share on other sites More sharing options...
JeffR Posted December 25, 2015 Author Share Posted December 25, 2015 Thanks for all the testing on this, dude! :)I will note, that this template is the beginning of Basic Lighting being removed, pertaining to #7, so you can ignore the toggling of that option causing issues. You'll note the lighting options have a 'no shadows' setting now. This is still the full deferred, only we toggle off the shadows, which really are the big performance drain.It makes more sense to full-in on one lighting system and just make it as efficient as physically possible than have a vestigial light system that is barely used and just clunks up the entire codebase, so it'll be getting peeled out going forward. Link to comment Share on other sites More sharing options...
Johxz Posted December 25, 2015 Share Posted December 25, 2015 Hi Jeff, don't know if you saw this, or this was merged at some point, but I will write it down for reference. Template Refactorhttp://www.garagegames.com/community/blogs/view/22041Template Refactor #2http://www.garagegames.com/community/blogs/view/22050 Link to comment Share on other sites More sharing options...
oXYnary Posted December 28, 2015 Share Posted December 28, 2015 Az asked for feedback for the Art directory. I conferred with someone on PC, this is at least how we would see more organization. The biggest one is the shapes directory, as paraphrasing "wtf is that supposed to be for?"If gui is supposed to have its own main subsection anyways, I would move gui items out entirely even if images. Don't have any material or images in the main art directory, put under templates along with grids. Also didn't see a sound section in datablock (don't put under art).https://github.com/Areloch/Torque3D/tree/NewTemplateTest/Templates/BaseTemplate/game/data/artOriginal grids gui lights particles roads shapes skies water black.png fizz_noise.dds gray.png materials.cs splash.bmp white.png Suggested Redo templateslightsvfxcharactersenvironmentsskiescloudscubemaps (material reflection)panoramas (level) Link to comment Share on other sites More sharing options...
JeffR Posted December 29, 2015 Author Share Posted December 29, 2015 @JohxzFixed 4 5 and 6.Started fixing the defaults buttons not working.@oXYnaryThanks for the feedback, man!Yeah, the art folder is going to be the most onerous to get a good, general layout on for sure.I think it makes sense for art to be in the art folder in regards to GUI stuffs, just for consolidation, but yeah, the gui files themselves could be folded into the scripts/gui directory.What are you figuring would go into the vfx folder?And I take it 'Templates' would hold stuff like the grids images and the black/gray/white images and the like?Would it make more sense to have that be 'Misc' instead? Link to comment Share on other sites More sharing options...
Johxz Posted December 30, 2015 Share Posted December 30, 2015 Hi @JeffR thanks for the fixed, I will keep it organized in one post. How about if I keep all the issues in here: http://forums.torque3d.org/viewtopic.php?f=40&t=484&start=10#p4178Please look how I organized and tell me if will be used that way.I will use this :!: for issues pending and this :?: if it not an issue or may be will be remove from template, and this :idea: for new stuff Link to comment Share on other sites More sharing options...
oXYnary Posted December 31, 2015 Share Posted December 31, 2015 What are you figuring would go into the vfx folder?And I take it 'Templates' would hold stuff like the grids images and the black/gray/white images and the like?Would it make more sense to have that be 'Misc' instead?vfx = particles. I guess fx would work as well.templates, yes, as you mentioned, thats exactly what it holds. Misc works, but is it descriptive enough to a new user? Link to comment Share on other sites More sharing options...
JeffR Posted December 31, 2015 Author Share Posted December 31, 2015 I'm not super worried about that, as at worst, they could crack it open and see what's in it.The reason I figured for 'misc' instead, is it'd also work as a place to stick the white/gray/black, etc images and othe rmisc utility images. Link to comment Share on other sites More sharing options...
JeffR Posted January 4, 2016 Author Share Posted January 4, 2016 Alrighty.Forest issue should be fixed. Screenbrightness default fixed. Started fixing audio/camera, but those are a little more involved because they don't have a simple autodetect function to call. Almost got those sorted though.I'm seeing the values save when changed, so double-check that. If it still doesn't stick(make sure to press the OK button, not cancel or hit esc) then it may be a permissions thing with it not wanting to save the prefs file to the game's dir.Az did provide a lovely function written up by Steve that gets the prefs path from the OS' user directory rather than the game dir, which could be in a protected path. It's not used yet, but the function is in there now and I'll be shifting the template to use it in the next update.Also per Az's idea, the logo on the main menu will, when clicked, pop open the forums here.The warning/faileds should be corrected for the level load now as well, this includes the testSound/cheetah_engine errors.Fixed the 'need to press twice' for the editors buttons, and also for simplicity changed the world editor to open to the default blank level rather than trying to crack open the choose level menu in order to reduce hardcoding. If you're already IN a level, it'll just stay in that one.Adjusted the size of the main menu buttons to fix the weird overlap. Uses a dynamic control array now.The GUI editor also will load taml files now.Ok, so, speaking of directory layouts, one final thing I wanted to bring up here for us to suss out before we lock this in properly. Namely, how to handle drop-in packages, such as art, gameplay kits, etc.As-is, the current setup is better, as it should just be a matter of dropping the files in place and exec'ing them, rather than needing to worry about package overrides and the like, but it doesn't really handle overriden files that cleanly.For an example case, say you have the base template, and grab a FPS starter kit, which has it's own art, levels, and menus. The art and levels aren't really a big problem, but the menus would likely include a main menu in place of the default one, as well as the playGUI and all that.Replacing existing files isn't terrible, though a bit less than ideal. So the other approach that occured to me is utilize the modules approach more thouroughly. Figured I'd bring it up here, get peoples opinions on if it's worth it, or stick with the setup as it is now.Basically, adjust the layout of the data directory to package like content into a module, such as UI stuffs, gameplay code and art, specialied client/server/level loading code, etc. This would make it a lot easier to take a art package or starter kit, and just drop it in and maybe have to add a little bit of glue-code, but it'd prevent the need of overriding files, and in the unfortunate event of deciding you don't like the package, having to manually rollback/uninstall the files associated with it and replacing them with the old ones.To that end, the layout would look something like this with this approach:The root game directory wouldn't see a change.http://ghc-games.com/public/game_root_layout.pngThe data directory would see a change though, with the stuff inside being compartmentalized to what package is to whathttp://ghc-games.com/public/game_data_layout.pngInside one of the package folders, it'd have a module file which is automagically indexed by the module system and the script file the module file calls to for it's create/destroy methods. This would mean that the installation of a art or gameplay kit package would be as simple as dropping the package's folder into the data directory and it's installed, you'd just need to handle the interop gluecode yourself(such as your gameplay code calling the UIs).http://ghc-games.com/public/game_ui_layout.pngSo, thoughts/opinions on this sort of layout? It seems like it'd make using packages/kits a lot easier, but I'll admit the layout like this feels a bit more "loose". It'd also be really convenient for mods for games that care about that sort of thing, as a mod could just have a package directory and poof, it's a thing.So yeah, lemme know what you guys think about doing this layout, or if you've got an even better idea how to handle package/kits usage. Or just think the whole idea sucks dick and stick with what's there in the new template now. Once we figure on this, I'll lock in the directory layout and we'll just need to focus on bugfixing and handling the last little polish issues. Link to comment Share on other sites More sharing options...
JeffR Posted January 6, 2016 Author Share Posted January 6, 2016 No opinions on the layout ideas? Link to comment Share on other sites More sharing options...
Duion Posted January 6, 2016 Share Posted January 6, 2016 The layout is already pretty good and it depends much on taste and belief, some prefer call it "data" other prefer to call it "stuff" Link to comment Share on other sites More sharing options...
Mud-H Posted January 7, 2016 Share Posted January 7, 2016 No opinions on the layout ideas? It seem much better than the current which I stop using because it was complex to figure how to find where a function/GUI is hiding.I could live with the proposed setup but I'm also used to my personnal setup which keep more folder in root for quick access:EX(Mostly the same as the default template but game related script and UI have been removed from core):core Containing only the real core stuff like art, GFX scripts, core GUIs like MessageBoxes,FileDialogart Containing project releated artworkscripts Containing gameplay scripts and GUIs (Even the GameCore and most scripts found in core/scripts/server)clientgameguiserverlevelsContaining levels files like starndardshadersContaining shaders files like starndardtoolsContaining Tools files like standard(which can be remove with no hurt to the game) I'm used to this setup but putting art,scripts,levels and shaders in data folder could work also.I haven't examine the New Base Template seriously yet but something I hated from previous template is having some of the GUI scripts added at end of GUI files. I think it make it easier to simply at the GUI related scripts in a seperated .cs file beside the .gui file with the same name.-------------------------------Okay, that wasn't the reason why I started this post but since you were looking for layout feedback, I gave some...The reason of my post is as I stated in my TorqueLab progress topics, I'm considering making a lite version of TorqueLab which would be based on stock editor with fewest modification possible. I'm wondering if this new base template include some Stock Editor changes, if so I guess I should use it as a starting point, unless those changes are really limited. I think I would simply run a compare betweem FullTemplate tools and NewBaseTemplate tools and see what changed.EDIT: I tried to compare with WinMerge and the only modified file is main.cs, is it right? Link to comment Share on other sites More sharing options...
Mud-H Posted January 7, 2016 Share Posted January 7, 2016 I started playing with the new BaseTemplate, it look much better than before.The only things I'd change for now is the PostFX folder in data/scripts/client. Maybe there's a reason I don't know but shouldn't it be better if placed inside the core folder. How I'd like the core folder to work is that when something got changed in the template about shader/gfx/postFX, I'd like to simply be able to replace the core folder with the updated version.So, I guess I would also suggest to place the Shaders/ folder in the core folder. (But again, I don'T know if there's a reason for adding it in data folder)EDIT: As personal opinion, I would not place the datablocks file under scripts but keep them like we are used to under art. Also I started using a new system for datablocks because I hate it to have the datablock of the player for example under a different folder. My solution was to add a check for *.db.cs files when loading the datablocks, so you can place the datablock beside the art it related too. Some are still in their original place but I find it usefull for specific shape datablocks like Player, Vehicles, AI, etc. I'm not suggesting to use it for all datablock but maybe we could add a similar system in the loadDatablocks function so anyone could use it if they feel it's suitable.EX: Right before loadDatablockFiles( %datablockFiles, true ); you could add: %filePathScript = "data/art/*.db.cs"; for(%file = findFirstFile(%filePathScript); %file !$= ""; %file = findNextFile(%filePathScript)) %datablockFiles.add(%file); Also I hope I'm not out of topic... Cause I haven't read the goal of this topic which I will do now... EDIT2: Well I seem to be out of topic since I'm talking about adding scripts, right? Sorry for that, I can move it elsewhere since I think it's pretty usefull and could be add to any template/project simply. Link to comment Share on other sites More sharing options...
JeffR Posted January 8, 2016 Author Share Posted January 8, 2016 I started playing with the new BaseTemplate, it look much better than before.The only things I'd change for now is the PostFX folder in data/scripts/client. Maybe there's a reason I don't know but shouldn't it be better if placed inside the core folder. How I'd like the core folder to work is that when something got changed in the template about shader/gfx/postFX, I'd like to simply be able to replace the core folder with the updated version.So, I guess I would also suggest to place the Shaders/ folder in the core folder. (But again, I don'T know if there's a reason for adding it in data folder)EDIT: As personal opinion, I would not place the datablocks file under scripts but keep them like we are used to under art. Also I started using a new system for datablocks because I hate it to have the datablock of the player for example under a different folder. My solution was to add a check for *.db.cs files when loading the datablocks, so you can place the datablock beside the art it related too. Some are still in their original place but I find it usefull for specific shape datablocks like Player, Vehicles, AI, etc. I'm not suggesting to use it for all datablock but maybe we could add a similar system in the loadDatablocks function so anyone could use it if they feel it's suitable.EX: Right before loadDatablockFiles( %datablockFiles, true ); you could add: %filePathScript = "data/art/*.db.cs"; for(%file = findFirstFile(%filePathScript); %file !$= ""; %file = findNextFile(%filePathScript)) %datablockFiles.add(%file); Also I hope I'm not out of topic... Cause I haven't read the goal of this topic which I will do now... EDIT2: Well I seem to be out of topic since I'm talking about adding scripts, right? Sorry for that, I can move it elsewhere since I think it's pretty usefull and could be add to any template/project simply. Nah, suggestions for useful base utility scripts is always welcome :)Regarding datablocks: The reason I moved them from art to scripts is because datablocks, themselves, aren't actually art, and are created and utilized through scripts, so it made more sense to bundle them together that way. The formatting of datablocks themselves is as a script-executed object even. The idea of having datablocks have a separate file extension is interesting though. May not be a bad idea.As for the PostFX/Core thing:Core is basically intended as "This is what's required to get the engine to run". Everything else goes into data. PostFX specifically, are very prone to be project-specific, so implementing the individual postFX as a project consideration made sense, as it'd let people add or remove postFX without having to worry about impacting the loading of the engine stuffs itself.I'd contemplated moving the common shaders into core though, as those are less to change short of a project doing major customization work. Link to comment Share on other sites More sharing options...
Duion Posted January 9, 2016 Share Posted January 9, 2016 I can't start a level since I get "d:\newtemplate\torque3d\engine\source\gfx\d3d9\gfxd3d9shader.cpp(91,0): {Fatal-ISV} - Failed to open include '/common/lighting.hlsl'." errorTried both with a default binary and a binary compiled from your branch, but I was not able to start a level so far.Also the brightness slider does not work, maybe it works ingame, but not from the main menu and to have a default button that resets every setting you did in the whole options menu without asking you if you want to reset every setting is not a very good idea. Link to comment Share on other sites More sharing options...
Recommended Posts