Jump to content

Curious fantasy and hypothesis


Bloodknight

Recommended Posts

So, given my clear lack of talent for post titles, and since you are here wondering WTF is Blood talking about.


So I've been mulling over questions brought up by the spawn of satan and a couple of others who made points about the Steering committee and the future direction of both the engine and its governance.


We have in place, potentially options that allow for full transformation from GG 'owned and controlled' (in quotes because it's all loose as all heck) to an independent organisation.


Questions I have are fairly fundamental, who, how, when, and why. OK, so why is relatively easy, and everyone has their own reasons so it's probably irrelevant, and given there are enough people who want something out of the engine or want a future for the engine. we need to tack why onto the how and who questions!


I'm going to be brutal, but factually brutal, the how and why and wherefores of how we got to this point in time in this particular condition aren't particularly important, but the next steps are. So here are the brutal facts, we currently have a small and dedicated team of developers who do most of the work ( @JeffR @Timmy @Azaezel sorry if I missed anyone, my bad ) and we have a small community of outstanding contributors (too many to list sorry, but small is getting smaller all the time.


My initial thoughts are simple, we are at the stage of a small startup, we have a product, we have a small dedicated team, we have interested clients.


Do we have enough people to do everything a startup needs?

Do we have enough people in the community to take up some aspect of turning the possible/potential new organisation into an expanding game engine 'company'?

Do we have people here willing to chip in with their expertise?

Do we have people who can do the grunt work, advertising, screaming from the rooftops, whatever?


We need more of everything, more users, more contributors, more devs, and I have no idea how that can be achieved if we don't have the warm bodies to do the work of expanding the organisation in the way it needs expanding.


On top of all that, I have no idea who can manage to organise such a task, because it needs leadership and organisation. even if that leadership and organisation is in the form of a committee, a steering group, a despotic tyrant, whatever.


I'm just rambling, I'm just curious, curious because it's easy to criticise, anybody and everybody can do that regardless of qualification, if you criticise without a solution, you are dead to me if you demand your solution is the only solution and cry when it is not adopted, you are dead to me.


More rambling.. sorry :p

Link to comment
Share on other sites

Honestly one of the big issues would mostly come down to streamlining workflow processes for doing work.


Posting blog updates, and having them aggregate around instead of needing to manually re-post it in multiple places, for example. I mentioned in the discord, but being able to do a post here, and have it show on the landing page, get linked on twitter, show up on the moddb articles section, etc, etc would go a long way to letting people to quick piecemeal updates(because I know that most people aren't too keen on posting Novellas as I am every update ;) )


Likewise, figuring a way to streamline the testing process would help a lot. Ideally we get some sort of nightly build shindig we can toss PRs into and have up for people to just download, run, and report(as humans are notoriously lazy creatures) but any steps towards that end would be useful. Still, even outside that, the bit with this, for example: http://bit.ly/2T0zTMO definitely helps to streamline the testing process, we just need to ensure people know it, and help 'em if issues crop up.


I honestly think that part of the initial hurtle for people helping is git seems scary so they don't try because they may "screw it up". If we can simplify that end in as many ways possible, people would be more willing to try.


On the management side of things, I'd mentioned prior, but I do think it's time to begin le migration to the Torque3D 'project' on github and start separating from GG's repo. This allows full control, establishing new roles, permissions(letting the community help with tags and the like, for example, is good) as well as letting more people have the ability(even if not the primary responsibility/task) to merge in PRs, manage issues, etc.


But I think the biggest frontrun outside of that(which obviously goes a long way) would be tighter community integration. Ensuring that the site, forums, git, discord, wiki, etc all get really gross and incestuous in cross-linking as much as possible to better establish a sort of intra-network for all things


Better integration between stuff like patreon(s) and the community would also be really useful. Outside of just fun community bits like contributing to the patreon yielding colored names or funny roles in the discord, the subject came up of a tier for prioritized support, which I'm seriously considering now.



Long and short of it, is my perception is this: the community is small, but very tight and largely really knowledgeable and dedicated.

More people do come into the community fairly regularly, but it's more of a trickle than a stream or river, or horrifying, torrential waterfall of death.

A bit reason for why this likely is, is that we don't have a lot of outreach or marketing. Usually people coming into the community either stumble upon it, or had distant ties to it(like picking up an old project that used Torque). We absolutely need to do more to act as a sort of beacon of "yeah, this is here and it's actually pretty sweet".

With the tighter integration of community elements, it'll be easier for people to integrate and find what they need.

And then obviously, once they feel like they're part of the community, they'll hang out, contribute in whatever ways the can, etc.

This gives us our bodies, allowing more work, and so the cycle continues snowballing.


Can we do it? Absolutely. It requires some spit and elbow grease, but I know we can bring it together(even if it takes some time and bumbling about ;) ) and make this even better than ever before.

Link to comment
Share on other sites

I think there's a few major stumbling blocks at the moment:


1) People looking in see the engine as outdated - that should be fixed with the new PBR release and the GI that's being worked on.

2) Not many people understand the engine - that should be helped with the new cleanup work and the new modular approach and ECS.

