#server-plugins-read-only

1 messages ยท Page 30 of 1

kindred crescent
#

I'll try to do the chest example anyway just to get the idea across

stray pasture
sharp lake
#

I'd expect something more like tickVelocity as opposed to Update, right?

karmic bane
#

Big enough to be worth an entirely different architecture. Something like flecs, if you don't spend too much time on other things like visualizing the entities in 3D, you can easily go to 1 to 100 million entities. In a more integrated thing like Hytale not as many but still way more

sharp lake
#

Lmfao and then we have fckin inheritance

stray pasture
fleet isle
#

So it is something like I said with class that has multiple interfaces. It just instead of registering the class into a single registry, I register it into those individual component registeries based on what interfaces the class has, right?

stray pasture
sharp lake
#

Maybe a stupid question, but inheritance is just an abstraction
Why are we not doing compiler optimizations to group these things together naturally?

stray pasture
fleet isle
karmic bane
# sharp lake Maybe a stupid question, but inheritance is just an abstraction Why are we not d...

Inheritance comes ๐Ÿ’ซ inherently ๐Ÿ’ซ with depencency on one another. The polymorphism breaks the theoretical linkage to ECS architecture. You could still kind of translate to one from another but good luck writing a compiler for that lmao it would require like a good semantical overview of your target goal. I guess an LLM would be more befitted to that than any deterministic algorithm

kindred crescent
#

nevermind the code example, I can't be bothered to come up with good enough code lol

sharp lake
near raptor
#

Inheritance is limited to whatever the parent allows for, sort of.

stray pasture
near raptor
#

For example in Minecraft, I cannot add arbitrary NBT / metadata to all blocks in the world that would persist, only to blocks that hold state.

stray pasture
#

I lied I wont.

kindred crescent
#

lmfao

sharp lake
#

relatable

#

You gave a really good explanation earlier though

kindred crescent
#

Well basically, in OOP you would have to loop through every entity and then test if they are a container and then make them do something.
In ECS, you can just say "Take all the containers and do X, Y, Z"

stray pasture
#

LONG MESSAGE

Minecraft Container Example - Server Authoritative:

struct Position { public int X, Y, Z; }
struct Inventory { public List<ItemStack> Items; public int Size; }
struct Container { public string Title; }
struct Furnace { public float BurnTime; public float CookTime; }
struct Hopper { public float TransferCooldown; }

// SERVER ONLY - Systems
class FurnaceSystem
{
    public void Tick(World world, float dt)
    {
        foreach (var id in world.Query<Inventory, Furnace>())
        {
            var inv = world.Get<Inventory>(id);
            var furnace = world.Get<Furnace>(id);
            
            // Smelt logic here
            furnace.CookTime += dt;
            if (furnace.CookTime >= 10f)
            {
                // Transform input -> output
                furnace.CookTime = 0;
            }
            
            world.Set(id, furnace);
            world.Set(id, inv); // Sync to clients
        }
    }
}

class HopperSystem
{
    public void Tick(World world, float dt)
    {
        foreach (var id in world.Query<Inventory, Hopper, Position>())
        {
            var hopper = world.Get<Hopper>(id);
            hopper.TransferCooldown -= dt;
            
            if (hopper.TransferCooldown <= 0)
            {
                // Find container above/below and transfer items
                hopper.TransferCooldown = 0.4f;
            }
            
            world.Set(id, hopper);
        }
    }
}```

CLIENT - Doesn't need to understand the logic:
```// Client only renders what it receives
class ContainerRenderSystem
{
    public void Render(World world)
    {
        foreach (var id in world.Query<Container, Inventory, Position>())
        {
            var container = world.Get<Container>(id);
            var inventory = world.Get<Inventory>(id);
            var pos = world.Get<Position>(id);
            
            // Draw based on data, doesn't care about Furnace/Hopper logic
            RenderContainerAt(pos, container.Title, inventory.Items);
        }
    }
}```

Now here's the magic - MODDER ADDS NEW CONTAINER:

// Modder creates: Sorting Chest (server-side mod)
struct SortingChest { public SortMode Mode; }

class SortingChestSystem
{
public void Tick(World world, float dt)
{
foreach (var id in world.Query<Inventory, SortingChest>())
{
var inv = world.Get<Inventory>(id);
var sorter = world.Get<SortingChest>(id);

        // Custom sorting logic
        inv.Items = inv.Items.OrderBy(i => i.Type).ToList();
        
        world.Set(id, inv); // Syncs to client automatically
    }
}

}

// To create one:
var entity = world.CreateEntity();
world.Add(entity, new Position { X = 10, Y = 64, Z = 20 });
world.Add(entity, new Inventory { Size = 27 });
world.Add(entity, new Container { Title = "Sorting Chest" });
world.Add(entity, new SortingChest { Mode = SortMode.Alphabetical });```

Compare to OOP:

class Chest : Container { }
class Furnace : Container { }
class Hopper : Container { }

// Modder wants auto-smelting hopper?
// Multiple inheritance? Decorator pattern? Huge refactor?
class AutoSmeltingHopper : Hopper, Furnace // โŒ Can't do this```
karmic bane
#

I would recommend reading into the Bevy game engine. It's written in Rust but uses a very good fundamental ECS structure and the learning guide explains ECS pretty well

stray pasture
#

Okay that will be my last code snippet, I hate taking all of the chat. ๐Ÿ˜› (Code snippet timeout)

This summarizes the ECS idea and how composable systems can alot almost infinite amount of freedom (While allowing Server Authority)

kindred crescent
#

Curious to see how Hypixel will explain their ECS

sharp lake
#

Have they actually confirmed anything like ECS and components for entity processing? It would make sense given the way they use nodes and such in other places

kindred crescent
karmic bane
sharp lake
#

That makes sense

#

Oh ECS literally stands for "entity component system"
I guess that's why I've always called it components LMFAO

kindred crescent
#

Can't wait to do this and blow everything up:

Entity e = world.queryFirst<KweebecTag>();
e.addComponent(new VolatileComponent(10000000000));
karmic bane
#

It really should be called "Entities, Components, Systems" lmao

fleet isle
kindred crescent
#

The world itself can be an entity and you would give it the VoidDamageComponent and stuff like that

fleet isle
sharp lake
#

Idk it looks kind of like ECS to me ๐Ÿ’€ ๐Ÿ’€

kindred crescent
sharp lake
#

Idk Java syntax but I see the components there and how they're shared between classes

kindred crescent
midnight horizon
#

I cant wait to pretend to know java on release

kindred crescent
#

To be clear, in ECS, the "World" is not the game world but an ECS-related name. It's basically the entity container.

stray pasture
sharp lake
#

I've only ever read decompiled C# and it sucked
And the Java I've worked with was fine, but it's been a long time
If that snippet above is more like C#, I guess it makes sense why I didn't understand it ๐Ÿ˜‚

fleet isle
# kindred crescent I'm not sure of what you mean

When I go to register the LobbyWorld class, I would look at all the interfaces it has and add it into cosmetics registry, gameSelection registry. And for the GameWorld class, that one would be added to entityDamage registry, fallDamage registry, voidDamage registry.

Then in my main loop function, I would just go through all those registries and loop whatever is in them.

midnight horizon
stray pasture
sharp lake
#

Scripts are definitely a couple steps removed, and they're pretty significant steps
It's moving between real languages that is mostly fine

kindred crescent
fleet isle
kindred crescent
#

No, in a ECS, you would have "systems" that would loop through what they need only with complex queries if necessary

karmic bane
#
struct Entity(u64); // Definition of an entity, only holds a single integer as an id

struct Position { // Component
    x: f32,
    y: f32,
};

struct Velocity { // Component
    x: f32,
    y: f32,
};

fn update_positions(query: Query<(&Position, &Velocity)>) { // System
  for (pos, vel) in &query {
    pos += vel;
  }
}

This is effectively an ECS in practice (written in Rust here cuz idk its readable)
The system finds all entities that match a certain query based on the given components. In the given system, no entity would be included that has just one of those components or none. Only entities with both of those components are found and operated on. Such a query system is quite powerful and also a reason for benefits in the performance

stray pasture
karmic bane
#

