Author Topic: So, what've I missed?  (Read 123479 times)


Speedkart and doors are trivial additions to the game, although Speedkart itself is a less trivial piece of work, at least. The release of the BLB exporter after I don't even know or want to contemplate how many years of people wanting documentation or support for the format is a much bigger deal than either of those things - in fact I'd say it's probably the biggest thing you've actually done for the modding community in the entire time I've been playing the game - and the gamemode system is definitely well-intentioned and I'd even go so far as to say I like it, although the lack of support for optional/allowed add-ons irks me since I don't like the idea of releasing something that would inevitably lead to more basically identical servers.

Much like the player persistence add-on - I believe I voiced a concern about the fact that you couldn't opt not to restore positions, meaning gamemodes that wanted to save arbitrary information about players but for whom it wasn't appropriate to rejoin where you disconnected had to either implement their own persistence (fragmentation/loads of files everywhere) or work around it, rather than taking two minutes out of your day - probably less time than it took to type the short response - to provide a potentially more useful piece of support to modders.

Also of note are the pieces of functionality which were locked down - the player list certainly didn't have much non-malicious use, however shapenames were potentially useful, the change to prevent their abuse also prevented them from being used for bots. The patch to prevent clientside access to player positions was also just a blanket ban, and I certainly remember thinking about (though I can't say if I posted about) suggesting some sort of server-side method for allowing one player to access another's position clientside; for example, to allow teammates to see one another's positions for a team radar system, or for a hunter in a one-vs-many gamemode to see enemy positions for some form of sixth-sense/tracking system. Simply sending out positions using clientCmds is certainly possible, but it's an incredibly suboptimal solution. Want a team of 16 players to be able to see each other's positions? 240 clientCmds per tick at whatever tickrate you want. Two teams makes 480. If you strip the co-ordinates to integers and don't send the Z co-ordinate, for a bare minimum top-down map and don't send their facing, that's probably 7 bytes of data plus overhead per clientCmd. At a tickrate of 250ms, or four times per second, that's 13.125 kilobytes of data per second, not counting overhead - data that those clients already have, to render the players at all. With clientside access, that could be... well, incredibly close to no data per second accounting for the sending of the packet to say they're allowed to access that, at as high a tickrate as the client likes, with a higher accuracy position and two more facets to it. But some servers might allow players to potentially use aimbots, and that's terrible.

