Jump to content

3.10 or wait for 4.0


Recommended Posts

Hi all,


I read trough jeffs blog and saw what is all coming for 4.0 . With the ECS, it seems the gameplay-code side of T3D will change quite a bit, so I was wondering if it's worth to start a project now in 3.10, or better wait for 4.0? I assume a lot that I would learn now won't apply anymore in 4.0. Is this correct?

- Is there somewhere a working version which has the ECS already in?

- Is there a way to compile a mostly stable version of T3D without the need of the old directx sdk?

Then I have a few more questions regatrding 3.10:

- Is there up to date documentation somewhere on how to integrate nvidia physix? Nvidia does not provide the binary anymore, only source, so one has to compile by himself. However which source version do I have to download? After compiling T3D with physix, is there anything additional that has to be done, or is collision and stuff then automatically handled by physix? Would you rather use physix or bullet?


Thanks!


Andi

Link to post
Share on other sites

It's an interesting time to start something new with T3D because as you said, 4.0 is going to change how we use the engine in some really significant ways but it's still months away so we're stuck in this strange limbo between versions.


My recommendation, assuming you're wanting to start a project now, would be to use 3.10 but pull in some of the changes that have already made it to the development branch. For my current game I've built my own 'Franken engine' based off of 3.10 but I'm using the new templates and pulled in all of the bug fixes in the development branch (as well as did some major streamlining - got rid of unused libs, pulled out basic lighting, removed all DX support/SDK requirements, etc.). I've now got a clean base to start from and I can more easily keep up with the development branch if needed.

Link to post
Share on other sites
It's an interesting time to start something new with T3D because as you said, 4.0 is going to change how we use the engine in some really significant ways but it's still months away so we're stuck in this strange limbo between versions.


My recommendation, assuming you're wanting to start a project now, would be to use 3.10 but pull in some of the changes that have already made it to the development branch. For my current game I've built my own 'Franken engine' based off of 3.10 but I'm using the new templates and pulled in all of the bug fixes in the development branch (as well as did some major streamlining - got rid of unused libs, pulled out basic lighting, removed all DX support/SDK requirements, etc.). I've now got a clean base to start from and I can more easily keep up with the development branch if needed.

 

Would you mind sharing this out of curiosity?

Link to post
Share on other sites

I wonder why everyone wants to rip out basic lighting, of course it is not nice, but it gives insane amount of performance, so the game can run on very old hardware such as laptops etc and maybe mobile platforms if they should ever be supported.

Pulling out directX can make sense from an open source enthusiast standpoint.


I also prefer the old templates towards the new system, which is just confusing for now and untested.


So I would not recommend using the new stuff at all, since it has never been field tested and no games have been made with it yet, which means, you will run into a lot of bugs you will need to fix.

Link to post
Share on other sites
Would you mind sharing this out of curiosity?

 

Sure. I'll try to get something uploaded later today. I also have a 'slim-310' branch on my github (https://github.com/chaigler/Torque3D/tree/slim-310) that's basically what I posted about earlier, except it only supports basic lighting.


Edit: Uploaded to https://github.com/chaigler/Torque3D/tree/slim-310-al. This is 3.10 with many of the bug fixes from 4.0 ported over. SDL + OpenGL + OpenAL + Advanced Lighting only. I've left the commit history mostly intact so hopefully it'll give you some ideas on how to make your own 'Franken engine'.

 

I wonder why everyone wants to rip out basic lighting, of course it is not nice, but it gives insane amount of performance, so the game can run on very old hardware such as laptops etc and maybe mobile platforms if they should ever be supported.

Pulling out directX can make sense from an open source enthusiast standpoint.


I also prefer the old templates towards the new system, which is just confusing for now and untested.


So I would not recommend using the new stuff at all, since it has never been field tested and no games have been made with it yet, which means, you will run into a lot of bugs you will need to fix.

 

I tend to tailor the engine to whatever project I'm working on. My current game is a noire murder mystery so it relies on lighting and shadows especially, which is something that basic lighting struggles with. It didn't make sense for me to leave it in when the game experience would be so drastically different between the lighting models. I'd leave basic lighting in (and probably rip out advanced lighting!) if I was making something that didn't make heavy use of light & shadow.


As for the new templates, I really like them. They're cleaner and smaller than the old templates, and I like that they're using T2D's module system which I'm also familiar with. I haven't run into any issues using them so far but I build off of BlankGame or spectatorGameplay so I'm not sure what'll find if you try to use the converted FPS template.

Edited by Happenstance
Link to post
Share on other sites

I would just use 3.10 for now. Much of the skills you will learn will be applicable. Get used to compiling the engine. Get a build going with bullet physix for instance. Then when 4.0 comes out you could concurrently help squash bugs and this would get you up to speed. I'm sure that 4.0 will have some birthing issues before 4.1 can be realized. I've noticed over the years, people often did this waiting game or constantly porting to the next version. I think 3.10 to 4.0 closest similar past update was TGEA to T3D 1.0. It was different but it wasn't learning a whole new engine exactly. I could be wrong. Either way 3.10 is good to work with.

