Re: Dies Irae
-
@somasatori I’ve run into some struggles with the Evennia layers myself as I dick around with it. I’m sympathetic to the issue.
-
@Tez said in Re: Dies Irae:
@somasatori I’ve run into some struggles with the Evennia layers myself as I dick around with it. I’m sympathetic to the issue.
It’s a bit of a mess. Channels are also a little difficult. According to the Evennia dev discord, they’re aware of the problem and told me that channels were notably kind of strung together and needed some review.
-
Re: AI Code
So you’re telling me not to trust this ChatGPT Ruby code for the L5R idea? Shock! Horror!
-
@Jennkryst said in Re: Dies Irae:
Re: AI Code
So you’re telling me not to trust this ChatGPT Ruby code for the L5R idea? Shock! Horror!
Here’s my suggestion: if you use AI to do your code, use it to help you learn how to code in the language of your choice., So if you’re coding up Ruby and YAML files using ChatGPT (I would not suggest ChatGPT for coding, but use Claude or Github Copilot), ask it to explain to you why it’s doing what it’s doing.
You may still get some hallucinations, but it will help you understand what sort of variables, functions, and how to write it yourself without relying on AI. As you go along, AI can also be useful if you get exasperated with an issue and say “what am I missing here?” Asking it to solely create, develop, and manage a codebase is not an effective use of the software.
Finally, you want to make sure it’s in an IDE and not something you just interface with on whatever website version you choose.
-
I’m going to make a very limited response on the subject of “AI” code:
Do not blindly trust it. Period.
You have to vet it for security vulnerabilities and a whole slough of other things. Remember, these are not trained off of the best-of-the-best code — unless someone wants to start releasing training data proving otherwise — and “codebots” will likely not know how to deal with project-specific situations.
-
@dvoraen shhhhhhhhhhhhhhhhhhhhhhhhh no ai inquisition shhhhhhhhhhhhhhhhhhhhhhhhhhhhh i’d rather talk about it from general code practices to understand rather than a blanket ai bad shhhhhhhhhhhhhhhhhhhhhhhhhhhh
-
Software development practices are crucial, but the kind of people who find AI the most useful probably haven’t been introduced to those practices so in addition to potentially being let down by the bot, they’re not doing OTHER project activities that would really help them and the bot isn’t going to introduce them to. Version control, unit tests, checking logs, using a debugger?
I have found AI code extremely unhelpful compared to jumping into a debugger, but those things are also learned skills that you can’t assume everyone has.
-
@Juniper said in Re: Dies Irae:
Software development practices are crucial, but the kind of people who find AI the most useful probably haven’t been introduced to those practices so in addition to potentially being let down by the bot, they’re not doing OTHER project activities that would really help them and the bot isn’t going to introduce them to. Version control, unit tests, checking logs, using a debugger?
I have found AI code extremely unhelpful compared to jumping into a debugger, but those things are also learned skills that you can’t assume everyone has.
This is 100% correct. After I figured out some of the software development practices (in real life I work in mental health, I’m not a software developer), I would use the agent in my IDE to provide suggestions, but often they get in your way. Especially in cursor, the IDE agent will occasionally attempt to autocomplete things and anticipate what you’re going to write, and often it’s completely off base and diverges wildly from what you wanna do.
Notably I did not know this when I took over as code lead on DI in like October 2024, and considering that I had this monkey on my back telling me we needed to “capitalize on the enthusiasm in the Discord server” and open ASAP, I really didn’t have time to learn. I learned how to do Python stuff by a) fixing the vibe mistakes I made; and b) iterating off Kuma’s code.
Edit to add: I agree with @dvoraen here. It’s not a moral thing, it’s more like… you need some knowledge of what you’re doing or what you want out of the code at the end of the day. If you’re just like “make me a WoD game” and take the output as written on the face of it without testing it, examining possible issues, trying to figure out what links to what, etc. then it’s going to come out and be an absolute mess (re: the reality level thing that was described previously).
-
@Tez said in Re: Dies Irae:
@dvoraen shhhhhhhhhhhhhhhhhhhhhhhhh no ai inquisition shhhhhhhhhhhhhhhhhhhhhhhhhhhhh i’d rather talk about it from general code practices to understand rather than a blanket ai bad shhhhhhhhhhhhhhhhhhhhhhhhhhhh
Not my intention to go on AI-bad with that statement.
Any code you do not write that comes from a third party is something you have to scrutinize. Otherwise, Node.js, for example, would not have tools that literally scan the libraries you use in your app for (known) security vulnerabilities and tell you about them. (These are not “scan for AI-code tools” either.)
-
I will judge people for AI poses. Not gonna judge someone teaching themselves on how to do some shit. Coding is a motherfucker and anyone who tries it should be lauded. As for the game, I left early because a lot of RL stuff was destroying my will to do much and working 5am to 130pm Pacific sucks ass when people wanna do stuff at like 7pm Pacific lol.
-
@somasatori said in Re: Dies Irae:
Scylla set up two pseudo-headstaff through which she could launder her reputation.
So who were they that they had a reputation in need of laundering?
-
@Pavel said in Re: Dies Irae:
@somasatori said in Re: Dies Irae:
Scylla set up two pseudo-headstaff through which she could launder her reputation.
So who were they that they had a reputation in need of laundering?
Ah, that’s not really my jam, outing folks and who they played. What I will say is there were enough people I knew that refused to play on the game on account of knowing her from a couple other recent games (Liberation, City of Hope) that I was unable to really get my friend group there.
-
-
@Pavel said in Re: Dies Irae:
@somasatori said in Re: Dies Irae:
Scylla set up two pseudo-headstaff through which she could launder her reputation.
So who were they that they had a reputation in need of laundering?
I mean, if you look at her characters’ names, and then go to other WoD games and check the bboards for similar names whomst were recently (for variable definition of recently) banned, you could start to follow the papertrail.
-
@somasatori said in Re: Dies Irae:
what was occurring was that it was moving the character object to the location, which left the account “object” (or meta object?) in the previous location
I can answer this!
First, a quick overview.
Accounts aren’t objects. They’re just Django accounts that have permissions on objects. Typically, the account is linked to a character object when it’s created. Evennia allows you to “puppet” objects to run commands as them. I could code it so you could puppet a table object and then you could roleplay as the table, provided the table item has RP commands attached to it.
That being said, when an object is accessed (either by being puppeted, or being seen in a room, or by being a room itself), the object is grabbed from the database and stored into memory. Because of this, you effectively have two copies of the object: the one in working memory, and the one in the database. If I recall correctly, the database is synchronized to the working memory every few minutes. This reduces the number of database writes.
With that being said, there are three ways the bug on Dies Irae could be happening.
-
If there are too many database writes, you’ll get the error “Database is locked.” That means anything that was attempted to be synchronized didn’t get synchronized. This is fine if you make another modification to the object, because then it’ll try to synchronize again. But if you’re just doing things like sending RP messages, your character object will still be in the previous location in memory. This will cause you to receive messages from the original location, but you’ll send message to the current location.
-
If the server doesn’t have enough memory, it’ll happen in reverse, IIRC. It’ll write the new location to the database, and it’ll appear like you’ve moved. But the game didn’t have enough memory to process the move, so it thinks you’re still in the previous room. When that happens, you’ll send messages to the original location and receive messages from the current location.
-
Dict attributes (such as {1:“a”} ) are serialized when they’re pulled from the database. If you do my_dict=self.db.special_dict, that means if you make a change to my_dict, it’ll be INSTANTLY reflected in special_dict. So if you make multiple changes to a dict in a single method, you need to .deserialize() the dict as you’re copying it, or else the database will SUFFER trying to update the same attribute over and over again. Chances are favorable that you’ll desynchronize the object and you’ll get one of the two previous bugs.
-
There’s one more way this can happen. But you’d have to have a fundamental misunderstanding of how Evennia works or be reliant on AI code. That’s to somehow deserialize the character object itself. I can’t think of a single reason you’d want to do this. Should you do this, may god have mercy on your server.
-
-
@Jumpscare Wow Jumpscare, thank you for putting this together, I don’t know nearly enough about coding in Evennia, but I know Evennia has some very special features that I’m interested in and anything that contributes to community knowledge about it is a win in my book!