Then there's my most recent pet peeve - not being able to directly open the events dialog for an arbitrary class. This would be a trivial change - a few minutes tops, probably possible with a find-and-replace in the actual source - but involves rewriting most of the dialog functionality or the entire dialog itself for a third party to do it, and even then there's some unavoidable bugs that require hacky workarounds that make it even worse to use for a third party to do it. I'm not even sure if I ever bothered posting about this, as it was something that occurred to me long after the point when I'd become entirely disenchanted with the game because of the feeling that the game's creator simply saw me as someone who just wanted to ruin all his hard work. Can I immediately think of an example of why that'd be particularly useful? No, but if it were possible, maybe someone would see some cool thing to do with it. At the very least, we could directly event minigames to configure them and allow the non-script-savvy among us (really, we're among them) to do cool things of their own.

And of course, RTB's been gone for a while now, and the current main avenue for add-ons to be posted is... one single sub-forum. That's right, all add-ons, all in one place where you can only see a small number at a time, there's no categories, the search isn't particularly useful and no hosting is provided. Support! Hooray!

What I'm getting at here is, of course, that "mod support" is kind of a misnomer. It's more "mods permitted, and if you don't like what you've got you can forget right off", which is what most of the modders have done over the years. For some, it was of their own will, due to disenchantment; for others, they did something that riled up the community and caused a lot of drama, leading to them being removed and whatever weird stuff they were doing being patched over for the temporary cessation of shrieking children. Even Ephialtes, the most dedicated member of the entire community, eventually decided to up and go with some evident bad blood.

The progress is forget it.  Believe it or not, programming is to some degree a creative endeavor and requires some motivating factor other than the temporary cessation of shrieking children.
This, however, is at least one reason I can get behind. I can respect that you don't want to work on Blockland all the time. But an hour a day on improving some stuff for modders could quite possibly produce a hell of a lot of content.


Much like Mr.Wallet I often hesitate to post here (the times I've wanted to, or even have written posts, far outnumber the times I've actually posted about things for very similar reasons to what he stated, and I've definitely become very pessimistic about the likelihood of getting a response at all, let alone a positive one). Certainly, it is worth saying that if I had to put up with half this much bullstuff, I'd probably have taken my toys elsewhere, so to speak. But I like to think that a little less negativity at the top might have resulted in a little less bullstuff down the bottom, and probably much too late for either of those, now.

Obligatory two cents, as this is apparently a "jaded people contribute their opinions on Blockland development and community structure" thread.


he directly targets Badspot and the lack of development every chance he gets. Look what happened to Sleven. Not saying I want him banned but he's pushing it.
Wait, what happened to Sleven? He was nice.

Defending the use of trace(), dump(), echo(), and searching this forum as a proper substitute for documentation, rather than a "whatever, good enough, I can live with it" kind of compromise, only proves to me that (in a programming context) you don't actually know first-hand what "documentation" is.

Are you trying to make some kind of poorly thought out jab at my programming ability? If you read my post again, you can see that the entire point of my post is that the existing features are enough to live with, not that they're a proper substitute for documentation. I even specifically said that documentation would make it easier.

Documentation is invaluable for libraries and APIs. Without OpenGL documentation, I wouldn't be able to work on any games at all. It's incredibly useful. I'm not even trying to discredit its value. The thing is, it's not Badspot's fault that documentation doesn't exist for TorqueScript. What you're demanding is like yelling at a developer who implemented DevIL for not providing a full reference on how to interface with DevIL. Badspot simply used the game engine, he's under no obligation to explain how to use it to us. The fact that the people responsible for documentation, Garage Games, failed to do so adequately before their discontinuation of Torque isn't Badspot's fault, and he's not responsible for it.

Thankfully, GarageGames did provide you with a tool that acts like mutable documentation that automatically updates. They covered their bases with their own functions by requiring a definition to define a console method, and provided you with a tool to figure out how other functions are called.

The only thing Badspot might be under obligation to document is his own virtual (via TorqueScript/DSO) additions to the game. He's expressed numerous times that he has no intention of doing so, though, so it's not even worth bringing up. Even if you were to convince half the forum that documentation should be made, he'd do nothing about it. There's precedence of this with the Ephialtes drama that happened not too long ago. Damn near half the forum, if not more, wanted his admin revoked. Guess what Badspot did? Essentially told them to go forget themselves.



Maybe, maybe I'll document his virtual functions for him. I can already tell it'd be a huge pain in the ass though, so I completely understand why he doesn't want to.

http://forum.blockland.us/index.php?topic=251354.msg7279427#msg7279427

Also can I say, holy loving stuff, everyone is coming back here to post in here. It makes me miss good ol' 2009 when the community and game was fresh in my mind.

It makes me miss good ol' 2009 when the community and game was fresh in my mind.

I'd say me too, but I keep regular contact with most of these people anyway.

God, is it back to school essays already?

Awesome post M, basically went into all the stuff I didn't want to re: mod support.
I never had any serious problem with the mod support in this game - it's well above average in the scheme of all indie PC games ever - but Badspot calling modders having complaints "total bullstuff" in this thread left me completely baffled. I just wanted to post about the whole post-deleting thing but then when I was reading Badspot's posts to get some context I found that one and then my post turned into an essay.

the player list certainly didn't have much non-malicious use
You may find it mildly interesting that when player list access was removed, I was at that time using it on my server to convey extra info to players. Aside from things in the shift from beta to retail, I think that's the first time I ever made a real complaint about the game on these forums.

@trinick
No, my jab was pretty well-thought-out. I have diagrams and forecasts and everything. Seriously though, I'll keep this short because I feel my open letter says everything I really wanted to say:
Quote
If you read my post again, you can see that the entire point of my post is that the existing features are enough to live with, not that they're a proper substitute for documentation.
No, I cannot see that at all. In fact it if I had to choose one or the other, I would say it sounds more like you're trying to imply that feasibility is mostly irrelevant as long as something is technically possible given infinite time and effort. Maybe you should read your post again.

And trace() is not like any kind of documentation that does anything. It is not documentation of any kind. A runtime description of program flow is not documentation and it never will be, and as someone who loves both debugging tools and documentation I somehow manage to find the very idea mildly offensive.

Thankfully, GarageGames has always and continues to document its part of Blockland's code better than Badspot's part has ever been documented, so I really have no idea what you're talking about in that regard. One could crowdsource the BL documentation better than with a single forum if one gave a stuff (by setting up a wiki for example); but we both seem to be in agreement that one does not give a stuff, so I also have no idea what the deal is with your aggressively apologist stance vis-a-vis the not-stuff-giver.

And please don't start introducing terms on my behalf like Badspot having an "obligation" to do anything; surely, we must already misrepresenting each other enough as it is.

No, I cannot see that at all. In fact it if I had to choose one or the other, I would say it sounds more like you're trying to imply that feasibility is mostly irrelevant as long as something is technically possible given infinite time and effort. Maybe you should read your post again.

There is nothing that Badspot would document that would be any more helpful than a combination of these methods of figuring out how stuff works. It might make it easier because all you have to do is open up your web browser and search for a function, but it's not like documentation is necessary.

Maybe I'll interpret this for you since you're apparently unable to:
The functions that ship with the game provide suffice information about runtime and available functions. Documentation is not required to learn how a function works because of this; all it would do is make it easier to discover functions and their functionality.

And trace() is not like any kind of documentation that does anything. It is not documentation of any kind. A runtime description of program flow is not documentation and it never will be, and as someone who loves both debugging tools and documentation I somehow manage to find the very idea mildly offensive.

I never said trace() is a form of documentation. I said it helps reduce the need for documentation, by providing real examples of how functions are called and what their result are. Again, you need to read what I say and not make assumptions.

I spend most of my computer-programming related time in debugger tools or wading through documentation. I wouldn't say I love either of them though, they're just more tools in a toolkit. Just as I wouldn't love a hammer or a wrench just because it makes my life easier by not having to bash my skull against a nail or tighten bolts by hand, respectively.

Thankfully, GarageGames has always and continues to document its part of Blockland's code better than Badspot's part has ever been documented, so I really have no idea what you're talking about in that regard. One could crowdsource the BL documentation better than with a single forum if one gave a stuff (by setting up a wiki for example); but we both seem to be in agreement that one does not give a stuff, so I also have no idea what the deal is with your aggressively apologist stance vis-a-vis the not-stuff-giver.

I'm not quite sure what you're referring to here. Possibly the TGE examples that ship with the engine? Possibly their documentation of engine functions that aren't even technically a part of Blockland -- they're part of TGE. You haven't provided any information about the documentation you're referring to, so I really can't formulate a reply.

And please don't start introducing terms on my behalf like Badspot having an "obligation" to do anything; surely, we must already misrepresenting each other enough as it is.

I didn't introduce any terms on your behalf. I was simply noting that Badspot has no obligation to create documentation, so expecting him to do so when he already said he won't is a bit ridiculous.

Also; just a note: I wasn't attacking you or your open letter when I posted my original comment about not needing documentation. I was saying simply that I have no issues with a lack of documentation. I don't find looking up functions to be a difficult enough task to warrant somebody else spending a lot of time describing everything to me. Obviously that skill came with a lot of practice that I only got because of a lack of documentation, but at this point in my Blockland programming career all the documentation I need is inside my brain or a quick trace() / SimObject::dump() away. Surely documentation would help new programmers. I wasn't speaking on their behalf.

And no, this isn't backpedalling.

Once you know how to find information about functions, everything becomes a bit easier for coding. It's an extra hurdle that makes it just that much more difficult for someone to begin any significant coding.

Ohhh okay
Am I the only tool-user in existence that doesn't care about having to bash my skull against a nail or tighten bolts by hand?
fixed that for you

Ohhh okayfixed that for you
I think you missed the point of my post even more with this one. The lack of documentation doesn't bother me -- so it's unlike having to smash my face into nails or tighten bolts by hand. The lack of documentation literally doesn't provide enough of an impact on my life to warrant any kind of action by anyone.

Now, if I had to figure out how the source code of a closed-source program worked without using a debugger or any available documentation (what I was talking about when I made that topic), that would be akin to smashing my head against nails.

made that comment* not made that topic

I should probably hit preview before I post. loving Kalphiter.

You can't expect to make a metaphor, immediately follow-up by saying that your own metaphor is inappropriate, and still have anyone take you seriously.

I don't really take anyone who makes huge ass essays about modding a lego game serious.

You can't expect to make a metaphor, immediately follow-up by saying that your own metaphor is inappropriate, and still have anyone take you seriously.

..I didn't do that? I said you applied my metaphor to something it wasn't meant to be applied to. I was talking about my use of debugging tools and documentation, which is obviously distinct from Blockland since our entire conversation is about how Blockland doesn't have documentation.