Link to post
Share on other sites

If you are wanting to start a serious project i would wait, your entire texture pipeline will be pretty much useless (well it will require a fair bit of work converting it anyway) when moving from the current system to using a PBS one. I have a physx 3.4 branch herehttps://github.com/rextimmy/Torque3D/tree/physx3_4 and i highly recommend using it over bullet. With the all the physics plugins, i would consider it more of a base starting point, if you want to make the most of it you will have to get ya hands dirty in the engine code and most likely modify it to suit your project needs. Also I must admit i have been slack keeping it up to date with the latest development version of T3D, i haven't been actively working with T3D that much the last few months.

Link to post
Share on other sites

Lots to discuss here, I see!


I suppose that while the workblog is a good overview of the ongoing work, it's hard to understand the scope of it in regards to the current development branch. So, allow me to take some time and answer inquiries as well as lay out the game plan a little more clearly:


To answer the starter questions, @andi_s


1) Correct, a good bit of how the engine handles in 3.10 will change for 4.0. Examples of this are the new template, E/C stuff and PBR rendering.


To build on this, technically speaking, the new template and e/c stuff is actually in the development branch already, it's just undergoing active work, so it's still a bit unstable compared to the full template. When 4.0 launches, the full template will be removed and the new template + modules will be utilized.

It's not as big of a deal as you think, as the exact same functionality will be doable, it's just that there's no point in doubling up the templates at that point. Just makes maintenence and work more complex.


Regarding the E/C stuff, we're looking at not fully removing the existing 'game classes' for 4.0, but considering them deprecated. So anything Shapebase derived such as Item, Player, Vehicle, etc will be considered deprecated to be removed in the following versions.

In their place, however, will be a good list of stock components that replicate the functionality, and a default set of GameObjects to utilize in their place.

So you're not really losing any default examples or functionality, it'll just be re-implemented through the E/C stuff.


Because the old game classes won't be removed immediately, you would be able to port up any work you have from prior versions and have them function, though obviously you'll be limited going forward in capitalizing on the new stuff. That said, because of the one-for-one reimplements of those game classes as GameObjects, unless you've massively reworked their behavior, it should be a simpler job to port up to the new ones.


As Timmy mentioned, with PBR, the texture maps materials expect will be changed. The art can obviously be updated and we'll have examples of how to convert stuff up, but some work will be involved in jumping your art up from non-PBR to PBR style.


Otherwise, most of the general knowledge you'd learn by using a 3.10 build - scripting, tools, building the engine and making changes - will carry over just fine. Stuff pertaining to gameplay or art content should be able to be ported without too much of a hassle.

I'm actually plotting out a utility to import "Legacy Projects" that utilize the full template to the new BaseGame template + modules to try and streamline such a process as well for people that already have a project going.


2) As mentioned, the e/c stuff is actually in and functioning now. Easiest way to use it is the BaseGame template + one of the gameplay modules(spectator is the barebones one). You can spawn an entity via the regular existing objects in the Levels folder, and use the inspector to add components.

I do plan to PR the asset browser and a good number of improvements to the E/C stuff that's been cooking in R&D this week, so if you wanted to wait until the weekend, you could start messing around with that interface, which is probably going to be easier to work with in general.


3) If you grab development right now, it should work just fine with the modern windows SDK, since we killed off DX9.


4) The wiki docs aren't SUPER out of date, but no doubt need updating. We can look at getting those updated soon



To specify a few side points:

Basic lighting - for 4.0 we're not "removing" basic lighting, so much as shifting/repurposing it to what it really is: It's not a 'low detail render mode', but just a general "Forward Render" mode. It'll be a project setting for if you utilize Deferred or Forward. Forward is good for low-end hardware and VR, Deferred is good for more advanced render effects and post effects.


@Duion

So I would not recommend using the new stuff at all, since it has never been field tested and no games have been made with it yet, which means, you will run into a lot of bugs you will need to fix.

 

I mean, people using it is how issues get corrected, so...


@Jason Campbell

I've noticed over the years, people often did this waiting game or constantly porting to the next version

Yeah, this has always been an issue for people doing real production work. We're looking to make it WAY easier for people to keep up with stuff with 4.0, so once you get on the 4.0 builds, updates after that should be far, far simplier to deal with.


@Timmy

haven't been actively working with T3D that much the last few months.

Pft, you and your fancy vacations down in Straya-land! :P


So yeah, here's the short-form of the roadmap for the next month. The bigger, impactful stuff anyways:


Initial implement of Asset Browser,

Various improvements to the entity/component stuff, including the introduction of Systems(these two should be in this week),

Hopefully wrap on initial implement of PBR

Threadpool update to usher in the new age of Torque threading(plan is by the end of the weekend)

Update multiple parts of the engine to capitalize on the pending Threadpool update


I'm looking to do a series of videos for the BaseGame template, modules, assets and the browser, E/C stuff, and then when PBR is in, likewise get some videos tutorializing how it's used/works as well as some options for converting existing assets. I've got a library of a few thousand images I want to PBR-ify, so I'll definitely be pursuiing options before anyone else to try and figure out a good suggested baseline path for that.


