AI Disclaimer
This was first written by me, then streamlined with GPT-4, as I am a sloppy writer when it comes to things like this. Please bear with me, and know that I tried to put in effort before using it.
An Update with Some Extra
Hello everyone,
It's tunmi13 here, back with a bit of a lengthier update this time. I've taken some feedback from a handful of individuals and am trying to make this one a bit more detailed.
This time, I'm going to dig into the repository history of the game, considering parts that might be worth revealing. However, I'm still trying to be careful about how much I share, so I apologize if this still isn't enough. That said, I want to at least take feedback into account and do my best to provide something with more depth. So here goes nothing.
What Gives? What's with the Short Update on March 14th?
Well, simply put, I was being defensive. I was afraid that if I said too much, I'd reveal parts of the game that I still wanted to keep under wraps. And to be honest, I still am.
However, I also recognize that after two years, you guys at least deserve something more detailed. So it's only right that I accept it and just do it.
I'd also like to include a bit of a disclaimer: Everything in this update is accurate as of right now. Expect changes and modifications as development progresses. I don't want to be blamed for saying something was true yesterday only for it to change today, for example.
Switching it Up. Literally.
At the start of Golden Crayon's development, Python was the intended language. In fact, it remained the language of choice for about a year and six months on average.
However, things took a turn when Sam Tupy released NVGT, short for Non-Visual Gaming Toolkit.
"Inspired by the Blastbay Gaming Toolkit (BGT), which was widely known in the audiogaming community and originally created due to that engine's discontinuation, NVGT aims to not only preserve and improve old BGT games but also provide a new platform for anyone looking to get into game development—without requiring in-depth knowledge of lower-level programming concepts or languages. It continues where BGT left off, but with a completely new codebase and cross-platform support."
Naturally, this made me pause. After putting so much effort into coding the Python version, this had to come out. That's not to say I blame the creators—it just made me wish it had been released much sooner. And so, the internal debate began: should I keep pushing forward with Python, knowing that everything I needed was available in a much simpler engine, or should I switch?
As you've probably guessed, I switched. Many of the challenges I faced in Python—like proper 3D audio and a virtual GUI—were easily solved in NVGT, making me realize I was overcomplicating things. Given everything going on in my life right now, this feels like the best choice.
However, as of right now, the server remains in Python. We've come so far with it that a full conversion would only add unnecessary stress. So, for now, the best approach is to keep the server as-is while benefiting from NVGT on the client side.
Maps
The May 30th update touched on maps a bit, but there have been quite a few modifications since then.
Syntax
As you may know, the syntax for building audiogames nowadays (at the time of this writing) follows a system where parameters are separated by spaces or colons. For example:
platform 0 50 0 50 0 0 grass
platform:0:50:0:50:0:0:grass
This system is messy, hard to process, and—if you're a Notepad builder like me—can quickly become frustrating when trying to figure out which parameter goes where.
What's worse is that you're only given the parameter values, not their names. That means you're stuck memorizing the order: MinX is the first parameter, MaxX is the second, and so on.
Well, Golden Crayon is getting a new syntax that will hopefully be appreciated by those who prefer a Notepad-style approach to map creation. And honestly? It's just cleaner in general. Here's what it looks like:
platform; minx=0; maxx=50; miny=0; maxy=50; minz=0; maxz=0; type=grass;
The best part? You can arrange them however you like. For instance:
platform; type=grass; minx=0; miny=0; minz=0; maxx=50; maxy=50; maxz=0;
One last example:
zone; text=A demo; minx=0; miny=0; minz=0; maxx=50; maxy=50; maxz=0;
Of course, when the game is released, there will be a converter available so you can port your old maps into the new system—no need to rewrite everything from scratch.
Proper Rights
As you may already know, the game previously used a contributor-based system: if you were a contributor, you had the same rights as everyone else.
As cool as this sounded, it also led to some issues. A big one? Contributors could delete maps or remove the original author.
The game will now have proper ownership handling, identifying who the true author of the map is and who the contributors are. This means that if you're just a contributor and you get any sneaky ideas, the author will still be in control. It also prevents contributors from adding new contributors on their own, among other things.
Real-Time Changes
In the BGT version, making any update to a map would reload the entire thing. This was frustrating and often led to issues—like suddenly falling through the world while exploring or having to wait for updates to take effect. (Granted, the speed improvements have made this less of a problem, but it's still important.)
Now, additions or removals—such as platforms, walls, and zones—will update in real time, without requiring a full reload.
Aaaah, Runtime Error! Or, Not?
One of BGT's biggest issues was that it couldn't handle errors gracefully. It either worked… or it crashed.
With our conversion from BGT, that's no longer the case. Now, if a line is incorrect, missing a parameter, or otherwise invalid, the game will alert you and skip the problematic line until the issue is resolved.
The game will tell you the line number, what it read, and provide a detailed error message. For example, if you accidentally set MinX
to 5 and MaxX
to 4, you'll get an error like this:
"MinX is greater than MaxX."
No more cryptic crashes—just helpful feedback!
To the Client with You!
There were honestly tons of things on the server that just did not need to be there. If I'm being real, the client was basically just a husk with a map parser. That meant the server was handling all the load, which caused those nasty lag spikes. Even with the massive lag improvements, we can't get too cocky—so we've made some more changes.
Players
Players have been moved client-side.
We decided they had no business being on the server. Not enough rizz. Matthew and Jaidon are the only true rizz sources, so we just nuked players off the server. Sorry!
Kidding, kidding. What we actually did was shift a lot of their workload to the client. Things like the tracking system (pressing T and P), map checks, and other tasks are now handled client-side, giving the server some breathing room. The server still manages communication and keeps everything in sync, but now the client is pulling its weight.
Inventories
Along with player movement, inventories are now entirely client-side—so no more severe delay when pressing Tab.
But before you start celebrating, flexing, and firing up Cheat Engine—no. The server still regulates all items. Feel free to change your coin balance from 500,000 to 1 million, but the server knows what you truly have. You'd just be inflating numbers for your own amusement.
We've also cleaned up a lot of the wording, like fixing “lost -5 coins” to properly say “lost 5 coins.”
Staff
We've made quite a few improvements to the staff system, benefiting both players and staff members.
The Staff Panel
Ever since my first game, the staff system was always the same old, same old. Slash commands. /ban, /kick, /mute, /tempban—must I go on?
While these commands still exist as legacy commands, staff now have a dedicated panel. Think of it like a builder menu, but for staff. From here, they can ban, mute, kick, issue temp bans, warn players, and manage records—all in one place.
Feedback, Reports, Suggestions, etc.
Golden Crayon never really had a proper way to handle suggestions or reports. You either sent a message to a staff member, who then passed it along, or we just noticed things ourselves and took action.
Now, we have a better system: Staff Outreach.
Yes, I know the name sounds a little cheesy—feel free to suggest alternatives below.
So, what is Staff Outreach?
It's a submission/ticket-based system where players can send in reports, feedback, or questions. Staff can then respond, resolve issues, and submit a final response before closing the ticket. Once closed, the player will receive an automated summary of the conversation. This message goes into their PM buffer, meaning it will be archived when they export their buffers—or they can copy and paste it into an editor for safekeeping, since it's multi-line.
Players
Not only have there been updates to the staff, but also to the players. Because what would be the point of updating only one? Well, I suppose there would be some points, but that would be digressing from the topic at hand.
Profiles
Players now have profiles! They contain information such as their current location (if they choose to show it), along with other achievements that will be added over time.
But that's not all. You can interact with players directly from their profile in various ways. For example, you can give them one of your items, send them a private message, etc.—all from within the profile itself. This eliminates the need for /pm, though it's still available, giving you two options for communication.
Staff also have these abilities, so they can move you, ban you, kick you, etc., directly from the profile screen. But of course, you can't access these features if you're not a staff member!
Group Chats
About time, right? Golden Crayon now has group chats! Well, it doesn't just have them, it's been having them!
This was supposed to be introduced in a new update for the BGT version that was never released, but that's around the time I decided to start fresh, so it didn't make it in. But now, it's part of this version!
It includes basic group management features such as invitations, bans, and kicking—so you can easily group up with others.
I think this will be really helpful for people who prefer to chat privately as a group rather than having to manage multiple PM conversations.
Records
Now, every player (including staff) has a record.
This record is essentially a log of all actions staff have taken against you—temporary or permanent—so you always know where you stand.
If your record is clear, you've never broken any rules.
Minor cautions don't usually go on records, but anything beyond that will start building up.
If you successfully appeal a punishment or it's deemed unjustified, the entry on your record may be deleted.
Wrapping it Up
I've covered a solid chunk of the game's updates since the last one. I hope this one provides more insight compared to my rather short one from yesterday (at the time of this writing).
I truly hope that, with enough time and effort, Golden Crayon can be back up and running in full force. But it will take time, and I appreciate your patience.
Alright, that's about it. If you have any more questions, let Matthew and me know!
Hi there!
This is Ronan.
So I had this in mind for an Android app for a while now, but if you’re making such improvements, here I go:
PMs like conversations, and a message composer:
When you, for example, go to write a private message, you should see, either from your logs either from your server, conversations with the people you talked to. Entering it will open a messaging app like UI, with the ability to write private messages, for example, just type and press Enter to send, SHift+Enter for new lines. I was going to make this Android app called GameChat MessagingPlatform (GCMP) to make it easy for Android users to actually chat across all games, and give you all the server communication and everything, but since you’re taking this beautiful time in carefuly building the game, maybe you can be the first one who implements such a thing, because for now, music production, among other things, stop me from building the app.
I’ll let you know when it’s released, when I can get to build it.
Thank you very much for reading!
Hello,
The closest thing we have right now to what you are suggesting, is already present. It’s a conversation list, to the left of the message field, where you can select a conversation to focus on. That way, each time you open up the message window to send a message, it will go directly to that thread.
However, if I’m misinterpreting your suggestion, let me know.