Work Blog - JeffR

301 posts Page 25 of 31
Happenstance
Posts: 54
Joined: Sat Apr 11, 2015 9:08 pm
by Happenstance » Tue Jun 26, 2018 1:41 am
Andrew had the right idea with Torque6. T2D's codebase has Melv's historically clean, well-documented coding style and although it was outdated from day one and is outclassed by other 2D engines, was a real pleasure to work with so I'd support a move in that direction. I'd even go as far as to say a change of this magnitude is long overdue.
It was not the right idea, how is it the right idea to start from scratch and setting yourself back for years? This only works, if you have a team and Andrew said, he just made it as a portfolio work, so he can get hired, so sooner or later it will have gotten abandoned anyway.

Regarding developing the engine, we could at least need some people in the steering committee handling the pull requests and stuff, the job of the committee was never intended to do all the work, they were just supposed to do things like pull requests and guide the direction the engine will develop.
So who volunteers for that position? It is not very efficient to have JeffR doing engine development AND handling all the pull requests.

So who volunteers?

It's the right idea for all of the reasons Jeff listed and more. T3D is a messy, cobbled together patchwork of code (some of which is 15+ years old at this point) with varying styles, semantics, and performance. It's done its job but it's a shaky foundation on which to build anything modern. Andrew understood that and regardless of his reasons for developing Torque6, the design behind it was sound.

To be clear, you wouldn't be starting from scratch, you'd be leveraging T2D as a clean(er) starting point and bringing in the improvements T3D has made to the core engine plus the stuff Jeff has been writing about for 2+ years. The alternative is keeping the current codebase and watching as Jeff and one or two other active contributors burn themselves out for the next two years trying cram new systems onto old ones and refactoring as they go.

And you're right - the steering committee (or the two people still active on it) shouldn't be handling all of the engine development. They're not doing everything right now, but close to it. The only way to improve that situation is to get more people using the engine but that requires a friendlier first experience so that when new people try the engine it works out of the box without some of the current hassles.
Last edited by Happenstance on Tue Jun 26, 2018 4:26 am, edited 1 time in total.
Azaezel
Posts: 413
Joined: Tue Feb 03, 2015 9:50 pm
 
by Azaezel » Tue Jun 26, 2018 2:35 am
Define 'clean'. Otherwise we're apt to end up with several folks using their personal definitions pulling in just as many directions.
Happenstance
Posts: 54
Joined: Sat Apr 11, 2015 9:08 pm
by Happenstance » Tue Jun 26, 2018 4:20 am
I suppose "clean" is a bit subjective so ultimately it'd be up to the community to form a consensus on exactly what it means, and whether T2D is a "clean" starting point or not. There's a ton of good articles that discuss "clean coding" principles and most have some common themes.

In my case, I consider "clean" code to at least meet these criteria:

1). It's consistent in naming, structure, and layout.

One of the things Melv (and T2D by extension) did well, imo, is laying out code in a consistent, logical way. You can open the source directory and instantly have a good idea of what code will be in each file just by the filenames. The files are also organized in appropriately named and located folders. Each file also has a consistent layout, things like console function definitions are placed in similar locations, classes and methods use a consistent naming scheme, etc. The result is that a new user coming to the engine can find what they're looking for quickly and intuitively.

2). It's focused.

Again, T2D does a good job of this for the most part. Classes have a singular purpose and methods are typically small and easy to follow. The codebase itself is also small with minimal dependencies.

3). It's well-documented.

This is probably subjective as well, but I think of it as more than just comments thrown about every other line. Well-documented code is intentional. Thought is given to the naming of variables and functions, and comments tend to be more about why the code is doing something instead of how.
Azaezel
Posts: 413
Joined: Tue Feb 03, 2015 9:50 pm
 
by Azaezel » Tue Jun 26, 2018 7:08 am
Largely agreed in principle. Batted around a few notions that may or may not make T2D a compelling baseline vs simply further refining the current T3D engine to see about cooking up a more concrete list in discord for a bit... Folks interested in contributing but not presently doing so want to weigh in on the notion themselves further, to see if their interest align/if general consensus on particular trouble spots arises? It is a rather large proposal as initially stated. and not one that would be accomplished in anyone's definition of a reasonable amount of time if it's going to turn into another case of folks waving from the shore instead of pitching in to get it done.
JeffR
Steering Committee
Steering Committee
Posts: 863
Joined: Tue Feb 03, 2015 9:49 pm
 