Basically, gunna try and get a series of tutorials/walkthroughs for a lot of this new front-end stuff over the next couple weeks, which hopefully should make it easier for everyone to get up to speed.


As for what you should do for now? Well, I'd say mull over what I've put above. I don't think it'd be a bad idea to start getting a feel on T3D now with 3.10, but I can understand not wanting to risk 'losing' work. If you're unsure about jumping in just yet, give it a month when we should hopefully have the above locked in, and it should be much more in line with 4.0 than 3.10, at which point if you wanna be an early adopter, it'd be a good time to jump on board.

Link to post
Share on other sites

"I mean, people using it is how issues get corrected, so..."

Yes, that is correct, but if you want to produce something fast or you have a project that is already released and being used, I would recommend using stable and proven to work versions, otherwise yes you can just use the latest.

Link to post
Share on other sites

Thanks all for the input! I just managed to compile the latest dev, without the DX sdk. Had a look at the basegame template, however in the world editor, there were none of the new components available (FpsGamePlayModule). I will play around more in the next days with dev and also with a 3.10 binary.

Link to post
Share on other sites
Is there a daily binary available somewhere ? I would like to try 4.0

There are binaries for the releases, thats all and if you really want to try in development stuff, you should be able to compile it yourself and have some knowledge what you are doing.

Link to post
Share on other sites

waiting is almost always the wrong choice since there is always another update around the corner that you like the look of.


As far as PBR, from what I understand upgrading from current isn't a terrible path, and porting some work youve already done to a newer version is never really as difficult as most people think it is since rarely are the API changes so drastic as to make it so (unless you work on apple stuff and they depricate an entire language).


get stuck in and get prototyping, you will still learn how the engine ticks :)

Link to post
Share on other sites

Hi all.


Im in a somewhat similar boat, except i already messed with t3d a little, however i only got uebergame to work and use it as my base for now.

Building from source neither mainline t3d nor uebergame worked for me, the bug already had been reported however.


The problem is i have been trying to work with vehicles and there seem to be quite a few engine descrapencies that i would need fixed, but without being able to compile the engine properly i have no real means to test or even make proper bug reports.

Im sticking with uebergame since i got to understand it somewhat decently and it works well for me, i hope it gets to t3d 4.0 too eventually when its stable enough.

I also noticed many other minor detail things not working and or documents/examples not being up to date, though i havent investigated further.


For the time being i told myself im gonna sit things out and work on other stuff and when 4.0 is out i will see again about getting things to work.

Im not in a rush, so i can afford it.


So yeah would be good to know if i should expect a revolution with 4.0 or try hard to compile and mess with source.


Also uebergame is great, good work duion.

Link to post
Share on other sites

@Code_Man

Well I will eventually port Uebergame over to 4.0, maybe not now, but maybe for the overnext version. I aim for roughly 4 releases per year.


Regarding the compilation problems, it may help posting the issues/errors you encountered. For Uebergame-engine I also cannot compile it in debug mode, since there is an issue I was too lazy to debug, thats why you have to make a release build, don't know if that exists in the main branch as well, but I think it is from an engine change I made to support a feature in Uebergame.


Otherwise it depends what you want to do, since you only need to self compile if you are going to make engine changes and/or release your game and both cases are rare, so most people will go fine with a precompiled version first.

Link to post
Share on other sites
Im in a somewhat similar boat, except i already messed with t3d a little, however i only got uebergame to work and use it as my base for now.

Building from source neither mainline t3d nor uebergame worked for me, the bug already had been reported however.

 

more details are required...


Most compiler time bugs are fixed pretty quickly, afaik the only bug that ubergame shares with the main repo on the master branch is the VS2017 issue, which is fixed here -> Github PR #2039

Link to post
Share on other sites
  • 2 weeks later...

I tried compiling a recent pull of the development branch and compile it, however i got an error.

 

/home/virtual/torque3d/Engine/source/T3D/components/audio/SoundComponent.h:70:7: Fehler: zusätzliche Qualifizierung »SoundComponent::Sound::« an Element »Sound« [-fpermissive]

Sound::Sound()

^~~~~

Kompilierung wegen »-Wfatal-errors« beendet.

Roughly translates to: error additional qualification on element sound.

Altough i have no idea what that means, i havent worked much with C++.

Havent yet checked if it has been reported, im on fedora 27, x64 btw.


I assume the most recent uebergame (congrats btw, really like the new maps) works on a similar version.

I checked the github fork differences, or whatever you call it and seems ueberengine is a unmodified fork of main repo or did i get that wrong?


Also i tested vehicle stuff with recent uebergame, but it fell trough the ground again, not a good way to test things.

Im not up to speed with what the situation is regarding physics, from what i heard you will be adding modular physics libraries such as bullet.

Not sure what to do in this, or even how i would debug such a thing.

Its not that im in a rush but if i could work on testing vehicles and such that would be great.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...