Jump to content


  • Posts

  • Joined

  • Last visited

Everything posted by Azaezel

  1. https://github.com/TorqueGameEngines/Torque3D/blob/b6a1acabf813e93979d2feb1f5982bd4f3126e76/Engine/source/lighting/advanced/advancedLightBinManager.cpp#L949 vs https://github.com/TorqueGameEngines/Torque3D/blob/b6a1acabf813e93979d2feb1f5982bd4f3126e76/Engine/source/lighting/advanced/advancedLightBinManager.cpp#L951
  2. Should be a writeup.... some time this week or so (looot of notes) but yeah, focus of late has been finalizing the asset workflow by way of a 3.x to 4.0 wizard, among other things.
  3. Only thing I can really suggest at the moment is looking into https://github.com/TorqueGameEngines/Torque3D/blob/b6a1acabf813e93979d2feb1f5982bd4f3126e76/Engine/source/T3D/camera.cpp#L1862 .
  4. Having a bit of a difficult time parsing what you're trying to go for... alter the camera mode? With or without also altering the steering so it doesn't conflict?
  5. As far as it goes, given the engines have always had source access as a feature, and the new module system was built with optional source inclusion as a feature, would say prebuilt as a given, but source mods allowed.
  6. So if we *are* talking a 2-7 day jam, probably a good idea to have a prefab set of asset collections folks can draw from. Knocks the 'did/didn't they do the art in 2 days' question right on the head. May also want to knock out a couple more modules for starting places/ utilities to get the juices flowing.
  7. Should be generating a proper one as of a couple days ago, though might be more bits we overlooked
  8. So to answer the question in a way that lets ya keep going if you want: tscript is there so it doesn't conflict with the .cs c# extension since that is in the process of being added, and we now allow modules to include source files that get compiled in with a second cmake run after running the install sub-project once to shove those in place in the <project>/data/ directory. (not to mention we kept running into new users that were confused why their .cs files weren't compiling) in keeping with that, one of the things done was to alter exec (and the new queueExec for multi-module interop processing) so that it no longer needs to take explicit extensions, but will bolt on the desired extension. (it'll still take one, but the example set https://github.com/Torque3DResources/FPSGameplay for instance already dropped it so things play nice script-side regardless of extension picked. Though you would have to batch rename the files if you really, really wanted your own personalized extension) Of note: https://github.com/TorqueGameEngines/Torque3D/pull/477
  9. We're mostly focused on some bits to batch convert old script files to the new entries and one-to-one source line replacements to make it simpler for folks to upconvert at present. Shouldn't be too much longer on a new binary build, but don't want to make promises as far as when beyond that. Mean time, the fork were beating up prior to throwing it into preview head is https://github.com/Areloch/Torque3D/tree/AssetMacros_w_ProjectImport if folks want to see where that's going in general.
  10. If you mean dae/fbx ect, once .cached.dts files have been generated, the original files can be removed. If you mean scripting, if you follow http://wiki.torque3d.org/coder:compiling-in-windows , then flipping the TOQUE_SCRIPTING switch on will allow you to generate.dso files that can also be executed instead of your old .cs/tscript/ ect files and remove those as well.
  11. The file https://github.com/Azaezel/modelExperiments/blob/master/Detail_Convert.sbs How it's made Usage Ingame/output usage example
  12. https://github.com/TorqueGameEngines/Torque3D was a relatively recent swap over, so can see why that wouldn't turn on up. twitter torque3d in google brings up this end 'Get involved' - left a love note to get that link fixed 'Goes to features list and' - it's a fair critique. We do tend to err on the side of 'ok, have we *really* run out of ways to beat this up for general use' before we consider stickin it on a feature list since making the promise something will be in if it aint already is a good recipe for worse will than just not listing it. 'No updates -> PAGE' - what kind of thing would *you* be eyeballing?
  13. This with directx, or opengl? As was stated multiple times in jeffs workblog, you need a minimum of a skylight to have ibl, and at time of writing, saving the files is dx only. (working on fixing that)
  14. https://github.com/Areloch/Torque3D/ working branch at time of writing. (may end up moving that to a fork on https://github.com/Torque3D/Torque3D, and from a quick look, already did so as of a couple days back). That'd be where most of those 'resolved' tags came from. according to the discord pinned list (again, https://discord.gg/zSeWPfu is where we do the live chat and file toss around), http://ghc-games.com/SC/Preview4_0_bld5_win.zip http://ghc-games.com/SC/Preview4_0_bld5_lin.zip http://ghc-games.com/SC/Preview4_0_bld5_mac.zip for prebuilt binaries. The general consensus seems to be not to use the garage games repo so folks stop getting the impression they should bug garage games themselves for fixes since they aren't doing the maintenance or upgrades.
  15. https://github.com/GarageGames/Torque3D/commit/11ac92acccb4ca4ab7d26aed90487c3f21c5a02e#diff-ee63be9e1180cd38f5b10d798839b5f1 not frame numbers per-se, but there's also that as a notion. to riff off of. effectively lets you trip stuff in sequence with callbacks in between. case in point from the wip game function KrystalGateData::onBounce1(%this,%obj) { %pos = getWords(%obj.getSlotTransform(1),0,2); ServerPlayExplosion(%pos, MetalEXPBig); %obj.playthread(0,"bounce2"); } function KrystalGateData::onBounce2(%this,%obj) { %pos = getWords(%obj.getSlotTransform(2),0,2); ServerPlayExplosion(%pos, BrickEXPBig); %obj.playthread(0,"bounce3"); }
  16. for what it's worth, firstperson = false flips things on so that the third person model is used for rendering purposes instead of the first person model file, so if you want something not showing in first, but showing in third, hiding it would be part of the first person animation.
  17. OOP, yes, polymorphic... iiiish an object (or datablock for this talk) will itterate via first looking for the object name, then looking at that objects class, and superClass entries, then start going down the hierarchy chain c++ side. you can link a pair of objects to the same class/superclass via either direct assignment for both, or by leveraging the copy-and-override-constructor new classtype(foo) { entryA=1; entryB=2; } new classtype(bar:foo) { entryB=3; }which ends up with the net result of bar.entryA ==1 and bar.entryB == 3;
  18. No, I'm saying return statements don't even make sense when you're firing off a command from one machine to another (or mimicking doing so to save yourself migraines down the line trying to hunt down why guy A sees one thing and guy B another). Its a one way communication each way. Hence that middle method from example 2. In a competitive environment you'll want to lean on the server more as referee. If you don't particularly care about that kinda thing, by all means, do what makes the most sense to you. Personally, I'd probably just alter the source end to cut down on the script kiddies hacking a short circuit into it, but you'd mostly asked about how to parse script, so that's been the focus.
  19. nah, commandoserver('somemethod') + serverCMDsomemethod it's what's known as an RPC or remote protocol command. just a way of saying to your aps conneciton class to transmit 'hey, run this method on the server', tagging methods to start with serverCMD gives it a shorter list of commands to hunt through to find and execute when it that side of the connection goes to figure out what you're requesting it does. there's similar for commandtoclient('SomeMethod2')+clientcmdSomeMethod2 for servers to tell clients to run commands that aren't built direct into the source. "uses result of void function call" is pretty much what it says on the tin. the commandToserver method in and of itself is not returning anything, just going 'hey, other end of this network, do this'. so to further expand our in/out given the above: function getMyPose() { commandToserver('GetPlayerPose'); } function serverCmdGetPlayerPose(%client) { %pose = %client.player.getPose(); commandToclient(%client,'GotPlayerPose',%pose); } function clientcmdGotPlayerPose(%pose) { echo("my pose is " @ %pose); } which will let you hit ~, plug that getMyPose() into the console, and get back your pose even if you're on somebody else's server (provided they have that serverCmdGetPlayerPose defined their end)
  20. Another case of 'we'd like to look into' getting whisper-translated to 'we are', I'm afraid. One of the reasons I at least stick to live chats about possibilities and leave forums for the realm of 'so here's where we're at on this/what we've prototyped enough to say, yeah, we'll probably do'
  21. Alright, there's a couple ways to answer that, so we'll go through both of em for a nice 101 sample: So if ya look at https://github.com/GarageGames/Torque3D/blob/0dfad8f0727a1df3e6d654ef3253f65c7f3193a1/Engine/source/T3D/player.cpp#L6564, you'll notice it's referencing a player class instance. so what you'll want to do for that kind of thing is look up the objectID you'll usually find that kind of thing referenced either in a function player::someFunc(%this) or a function playerData::someDBfunc(%this,%obj) (where the second entry of %obj references the instance and the %this references the shared-data functionality) next step, note that https://github.com/GarageGames/Torque3D/blob/development/Templates/Modules/FPSGameplay/scripts/server/deathMatchGame.cs#L573 bolts a %client.player value onto a %client objectinstance created when you connect to a server (you're always connecting to a server) and effectively clones the objectid as a pointer to the object you're controlling, be that a player or a vehicle derivative. (should note it's entirely coincidental/convention that the %obj.player value shares the name of the class, just as it's entirely convention that the first var in a given callback method is usually tagged as %this) third, given the above about 'you're always connecting to a server, even if you're hosting it just for yourself' note the format for https://github.com/GarageGames/Torque3D/blob/development/Templates/Modules/FPSGameplay/scripts/client/inputCommands.cs#L520 + https://github.com/GarageGames/Torque3D/blob/development/Templates/Modules/FPSGameplay/scripts/server/vehicleWheeled.cs#L94 so the net result of that all gives us the following snippet to plop in and verify for yourself: function getMyPose() { commandToserver('GetPlayerPose'); } function serverCmdGetPlayerPose(%client) { echo(%client.player.getPose()); } part 2: all that being said, keybind methods sent along %val as true for key poushed down and false for it up, so flipping crouch from a constant press and release to a toggle's as simple as function doCrouch(%val) { if (%val) $mvTriggerCount3++; }
  22. Azaezel

    Roadmap 2020

    endgoals to replace outpost with das boot.
  23. Azaezel

    font border

    so the way the font system works, is first the system looks under https://github.com/GarageGames/Torque3D/tree/9ebebc1f5ec93d52b2b1cba6e0625a3d5e0ff327/Templates/BaseGame/game/core/gui/scripts/fonts (https://github.com/GarageGames/Torque3D/tree/development/Templates/Full/game/core/fonts in the case of older builds) for an appropriately sized font file entry and tries to find the character within it. if it can't, it'll look up the system font of the same name. if it *still* can't, it'll fall back to a standard font. this end, what we ended up doing is installing the font on my machine as a forinstance, and executing: function populateAllFonts(%font) { populateFontCacheRange(%font,14,0,65535); populateFontCacheRange(%font,18,0,65535); populateFontCacheRange(%font,24,0,65535); populateFontCacheRange(%font,32,0,65535); populateFontCacheRange(%font,36,0,65535); } which leverages https://github.com/GarageGames/Torque3D/blob/561f010f2e6411d8253d23f0cfcff794e81f60bf/Engine/source/gfx/gFont.cpp#L1052 which in turn lets everyone else use it without having to ship a system font installer along with the game one.
  • Create New...