This system applies velocity on the position (not well cuz I couldn't be bothered to respect time or anything physical)

stray pasture
#

And more specifically ALL systems are looped through at the same time - ANYTHING with "update_position" is called in a loop

fleet isle
#

But systems can loop through the same entity multiple times, if needed, right?

karmic bane
#

You could do multiple for loops but the system itself usually runs once per update cycle

#

I guess some ECS's have a more rigid system where u could actually configure how a system actually runs but this is the base idea

fleet isle
#

each system runs once per tick, right, but an entity could be registered in multiple of those systems that run per that one tick, right?

karmic bane
stray pasture
#

One sec, I am insulting claude for an example. ๐Ÿ˜„

#
struct Position { public float X, Y; }
struct Velocity { public float X, Y; }
struct Health { public int Value; }
struct Attack { public int Damage; }

// Systems
class InputSystem
{
    public void Tick(World world, float dt)
    {
        var player = world.Player;
        var vel = world.Get<Velocity>(player);
        
        if (Keyboard.IsPressed(Key.W)) vel.Y = 5;
        else if (Keyboard.IsPressed(Key.S)) vel.Y = -5;
        else vel.Y = 0;
        
        if (Keyboard.IsPressed(Key.A)) vel.X = -5;
        else if (Keyboard.IsPressed(Key.D)) vel.X = 5;
        else vel.X = 0;
        
        if (Keyboard.IsPressed(Key.Space))
            world.Add(player, new Attack { Damage = 10 });
        
        world.Set(player, vel);
    }
}

class MovementSystem
{
    public void Tick(World world, float dt)
    {
        foreach (var id in world.Query<Position, Velocity>())
        {
            var pos = world.Get<Position>(id);
            var vel = world.Get<Velocity>(id);
            
            pos.X += vel.X * dt;
            pos.Y += vel.Y * dt;
            
            world.Set(id, pos);
        }
    }
}

class AttackSystem
{
    public void Tick(World world, float dt)
    {
        foreach (var id in world.Query<Attack, Position>())
        {
            var attack = world.Get<Attack>(id);
            var pos = world.Get<Position>(id);
            
            // Find enemies near player
            foreach (var enemy in world.Query<Health>())
            {
                var enemyPos = world.Get<Position>(enemy);
                if (Distance(pos, enemyPos) < 2f)
                {
                    var health = world.Get<Health>(enemy);
                    health.Value -= attack.Damage;
                    world.Set(enemy, health);
                }
            }
            
            world.Remove<Attack>(id); // Attack done
        }
    }
}

// Game Loop
while (true)
{
    float dt = 0.016f; // 60fps
    
    inputSystem.Tick(world, dt);    // Read keys
    movementSystem.Tick(world, dt); // Move everything
    attackSystem.Tick(world, dt);   // Process attacks
}```

Each system defined, ANYTHING that owns it is triggered via a single loop (There are other complicated scenarios but I don't want to dive into that.)

Own is bad wording!!! Sorry! Put me in timout
kindred crescent
fleet isle
#

So you still have one giant list?

kindred crescent
#

ECS use a lot of magic in the background to make queries and all that jazz very efficient

karmic bane
#

Your question basically is, if a single entity can end up in different queries in different systems, and yes, but those queries usually define on which components they want to operate on

kindred crescent
karmic bane
sharp lake
kindred crescent
sharp lake
#

Oh

stray pasture
# sharp lake So there's not a bunch of lists?

Its all purly sequential in directly in order. - VERY Fast as finding things because it mvoes incrementally

ECS: positions[0] is right next to positions[1]. CPU loads big chunks, processes fast.
OOP: enemy[0] is far from enemy[1] in RAM. CPU keeps fetching from slow RAM.

Speed is memory mapping and caching

kindred crescent
#

Let's say for example you have a component "OnFireComponent", you can add this component to any entity you want and the queries will know whether to take it or not.

sharp lake
#

I was thinking a list for every component, which just has a bunch of references in it

karmic bane
# sharp lake So there's not a bunch of lists?

In very simplistic terms, ECS wants to have a big list of everything, going like: Entity, Entity, ... next to each other (remember, entities are effectively just integers to identify) and then Component, Component, ... next to each other and then System, System, ... executed and stores next to each other

karmic bane
stray pasture
#

POINTERS!!! ๐Ÿ™ƒ

karmic bane
#

oh no

stray pasture
#

You wouldn't wanna copy that to modify it would ya. ๐Ÿ˜„

karmic bane
midnight horizon
stray pasture
kindred crescent
#

Very dumbed down c# code:

public class HealthComponent { /* stuff here */ }
public class OnFireComponent { /* stuff here */ }

public class TakeFireDamageSystem {
  public void Update(/*stuff here*/) {
    var entities = ECS.query<HealthComponent, OnFireComponent>();
    foreach(var entity in entities) {
      // Apply fire damage logic here
    }
  }
}

// ...

var entity = ECS.AddEntity();
entity.AddComponent<HealthComponent>();
// At this point, the TakeFireDamageSystem will not see this entity because it doesn't have the OnFireComponent.
entity.AddComponent<OnFireComponent>():
// Now, TakeFireDamageSystem will see the entity and apply the logic accordingly.

Hope that helped

karmic bane
#

yeee

stray pasture
stray pasture
#

But this is a great model in C# - Looks exactly the same in every other language too! ๐Ÿ˜‚

kindred crescent
#

We'd start losing our jobs if they were too good

midnight horizon
stray pasture
stray pasture
karmic bane
stray pasture
karmic bane
kindred crescent
#
+-------------+----------+----------+----------+
|      -      | Entity 1 | Entity 2 | Entity 3 |
+-------------+----------+----------+----------+
| Component 1 | x        | x        |          |
| Component 2 | x        |          | x        |
| Component 3 |          | x        | x        |
+-------------+----------+----------+----------+
fleet isle
fleet isle
kindred crescent
midnight horizon
stray pasture
#

Does entity have component? Yes? No?

stray pasture
fleet isle
stray pasture
kindred crescent
karmic bane
midnight horizon
#

Its kinda like a logical version of somthing like this correct

fleet isle
#

I'm self taught... these words like ECS, OOP and other words are completely foreign to me. When I find something is not working as ideally, I try different approach. When I find something is too slow, I try something else. I don't really look online for help, I just do stuff, I don't take classes or whatever, I just go head in first and figure what I can do with it.

kindred crescent
#

To anyone that doesn't understand ECS, don't worry, it's not a simple system at first glance ๐Ÿ™‚

midnight horizon
#

Nvm I cant post pictures

stray pasture
#

I was going to say, even experienced professionals take a while to understand it, it really is a HUGE change in thought

karmic bane
#

Entity
An entity represents a general-purpose object. In a game engine context, for example, every coarse game object is represented as an entity. Usually, it only consists of a unique id. Implementations typically use a plain integer for this.

Component
A component characterizes an entity as possessing a particular aspect, and holds the data needed to model that aspect. For example, every game object that can take damage might have a Health component associated with its entity. Implementations typically use structs, classes, or associative arrays.

System
A system is a process that acts on all entities with the desired components. For example, a physics system may query for entities having mass, velocity and position components, and iterate over the results doing physics calculations on the set of components for each entity.

The behavior of an entity can be changed at runtime by systems that add, remove or modify components. This eliminates the ambiguity problems of deep and wide inheritance hierarchies often found in object-oriented programming techniques that are difficult to understand, maintain, and extend. Common ECS approaches are highly compatible with, and are often combined with, data-oriented design techniques. Data for all instances of a component are contiguously stored together in physical memory, enabling efficient memory access for systems that operate over many entities.

Here, feast on my wikipedia excerpt

sharp lake
#

Ohhhhhhhhhhhhh I get it

fleet isle
#

I've done way too much Minecraft plugin coding so anytime someone says Entity, I immediately picture something like a Minecraft Zombie.

sharp lake
#

You don't iterate over the lists of components because you mix components in systems

hidden jasper
#

The screens we got are not very promising.. they used I prefix for interfaces (antipattern) like they have DefaultChunkStorageProvider, but the default interface is still called IChunkStorageProvider..

kindred crescent
stray pasture
# karmic bane > Entity > An entity represents a general-purpose object. In a game engine conte...

I modeled my plugin architecture off of ECS. ๐Ÿ˜„

I have a plugin system that works primitively - I want to make a card game. I created many plugins (Card Game Framework this is an orchestrator of other plugins):

  • Entity System
  • Container System
  • Effect System
  • Pooling System
    etc, there are more

But how they work is the Card Game framework brings these together and defines "Card Game" - I could use these to make GTA if there are enough of them. ๐Ÿ˜› - But I assemble what I want.

So if I want to build a card game framework I just call these systems who do that management for me. They already exist.

Not the exact same, but definitely modeled from. Also I removed a whole lot, don't expect to understand it, just know my games are built with plugins and composable. ๐Ÿ˜„

midnight horizon
#

it reminds me of my mile long custom_check in my Gmod days. You have lists of what something is and what something can be and then define it as such. or am I wrong

stray pasture
silver bronze
stray pasture
sharp lake
hidden jasper
# kindred crescent First time I hear that

When you have clean code, ideal state is that you have no I prefixes.. only implementations should be described, imagine you have IStorage and Storage.. can you guess how Storage works? Probably not.. and now imagine you have Storage (interface) and FileStorage (impl)

sharp lake
#

The short-hand is only used when communicating with other people, you don't actually need to know how other people talk about the topics in order to practice them

kindred crescent
hidden jasper
stray pasture
karmic bane
#

Btw did you guys see the newer numbers that Simon revealed on benchmarks? They managed to uphold a server with 70 players for 45 mins on 12 GB RAM and a Ryzen 7950x

kindred crescent
stray pasture
kindred crescent
near raptor
silver bronze
stray pasture
#

Tis true!

#

Now did they have 3000 NPC spawn too? - THAT would be exciting

karmic bane
fleet isle
# silver bronze Interesting to see, you've done a lot of Java dev I assume but are not familiar ...

I've started with Minecraft Plugins in Java and for many years just simply did that. And I only really moved to C# when I felt like Java was no longer enough for me where I did lots of other stuff. But it took a long time for me to understand even the basic concepts of how I should for example be structuring my C# REST APIs and one day that concept, it just clicked. So I feel pretty confident in C#, not so much in Java, especially after not touching for more than a year, maybe even two at this point.

karmic bane
#

I think we will defintiely see 200 player minigames such as Mega Walls or Super Sky Wars. While vanilla SMP is going to require some beefy hardware to push 100 players in a single SMP.

silver bronze
#

No clue how heavy a Minecraft SMP would be when it has 70 players and also heavily depends on if those 70 players are all in a different spot or at the same place, but at least very cool that we got some official numbers

kindred crescent
karmic bane
hidden jasper
#

Can we get link to the tweet?

kindred crescent
#

I wouldn't call it a blog post. It is more of a technical manual with some example data. Just wrapped up a playtest with 70 people on various hardware until we finally crashed the server.
There is a lot of context such as "minigame server" vs "exploration mode SMP". We believe that a 3 vCore + 8 GB server can sustain 6-8 players. A Ryzen 7950x with 12 GB RAM server, we were able to push 70 players but TPS degraded until the server crashed (~45 minutes).
I think we will defintiely see 200 player minigames such as Mega Walls or Super Sky Wars. While vanilla SMP is going to require some beefy hardware to push 100 players in a single SMP.
We are continuing our effort to improve stability and further add performance optimizations to get those big anarchy servers.

silver bronze
kindred crescent
#

https //x com/slikey/status/2000608313977810946

near raptor
#

We believe that a 3 vCore + 8 GB server can sustain 6-8 players.
Yikes

fleet isle
stray pasture
hidden jasper
near raptor
#

A server with 8 players? In Minecraft you need not even 1GB for that

karmic bane
stray pasture
#

Dog on him! ๐Ÿ˜‚ - My favorite!

fleet isle
# stray pasture Yeah. Kotlin though!

I've tried Kotlin and I gave it the best I could multiple times. But it just never worked out well. I don't like Kotlin unfortunately. I rather prefer writing in Java than in Kotlin

silver bronze
kindred crescent
#

Guys, everything is done server side. Of course the servers will have to be more beefy

silver bronze
#

Kotlin is heavily overrated and that's my ultra-controversial hot take of the day I will be dropping in here and then not mentioning ever again

stray pasture
hidden jasper
stray pasture
fleet isle
sharp lake
stray pasture
silver bronze
#

Well Java 25 has had some changes since then ๐Ÿ˜…

kindred crescent
#

But apparently it's much worse than Minecraft so ยฏ_(ใƒ„)_/ยฏ

stray pasture
#

Ryzen 7950 - We all got one of these! ๐Ÿ˜„ Right?

fleet isle
rich solar
silver bronze
sharp lake
prisma agate
karmic bane
#

My trusted ChatGPT says Ryzen 7950x with 12 GB RAM can handle 50-80 online player in Minecraft Paper sooooo

kindred crescent
#

Guys, remember like a week ago they crashed at 56 players

kindred crescent
#

Now they crashed at 70.
They are getting better ๐Ÿ™‚

sharp lake
prisma agate
#

But I have 5mbps upload, so no chance I am hosting a seever on it (I do have a VPS)

karmic bane
silver bronze
#

Also again, 70 players all in their own area is impressive, 70 players in a hypixel lobby would be a joke. More context is really required to draw any conclusions

fleet isle
stray pasture
#

Actually with the processing on the server this does just equal Minecraft... ๐Ÿ˜‚ - SO its a little better

sharp lake
#

They said they were dropping ticks with their 70 player early-access test
So if we just constrain ticking like we do in Minecraft, would probably easily push it, assuming it's entity ticks and the like

hidden jasper
#

It was Ryzen 9 7950X

fleet isle
#

I mean I could grab AMD Ryzen 9 9950x3D. It's not THAT expensive.

stray pasture
#

Were we lied too??!!!

karmic bane
#

And remember it's Early Access. Minecraft Paper had like 10 ish years to develop from what Minecraft had

kindred crescent
hidden jasper
#

xcancel(dot)com/slikey/status/2000608313977810946#m

stray pasture
sharp lake
silver bronze
#

Paper performance was also pretty disappointing sometimes ๐Ÿ˜„

hidden jasper
#

Yes but 16 cores on one of the most powerful CPUs..

kindred crescent
sharp lake
kindred crescent
sharp lake
#

Does Hypixel want SMPs?

kindred crescent
#

That's my point. If you have more than 15 players online at once, you have the budget for beefier systems

silver bronze
#

Wonder what is the reason it uses so much though. Is it just the world, is it entity ticking? Because depending on the type of server, either/both of these could be heavily reduced

sharp lake
#

They just said 200 players per minigame server, and that's definitely plenty

karmic bane
silver bronze
#

Also depends on what rate it scales with players

fleet isle
kindred crescent
sharp lake
#

That's pretty standard though

karmic bane
#

Can't wait to code mah GPU-accelerated custom-programming-language-written minimal Hytale server yeehaw

kindred crescent
stray pasture
#

Just wait till we got mods going!!! ๐Ÿ˜„ That number is gonna tank quick!

Optimize yalls crap! ๐Ÿ˜„

sharp lake
silver bronze
sharp lake
#

You can disable a lot, apparently

silver bronze
#

Yeah I have seen that mentioned, I'm very curious what "a lot" is exactly

karmic bane
kindred crescent
#

Is there going to be the capabilities to disable certain vanilla features entirely or have more control over them like e.g precise control over chunk loading, disabling lighting updates, creating void worlds, disabling mob AI

Yes to all of them. You dont just disable it but you can entirely unload the capabilities from the classloader and replace them with custom solutions.

fleet isle
#

Was about to send that lol

karmic bane
#

Given that lighting updates and mob AI are mentioned, expect like 95%

kindred crescent
silver bronze
#

Ooooh that is very cool. Taking up the challenge to write a custom solution that works faster /s

dusky plume
#

Mobs with AI incoming

sharp lake
#

Based on how he's worded that, I can't imagine there's anything that couldn't be removed LOL
You could kill the networking even, and replace it with something more minimal but within spec

kindred crescent
karmic bane
stray pasture
kindred crescent
fleet isle
#

From Slikey:

Server Hosting itself will only become available with the Early Access launch. There is some more documentation releasing before launch though to give some best practice for hosting a server yourself or as a server provider but it takes longer than expected due to performance improvements.
Documentation? ๐Ÿ‘€

stray pasture
stray pasture
#

Tis a joke.

kindred crescent
#

Oh ok

sharp lake
karmic bane
#

I should look into Kotlin

sharp lake
#

I've had that thought a few times so far, I'm waiting until release though

kindred crescent
karmic bane
sharp lake
kindred crescent
sharp lake
#

It's going to be on the server regardless

kindred crescent
sharp lake
karmic bane
sharp lake
#

Would be a royal pain in the ass, but would actually be efficient
Relatively speaking LMFAO

karmic bane
#

Yeah it wouldn't be a small project at all but a fun one

sharp lake
#

You could probably see some really advanced behaviours depending on how you train it

kindred crescent
#

So... When are we recreating Skyrim in Hytale?

sharp lake
#

I think Enton's idea is cooler LMAO

karmic bane
sharp lake
#

You'd be surprised how cheap you can run neural networks for things like what you're describing

west elk
#

Something like HarmonyAI is specifically made for LLM-powered npcs

sharp lake
#

Ideally, you wouldn't use a language model at all, and just a model
But tacking a language-model on there is really really easy so LOL

karmic bane
#

Man I miss the times where language-models where novel and actually interesting technical feats, nowadays just download a model lmao

sharp lake
#

If Enton actually throws together some training scripts and a basic NPC implementation, you could do some fun stuff with it

sharp lake
#

I just moved onto other things and eventually we saw things like Codex

#

Most of my other work was tied to machine vision and speech transcription

karmic bane
#

AI has gotten really opaque in their architecture too, I mean sure transformers but there's quite alot to machine learning and LLMs just take all that name for themselves while achieving lAnGuAgE oooo

#

bich I learned talking before I was 1 year old, LLMs really lacking skill

sharp lake
#

They kind of do a good job though, when it comes to making sentence-like structures
Much like little humans

#

At least in the quality of their structure, not the meaning

karmic bane
#

I mean I don't even manage sentence-like structures even at the age of 21, I give them that, but still!!!

near raptor
#

i very good english speaker beter then chad gippity

karmic bane
#

indeed

normal ocean
#

you forgot a dot at the end.

near raptor
#

I do like it when the LLMs use characters people would never use - for example - putting a dash - everywhere to make long - sentence

sharp lake
#

They got it from somewhere, some people do that

#

It's just more common in particular styles, and for some god-forsaken reason the big companies think we want everything in that style

near raptor
#

Ah so they trained the model on you then

sharp lake
#

Dear Godโ€” maybe Enton is one of them too?

karmic bane
#

Sorry, *I - do - that

normal ocean
#

something that is less likely that AI or any machine will be good at, is power efficiency like humans, i mean i can eat a freaking bread and function all day

vernal niche
#

Enton > Psyduck

karmic bane
#

I should probably do em dashes

karmic bane
near raptor
#

The first versions of ChatGPT were kinda funny because when I asked it for some Java code, it would also put down the package as com.ing. No, I don't work for ING, it just randomly decided that this class now should be put in a package of a bank.

vernal niche
sharp lake
# vernal niche Enton > Psyduck

I'm assuming you can't talk about the scaling Nitrado have achieved with Hytale yet? LOL
Slikey posted some stuff on Twitter yesterday about the internal stress tests

near raptor
#

We all need some dampfschiffahrt on the donau sometimes

karmic bane
daring lodge
#

16 cores for 70 players Hypixel_Crying

sharp lake
#

I wouldn't call it a blog post. It is more of a technical manual with some example data. Just wrapped up a playtest with 70 people on various hardware until we finally crashed the server.
There is a lot of context such as "minigame server" vs "exploration mode SMP". We believe that a 3 vCore + 8 GB server can sustain 6-8 players. A Ryzen 7950x with 12 GB RAM server, we were able to push 70 players but TPS degraded until the server crashed (~45 minutes).
I think we will defintiely see 200 player minigames such as Mega Walls or Super Sky Wars. While vanilla SMP is going to require some beefy hardware to push 100 players in a single SMP.
We are continuing our effort to improve stability and further add performance optimizations to get those big anarchy servers.
Just to repost it again

kindred crescent
karmic bane
#

Btw @vernal niche you would be the first person to abuse your access to the server files for benchmarking, no? Do you have some secret numbers u can drop? We are wondering if the 70 player count should be worrying

near raptor
#

I am sure performance will improve quite a bit, but running the Hytale server containerized with a requirement of 3 vCore and 12GB of RAM is quite a bit

sharp lake
#

Oh wow I missed the keyword there, "anarchy"

sharp lake
daring lodge
#

i need hytales version of spark

kindred crescent
karmic bane
sharp lake
kindred crescent
karmic bane
#

I am optimistic by him typing so long

vernal niche
#

I can't really add much to Slikey's comments other than that, as with any of those tests, stuff was learned that will very likely shift the picture for the next time. We have also done some tests somewhat independent from the Hypixel team to find out how we can prevent a server from running out of resources when a bunch of players all fly in different directions.

kindred crescent
near raptor
#

You could consider teleporting everyone back to spawn and send them a message "no you stay here"

daring lodge
#

pregenning

karmic bane
#

lmao

vernal niche
near raptor
#

Ahh dang too slow

#

Make a mod that tethers all players together with a rope, solves the issue also

karmic bane
daring lodge
#

if its within a world border maybe u can pregen everything

sharp lake
karmic bane
#

I'd assume memory more than cpu times

sharp lake
#

I don't think so actually, not for this game

daring lodge
#

are chunks really that much memory, on mc u could get away with like 100mb per player

karmic bane
#

Bigger size, more blockstates, etc.

weary rain
#

How Will work server Creation?

west elk
#

We will get a guide shortly before launch

weary rain
fleet isle
#

Anyone know any good jre docker images?

near raptor
#

I mean the basic is Eclipse Temurin, though I have seen Bellsoft also being used a bit

#

They offer jre images that are quite tiny, containing only the minimals for Java. Some of them are based on Alpine or Alpaquita

fleet isle
near raptor
#

Surely it does by now? Let me check

fleet isle
#

Not on docker hub at least

near raptor
#

Huh, you are right. Java 25 was released not that long ago I guess

west elk
#

this works fine for me
docker pull eclipse-temurin:25-jre-alpine

near raptor
#

Yes, actually, seems like it does exist

fleet isle
#

huh, if I put that into the search, suddenly it exists

near raptor
#

I can't share a link, but search for "25-jre-alpine" on the Dockerhub of eclipse-temurin

#

It is MUSL-based, so do be aware of that in case Hytale require glibc (which is not likely)

fleet isle
#

Vulnerabilities: 3 high, 3 medium, 2 low... lovely to see :)

near raptor
#

You could also consider liberica-runtime-container:jre-25-glibc or hardened-liberica-runtime-container jre-25-glibc

#

Haven't used the latter myself, but it is supposed to have 0 CVEs

#

But temurin is already miles better than openjdk image, which is full of CVEs

lilac stratus
west elk
#

how is microsoft's distroless build with vulnerabilities?
mcr.microsoft(.)com/openjdk/jdk:25-distroless

fleet isle
near raptor
#

Temurin or openjdk?

#

Oh, OpenJDK, I see

fleet isle
#

openjdk

#

comparing to a well known docker image for Minecraft itzg/docker-minecraft-server they use eclipse-temurin:21-jre

near raptor
#

Yeah, eclipse-temurin is pretty much the defacto Java image these days

#

21-jre is not the alpine version, but should work either way. Depends on your requirements. The alpine image comes with barely any utilities, don't think it even has curl, so if you want to debug stuff it might be hard. But if you don't care about debugging the internals of a running container, then alpine is fine (so long as you dont need glibc)

shy crest
sharp lake
#

LMFAO true we should be able to force players back to us

karmic bane
#

Imagine an exploit in the transfer packets makes that possible

near raptor
#

Some Hytale4Shell stuff

vernal niche
#

Folks do you think I'll get in trouble if I change our Hytale JIRA board so that all tickets in there say they have "Hy Priority"?

kindred crescent
sharp lake
#

Humour increases morale

#

High morale increases productivity, you're helping with meeting release deadlines

lilac stratus
formal burrow
lilac stratus
formal burrow
#

just kidding lol there isn't anything too stable ironically

formal burrow
vernal niche
#

Thinking of good names for the other priority levels.

I don't need even to change Blocker, how nice kekw

stray pasture
vernal niche
tidal mauve
#

Atlassian has a real reverse midas touch

#

man rip trello it was soo good before atlassian got their hands on it

karmic bane
#

Azure DevOps goated change my mind

vernal niche
#

fun fact, Atlassian is making losses, and has not been profitable in two decades

near raptor
#

Atlassian is sunsetting OpsGenie. This means I cannot get traumatized anymore in the middle of the night.

tidal mauve
formal burrow
tidal mauve
#

another one is that its made by a foreign entity but thats minute things

formal burrow
#

one that has an n8n integration so you can hook it up to anything you want

vernal niche
prisma agate
distant kindle
#

Can't wait to try to optimize Hytale

karmic bane
#

Can't wait to Hytale

tidal mauve
#

Cant hytale

wet vine
#

Hey I was wondering

#

How is asset loading to the client supposed to work?

#

Will it be like Garry's mod where before entering a server you have to wait ten thousand years for all of the modded assets to load in?

#

Oh found it.

#

Yeah, like Garry's mod. This is going to be painful.

lilac stratus
royal violet
#

Plus I'm used to SE1 loading with hundreds of mods, so anything under 40mins will be better.

wet vine
#

So everytime you enter a server in hytale, it's like downloading a modpack from scratch

shrewd hearth
lilac stratus
#

I care less about load time and more about server scalability

wet vine
#

But it's still pixel art and JSON sooooo

#

It's probably not that bad โ„ข

#

Unless you managed to put together a kitchen sink modpack with 300 mods, then you're going to suffer a lot.

#

I'd be very careful with sound files

#

Those bloat up like crazy

royal violet
#

Yeah it won't be that long, think of it this way, it's better coded than minecraft unless riot botched the code.

west elk
#

I have 450 MB of server-resourcepacks on my minecraft server ^^
and yeah over half of it is sounds/music

royal violet
#

Which riot probably did ngl.

wet vine
river spruce
royal violet
#

It already has a massive sound design, so alot of modders may use inate sound files to use is some things, they could use code to warp the sounds aswell.

wet vine
#

It won't even be noticeable

#

I'm afraid of downloading a gig of assets at 1mbps

royal violet
royal violet
#

That's my worry too, that might actually shoot me

#

Hopefully it has a dedicated cash ammount, if so we can manually expand it or retract it to save or consume more hard drive space.

wet vine
#

I'd hope you could just tell it download in the background

royal violet
#

It could also dedicate that cash to servers, kinda like minecraft.

royal violet
wet vine
#

So you can go play minigames on hypixel or whatever while you wait for it to finish downloading

royal violet
#

I'm absolutely gonna blow up a steam deck by getting it to natively run hytale

wet vine
#

They said it won't support Linux on release

#

Hopefully they don't also intentionally break proton

#

That would make me quite sad as I bought the thing already lmfaoooo

west elk
#

It's not like they're intentionally not supporting linux

#

they just have windows as their compilation target, that's all

wet vine
royal violet
#

Aye lessgo, and no they just want to start on windows ^^

wet vine
#

Which I found really weird! Like proton is just less work

royal violet
#

They may do a native layer system like proton

wet vine
#

They could've been lazy and just wrapped up wine and the windows binary on a electron launcher

royal violet
#

I've heard that's a possibility for them, something like proton but one that interprets to multiple devices.

lament steeple
#

a flatpack

royal violet
#

I think that's said on the main site

lament steeple
royal violet
#

True

#

I really hope for native launch, it'll give me a reason to fix my steam deck.

lament steeple
#

i believe that we will get a flatpack (thats kind of copium lol) but hearing a developer saying him self that there is a chance is quite nice

royal violet
#

I really hope they consider a translation layer, because if they do they can get it to natively run on anything given enough time.

karmic bane
royal violet
#

Damn, that's a shot in the foot.

karmic bane
#

Linux users just too demanding fr

lament steeple
#

i dont need more than a flatpack

wet vine
lament steeple
#

just something to run on my laptop

wet vine
#

People are just happy to have the game work at all.

karmic bane
silver cloak
#

Too much work just to sell 1000 units. Windows and Mac is a bigger market

wet vine
#

Circle's I've been in are happy to receive testing on proton

lament steeple
wet vine
#

Linux native build is already too much work and a stupid idea for a mass market product like this

lament steeple
#

more of a gut feeling but i feel like more people play on linux than on mac

wet vine
silver cloak
#

Bro I don't know anyone in the world that plays with linux outside programmers

lament steeple
royal violet
#

Million of Linux users use minecraft day-to-day, even if 10% of them come over its still easier to code from Linux to windows than it is to go to mac.

silver cloak
west elk
#

Note that all this talk is only for the launch window of early access. Additional linux compatibility is not out of the cards when they have some more development headroom over the next few years on the way to 1.0

karmic bane
#

Does steam deck even meet Hytale requirements, I dunno

wet vine
#

I'm kinda in a weird spot because most of the stuff I care about is really niche

silver cloak
#

you can't even run hytale on steamdeck...

royal violet
#

Not only do we have the steam deck but now steam os that has been adopted into a bunch of new handheld and not a dedicated computer and vr set.

wet vine
#

So it's usually 20% to 50% Linux people and they are all programmers too lmfao

#

Oh well

royal violet
wet vine
silver cloak
#

I mean software support guys

lament steeple
wet vine
royal violet
#

And it's without the bloat of windows

silver cloak
royal violet
lament steeple
wet vine
#

They sell a dock explicitly so you can use it like a laptop lol

royal violet
#

You can dual boot windows and steam os if you wanted.

#

The steam deck will be the first Linux machine to run hytale, even without native luanch.

rugged halo
#

do we have any preliminary info on setting up a development environment? looking to get a head start in converting my old MC libraries (especially since Mojang slapped an old version of Jackson into the game and now my shit's broken lmao)

royal violet
#

I garuntee the reason why the devs of hytale mention proton is because steam or steam users will make it happend for them.

wet vine
lament steeple
wet vine
#

We kinda need the interface to build against first tho

vernal niche
rugged halo
vernal niche
wet vine
#

As long as you can build you should be able to hand compile that stuff with javac

royal violet
#

That's an issue you could probably get a refund for idk how long you've had it tho.

rugged halo
#

well, dependencies

wet vine
#

Does it really matter?

tidal mauve
#

can still javac it

#

also maven

rugged halo
#

yes, maven is what I was hoping for

tidal mauve
#

you can use whatever as long as you get a jar you want

wet vine
#

I'm going to be using my trusty Kotlin everywhere :>

tidal mauve
rugged halo
#

I should probably clarify - I was wondering if there's gonna be some kind of "project setup" tool that auto generates a Gradle project and makes me want to tear my eyes out (LWJGL does this)

royal violet
#

Hopefully they meant they won't look into proton or all of that for the preliminary launch, and maybe eventually they will do a translation layer, only we can hope tho.

rugged halo
#

As long as that's not the case I'm good lmao

lament steeple
#

i think they said the server api will be using maven? im not sure so dont take my word for it

wet vine
wet vine
#

A template

tidal mauve
rugged halo
#

you do realize I'm asking if I can avoid gradle

wet vine
#

Oh I see

rugged halo
#

i despise it with my whole heart ๐Ÿ˜”

tidal mauve
#

relatable

west elk
#

I feel exactly the same way about maven ^^

rugged halo
#

maven with the one single pom.xml versus gradle with its own syntax and like 18 different tiny fragments of files

lament steeple
wet vine
rugged halo
#

professionally i am a C++ developer so take that with a grain of salt

wet vine
#

And cmake, and meson too

rugged halo
#

cmake is vile

tidal mauve
#

qmake my beloved

lament steeple
#

make is better

rugged halo
#

unironically a regular makefile is easier to deal with than cmake, i feel like

daring lodge
#

clion hates my makefiles

wet vine
vernal niche
rugged halo
#

i have no idea what a nitrado is

#

sounds like a crisp

wet vine
#

Sounds like a brand of nitrate adjacent cleaning product

vernal niche
tidal mauve
lament steeple
rugged halo
#

ah, okay

vernal niche
wet vine
#

Interesting.

rugged halo
#

that's very helpful actually, thanks

lament steeple
lament steeple
#

thats dope

tidal mauve
#

does nitrado support modded astroneer yet

royal violet
#

I wonder how expensive that will be?

vernal niche
tidal mauve
#

i dont know if anyone requested it, i remember it didnt when they started offering it

wet vine
royal violet
#

I also wonder if hytale will do native private servers, like realms.

lament steeple
wet vine
#

Actually, can you even use custom servers on Xbox? I remember having to use this weird proxy to play Minecraft bedrock with my brother in a dedicated server

tidal mauve
#

xbox doesnt want you to play online games without subscription

lament steeple
wet vine
vernal niche
wet vine
#

So you had to use a smartphone to fake a lan game

#

This was on a playstation 4 tho

tidal mauve
#

huh

wet vine
#

YEEEEAH

royal violet
wet vine
#

That's pretty dope

vernal niche
wet vine
royal violet
#

Xbox will come to steam before Sony makes even a step before they allow anything like that.

wet vine
#

You can buy halo on steam rn

royal violet
vernal niche
#

We have a number of PlayStation/crossplay games in our portfolio. ARK, DayZ, farming sim, ..

#

So far sony didn't complain

royal violet
#

I also meant in the inverse of what I said, steam to Xbox, sorry I'm dead in the head rn.

royal violet
wet vine
vernal niche
stray pasture
royal violet
#

True, that's a damn good point.

stray pasture
#

That is a damn honest response. ๐Ÿ˜„

west elk
stray pasture
#

They also are kind of a 1st party solution even now given their partnership being a thing. Want a Hytale server? "Nitrado" we have given early access to to provde day one experience.

west elk
#

1st party in my mind means integration into the launcher and payment services

stray pasture
royal violet
#

If they do go this route which I hope they don't, I'll look for a free way to get a server local or not for me and my friends.

west elk
#

You will always be able to host a server yourself for free

fleet isle
#

There might be something in the Multiplayer server section like: "If you would like to have your own server, may we suggest Nitrado as a provider for your server."

west elk
stray pasture
#

Ahh first party would mean Hypixel themselves host it.

Second party is like Nitrado and Hypixel Studios

3rd party is anyone else.

fleet isle
stray pasture
royal violet
stray pasture
royal violet
#

Good

near raptor
#

Hytale Realms :l

west elk
#

yes. self-hosting is one of their core pillars

#

nothing to worry about there :)

wet vine
#

Now you are competing with microsoft, amazon and half a dozen botique players

west elk
#

Because it's a stable and recurring revenue source

wet vine
#

So you can operate the thing entirely hands off on both sides

west elk
#

then they couldn't really guarantee quality

wet vine
#

I mean, is amazon ever going to go down?

west elk
#

uh yeah, last month? xD

sharp lake
wet vine
#

fair point

wet vine
#

do they run their own servers?

#

Mojang can provide minecraft realms because they are backed by bloody microsoft azure

sharp lake
#

They "waste" a lot on proxies, and that's something they do not like about Minecraft hosting apparently
Said it costs them a lot of money

wet vine
#

define proxies? I am not familiar with minecraft server admin

west elk
wet vine
west elk
sharp lake
#

They have many many of those, which are connected together with load balancers and other things

#

This kind of proxy is not cheap to run

wet vine
near raptor
#

It is somewhat crazy that we have to rely on PaperMC to pull the entire server ecosystem, with Velocity and Paper itself

#

Or Bungee / Spigot, if you're still on the older stack

wet vine
#

I mean it seems a bit crazy we have to rely on Linux to keep the internet up? It's just a open source project like anyother

sharp lake
#

There are basically no big servers that solely rely on Mojang's actual server software at this point
They're all modified with proxies and other projects aim to optimize the game

near raptor
#

I wonder if there is even any server out there that is public that uses the Mojang server jar

west elk
sharp lake
#

Oh man those bandwidth costs on that post

#

I wonder if Hytale is going to do world caching for mini-games
A hash of the initial state or something like that, no need to fetch it again once you have already

near raptor
#

700 dedicated machines is crazy

wet vine
sharp lake
#

I can only imagine how much of the bandwidth would've been unnecessary
We know the assets will be cached, but the world changes constantly

near raptor
#

Since Hypixel will eventually launch a first-party server, they do have all the incentive to optimize the game a lot to keep their server costs down

wet vine
sacred tulip
sharp lake
wet vine
#

Kinda like git... the client could send a hash of the current state of it's chunks then the server could use that to compute just what it needs to change via a history thing

#

bonus points iis that you also get to rollback changes to the world, say, TNT.

near raptor
#

Hm, but you also cannot rely too much on the client's machine to just cache everything, consumes disk space and RAM to keep world information that is not relevant at the moment cached

wet vine
sharp lake
wet vine
#

I think he means wear on the disk?

sharp lake
#

Maybe even offer ways for the server to invalidate certain caches

near raptor
#

Not everyone has speedy SSDs

sharp lake
#

If you offer caching settings, it'd be up to the user

#

You shouldn't get rid of all the benefits because some people might be using technology from 12 years ago

near raptor
#

That would be best. My hardware can certainly cache a bit, but plenty of players are on mid-range laptops with HDDs

sharp lake
#

How big do you think the read/write would be for a minigame world? I'd be very surprised if it were so large that it would even be noticeable compared to the network latency

near raptor
#

Though the Hytale system requirements (if you're only running the client) aren't all that demanding

sharp lake
#

Something like bedwars would be like, 16 chunks
And we know it's like 30kb a chunk

#

And bedwars specifically would be in a void world I think
So that 30kb number is inflated by a large margin even

near raptor
#

It's not like Starfield where the game literally wouldn't function if you didn't have an SSD hah

dawn terrace
near raptor
#

I guess 8GB is a bit

sharp lake
#

It's 8GB for the system lol

wet vine
# sharp lake How big do you think the read/write would be for a minigame world? I'd be very s...
oly@fedora:~$ lsblk -f
NAME        FSTYPE FSVER LABEL      UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                     
โ””โ”€sda1      btrfs        HIGHWAY 17 50342b55-c625-4f9d-b8a2-2baef74b8370  753.1G    19% /run/media/oly/HIGHWAY_17
zram0       swap   1     zram0      e7c46f9a-03f0-4540-b103-c9b395dd05b5                [SWAP]
nvme0n1                                                                                 
โ”œโ”€nvme0n1p1 vfat   FAT32            578C-4E1D                             579.5M     3% /boot/efi
โ”œโ”€nvme0n1p2 ext4   1.0              654975bc-cf19-4158-aa47-67b2692696e2    1.2G    30% /boot
โ”œโ”€nvme0n1p3 btrfs        fedora     98f0a785-31d4-4a3a-81e3-f7fe921cfa53  342.6G    17% /home
โ”‚                                                                                       /
โ””โ”€nvme0n1p4 swap   1                eef63be5-d764-40cc-83fb-8e1b751ccb64                [SWAP]
near raptor
#

The game might "only" use 4-6GBs

sharp lake
#

Are you even able to find machines that are sold with less than 8GB of RAM, but meet the other specs?

sharp lake
sharp lake
wet vine
#

oh i just wanted to comment that i have a hibrid system

sharp lake
#

What is hybrid about that?

wet vine
#

75% of my storage is on spinning rust

dawn terrace
solemn brook
#

Disk (/mnt/data): 231.30 GiB / 18.42 TiB (1%) - ext4

near raptor
#

A Chromebook with only 4GB of RAM? How does it even run Chrome then? ๐Ÿคฃ

sharp lake
#

LOL it was older Chrome

dawn terrace
near raptor
#

"Your Chromebook currently has 4 tabs open, please close one to open another one"

wet vine
#

I have a feeling we are back to 8-4 gbs of ram.

near raptor
#

You'd have to be quick before the RAM prices catch up with the backstock of laptops

wet vine
sharp lake
#

I bought 48GB of DDR5 6GHz for 100$

dawn terrace
near raptor
#

I bought my current desktop in August, dodged a bullet there

dawn terrace
#

Last year i snagged 128gb of ram for like $200 at microcenter

Way overkill but now i pretty much have a goldmine lol, i could make double that selling half the sticks

#

Its crazy

near raptor
#

At least you got something like a microcenter. Europe be lacking hardware stores like that, prices on components here are by default already like 20% higher

dawn terrace
near raptor
#

Often they take the price of a component like it is in dollars and change the symbol to euros. Which is cool and all, if the euro and the dollar would be worth the same, but generally speaking 1.20 dollar is 1 euro.

stray pasture
dawn terrace
#

๐Ÿ˜ฌ

sharp lake
near raptor
#

Define noticable. Here the VAT is 21%

#

But I guess that is already included in the advertised price

sharp lake
#

So if your tax is 20%, and the price is "exactly the same" as the American listing but in euros
That means they did the conversion perfectly lol

near raptor
#

I guess so hah, I never really considered that sales tax isnt yet in the price in the US

raven sparrow
#

How? I cannot download it

near raptor
#

The game isn't released yet :p

kindred crescent
#

New tweets by Slikey!

#

New Hytale Footage... Kind of.. Well. Nerd Video!!! I was asked to show how our Github looks like using "Gource" visualization.
Here it is.. I wonder if you can see the part where collapsed the 300 branches into a single new main branch. Enjoy ๐Ÿ˜‰

GSPs have told us that it seems similar to the other block game.. Also highly depends on how much world generation and how many NPCs are active. You can tweak limits for better performance but its always a trade-off.

hidden jasper
#

Link: xcancel(dot)com/slikey/status/2000706973075955761

stray pasture
#

Space battle!

wet vine
#

It seems like there's a ton of divergence across several branches

#

How does that merge into a single thing? Or are these files and not branches

kindred crescent
hidden jasper
#

If you have no conflicts, it's same as having 1 branch anyway.. but often if you have a lot of branches, they cause conflict when they are going to get merged.. imagine you merge branch A and now it modified some lines that also branch B want to modify (not merged yet), so you have to rebase B to main and merge it then..

#

Yes, it looks like it's files on that git animation

#

And that green explosion is the merge probably, all of a sudden you get a lot of more files

summer loom
wet vine
#

I kinda want to run the linux kernal through that thing, It's a bit cold rn. A burning PC would help.

fathom pelican
#

I messed up not buying 9 packs of ram with a 50 percent off employee discount 1 year ago

#

Could probably buy a house now with that

formal burrow
summer loom
#

12 whole GB of ram? I didn't realize this discord was full of millionaires

flint aspen
#

Im assuming we can't start development till Jan 13th

sharp lake
#

pretty much

flint aspen
#

FAHHHHHH

summer loom
sharp lake
#

What are you trying to make?

flint aspen
#

I can get assets and stuff made but thats about it :p

sharp lake
#

But what is it ๐Ÿ˜ฉ

flint aspen
#

๐Ÿคซ

sharp lake
#

Definitely malicious

#

We'll be keeping our eyes on you

fathom pelican
summer loom
#

Canโ€™t wait for: โ€œClick here for free hybucksโ€

hasty thorn
#

We're off to a good start ๐Ÿคฃ

frozen yew
#

How do I get the โ€œHYTLโ€ badge next to my name

stray pasture
sharp lake
formal burrow
#

if you wanna run AI generated java code on autopilot perhaps do it in a VM

#

you have plenty of time to prepare: servers should likely be ran in a docker container

#

learn java, learn vscode/intellij, learn maven, learn to make superjars/fatjars and learn how to use third party libraries, get your battle station setup, get an openrouter (so you have access to over 500 models, it's prepaid so you don't accidently burn hundreds of dollars on openai/claude tokens)

#

you have plenty of prep time to get yourself ahead

stray pasture
stray pasture
formal burrow
# stray pasture What in the world are super/fat jars? ๐Ÿ˜„

they are abominations: but, when you want to connect to redis servers, mysql servers, mongodb servers, it lets you use the third party libraries and drag the jar as is in the plugins folder of the minecraft server. not entirely a good idea but good for someone starting out. You could run into legal issues distributing fat jars but, it's a hotfix for in-house solutions, the people working on DonutSMP's built-in server shardingtech could be doing this and no one would care legally. However, it makes the jars take up more storage

stray pasture
formal burrow
stray pasture
#

Now I can see where the legal issues may exist. ๐Ÿ˜„

formal burrow
#

well the best solution is to have the jar externally download the jar when it's run in the plugins folder, then for it to use it

#

Not many people really expected Riot, the people who messed up Hytale, to sell the game back to Simon. These dumb companies constantly sit on IPs to do nothing with it (quoting the CEO from smiling friends)

#

being given almost 2 months from the buyback announcement to set everything up is more than enough time

formal burrow
# flint aspen Im assuming we can't start development till Jan 13th

So yeah long story short: Get an openrouter account (prepaid account for using 500 different AI models, can be plugged into cursor and roocode, you wanna be able to use the dirt cheap Deepseek stuff), set up some VMs, find some dirt cheap servers like the OVH $4.20/month 8gb of ram server and the advinservers $6/month 8GB of RAM single core Ryzen 9950x. Use those VMs/remote desktops to run your vibecode workers in them automatically so you only gotta worry about the contained VM nuking itself if it does something as stupid as delete an entire home directory (which Claude and Gemini I think have reportedly done)

#

Find some good AI models for coding, Claude is considered one of the best. Train yourself in using Docker. Learn to use third party libraries in Java since you'll likely be using PostgreSQL/MongoDB/Redis for stuff if you wanna actually optimize. grab VSCode/Intellij/Cursor. IntelliJ and VSCode with Roocode is probably what you want

#

im already in the process myself of setting up some self hosted stuff, I might set up a zulip since it has the apps and an n8n integration, nocodb selfhost for airtable alternative, n8n integration, perhaps teach yourself to write a NodeJS or Python web app so you can make a REST web API that Hytale can interface with so you can create an n8n bridge. Learn to use a REST API.

#

One use-case would be, take all public messages in a Hytale game server chat in the past 10 minutes, plug it into deepseek AI, have it summarize and pick important messages, and log it in a Zulip or in a Discord bot so the staff have summaries of what's going on. A Hytale plugin could log the last 10 minutes of messages, send it to the n8n node, the workflow summarizes it, then reports it back.

sharp lake
sharp lake
#

They should just install VS Code or something, grab an extension for basic AI code completion and transformation, and then run with that
Trying to use fully autonomous agents when you don't understand the workflow yourself is a bad idea

#

Java mods are extremely easy to compile, and you really don't need to be jumping through hoops to use cloud compute to help you write and compile them

#

It'll be unfathomably slow to work in that manner, even more so than just using a built-in chat window in VS Code

stray pasture
#

But "learning" java is to much work. Takes a few years. ๐Ÿ˜›

sharp lake
stray pasture
sharp lake
stray pasture
sharp lake
#

When writing Lua for ComputerCraft programs, I didn't know the basics so I just wrote stuff like for i in 1..3; print i; done and it worked fine
Taught me how to iterate over a range of numbers

#

I wouldn't trust it to do literally anything else though ๐Ÿ’€
Asking it to write a whole plugin is literal lunacy
Asking it to create an empty class for you is more reasonable

stray pasture
sharp lake
#

AI just makes things that look correct enough, so it can be difficult to spot logical errors

#

I did try to ask Google Gemini to "clean this up a bit" when referring to a code block, and it failed spectacularly, just the other day ๐Ÿ’€

stray pasture
stray pasture
sharp lake
#

imgur*.*com/tEWfM3d
If you were curious

#

In summary, it didn't clean it up. It added like 40 lines of comments, and broke the functionality of the program by over-complicating and missing things

stray pasture
#

I may be on like my 400th prompt though, so you know. it is an iterative process! ๐Ÿ˜„ - Gotta learn the AI language, but I have written some apps in Rust, C++, Java, C#. Scripts, and I mean 6 hours to get a non UI pure functionality and I can get something decent!

(I didn't write, I read and think though) ๐Ÿ˜„

sharp lake
#

The original code was like this:

  • Create folders
  • Copy data to final directory
  • Make every file executable

The updated one was:

  • Create folders (but expanded to be 4 lines instead of just one)
  • Uses a find command to make every folder read/write and executable (which was pointless because it's a read-only directory, and the copy command does +x by default)
  • Uses another find command to make every file read/write (which was pointless because it's a read-only directory)
  • Checks if a folder exists and then uses another find command to make each file in it executable (it searches a folder that doesn't matter, and misses the one that does)
fading mist
#

who could have guessed that vibe coding would lead to functionality and optimization problems

sharp lake
#

Plus the multi-line comments explaining the basic GNU utilities and how they were being used

#

As if nobody has ever used cp or chmod before

sharp lake
stray pasture
#

Yeah that is fun, I found a way to avoid a lot of the stuff. But it does require a lot more refined and smaller chunks usually once sizable requires a bit of context from your code base. Every now and again I will get some of that junk

sharp lake
#

It couldn't even handle a 5 line bash script so, and that was the latest Flash model from Google ๐Ÿ˜ญ

fading mist
#

i see quite a lot of similarities between asking ai to review/write code and the halting problem

fading mist
#

you're asking to see whether an algorithm can determine whether some code will function correctly

fading mist
sharp lake
#

Ah

fading mist
#

in the case of ai generating code, it could be equivalent to asking whether the code generated by the ai eventually reaches the return statement for the main method

#

and famously, alan turing showed that there isn't a better way than simply running the code and waiting until it stops (for completely arbitrary programs)

stray pasture
fading mist
#

interestingly he wasn't the first

#

but his proof is probably the most famous

stray pasture
#

I took the Church-Turing thesis about what are the absolute pure basics for ANY application to function and deduced it to "Transport, Storage, and Events" - Anything can essentially be built off of these three. And welp, I am 20 plugins deep, one simple runtime and a very imaginative brain. ๐Ÿ˜„

fading mist
#

but the point is that obviously for a code to work properly it should halt at some point (possibly with some kind of user input), and the language model would need to be able to determine whether the program halts before it can determine whether the program halts in the correct way

#

since there isn't a way to determine whether an arbitrary program will eventually halt without running it until it halts, this to me is a heuristic way of explaining why ai is bad at writing code

stray pasture
#

We also naturally break into smaller pieces - We can't solve the halting problem either, yet we have a brain that forces us to create workable code due to that iterative and testing step before we grow into complexity

This is essentially how I think people should use AI. - But I have seen many just ask it to create whatever they described.

fading mist
#

the difficulty in getting ai to write code is that it doesn't have any fast way of checking whether its output actually makes sense, besides being laboriously and manually trained by skilled programmers

stray pasture
sharp lake
#

It's just predictive text, and I'm of the opinion that a diffusion-like approach is going to be a better path forward for language modelling
It's bad at writing code just like it's bad at writing stories
It gets too specific, and there isn't enough data at that point
Diffusion doesn't solve that, but it'd be a better fit for 'fill-in-middle' models like programming ones

stray pasture
fading mist
sharp lake
#

That's how stories fail too

#

Code itself is a very limited token-set compared to language though, which helps with modelling it

fading mist
#

the bible isn't always consistent with itself but it still generally succeeds in communicating its messages

stray pasture
fading mist
#

the thing about code is it generally either works or it doesn't

stray pasture
#

Correct! - But from my understanding your saying AI should skip the fails humans do because its AI?

fading mist
#

my point is that an effective (and thereby consistent) code-generating ai should reliably generate functioning code

#

but for various reasons this is infeasible

fathom pelican
#

You know your stuff

#

And didnโ€™t expect to come in here and see Turing in the chat. That was a nice surprise and read

stray pasture
fading mist
#

the point of having a machine do the work is that it should surpass humans in productivity

#

otherwise it's a waste of time and effort

spice sluice
stray pasture
#

Using AI is more productive, but making it build a system IT has no clue about is asking me to go build a black hole.

fading mist
stray pasture
#

I can't see a world where AI is purly more productive than a human. There would have to be a tandom amount of work being done.

I guess it would be if you ask it to create an already solved problem

sharp lake
#

I also think it's infeasible for it to reliably generate code
The longer the problem, it gets exponentially more niche
Predictive models just don't work for edge-cases, and anything overly specific is an edge-case

stray pasture
sharp lake
#

Maybe if you find a model that isn't overfitted and wordy ๐Ÿ’€
The fine-tuning they've been doing at Google is definitely a gimmick
The last thing I want an AI to do is spam my code with a thousand comments completely unprompted

silver bronze
#

Haven't read the entire discussion but curious to see why people are planning to use AI for Hytale development. Sounds like a not too great idea to me even if you somehow finetune it on the entire server source ๐Ÿ˜…

fathom pelican
#

I donโ€™t think the issue is AI outright replacing programmers tho.

Itโ€™s the fact that one senior with AI can now be far more productive causing companies to hire much less juniors and mid levels. This isnโ€™t conjecture itโ€™s already happening and will accelerate until AI plateaus

fading mist
sharp lake
#

Last time we talked about this lol

fading mist
stray pasture
fathom pelican
fading mist
#

i think people should be proficient in at least one programming language anyway, even if it's just python

stray pasture
fathom pelican
#

Python isnโ€™t a language , itโ€™s just AI html for scientific nerds (Iโ€™m jk donโ€™t flame me)

fading mist
#

like i study chemistry, but i still am very familiar with java and have some familiarity with c

silver bronze
#

I simply do not see how it could provide any benefits. It cannot help writing any "new" code, which basically all Hytale development will fall under. It also cannot follow any internal or external (community) standards properly as they are not yet defined. It is up to you as the (lead) developer of your project, together with the Hytale community to set those standards to ones you consider appropriate. AI will simply just go for the nearest neighbour when it comes to coding styles but it might not be the best.

How would you use it then for Hytale?

fathom pelican
#

The average person didnโ€™t care about coding until people learned what you could make. Letโ€™s be honest

sharp lake
stray pasture
stray pasture
fathom pelican
#

Hytale source content isnโ€™t the issue. Length and context based performance deterioration is. Nothing in hytale source is new. But itโ€™s big and convoluted.

sharp lake
sharp lake
silver bronze
#

Sure, you could argue things have been made before which is obviously true, but also you named it yourself already: its context that matters. And that context, especially in a greenfield project, is non-existant to an AI and has not even been properly established yet.

fathom pelican
stray pasture
#

If I want to develop a system that doesn't exist "No API" etc - I need to understand what I am making to tell it what I want, I need to understand what it all means. Doesn't mean I need to type it. ๐Ÿ˜› (Should refine, doesn't mean I need to type all of it)

fathom pelican
#

Oh well. Wherever anyone stands on this AI thing. Iโ€™ve been wanting to learn potato farming anyways

silver bronze
#

I consider context to be more in-depth than just the server source code. Just how Bukkit plugin development had its own "rules" and standards people followed, Hytale will too and those will be established over time.

For example:
If you asked an AI without context to do something every second, it'd probably just make a 1 second loop. Whereas with Bukkit, you'd create a Runnable of 20 ticks etc.

Technically the AI is not wrong, but it's missing a subcontext rule. Which will always happen, unless you explicitly define these. Which could surely work, but will involve a lot of manual labour.

sharp lake
#

Technically the AI would be wrong because it'd almost certainly stall the thread LMFAO

stray pasture
sharp lake
silver bronze
fathom pelican
sharp lake
#

LMAO

stray pasture
#

I think what the missing piece is generating solutions vs using it to type faster.

silver bronze
#

I prefer MonkeyType for the latter ๐Ÿ˜›

sharp lake
#

What is monkeytype?

stray pasture
#

Like I know what I want, I know how to make it, I can visualize it - But why write 500 lines when it gets generated in a few seconds and a few minutes to reveiw and modify? ๐Ÿ˜„

stray pasture
silver bronze
sharp lake
#

Oh, I see

fading mist
#

my fastest in monkeytype expert mode 30s 100% accuracy was 124wpm

sharp lake
#

I type at 130wpm, but I'm not sure how helpful that is for coding LMFAO
It's probably more important to learn vim ๐Ÿ’€

fading mist
fathom pelican
silver bronze
fading mist
#

why use a text editor when you can use an ide

sharp lake
#

Yeah I haven't invested time into vim either
I use Zed as my IDE normally ๐Ÿ’€

fathom pelican
#

It took me like a year to figure out how to close nano ๐Ÿ’€

sharp lake
summer loom
#

Also coding wpm is frequently much slower than writing wpm because coding requires you to type characters like [] {} . , +_- *&% and other stuff constantly that is near the edge of the keyboard

fading mist
#

my school offered me a free license to the premium intellij features so i use intellij

sharp lake
#

I intentionally avoid paid and closed source tooling
I personally think they're a scam!

fathom pelican
fading mist
#

intellij is really reliable for java so i use it to develop minecraft mods

silver bronze
#

IntelliJ community edition is free luckily but I do understand and respect your views

sharp lake
#

I hope they go under and someone open sources their entire project after decimating their company ๐Ÿ˜

fathom pelican
sharp lake
#

I think I have IntelliJ IDEA installed but I haven't used it in a very long time
And will be actively avoiding it when Hytale drops

silver bronze
#

Do we know if Hytale recommends Gradle/Maven yet?

fathom pelican
sharp lake
#

they're cancer.

fathom pelican
silver bronze
#

Both are a b**** to me but I prefer Gradle

fathom pelican
#

It canโ€™t be worse than javascript dependency management and bundlingโ€ฆ.right..

sharp lake
silver bronze
#

"It can't be worse than javascript" applies to all things in this world to be fair

sharp lake
#

Anyway I hope it's gradle too ๐Ÿ˜ญ

fathom pelican
#

Iโ€™ve had to update two projects this week alone from 2 vulnerabilities throughout the ecosystem. Just casual server side remote shell execution you know nothing major

sharp lake
#

Check my port 22, and try the top 5 most common passwords

#

I fear no RCE exploit, for I have RCE enabled already

silver bronze
#

Cargo is super chill to use though I must say

sharp lake
#

Yeah, it was fine
Which is like, the best a dependency manager could do

fathom pelican
silver bronze
#

PIP is centralised too (I think?) And its not as good so ๐Ÿ˜…

fathom pelican
#

Rust has interested me but itโ€™s so niche. As a rule of thumb I never bother with anything that wonโ€™t make me bank. Just too old and if Iโ€™m spending time away from family and friends it has to be worth while

#

I havenโ€™t found many rust jobs.

sharp lake
#

Microsoft went all in on Rust and it's already been added to the Linux kernel

fathom pelican
#

I know itโ€™s popular

sharp lake
#

The US government even formally recommended Rust quite a few years ago lmao

silver bronze
#

"Niche" is a bit pessimistic, "upcoming market" is more optimistic. ๐Ÿ˜…

fathom pelican
sharp lake
fathom pelican
fathom pelican
#

And I know people that work at the government. It is slow. Iโ€™ll be dead by then

sharp lake
#

Rust first appeared in 2012, was added to the Linux kernel in 2020
The government thing was in 2024, and Microsoft started their mass-translation in 2024 or so as well

fathom pelican
#

But itโ€™s all good cope anyways. Iโ€™ll never wrap my head around rust paradigms it just feels like it does everything completely different

fathom pelican
#

Just 3 years ago I sat down and looked at the job market for rust

#

It was flat out terrible.

sharp lake
#

Amazon started using Rust for some things in 2019, and apparently Discord rewrote significant parts of their infrastructure in Rust

#

If you're comparing it to the popularity of JavaScript, you shouldn't be ๐Ÿ’€

fathom pelican
#

I compare it to basically anything else

sharp lake
#

In the 2025 Stack Overflow Developer Survey, 14.8% of respondents had recently done extensive development in Rust.[191] The survey named Rust the "most admired programming language" annually from 2016 to 2025 (inclusive), as measured by the number of existing developers interested in continuing to work in the language.[192][note 7] In 2025, 29.2% of developers not currently working in Rust expressed an interest in doing so.[191]
It's topped the charts 9 years in a row apparently?

fathom pelican
#

Java eats it, python , JavaScript , even c and c++ , Ruby , still better options for employment

stray pasture
fathom pelican
#

If you click on stack overflow for language most want to learn , rust is super high , then change to used proffesionally and itโ€™s rock bottom. Itโ€™s ultimately a shiny toy in the grand scheme of things that devs love. But if I go to 5 diff corporations right now on my client list for a new implementation no one will choose rust even if I advocate for it

silver bronze
#

Well hey, you can most likely rewrite parts of Hytale in Rust for increased performance ๐Ÿ˜

stray pasture
fathom pelican
#

Woah. I didnโ€™t know stack overflow 2025 was out already. Only 14 percent of devs had 1-5 years of experience ๐Ÿ’€ I donโ€™t think Iโ€™ve ever seen that. That is the single biggest โ€œjuniors are cookedโ€ stat Iโ€™ve ever seen

stray pasture
sharp lake
fathom pelican
#

I didnโ€™t know the deviation I was based off prior years. Just looking at it now haha didnโ€™t even know new one was out

#

Now I got something to do

stray pasture
#

Oooh I wonder where we are sitting now since Amazon had their fun big layoff? - Many game devs sittin out there, nearly impossible to get a job cause nobody is hiring - Don't go into the games industry yall!

sharp lake
#

It must've been some time ago bc I didn't know the new one was out either ๐Ÿ™ˆ
The deviation was about 0.9% for 2024, and it's now it's a third of that

#

Either way, I wouldn't consider Rust to be niche at all
It's extremely popular among developers in general, and a lot of big names are using it now
There are about 50 jobs in my state for it apparently ๐Ÿ’€
But assuming half of them are bad listings, that's still like 20 jobs

stray pasture
fathom pelican
#

Thatโ€™s super niche in the industry

stray pasture
#

Its like one department or just a startup - Like 50 jobs? ๐Ÿ˜„

stray pasture
#

I thought it was 50 companies at first.

sharp lake
#

It's not like developers are born every day, most people give up
That's 12% of the development jobs in my area, 12% of the market here is Rust lol

fathom pelican
#

I want to learn the language but it wonโ€™t buy me bread

sharp lake
#

If you move here, you could buy bread with it ๐Ÿ’€

stray pasture
fathom pelican
#

I want to get into Java with hytale because at my workplace they use Java for backend systems

stray pasture
#

Maybe not a lot of money! But bread!

fathom pelican
#

Yes well. But itโ€™s also oracle db..

stray pasture
sharp lake
#

My workplace uses fckin Node for most systems ๐Ÿ˜ญ
And all of our hand-helds were running Windows 98 until last year

stray pasture
stray pasture
fathom pelican
#

Thatโ€™s how it is. Were devs. We know what sucks and whatโ€™s awesome but companies donโ€™t care. every server Iโ€™ve written at work runs on node ๐Ÿ’€

sharp lake
#

So yeah, in case you wanted to know what my area is like, and why 12% of jobs are Rust
It's because nobody has touched anything in 30 years ๐Ÿ˜ญ

stray pasture
#

Python baby! Gotta get into that AI Engineer role! - Ya know? (Wild that is a real job)...

sharp lake
#

Been there done that
It sucks by the way, don't do that

fallen geyser
#

who want to play minecraft :P?

stray pasture
sharp lake
#

/execute at Caroline run summon lightning_bolt

stray pasture
fathom pelican
silver bronze
stray pasture
sharp lake
# stray pasture What is that like anyway?

Well, it's a lot of math
And if you're not the math person, you're the API person
And their API implementations suck because they're all made by data scientists and not programmers

fathom pelican
#

Iโ€™ve been tempted lately to just rebrand as an AI automation specialist or something. Not too low level but high enough that enterprise companies still want it.

stray pasture
stray pasture
sharp lake
#

We complain about frickin Mojang in here
What a bunch of jerks

#

They led us on for a literal decade with their modding API promises, hired Searge and everything

#

And for what, they didn't even use him after poaching the community talent

#

They don't even listen, they're too busy milking the golden goose
And they're doing it with the code quality of a literal potted plant

stray pasture
silver bronze
#

I remember us being a bit harsh on Hytale performance recently but hey! An unoptimized early access has similar performance to the biggest game ever ๐Ÿ˜„

stray pasture
kindred crescent
silver bronze
#

Can't really judge without more context

sharp lake
#

I don't think so, but apparently they want to aim higher already so
They must think so

kindred crescent
#

Just the fact it has built-in shaders already...

sharp lake
#

Not even willing to give server spec recommendations yet

stray pasture
silver bronze
#

Like a 2-3 players 1.21 SMP runs perfectly on 1GB RAM dont let the DRAM mafia convince you elsewise

kindred crescent
#

Oh you guys meant server

stray pasture
sharp lake
stray pasture
kindred crescent
#

I wouldn't call it a blog post. It is more of a technical manual with some example data. Just wrapped up a playtest with 70 people on various hardware until we finally crashed the server.
There is a lot of context such as "minigame server" vs "exploration mode SMP". We believe that a 3 vCore + 8 GB server can sustain 6-8 players. A Ryzen 7950x with 12 GB RAM server, we were able to push 70 players but TPS degraded until the server crashed (~45 minutes).
I think we will defintiely see 200 player minigames such as Mega Walls or Super Sky Wars. While vanilla SMP is going to require some beefy hardware to push 100 players in a single SMP.
We are continuing our effort to improve stability and further add performance optimizations to get those big anarchy servers.

sharp lake
#

Terraria has been going at it for more than a decade, and they're still indie basically

sharp lake
stray pasture
silver bronze
sharp lake
kindred crescent
silver bronze
sharp lake
stray pasture
kindred crescent
stray pasture
#

Grab it in memory shovel it out to a nicely structure DB.

silver bronze
#

Unsure how vintage story does that but I can see what you might be implying

kindred crescent
#

Then again, you can optimize your server by turning off features:

Question:

Is there going to be the capabilities to disable certain vanilla features entirely or have more control over them like e.g precise control over chunk loading, disabling lighting updates, creating void worlds, disabling mob AI

Answer:

Yes to all of them. You dont just disable it but you can entirely unload the capabilities from the classloader and replace them with custom solutions.

silver bronze
#

Okay that's possible. But then what the frick is the other 8GB RAM for ๐Ÿ˜…

kindred crescent
stray pasture