by JeffR » Tue Jun 26, 2018 7:58 am
As Az mentioned, had some good discussion of the bits that do/don't align with T2D and what'd need carry over in the discord(and seriously guys, by all means jump in there and get in on this discussion, different thoughts and ideas of what's critical or not helps keep stuff from being missed).

On that though it sounds like there's a touch of possible confusion, so I figured I'd just articulate a little further on the subject:

While the Clean Core is an excellent idea, and cleanup and streamlining absolutely needs to happen regardless, I would make a very important note that the Clean Core prospects(and as I said in my earlier post, T2D-based or completely fresh app core are just 2 examples of possible routes) listed thus far are not a definitive THIS WILL HAPPEN NOOOOOOOW or anything.

I bought up 4.0 and it's possible entwinement with Clean Core because 4.0's always been pushed as being a build for large, probably breaking changes, and the Clean Core would likely carry a good bit of that with it if we tackled it via the T2D base or whatnot.

If we opt to entwine them, then we'd probably have a few more 3.X builds before because that means 4.0 would definitely be pushed back. If we don't then we'd need to figure out the expected support lifetime of 4.0 before we do "5.0" or whatnot.

There are other routes to a clean core as well. We could very well use T2D as an exemplar and trim out stuff we don't need/care about from T3D in-place, as well, which would obviously play nicer for a long-term project.

So for the moment, while it's definitely a pretty reasonable idea, for the moment, we need to consider the prospects of the Clean Core as a in-progress PLAN to be hashed out before any work towards that end is kicked off. This will let us better understand the work to be done, better lets people contribute and if a meteorite spontaneously explodes half the planet, the plan will let whoever needs to continue the work going forward.
Duion
Posts: 1120
Joined: Sun Feb 08, 2015 1:51 am
 
by Duion » Tue Jun 26, 2018 11:00 am
Sure you can do things more perfectionistic, if you start from scratch, but at what price? It may take you years to reach the state we are currently already at and only after that it may slowly get better.

I have the same with creating art assets, later I often think "oh that models are a total mess, I could do much better if I start again" then I start again spend much time and realize that in the end, the result is better, but not that much better that it would justify all the extra work.

At some point you have to draw the line and call it done, otherwise you will waste time perfecting to eternity.

Torque3D being messy or not, it is 100% functioning to make a game with and everything else than 100% functioning is not an option. A game engine is only qualified to use, if it is finished AND there have been games made and released with it, otherwise you do not know if it works at all.
Happenstance
Posts: 54
Joined: Sat Apr 11, 2015 9:08 pm
by Happenstance » Wed Jun 27, 2018 9:51 pm
So just to be clear, I don't want to imply that I'm thinking 'Clean Core' is happening, just supporting the idea of it being a possibility. Cleaning up T3D itself might be a perfectly valid alternative as well. It's a good discussion to have regardless of the outcome. My thinking is if 4.0 is going to be a big change anyway, take it as an opportunity to make any sweeping, painful, compatibility-breaking changes now so the community has one big hurdle to overcome instead of lots of little ones.

I think some of the "waving from the shore" Az mentions is attributed to the fact that there's no clear jumping off point for people. There's no list of tasks or goals for people to latch onto that show the community how to get from where we are now to 4.0 and beyond. The engine dev is a bit of a free-for-all with people submitting whatever cool feature or tech they've been tinkering with. That gives us a lot of nifty stuff to play around with but I'm not sure it always results in making overall progress toward bettering the engine.

Also, I somehow missed the 3.10.1 release - it looks like that took care of some of my concerns about the engine being approachable for new users. Just the fact that it compiles without needing to jump through extra hoops is a win.
Azaezel
Posts: 413
Joined: Tue Feb 03, 2015 9:50 pm
 
by Azaezel » Thu Jun 28, 2018 1:47 am
Entirely a fair point. Rather why we were kicking back and forth lists in discord live in front of folks so they could weigh in, and figured leave it off the forums till say... mondayish to see what folks come up with independently based on your clean criteria that they'd be interested in following up on themselves to either add to Da List or give the nod to go ahead with.
Monkeychops
Posts: 25
Joined: Wed Feb 18, 2015 11:53 am
by Monkeychops » Sat Jun 30, 2018 2:10 pm
@
User avatar
Duion
A lot of time has passed since MS made the simple promise not to sue Mono. They have since bought out Xamarin and completely open sourced the entire .NET stack under MIT license and all development is now done in the open. It's now more liberally licensed than Linux.

Also, patents are not implementation specific. They often cover pretty general concepts and ideas. Many big companies hold patents covering things most of us would consider pretty basic building blocks of software/game development and even some of ideas we have ourselves may have been thought of before and patented without us realising.
Even if you're using TorqueScript you'll probably find MS could find bits they could claim infringe at least one or two of the tens of thousands of patents they own.

In practice though the big fish are only going to go after other big fish who have made a ton of money and not smalltown indie devs.
Monkeychops
Posts: 25
Joined: Wed Feb 18, 2015 11:53 am
by Monkeychops » Sat Jun 30, 2018 2:26 pm
@
User avatar
JeffR
I do have to agree that "starting over", even with a solid base is too big an undertaking. I've followed tons of open source projects and going back to first principles, no matter how clean and well structured the new version is almost always fragments the community and tanks the project.
Ogre3d lost all momentum when going for 2.0 and never really recovered. Neoaxis went for 2.0 and has seemingly died a death. Even massively popular projects with a huge community like AngularJS for example have lost loads of ground by trying to reinvent themselves too much.

Probably Torque3D's biggest strength is that it has all the components needed for outdoor environment games and they are proven and solid.

I would second the view that the engine has to remain fully-functional and proven and that it would be better to selectively clean up and refactor the existing core bit by bit (as is already being done pretty well as far as I can see).
301 posts Page 25 of 31

Who is online

Users browsing this forum: No registered users and 4 guests