3) Not many people know or want to use TorqueScript


I think #3 is a big problem. It perpetuates because those that know T3D and work with it understand torquescript well enough and don't see it as a problem. Meanwhile the rest of the world peeks in and sees a decent but outdated engine with a weird scripting language for which no modern tooling exists and moves on.


I'm really looking forward to seeing the new release with PBR and cleaned up modular structure and I think that will go a long way to sparking interest in the engine, but I really think for the engine to have a long term future it will need to have official bindings for a more popular language like C#. Unless or until that happens, its going to remain a niche engine - that's the primary reason it died out under GG and hasn't picked up much traction since going open source either.

Link to comment
Share on other sites

but I really think for the engine to have a long term future it will need to have official bindings for a more popular language like C#. Unless or until that happens, its going to remain a niche engine - that's the primary reason it died out under GG and hasn't picked up much traction since going open source either.

 

Funny you say that(and also shows we need to be better about displaying everything that's going on work-wise) but Lukas' cinterface work was specifically designed to allow use of C# as the scripting language. The work itself allows for pretty much any language to be used to interface with the engine - you'd just need to write the hooks for whatever it is - but Lukas did the work specifically to utilize C#.


So yeah, while it won't be the frontline scripting language, C# support is *technically* already a thing. It's more about building out examples for it's use and documentation for the people that want to utilize it. Which I'd anticipated leaning on post-4.0 more since we could have a flag for something like that in the Project Manager.

Link to comment
Share on other sites

I'm also willing to lay down good money that people bitching about TS have never even looked at it, nor do they care that apart from recent years pretty much EVERY engine had its own special version of script, and yes that includes the mighty unreal and the less mighty unity, and well they get even less mighty from there, its a downward spiral :p


What is also really funny, even if there was C# common usage in torque those skills are not transferable to unity or any of the other engines, the only portable parts of any programming language ate the bits you learn in the first hour of programming the bits that are virtually the same in every language that has its parentage in the C family tree, C C++ C# Java JavaScript... almost all of them really.


Also, while C# is the current darling of app programmers (if you are old enough you see these cycle every few years, was java for a decade for example) see only a few engines using it as a scripting language cryengine and unity and maybe Godot depending on who you listen to. And it's worth repeating that learned skills aren't transferable, all engine use different APIs and the pain of learning any engine is the API IMO, while there are industry standard terms every engine has their own unique twist on how it does what it does.


As for scripting, we have, actionscript, angelscript, typescript, we have another dozen or so engines with their own scripting, or C++ there re more engines using C++ for scripting than C#, and then we have LUA and Javascript, I mean between those two we have about 35% coverage of all game engines, arguably, C# is only the 4th entry on the list if we are using popularity as a measure for which scripting system we should implement first apart from Lua they are all C like, I guess Lua is to some extent, but whitespace syntax, no thanks not for me.


So, pretty much doesn't matter what language you learn, if you can code you can script if you can script you can script (unless you lua, you have a harder curve, sorry), if you can't code or script, you are gonna have to get used to compilers/interpreters screaming errors at you for a while, its the pain we all had to go through.


Bottom line, if you are using torquescript as an excuse to not use torque because the skills are not transferable, you are lying to yourself about transferable skills, if you post that horsepoop, you are lying to everyone else too, there are reasons for using one engine over another, not gonna sit here and say T3D is the greatest, but it does have advantages others don't and vice versa is also true, and I'm also not gonna sit here and listen to people talk about crap like they actually know when they don't and not comment. Use Torque3D or don't, but don't be spreading lies, do some research.

Link to comment
Share on other sites

I've seen this mentioned before: "decent but outdated engine with a weird scripting language for which no modern tooling exists and moves on."


Did Godot's scripting language put people off? Not at all. Godot got c# and python scripting well after it boomed in popularity. Writing UE4 blueprints is not really a transferable skill, but that sees quite a bit of use. Regardless, a better scripting interface has been proposed and work on it has started.


Is the real issue that there is no modern tooling? If so, Torsion is a thing that exists, and creating language highlighting and tossing it into the IDE of choice isn't really that hard. I intend to have something up for VS Code some time in the near future. Do you feel that would be a significant factor in people choosing Torque? If not, what more would need to be done in this regard? Blood's viewpoint on this is a bit harshly phrased, but not really wrong.


I very much like the image you've created of Torque as a small tech startup. I wrote more, answering the original questions you posed with reasoning, but I'm exhausted, so I've removed it for now in favor of rewriting it with a clearer head. I'll summarize my thoughts to: I think we have all the components of a major game engine at hand, we just need to optimize for success. Forget the committees, the voting, etc. We just need to start writing things down and organizing ourselves better. I assert that we should distribute discussions over the discord, forums, and wiki based on what is most appropriate. Not because discord is bad or anything silly like that, but because the forum and wiki can facilitate different kinds of discussions more appropriately and also be readable down the line if needed -- something that's a bit challenging with discord. That, or make an army of bots to sort out things discussed in discord. It's all about using the right tool for the job.

Link to comment
Share on other sites

I've seen this mentioned before: "decent but outdated engine with a weird scripting language for which no modern tooling exists and moves on."


Did Godot's scripting language put people off? Not at all. Godot got c# and python scripting well after it boomed in popularity. Writing UE4 blueprints is not really a transferable skill, but that sees quite a bit of use. Regardless, a better scripting interface has been proposed and work on it has started.

 

 

Nobody cares about the technical details, you don't become popular through offering a good product, popularity is bought primarily through money. Godot is "popular" because it gets subsidized, because it offers mobile support, cryptocurrency support which then offers great protential to rip people off through microtransactions, that is what matters.

Link to comment
Share on other sites

Alright guys, namecalling isn't needed.


I'd say sun's ultimate point is correct though.


The script language an engine use doesn't magically define how popular it is, and many large engines have their own snowflake implementation.

Supporting a 'mainstream' script would primarily be for the purposes of ease of new people coming from other backgrounds, but anyone that knows how to program any object-oriented script is going to be able to port that to just about any language an engine will use, TS included.


If T3D is exactly what someone wants for their project with every single need and feature, but sees it uses TS, most people aren't likely to turn their nose up at it for that one thing(when again, anyone with programming experience would transfer their knowledge very quickly). Having C# or whatever other language within arms reach merely makes the decision to use easier. I really doubt the language would be a lynchpin/breakpoint element on it's own.

Link to comment
Share on other sites

Let me tell you how I chose this engine, I wanted an open source engine and I wanted the best open source engine that offers modern technology and is not a dead end like Quake engine.

I saw Torque3D being open sourced and there my decision was already made and I never looked into the details like scripting language etc, I did not even know what a scripting language is at that time.

My only question was, "Can the engine do what I need?" and after those questions were answered technical details became mostly irrelevant.


To make it short I'm pretty certain changing technical details on the engine will do nothing or almost nothing in regards to people using it, that is not what people look for, they are looking if the tool can do what they need and everything else is secondary. Choosing an engine because it uses a scripting language you like or because of other design choices is pretty insane and those people are not serious in their undertaking anyway. There are cases however where secondary criteria are important and that is if they are breaking primary criteria, for example my main criteria was to have an open source engine, but if that open source engine switches to a non open source friendly scripting language (like C#) it becomes a serious problem, since it will put the main advantage at risk and with that put everything at risk just for a bit convenience.

Link to comment
Share on other sites

since this thread is utterly derailed and more people are dumping than helping...

I'm sure that everyone has their own criteria for engine selections, sadly some of these are petty, like the TS hating knuckle draggers.


but this... this is patently false

To make it short I'm pretty certain changing technical details on the engine will do nothing or almost nothing in regards to people using it

pretty much all the 'new' traffic is made by kids doing the 'are we there yet' routine with PBR and 4.0, so the technical detail of version number is literally stopping children from making games.

Link to comment
Share on other sites

Do we even have a traffic counter? I don't think anyone from the nonexistent admins/committee is monitoring anything regarding visitors. If you don't have any metrics, then all other discussion in that regard is mostly meaningless, since there is no way to prove anything.

Link to comment
Share on other sites

well, it's not scientific, but I see new people coming into discord, and that's almost exclusively what they ask for, I see people who have been part of the community in the past pop in fairly frequently and that's what they ask, so empirically based on forum questions and discord questions that's an insanely common query. it's not an improbable stretch to attribute this to at least a proportion of the silent people who just come and check occasionally.


I know we have a documentation and information problem, that is the major contributor to this thread being created in the first instance, in part because the two major arms of the game development sector (artists and programmers) just happen to suck ass at creating documentation, for a variety of reasons, but its there, and they don't do it very often

Link to comment
Share on other sites

The purpose of the wiki was so the community could contribute elements to the documentation in a standardized way that most everyone is familiar with, hence a wiki.


That's how all wikis work and anyone is free to help with it. As Blood said, we have a ton of documentation, it just needs to be better collated and centralized.

Link to comment
Share on other sites

Godot is "popular" because it gets subsidized, because it offers mobile support, cryptocurrency support which then offers great protential to rip people off through microtransactions, that is what matters.

 

I've been watching the growth of the Godot engine, and I'm not sure that's a fair assessment. Instead, I think it's because Godot has certain strengths that it leverages correctly and follows through on that with appropriate marketing and development. The difference is that Torque3D's strengths take a tremendous amount of time to improve or change, because unlike Godot, it is a historied engine with a massive codebase capable of doing a great many things. The purpose of this thread seems to be to embrace the metaphor of Startup!Torque3D, and a part of that is analyzing the demographic we serve, leveraging the existing resources we have, and figuring out how to procure those we don't. In this sense, Godot is an objectively good example, since they've leveraged less into more.

Link to comment
Share on other sites

Godot is "popular" because it gets subsidized, because it offers mobile support, cryptocurrency support which then offers great protential to rip people off through microtransactions, that is what matters.

 

I've been watching the growth of the Godot engine, and I'm not sure that's a fair assessment. Instead, I think it's because Godot has certain strengths that it leverages correctly

Yes and those strenghts I already named like subzidization, mobile support, cryptocurrency support and microtransactions and pay2win support. What is so hard on watching statistics? The PC marked is flooded, saturated and shrinking, the mobile sector is new and growing. There were multiple new engine projects I watched that were not mobile game engines and they ALL failed. Almost all of the indie dev scene and the open source game dev scene only do mobile and/or retro style games, there are hardly any serious indie game projects, the risk of failure is too high, the competition too strong, the engines too weak, the costs too high etc etc mobile and retro games on the other hand can be developed cheaply and still generate a lot of money.

Link to comment
Share on other sites

I think a lot of people kind of miss the point about the scripting language... it's not so much that torquescript sucks, or that it's hard to learn. There's a number of much bigger issues:


* Tooling - Sure you can argue syntax hilighting isn't that hard to add to most IDEs, but tooling goes waaaay beyond that. The tooling support for C# for example has code completion, snippets, refactoring, code navigation, advanced debugging, profiling etc.


* Libraries - Say you're writing a game server and you want to store your data in some new-fangled cloud database or other. Or you want to integrate with a hot new game streaming service. There's going to be a C# library for that you can drop in and go. If you're using Torquescript you're probably going to have to write all that from scratch.. probably in c++ (yep, you're going to spend days/weeks in c++ hell worrying about closing connections and releasing resources, even if you only signed up for some high level game scripting). You shouldn't need to burn valuable game dev time implementing/porting stuff that already exists.


* Performance - Torquescript isn't too slow for game scripting, but most of its biggest fans would still normally recommend writing high performance bits in C++. With a fast modern .NET runtime the performance should be good enough that you don't need to leave managed code or mess around going between different programming languages to get the job done.


* Familiarity - Ok, you can learn Torquescript fairly easily. But if does have its quirks... and if you already know C# its one less thing you need to learn coming in to a new engine.


* Productivity - C# is a much more feature-rich language with much neater and more productive ways of doing things. It also has tons of official libraries for working with data, collections, system interactions etc.


* Maintainability - C# makes it very easy to structure and organise your code, and to find the bits you are interested in when needed. There are well documented and tried and tested best practices for code structure that make working with large projects much easier.


* Security - Ok, so .NET isn't the most secure language and can be decompiled, but decent obfuscators exist that do a reasonable job of preventing casual snooping. Torquescript projects pretty much just lay their scripts bare for anyone to fiddle with or copy - and if you want to obfuscate it, you're going to have to write your own obfuscator, because again, its a niche language.


Sure, other engines have their own quirky languages too... but as you also noted, most of those have died out now in favour of mainstream high-level languages. When a lot of older engines were made, being able to embed mainstream languages wasn't really a thing because the open source runtimes didn't exist. Now that they do, people want to use them.

Link to comment
Share on other sites

I think you are conflating C# the application development language with C# the scripting language, most of the benefits you list there aren't magically generated just because its C# they exist because devs put hours of integrating their specific API into the tooling, look at the massive unity plugins for Visual Studio if you have any doubts.


As for the library plugins for C# vs C++, dude don't start a fight you can't win C++ is the single most cross-platform ever used, it has libraries for things most people haven't even heard of and have been in constant development for the past 40 years, there are probably 10 libraries for everything you can find C# library to do, now in another decade or so this may well be the other way round, but we aren't there yet :p


I will send word of recommendation to the C# Zealots Grandmaster and let him know you've done a fantastic job promoting C#, but you missed the point by an agricultural distance.

Link to comment
Share on other sites

I think a lot of people kind of miss the point about the scripting language... it's not so much that torquescript sucks, or that it's hard to learn. There's a number of much bigger issues:


* Tooling - Sure you can argue syntax hilighting isn't that hard to add to most IDEs, but tooling goes waaaay beyond that. The tooling support for C# for example has code completion, snippets, refactoring, code navigation, advanced debugging, profiling etc.


* Libraries - Say you're writing a game server and you want to store your data in some new-fangled cloud database or other. Or you want to integrate with a hot new game streaming service. There's going to be a C# library for that you can drop in and go. If you're using Torquescript you're probably going to have to write all that from scratch.. probably in c++ (yep, you're going to spend days/weeks in c++ hell worrying about closing connections and releasing resources, even if you only signed up for some high level game scripting). You shouldn't need to burn valuable game dev time implementing/porting stuff that already exists.


* Performance - Torquescript isn't too slow for game scripting, but most of its biggest fans would still normally recommend writing high performance bits in C++. With a fast modern .NET runtime the performance should be good enough that you don't need to leave managed code or mess around going between different programming languages to get the job done.


* Familiarity - Ok, you can learn Torquescript fairly easily. But if does have its quirks... and if you already know C# its one less thing you need to learn coming in to a new engine.


* Productivity - C# is a much more feature-rich language with much neater and more productive ways of doing things. It also has tons of official libraries for working with data, collections, system interactions etc.


* Maintainability - C# makes it very easy to structure and organise your code, and to find the bits you are interested in when needed. There are well documented and tried and tested best practices for code structure that make working with large projects much easier.


* Security - Ok, so .NET isn't the most secure language and can be decompiled, but decent obfuscators exist that do a reasonable job of preventing casual snooping. Torquescript projects pretty much just lay their scripts bare for anyone to fiddle with or copy - and if you want to obfuscate it, you're going to have to write your own obfuscator, because again, its a niche language.


Sure, other engines have their own quirky languages too... but as you also noted, most of those have died out now in favour of mainstream high-level languages. When a lot of older engines were made, being able to embed mainstream languages wasn't really a thing because the open source runtimes didn't exist. Now that they do, people want to use them.

@LukasPJ would no doubt be highly interested in another pair of eyes to help ensure that what is checked into the development fork *right now* does indeed allow for side by side scripting. Just sayin.

Link to comment
Share on other sites

Eh, I tried to stay out of this one, because the thread is so toxic 😁


The stuff that is being checked in right now, doesn't really do anything.

All it does is, fix some api-export code and patching some stuff together to export a C-Interface, which was originally developed for JavaScript (in-browser games) when that was all the rage.


So it doesn't add anything new, it just fixes some stuff that already existed and, rather crudely, ties some knots together to activate some functionality which was never finished.


The C# aspect is completely separate from these changes, and you can put any layer on top of it if you want, that's what's nice about a C-Interface. It's a clean, standardized way of exposing managed code.


Why did I pick C#? Because the language has native interop built right in, Java for example requires a bunch of C code to be written and compiled. Doesn't matter too much, but it was very quick to get started with and do some PoCs.

Furthermore, it is statically typed. Which is an absolute must for me, I like to put a lot of functionality into scripts, so I don't want to deal with shitty dynamic typed shittyness.

It's fairly extensible, allowing for some DSL-esque features and cool transparent packaging of the native objects.

You can do unsafe code, which allows for micro optimization in the interop layer.



Honestly, I don't know if I would recommend C# as the all-in choice. It can be kept as a separate project because there is no overlap in code, and TorqueScript has that OotB run everywhere feature, that we can get with C# as well, but it's a lot more maintenance/up front development compared to just using three scripting language we have.


Before we look into making any language official, I think it should prove itself as a stable and broadly popular choice in a standalone packaging before we begin making it official.

Atm, the C# implementation should just be seen as a "proposal" or PoC solution.

Link to comment
Share on other sites

I dislike TorqueScript as much as the next guy, but if we're going to all in with anything, that should be our choice, I think. Its strengths outweigh its negatives for its intended use cases. I've gotten started on a t3d-tools extension for vs code which for now adds code completion, snippets, refactoring, and code navigation. Debugging and profiling is on the TODO list, but it's not as straightforward.


The rest of your points... I'm not really sure I'm convinced about C#. I'd love if Lukas would be able to finish getting that popped in there, because who doesn't want more options, but the advantages TorqueScript provides for development are superior in every way, even if the language itself isn't. Real-time, live scripting in the editor, anyone?


Preview of t3d-tools (click the image to see it in action):

torquescript-extension-vscode.gif

Link to comment
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...