#server-plugins-read-only

1 messages Β· Page 23 of 1

old moon
#

That would be sick, hopefully that is the case, would have to see it before we can believe it πŸ₯²

sharp lake
#

It would be such an unusual addition, so I'm guessing that won't be the case
But it would certainly be interesting if it's actually live-live and not horribly laggy to fetch new assets

teal flame
#

Dynamic asset generation is one feature that is integral for some things my team has planned. It might be something we end up bothering the devs to implement if it isn't available.

sharp lake
#

You'll always be able to generate them dynamically at startup, no matter how they tackle this
But doing so while running is the quirky one

#

Do you actually need it while running? And not just at startup

#

Because that sounds like a really interesting thing you're putting together if so

teal flame
old moon
#

I honestly feel like it will be server-driven streaming to deliver the assets live. You update your assets on your server and once you apply these updates, the assets will be sent through immediately for clients to ingest?

teal flame
#

I want to talk more about it but we're keeping the details under wraps for the time being.

sharp lake
#

If it's not intensive and you can just send assets literally whenever you want, that will be so neat for a billion things

old moon
teal flame
sharp lake
old moon
#

I think the live assets is going to be what a lot of server owners will need to get used to and probably won't get right straight away

sharp lake
#

You can just add your own validation as well, no need to bother them

#

User-uploaded paintings, statues, etc would all be super cool

#

And it would be even neater if you could do it from in-game, uploading arbitrary data when prompted

#

I'd expect things like that to require a web server though lol

teal flame
#

So no need to worry about the headache of asset validation.

sharp lake
#

Idk what UGC is! But dynamic content applies to user-uploaded stuff and logic-driven stuff

old moon
#

User generated content

teal flame
#

UGC = User Generated Content. Sorry, I am addicted to abbreviations.

old moon
#

Yeah I had to think about that one for a second

sharp lake
#

I think we're talking about the same concepts still, just different ways of using live assets

teal flame
#

Yeah it's pretty much the same idea, minus needing to validate player submissions I guess.

sharp lake
#

You could always generate garbage data by accident, so you might still want a validator if there isn't one built-in for handling bad assets gracefully

#

Minecraft for example just drops the entire datapack lol

teal flame
#

Yeah true. Sanity check validation.

sharp lake
#

And in these circumstances, that would be dropping literally everything, since it's fully data-driven πŸ™ˆ
So I'm assuming they just ignore bad files

#

this kind of excitement is draining 😩 LMAO

#

can't handle a Hytale revival and Steam Controller 2 both coming out in january

teal flame
sharp lake
#

We've seen this done on Minecraft already actually, with "Image to Map" plugins

#

Could probably make some neat demos with something like /mold ruby:3:2 for customizing a sword's adornment, length, and hilt width
Just as an example

#

/statue sketchfab.co/id and /painting imgur.co/id
Simple polygon and bounding box validation checks for the former, and a standard NSFW filter for the latter

wraith inlet
#

Is there any info about server plugins rn or is it all speculative

teal flame
sharp lake
sharp lake
wraith inlet
#

Is client modding also java?

sharp lake
wraith inlet
#

Erm, what.

sharp lake
# wraith inlet Erm, what.

All the content will be data-driven and server-side
Assets will be synced to clients when necessary
Look up the blog post lol

teal flame
# wraith inlet Is there any info about server plugins rn or is it all speculative

We know that:

  • Server plugins are written in a JVM language (java/kotlin/etc. Your choice.)
  • Server plugins are the most powerful supported way to do modding.
  • Client modding is not supported officially. Client is native machine language.
  • Plugins can define data. The game is data-driven. Most game logic is server-side.
  • Client's job is mostly just player input, communication with server, and running graphics.
#

All of this is based on developer tweets and official blogposts.

wraith inlet
#

Client still needs mod assets.
So I assume it'll download it at connection time. Sus for security though

teal flame
#

I want to post the link but I can't because links are blocked. Go to the Hytale website, blog posts, and check out "Modding Strategy and Status" or whatever it's called.

stray pasture
wraith inlet
#

if it's going to be ip-based connection + entirely server downloaded assets/scripts

stray pasture
teal flame
stray pasture
wraith inlet
#

Otherwise the server modding is severely handicapped compared to MC, which feels like a step backwards

stray pasture
teal flame
#

And if you need a new capability it should be possible to bother the developers to add it.

sharp lake
#

I don't think it'll be particularly limited if they're thorough enough with the client API

#

The server-side modding will be legendarily open, and that's the important part anyway for multiplayer

#

Assuming they're thorough enough with the client API, the next concern would be latency making the experience clunky

#

You want certain things to be processed on the client or it'll feel terrible

teal flame
#

If not, even just walking around would feel awful on a poor connection.

stray pasture
manic pine
sharp lake
teal flame
sharp lake
#

The hope would be that the client API would allow you to send commands to help smooth the experience
Toggling client-side movement, or some arbitrary payload that tells the client how it should be moving
Hopefully something more than simple velocity/teleportation commands

stray pasture
teal flame
#

I'm saying there's degrees to it, though. And vanilla MC doesn't actually do comprehensive checks.

stray pasture
#

You make it responsive by client prediction and reconciliation.

Client requests the server for new positions, in the mean time client is already doing such positions changes locally "hoping theybare correct" if not they get correct and reconciled by thrbserver.

sharp lake
#

Yeah, so ideally you'll be able to inform the client how to predict the movement, in circumstances where it has been modified

teal flame
manic pine
#

I wonder if we have any sort of clientside prediction feature for plugins, it's kinda hard to do without custom code running in the client

sharp lake
#

Unfortunately, I wouldn't be surprised if there's almost zero prediction and it just feels clunky with some things

teal flame
#

For EA, yeah. As long as it's added eventually I'll be happy.

manic pine
sharp lake
#

Easiest solution will just be some rudimentary prediction that is toggled on and off with a command sent from the server
Kind of like how Minecraft does so

#

If you get on a pig and fall through the air, your movement is not predicted
If you hold a carrot on a stick, it is
And you can swap back and forth while the server is frozen to witness it yourself

#

It wouldn't be perfect but it'd be a solution at least, and offer the flexibility of fully server-side movement with the responsiveness of client-side movement

stray pasture
#

For a company who has been the largest network on Minecraft I sure hope they would do server authoritative. It isnt hard to implement, it really needs to be architected this way from the ground up.

sharp lake
#

I don't think they'll let clients just send any position or movement data and roll with it, that would be super exploitable

#

You should always verify/sanitize what the client gives you
Like no more than a few meters of deviation, among other things that would keep it reasonable
It's just waiting for ping-pong is terrible, so you want to at least do something while you wait

stray pasture
#

Minecraft has a terrible implementation of server authoritative movement. Something you have to do a whole lot more to correct and fix. So logically you would just simulate movement.

Either way, adding new mechanics would require client side additions client auth or not the client still needs that data to send.

One if the main things here is Minecraft was not built from the ground up with multi-player in mind so they bolted on that system which is why its a heuristic simulation/auth. It takes guess within parameters (still is server authoritative but half way baked)

Either way it still sounds very flexible without client sided stuff.

silver cloak
#

Minecraft didn't have "LEFT RIGHT FORWARD BACKWARD JUMP" until last year 😭

silver cloak
vocal sentinel
#

What language is the server built in?

west elk
#

Java

vocal sentinel
# west elk Java

100%?? Because the original code was in a fork of unreal engine

#

Never mind server can be in Java even if client isn’t

#

My bad

woeful depot
#

Unreal engine? Never heard about it in Hytale

#

Server works in Java 25 and Client is made in .NET Native AOT, meaning you can't decompile it with simple ILSpy tricks.

woeful finch
#

They took inspiration from Unreal Engine's visual scripting and detail panel layout. Not a fork though

marble elbow
#

how can i make plugins for it

#

and servers

woeful depot
#

You can start making them on launch day January 13th

formal burrow
#

whatever can be done in Roblox, means that it can be sandboxed enough for Hytale to make it possible

stray pasture
formal burrow
stray pasture
fleet isle
#

So apparently the Hytale team tried playing the game with player count of 56 players and only then did the game start to break apparently. Is that a big W for server owners?

gleaming temple
#

and which test was that? i can not recall anything saying about "the game broke" in context of multiplayer testing

hidden jasper
gleaming karma
daring lodge
#

first entity clear plugin?

fleet isle
gleaming karma
#

Not sure how the performance drops in vanilla as I always have performance mods on and I rarely notice a drop

hidden jasper
hidden jasper
#

The bug with 3000 entities was that server started spawning entities out of control in a loop, it wasn't intended

fleet isle
#

Technically the world record for most players on a single instance of Minecraft server is around 2k players so probably that's how it should be compared

#

I mean, it's difficult to say cause like everyone will have a different opinion on how it should be compared even after the game launches and I'm sure there will be people trying to compare these two games

gleaming karma
hidden jasper
gleaming karma
stray pasture
#

I am quite suprised 3000 entities hurt the server so badly to be fair. I read an ECS is being used which most can usually support 10 of thousands on a single thread and hundreds of thousands if parrallel.

hidden jasper
#

It wasn't said it hurt the server badly, they just said that server started to misbehave when testing with 56 players, we don't know what happened, it might be slight TPS drop on some low CPU, I would bet they wont start testing it on high-end CPUs, so they can measure minimal requirements

silver bronze
#

Wonder how Hytale's performance will be and if it's comparable to older or newer Minecraft

hidden jasper
# silver bronze To be fair, 1.9-1.12, at least according to my experiences, also still performed...

That makes sense, because I think since 1.13 the world height was also increased so chunks were larger.. I think we can safely assume that hytale performance will not even be comparable to Minecraft.. they had the best people working on it (like people who created optifine and also worked on some minecraft server optimizations), and it will be open-source, so if there is some thing that consumes a lot of resources, community can optimize it and send the patch

#

The first version we'll se 13.01 will be the worst optimized version ever, and then it will be only better I assume.. with Minecraft it was quite the opposite

silver bronze
#

The world height increase only happened in 1.17 didn't it? I'm not too well versed on the newer versions so not sure.
I'd be very happy if performance is on par with the 1.8-1.12 era or such. Because Hytale is still a heavier game than Minecraft based on how many features it has. Although I do believe they'll have proper optimisations unlike a certain other block game owned by Microsoft

hidden jasper
#

Ah yes, 1.13 just brought new world generation system

stray pasture
silver bronze
#

Also with all the ocean changes in 1.13 I believe they changed some water physics and such which decreased performance even more. I cannot exactly recall what they changed specifically but server/client performance both took a huge hit

#

And then with increased height limit it got even worse. Curious how Hytale is going to fix this and if their larger chunks will have positive/negative impact

silver cloak
#

An untouched hytale server can def run twice or thrice as much as a minecraft...

#

The only bottleneck is the hardware

stray pasture
#

I stand corrected. The new engine uses Flecs ECS. The current legacy engine uses a home grown one that has been stated to run not so well. This is why, the optimizations just aren't in just yet.

silver bronze
#

I'm mostly interested in the fact they mentioned (don't remember where) being able to turn features off on the server side if they are unneccesary. That could save tons of resources for specific types of servers

silent magnet
#

wait... so are we able to start making plugins for hytale NOW?

silver cloak
#

I mean I saw it somewhere but they are tweeting like 100 things a day so it's hard to miss

stray pasture
silver cloak
stray pasture
#

Maybe we can use CMD to pre configure for instances?

silver bronze
#

Something like Skywars could have so many features disabled correct, if that could run with very low resources that would be very neat

silver cloak
#

If you turn AI off, blockstate updates. That alone save a lot of resources

silver cloak
stray pasture
silver cloak
hidden jasper
# silent magnet wait... so are we able to start making plugins for hytale NOW?

Well, yes and no.. you can make 1/2 of the plugin and then edit it accordingly when API comes out, I plan to do a few plugins (WorldBorder, LandProtection, some api for storing Currencies etc.) and they will all be open-source ahead of release (just with basic stuff like core logic and data saving), and when game is released, it will just be modified.. the sooner the basic plugins will be out, the less fragmentation there will be, we don't need to learn players to work with 10 different plugins for land protection..

stray pasture
silver bronze
#

That sounds like a neat idea, would be nice to have some standardisation upfront so the community isn't doing double work. Things like a rank manager would be cool too if it isn't built into Hytale already. Also world managers, easy way to create worlds ingame etc. The question is moreso how many of these are already in the game

silver cloak
#

I honestly think you can code something pretty neat day 1. Considering they got community servers in their trailers... and the server api is currently that

silent magnet
#

quickly someone make 2 tools. i have an idea for a server

silver cloak
#

mmo rpg and survival with custom items?

silver bronze
#

I will definitely be looking into that myself because it does seem very nice, even if it's just to try out tooling. But I'm sure with how early access the game is it'll be a bit of a bumpy ride originally. But hey, part of the fun is because of that

silver cloak
#

Yeah I really hope they don't break everything 😭

stray pasture
silver bronze
#

I'm 100% sure there will be breaking changes in API especially in the beginning. Running a whole network stably will be impossible but I don't think this should be your goal in the short term

silver cloak
stray pasture
silver cloak
#

Mine a simple pvp server πŸ’€

silver bronze
#

I'm definitely looking into setting up a small minigames server even though that will require some support, I'm not exactly a builder πŸ˜…

silver cloak
#

Personally I want to make a pvp server to test out the combat and play around with the api and once I am familiar and ready to build something big. I will invest money there

silver bronze
#

Oh yeah good idea, pvp will be amazing I'm sure with all those possibilities

silver cloak
#

Yeah. Lots of weapons and abilities per

stray pasture
#

Anyone tools or infrastructure focused?

silver cloak
#

I would honestly wait for something that allows me to create movable trains, planes etc

#

Once that gets released I am going all in

silver bronze
silver cloak
#

I need this blog raaaa

silver bronze
#

That's actually a thing I haven't considered yet. Spin-up time of a Hytale instance will be crucial, Minecraft instances on higher versions are terrifyingly slow and I very much hope this will not be the case here

stray pasture
silver cloak
silver bronze
#

Well yeah there's other solutions but just being able to spin up instances dynamically would be more efficient and honestly also very cool Hypixel_Happy

silver cloak
#

You may have to do that though

silver bronze
#

Does anyone even know what Minecraft does that takes so long when it's booting up? Surely that isn't all world loading?

hidden jasper
stray pasture
#

Well its likely to not take hours unless you have a wild amount of plugins. Plugin intake is usually what takes a long time, I heard one of the big networks took hours to boot up one instance.

silver bronze
stray pasture
#

To get around this, reduce the amount of plugins to load.

hidden jasper
stray pasture
#

Though MC plugin loading i am 90% sure was fully sequential, 10% tells me it was asynchronous for like dependents.

silver bronze
#

Yeah for more custom servers I did notice that plugin loading seemed ridiculously slow even as plugins weren't doing too much. I hope this will be faster too in Hytale

tribal bear
#

How much will Hytale cost?

stray pasture
silver bronze
stray pasture
silver cloak
#

20$ base edition

silver bronze
woeful depot
#

Hytale Prices:
Standart edition: 20$
Supporter edition: 35$
Cursebreaker edition: 70$

coarse canopy
#

Is there gonna be a bungee esque system with hytale?

sharp lake
stray pasture
west elk
coarse canopy
#

That would be very nice

sharp lake
sharp lake
#

Inter server communication between plugins, it'll definitely possible for someone to mod in though

coarse canopy
#

Does this work cross proxy?

sharp lake
#

We don't have that confirmed, or even the transfer packet as far as I know
But they listen and they'll be adding it definitely lol, it's very useful

coarse canopy
#

Yeah that’d be nice to have natively

west elk
coarse canopy
#

I’m sure there are some workarounds that one can do where you host a service to cross communicate between instances

sharp lake
#

Oh nice

vernal niche
#

If I understand correctly, the transfer packet does not have any semantics for the payload, it just causes the player to connect somewhere else and send that payload on connect to the other server. It's up to a plugin implementation to actually define the content of the payload.

So there should be space for a project that does "simple transfer", i.e. that just takes someone's inventory with them, e.g. by stepping through a portal.

coarse canopy
#

I wonder if hytale will have versioning support like Minecraft

sharp lake
#

That's actually so useful, extra data can be included too? I don't think Minecraft's implementation even allows that lol

west elk
#

up to 4 kb of custom data

vernal niche
west elk
#

for anything more you should save it in your database and send a db key with the transfer

sharp lake
#

Definitely enough for references to one

coarse canopy
# sharp lake They said no

They better have self updating server jars or smth (if they use jars for servers which I assume they will as they are using Java for the game)

sterile venture
woeful depot
#

Server file is bundled in game so you can just pull it from there I guess

sharp lake
#

That would be sketchy
I wonder how they want to handle server updates
I was genuinely thinking it was going to be manual

woeful depot
sharp lake
silver bronze
coarse canopy
sterile venture
woeful depot
#

Still not, server is written in Java and it uses Java 25

coarse canopy
#

Okay that’s what I thought

#

W

sterile venture
silver bronze
#

New engine was supposed to be C++ but we're on old engine that is Java and C# afaik but uses Java for modding

coarse canopy
#

Yeah but hytale isn’t lots of games ig xd

sharp lake
woeful depot
#

I don't see the issue it being coded in java

coarse canopy
#

Oh so they use Java for modding only

woeful depot
#

You can make server plugins with java

stray pasture
coarse canopy
woeful depot
#

For modding you have various options like blockbench, node editors etc. And visual scripting will come later

coarse canopy
#

Yeah that’s nice

sterile venture
sharp lake
#

I wonder if Hytale will support pre-loading and caching the assets, like already turned into atlases and such
So then it's just copying it to RAM directly

stray pasture
coarse canopy
#

Who’s excited for the pre-release? I’m getting the game the millisecond it pre-releases

sharp lake
stray pasture
woeful depot
#

I'm sure they already implemented caching

#

It would save a lot of time

stray pasture
woeful depot
#

Yup

silver cloak
west elk
silver cloak
#

That's extreme measures though. Transfer packets are more than enough for mid to low player counts

sharp lake
devout cipher
#

Still a lot of bandwidth transfer

stray pasture
vocal sentinel
#

I guess my guess by was wrong

west elk
#

Looks like account ids are proper UUIDs πŸ‘

#

UUIDv4

hidden jasper
west elk
#

It's showing me my account id on the hytale website after signing up

hidden jasper
#

Interesting, my verification e-mail hasn't arrived yet

west elk
#

yeah i bet they have a mega queue for those right now

#

mine took about 10 mins and i think i was quick on it

hidden jasper
# sharp lake Why is this?

Better for storage, Mysql/MariaDB has UUID type only in newer versions and even that is badly optimized, sqlite probably does not have it at all.. so it takes 36 string characters to store, which is 288 bits, vs int64 would take only 64 bits.. and per thousands of player records in database, it will make difference

#

With int64 you could still have something like snowflake IDs so even first ID looks like 1672531200123456000 and it does not start from 1, but at least people are familiar with UUID and it will be easier to port something from Minecraft

west elk
#

at that scale you can store it as two 64 bit int columns and give your users your own id for internal tracking

sharp lake
fleet isle
hidden jasper
#

No third party plugin will hack it like this.. and almost every well designed service uses int64 IDs, even Discord, UUID was just a trend, some would say a mistake :D you rarely need 128 bits, you are fine with 64

west elk
west elk
#

exactly

fleet isle
#

I don't feel like doing that so Imma go the lazy route and regret it a few months later

sharp lake
#

Is int128 just not a thing in situations where UUID itself isn't a type

sharp lake
#

Yes

hidden jasper
#

we have 64 bit processors

fleet isle
#

Just get 2 64bit processors and voila: 128bit /j

hidden jasper
#

I think decision to make it UUID was affected by fact that they have some common object for representing an entity, so entities have also UUIDs and they wanted to make it more compatible when storing data

sharp lake
west elk
#

Even if you store the UUID as VARCHAR(36), the additional storage is 30 bytes per record. You will only start feeling that in the 10s-100s of millions

sharp lake
#

DECIMAL(39,0)?

fleet isle
west elk
polar juniper
#

then your trading space complexity for time complexity

sharp lake
#

In what world are you not going to be able to handle UUIDs πŸ™ˆ

silver bronze
#

What about storing UUID to internal (server-only) ID in memory+in DB then using internal ID for databases?
Worst case (offline players) it's an extra DB lookup, but for most cases (online players) it's just a memory lookup

But this is probably overcomplicating it by a lot

fleet isle
sharp lake
#

This is all optimization for database access that probably won't even be close to a bottleneck or even measurable, is it not?

polar juniper
#

the single best way to store a uuid is with 2 int64 fields (which is what postgre uuid type does under the hood)

fleet isle
west elk
#

of the modern database engines, only sqlite doesn't have a way to efficiently handle uuids directly. and nobody would use vanilla sqlite for 10s-100s millions of users

polar juniper
#

who seriously uses sql nowdays anyway pffft, nosql is the future /hj

sharp lake
hidden jasper
#

The best nosql database is chatgpt, you just tell it via api what to save and you can later ask about it also in plain english, no SQL headaches

polar juniper
#

my word document can also store them in binary

#

infact so can my microwave

west elk
polar juniper
#

blobs have slow lookups, which isnt great for an identifier

sharp lake
#

Is it actually slower to lookup the UUID as a blob than a string?

polar juniper
#

no, its slower than using 2 int64 types though

sharp lake
#

Yeah that makes sense

hidden jasper
#

But then imagine that someone wants to do some edit in that .db file, so he opens it and sees 2 integer columns or 1 blob column.. it's just better to store it as a string with all 36 characters and accept the fact that it will be little bit slower and file will get larger faster

sharp lake
#

Which can just be displayed as a hex, which is how the string would look anyway

polar juniper
sharp lake
#

Also, isn't it a moot point? Why would you design your database around manual editing

polar juniper
#

theres that

hidden jasper
#

I have never imagined I will be editing chestshop sqlite database, but I did edit it like 10 times because of few bugs with wrong/duplicate UUIDs

#

Once I stored UUIDs in MariaDB as BINARY(16) (back when they didn't have them) and I used it for IDs.. one of the worst mistakes I ever made.. I have never used UUID since and I wrote few UUID => INT migrations that were running for hours on a few projects..

sharp lake
#

I think working on the assumption that you won't be able to support a UUID, after they've been around and standard for so long, is a strange assumption to make and worry about!

#

I think if you ever get to the point where your db lookups are the significant problem, it's not going to be due to the number of bytes in your user ID

polar juniper
#

You always want to design database as simple as possible
not true in the slightest
you design it to suite your needs, for the purpose of this debate, the requirements are fast and storage efficient, so strings are not the solution

#

I wrote few UUID => INT migrations that were running for hours on a few projects..
sounds like a skill issue tbh
i can migrate a 300k document mongodb collection in a few seconds

hidden jasper
#

I was migrating billions of rows, you have to first remove all FKs, freeze whole DB (no reads/writes) and then swap IDs and replace them where they are used

sharp lake
#

I can only imagine how long it would take if you used strings instead 😍

stray pasture
# polar juniper who seriously uses sql nowdays anyway pffft, nosql is the future /hj

This statement feels like it lacks a bit of understanding. πŸ˜„

NoSQL is good, but SQL is great for many reasons, main reason is its ACID property. But also complex relationships.

Neither is better, each built for complementary reasons.

Example, video games use SQL quite often since everything in a game is usually very rigid, but also is very fast due to that. But NoSQL is also just as useful for application of redis maybe in the case of a online card game, you can shove a gamestate which is fairly dynamic.

I dont think you could ever rule one out. πŸ˜„

formal burrow
stray pasture
arctic mist
summer loom
arctic mist
summer loom
#

True! You can't hack yourself

stray pasture
woeful depot
#

I just let them fill the query. Why bother writing mine?

stray pasture
#

I feel tooling debates have gone on for years. πŸ˜„ Unity vs Unreal, Java vs C#, Sql vs NoSQL. πŸ˜‚

Added: AI vs No AI

Nobody wins! πŸ˜›

woeful depot
#

Just use whatever benefits you

stray pasture
# woeful depot Just use whatever benefits you

Just for you, I am going to write my player position to a json file, zip it up and throw it onto ABS.

But then make a record in an SQL db to point to that, in which that record is stored in a .log file in a no sql db.

I dont understand why people dont do this. πŸ™ƒ

woeful depot
#

Btw how are you going to store your logs? I was thinking txt files

#

Db might be overkill

arctic mist
stray pasture
#

I am glad we use all of our tools to the best of our abilities. Why fight for one when we can fight THEM!

arctic mist
stray pasture
stray pasture
woeful depot
#

I don't care about reading them on live so txt should be ok

arctic mist
# stray pasture Oh see i thought that was playing off of my joke... You have a real response. πŸ˜›

If we go that route, create a Microservice for login where you will have a redis for instant log of 1 record in cache, after that you will print that into a directory in Azure or AWS so you can access them real time no issues (text format for the best), finally you will transform that into a JSON format to archive it into a big excel file that every time you need to open it it will take from 15 minutes to ethernity.

Best loging strategy FTW

stray pasture
arctic mist
#

You can always switch from Azure to Sketchy Russian Cloud provider for the best deals

stray pasture
stray pasture
fleet isle
woeful depot
#

Yea just let bugs happen πŸ’ͺ

fleet isle
woeful depot
#

Hell yeah

stray pasture
#

If your app hangs, that is just a que for break time!

stray pasture
woeful depot
#

I will store my logs in a TOON file

stray pasture
#

GOOGLED: "What is the wildest thing you can store a log file in"

Googles AI

The "weirdest" method is subjective, but here are a few unconventional and bizarre ways you could theoretically store a log file, ranging from the obsolete to the absurd:

Stored as synthesized DNA: Log data can be encoded into the base pairs of synthetic DNA molecules. This is a real, cutting-edge data storage method with incredibly high density, but storing a simple log file this way is extremely unconventional for practical use.

Etched into a physical object: You could program a CNC machine or laser engraver to physically etch the binary representation of the log file onto a non-traditional medium, such as a river stone, a piece of wood, or a glass pane.

On a series of punch cards: Reverting to 1950s technology, you could output your modern log file onto a long stack of IBM punch cards using a keypunch machine, making it bulky and difficult to read without specialized equipment.

As a series of tweets on a "dedicated" Twitter account: Each line of the log file could be formatted into a short message and posted sequentially to a public social media account, turning a private system log into a public, chronological feed.

Encoded in a physical knot system (like Quipu): You could hypothetically devise a modern variant of the ancient Inca quipu, using different colored strings and knot patterns to represent characters or bytes of data.

I am satisfied with these answers.

That twitter idea, I think has some potential! (You may get a large following)

woeful depot
#

lmao

fleet isle
#

I mean, that Twitter idea could be used for some lore stuff. Imagine you're just sending tweets every 5 minutes and it's like you're booting up a server

stray pasture
west elk
#

yep that how it goes with twitch bans lol

dusk canopy
#

Has someone benchmarked a hytale server? Does someone know the system requirements for a hytale server?

dusk canopy
west elk
#

The team is in the process of benchmarking right now

kindred crescent
stray pasture
dusk canopy
#

Lol do you know why the 3000 NPCs spawned and how many RAM or CPU for a 56 players. I hope the servers are not written in Java Hypixel_LMAO

west elk
#

The server is written in Java

dusk canopy
#

Oh

kindred crescent
#

But that's not a problem. Also, the server software code will be shared-source. They said you could port it in any language you want. Some already want to port it to Rust

near raptor
#

People often blame Java for being the cause of all performance issues, but that is only half the story.

dusk canopy
#

Okay sounds nice. I like it

kindred crescent
#

Here's the tweet from yesterday by Slikey:

The server manual is coming in later than expected as we are still tweaking some performance issues on high player counts. Last test with 56 players showed us some systems misbehaving and we had to discard the data. I hope that tomorrow we have ironed most things out and get a more stable idea.

stray pasture
kindred crescent
dusk canopy
#

Does anyone know in which language we will be allowed to mod?

vernal niche
#

To be fair when they originally built Minecraft they probably didn't expect hundreds of players on one server.

(They could have revised some design choices in the long run though)

dusk canopy
stray pasture
near raptor
#

Can't really blame Minecraft for how they started off. I mean, that was also 2009, lots of things changed tech-wise since then

woeful depot
#

Server will be shared source so you can write your own if you send correct packets to the client

west elk
#

You can use Kotlin for writing plugins if you like. As long as it runs on the jvm

dusk canopy
woeful depot
#

Yup

near raptor
#

I mean, generally speaking Python often performs worse than Java in benchmarks

woeful depot
#

All you have to send correct packets and update it with newest updates

vernal niche
#

Game server in Python would be a... Novel idea for sure

dusk canopy
#

yeah totally agreeing

woeful depot
dusk canopy
#

python is not meant for those things

stray pasture
dusk canopy
#

but would be nice to allow scripting in python

west elk
stray pasture
near raptor
kindred crescent
stray pasture
near raptor
#

"Yo Chad, write me a Python Hytale server. No bugs pls."

vernal niche
dusk canopy
#

Some guys are rewritting MC Servers in Rust I think this will revolutionize the mc server

vernal niche
#

Gang let's do Hytale in Haskell

stray pasture
formal burrow
fleet isle
#

Let's go Assembly, it's gonna be real performance difference... it might take a few years, maybe a decade or two... but it's going to be fast and that's what's important

kindred crescent
fleet isle
stray pasture
#

Are we just gonna go back to carving in stone at this rate? Get the rock bottom speeds

fleet isle
near raptor
#

Cooooobooooooool

fleet isle
vernal niche
#

Okay okay WHAT IF we take the java code, compile it to Java Byte Code, and then use something to just translate that to assembler for us, depending on the host OS?! 🧠

fleet isle
vernal niche
stray pasture
#

How many of us are gonna be pumpin out plugins with AI? πŸ˜› I sure will! πŸ˜„

Likely not many. Maybe just one πŸ˜„

fleet isle
#

I won't πŸ˜› I will be keeping creations to myself. πŸ™‚ Mine! Mine! Mine! :insert_finding_nemo_seagull:

dusk canopy
near raptor
#

If you ask any AI unaware of Hytale to create plugins for it, it will probably start spitting out PaperMC/Spigot code

#

"Ohhh I think you want an ItemStack for that!"

stray pasture
#

Well, if you ask me questions I won't know I will likely spit out garbage to! πŸ˜›

I am assuming with docs and references.

near raptor
#

"ItemStacks don't exist in Hytale!"
"Apologies, you are correct. ItemStacks don't exist in Hytale. Instead, you should use an ItemStack."

sudden dew
#

even now with minecraft if you try to ask ai to write something using fabric api or mixins it flat out sucks and probably wont compile

#

idk how stable paper api is but i dont imagine hytale api is going to be stable any time soon

near raptor
#

I asked it some questions about PaperMC's bootstrapping phase (Paper plugins), and it just gave me total garbage. Events that would hook into the Bukkit event system that didn't even exist.

west elk
stray pasture
sudden dew
#

ive had it completely make up a mixin injection on me which was super funny, tho that was back during gpt 4 probably wont happen with 5 unless you convince it

near raptor
#

What helps is telling it that it should browse the internet, or even give it a link to the docs page of something.

#

Then you get the collective hivemind of Stackoverflow as answer back. So it probably still won't work.

stray pasture
vernal niche
#

Just telling Copilot to "tell me the caveats of your solution" causes the agent to go "oh wait, that doesn't even work, let me redo that..."

near raptor
#

To be fair, if you ask ChatGPT to browse Stackoverflow to find an answer, it will just give you back "that is such a dumb question. Downvoted!"

sudden dew
#

tho if you understand the basics it can do a fine job at explaining implementation details, but i can never trust it to actually write for me

near raptor
#

Tools like Junie are nice, I sometimes use it if I can't be bothered creating boilerplate stuff. I wish you could easily interrupt Junie though, and give it some new instructions or hints if it starts going the wrong way.

stray pasture
sudden dew
#

havent seen anything about junie since it was in closed beta, didnt even realize it was released

#

but man is that expensive

near raptor
#

It comes for "free" wit the "all product pack" license

stray pasture
near raptor
#

Yup, hence the "free"

sudden dew
#

classic

near raptor
#

I don't use it enough to hit the rate limits. I mostly rely on the AI Chat or ChatGPT and write a proper prompt giving it all the background knowledge it needs. Quite often it will then come up with an actual reasonable solution to complicated problems.

stray pasture
sudden dew
#

hope hytale has its own IDE and built in chatbot, gAIa

stray pasture
lethal jackal
sudden dew
#

yeah but the average person trying to use AI to write hytale plugins off the rip is most likely not going to be able to do that

near raptor
#

I guess granting an AI access (e.g. via RAG) to the Hytale docs and Javadocs might make it somewhat capable

junior token
#

AGENTS.md means you don't need to do any fancy rag stuff to minimally achieve that

near raptor
#

But even then, unsure if that would be a wise idea. Most of us are not so familiar with the Hytale API right now (slight understatement), learning how it works first might not be a bad idea. Though of course AI can help you in the learning process

junior token
#

yeah most coding assistants are better at being search engines for docs+code than they are at being coding assistants

stray pasture
near raptor
#

Yes, using it to help you point in the right direction is what I use it mostly for. I mean, when Google was new, plenty of people were like "oh no now everyone will cheat on exams and such" and now that we have AI tooling people are like "oh no now everyone will cheat on exams and such". In the end, it's a tool, not a replacement.

junior token
near raptor
#

Pretty much

#

Well, even then "replace" is a big word. More like "be more productive and thus be more attractive for employers"

#

Being able to properly use google and stackoverflow back in the ancient times, 2 years ago, was also what set some people apart

stray pasture
junior token
#

jeffr did you used to work on the tooling that would parse the obfuscated decompiled java in pre-bukket era minecraft modding? there was a jeff back then but i only barely recall who was around in those days

near raptor
#

Oh no, I am not that old

junior token
#

ah okay -- i am lol

near raptor
#

I only started doing proper Minecraft plugin dev stuff around 2019-2020

junior token
#

ah, i started a few days after SMP was released haha πŸ˜„

near raptor
#

I am still involved in a relatively old server, but mostly to keep the lights on. Most of that stuff is built on the top of the giants of their time. Back when Bungee was new and all

vocal sentinel
#

So the game it self is C# or C++? My friend keeps saying C++ and people here say C#

near raptor
#

C# for the client, Java for the server

#

It was C++ on the new engine, maybe that's where the confusion comes from. The new engine was ditched for now though

vocal sentinel
#

When u say client u dont mean the launcher do you?

near raptor
#

No, the client, the thing you play with

vocal sentinel
#

ye ok cheers

vernal niche
#

So who of you lot is building a plugin that would have a web component, in the sense that the server would need to be reachable via HTTP?

sharp lake
#

me!!

near raptor
#

Embedding a HTTP server in a plugin is quite useful, to act as a Webhook for example. Definitely will have a need for it.

west elk
#

I will definitely install a dynmap or similar as soon as it's available

vernal niche
sharp lake
# vernal niche Tell me about it πŸ”₯

I have a few things I wanted to look into
Event boards, world map, user-uploaded paintings, a chat bridge will be among my earliest projects
Though I realized a bit later you could use in-game commands and third party image hosts for paintings

#

For all my game servers, I have automated startup and shutdown
And where possible I have chat bridges

vernal niche
#

Reason I'm asking.

One of the worst nightmares for a server provider is a bunch of plugins all opening their own ports and own little web servers.

So what we will very likely do is to publish a general web server plugin that other plugins can register routes to, with authentication working out of the box, for both user accounts and service accounts / api users. We are going to need that for our own functionality anyway so might as well publish it.

fleet isle
rich solar
#

I just finished my backend for Hytale/Discord store integration and went with a classic RestAPI setup πŸ™‚

sharp lake
#

LOL

#

A general webserver plugin is a great idea actually

vernal niche
sharp lake
#

I would've been shipping my own with a toggle for it
So I'd imagine that's how most would do it

#

Nginx with all the web servers toggled off

arctic mist
near raptor
#

Probably a library containing the web server, and some API of that library that you can use to register new endpoints with a handler on.

junior token
#

some shenanigans like httpLibrary.use('/some/path', MyRequestHandlerClass),... i haven't touched java in like 10+ years so i don't really remember the paradigms/styles

vernal niche
vernal niche
sharp lake
#

Library plugins are definitely the best choice for this, but that's rarely how it goes

arctic mist
sharp lake
#

And if your plugin isn't open and licensed properly, nobody is going to touch it

sharp lake
junior token
#

so the core plugin would be mostly routing and registry logic, and then all the actual things are over in the consuming plugins

#

handling collisions elegantly would be nice too, maybe you can prefix with the requesting plugin but i dunno if that info will be available programatically and may just need to be a best practice thing

vernal niche
junior token
#

so like if the MagicCarpet plugin registers a handler on /update, the full external path would be MagicCarpet/update

near raptor
#

Prefixing would make the most sense, its also how Minecraft solves ID conflicts using a namespace.

vernal niche
#

[note making noises]

sharp lake
vernal niche
#

Thing is, if we would actually screw something up, people could just flip us off and fork the repo. The beauty of open source

#

That's at least the plan at the moment. Hope everything pans out 🀞

junior token
#

better yet, have reasonable contributor policies and be open to pull requests and make architectural decisions in the open

#

"we made thing for you" always goes over more poorly than "we're making thing, come help us if you want"

vernal niche
silver cloak
#

Hello

junior token
#

part of hMod's success was because we did everything in public IRC channels and anyone who wanted to make radical changes could suggest it and 90% of the time we'd be down

silver cloak
#

Is Tebex working on a hytale plugin?

near raptor
#

I received a mail from Tebex stating that they have support ready

silver cloak
#

nice

#

Would love to use tebex as a cms
Looks like theres a js library nice

wicked steppe
#

Tebex.js integration is cool, did not exist before with free tier you have almost everything

rich solar
#

Tebex was going to be what I used. But I decided to take it with discord App store and see how it works for a hytale server

sharp lake
# vernal niche _[note making noises]_
  • Event boards
  • World map
  • Market trends / bidding (in-game economy)
  • Sending chat messages
  • Remote management (admin)

Basically, anything a user/admin might want to access from a phone lol

#

A store plugin will probably be a thing that people want as well, but I don't really worry about monetization with my projects

#

Lol a ban appeal plugin could also be done with a web server

rich solar
vernal niche
#

Oooh killfeed websocket for PvP events

sharp lake
#

I'd imagine most modern ways of handling ban appeals would be chucking them into another dimension and informing them

#

I've seen some things where they put you into a mine and have you collect coal or whatever for a few hours LOL

rich solar
sharp lake
#

There are definitely ways around using web servers for those features, but anything that could be preferably handled outside of the game are valid uses

arctic mist
sharp lake
sharp lake
rich solar
sharp lake
#

Increases closet cheating by like 800%, but that's arguably fine

sharp lake
rich solar
#

Its a sad MTX world we live in. But sometimes you gotta game the game right? Hypixel_Sad

sharp lake
#

Voting plugins are a thing on Minecraft
Hopefully we won't need them on Hytale though
I don't think they talked about it, but community ratings for servers would be cool

arctic mist
silver cloak
rich solar
#

I think the basic of my server mtx is going to be a vip tier. Beyond that probably not much else at first.

So a global vip role in discords with my bot (Private bot)
Discord: Bot assigns "VIP" role immediately.
Game: Bot sends signal to Game Server; Player receives "Thank you" DM.
In-Game: Player's name turns Gold immediately (or on next login).

ez pz lemon squeezy

arctic mist
silver cloak
sharp lake
#

You'd have to purchase a lot of Hytale accounts to do that lol

rich solar
silver cloak
#

A good sorting feature is more than enough. They can spice things up by creating an algorithm that recommends servers based on what u play

sharp lake
#

That would be interesting actually

#

Tags alongside an MOTD and whatever other metadata

silver cloak
#

Oh yeah ofc

rich solar
#

Tag based sorting would be QOL as well.

woeful depot
silver cloak
#

Sort by players would be catastrophic because you can bot it...

sharp lake
#

They could just remove those from the public listings

rich solar
sharp lake
#

What does MTX stand for?

rich solar
#

Microtransaction

woeful depot
#

I want to stick on cosmetics more than whatever they give in mc servers

silver cloak
#

There's a screenshot here (concept)

https:// hytale com/news/2019/1/an-overview-of-hytales-server-technology

woeful depot
#

Same things they say now lol

silver cloak
#

Yeah it's from 2019 aka the build they are currently using

sharp lake
#

I've been ignoring everything they posted previously
Should I not be?

silver cloak
#

Not everything, they are using the old engine

#

Ignore things like mobs and behaviour, infrastructure is the same

sharp lake
#

Do you know when they started the new engine specifically, was it 2020?

woeful depot
#

Slikey recently shared they are using upnp for coop

sharp lake
#

That is a strange decision
Does UPnP even have proper support on most networks?

silver cloak
rich solar
silver cloak
#

Core engine is 2018-19 before riot

#

maybe 2020

woeful depot
#

Good hamachi days

vernal niche
#

Hamachi..
That's a name I haven't heard in a looong time

sharp lake
#

I figured they'd have a first-party tunneling service of some kind, if they were even going to try a friend invitation thing

west elk
#

If you think about it, Tailscale is modern Hamachi

woeful depot
#

Yep

vernal niche
#

#JustUseCoturn

woeful depot
vernal niche
sharp lake
woeful depot
#

What's upnp then

sharp lake
#

UPnP is a system for opening them on demand, but I have literally never seen it work successfully

rich solar
#

Universal Plug and Play is life

sharp lake
#

It's been a long time, but I thought it was a virtually dead and unsupported technology lol
Every router I've had hasn't been able to support it

vernal niche
#

STUN/TURN is basically the standard for all this today.

silver cloak
#

what does essentials use?

light lance
woeful depot
rich solar
#

Comcast/Xfinity and Cox have it enabled by default last I used them.

light lance
woeful depot
#

So I asked gpt about this and it says if ISP is blocking you, you need to buy static IP

sharp lake
#

LOL

woeful depot
#

I'm gpt's liar

sharp lake
#

Um, you should probably not be asking whatever AI that is about anything technical

rich solar
#

Static changes literally nothing about ISP blocking....

woeful depot
#

Why does it block

sharp lake
#

Every single part of that is just wrong

sharp lake
# woeful depot Why does it block

Some ISPs will block ports for "security" reasons
They don't trust you to do anything, and if you want to be trusted you have to get an enterprise plan lol

rich solar
#

ISPs dont usually block anything like that (Minus a few special cases) and they def dont block UPnP as that is local traffic management

sharp lake
#

Lots of ISPs will block HTTP, DNS, and mail servers

#

An ISP can block UPnP if they want to, by simply not allowing traffic outside of 80/443

rich solar
woeful depot
#

That's what it said

Even if the game uses UPnP to automatically open ports, some players still can’t host servers because their Internet provider uses CGNAT (Carrier-Grade NAT).
With CGNAT:
The user does not have a real public IP address
UPnP opens the port only on the local router, not on the ISP’s NAT
So outside players can’t reach the host
Result: Hosting fails even if UPnP is enabled
The only fix is:
βœ”οΈ Get a real public IP (static IP)
When the ISP assigns a real public static IP:
CGNAT is removed
UPnP and port forwarding work normally
Players can host servers without issues
How to check:
If the router’s WAN IP = external IP β†’ OK (public IP)
If they are different β†’ Still behind CGNAT β†’ Hosting won’t work

rich solar
vernal niche
#

Can I introduce you to my arch nemesis, carrier-grade NAT.

I saw people having different public IP addresses depending on whether they used TCP or UDP

sharp lake
rich solar
sharp lake
#

You could spoof the MAC with your own device and get around that, but they could just bludgeon traffic with the method I said previously

rich solar
vernal niche
rich solar
#

I dont roll critical 20 nats. I roll NAT444 😎

sharp lake
vernal niche
sharp lake
#

Oh 😭 that's nice

vernal niche
#

Yeah welcome to my world, lol

woeful depot
#

Looking good

rich solar
#

I hate reading Nitrado each time you message. Gives me PTSD flashbacks of Farming Sim25 LOL

vernal niche
rich solar
sharp lake
rich solar
vernal niche
sharp lake
#

That does sound pretty big LOL

rich solar
kindred crescent
#

@vernal niche I'm sure there's a lot of questions in relation to your job, but is there anything gameplay wise related to Hytale you are excited about?

vernal niche
stray pasture
sharp lake
#

β€œWe’ve partnered with Nitrado and Apex to ensure Hytale servers are ready for players worldwide from Day-1-minute-1. We’ve trusted Nitrado personally for years, and that great experience has continued professionally, while Apex brings a strong track record of reliable game hosting at scale. Both partners have gone above and beyond our expectations, and we’re incredibly grateful for their collaboration in bringing Hytale servers to the community” ~ Patrick [Executive Director] and Kevin (Slikey) [Technical Director], Hypixel Studios.

This is interesting, I couldn't find the source though
Does this mean you know a bit more about the server requirements than the public? Or are you not even allowed to say that much lol

rich solar
vernal niche
sharp lake
#

I'm excited for it to be both LOL
I was surprised when they said their focus was on the base game though

kindred crescent
vernal niche
# stray pasture What do you architect? Specialization?

The fun thing is that what we write is basically deployment software. So on the game server hosting side you can't really make the distinction between infrastructure topics and pure software architecture. It's all one blob.

vernal niche
stray pasture
sharp lake
sharp lake
stray pasture
vernal niche
kindred crescent
kindred crescent
vernal niche
sharp lake
#

Kind of amused by his presence here at all
I'd imagine there's personal interest

kindred crescent
sharp lake
#

Could be beating his ass first-hand in Bed Wars 😍

kindred crescent
stray pasture
fringe ore
#

Why is there like 3 other games like hytale releasing or already released a little bit ago.

Advertising and yt shorts blowing up with everything but hytale lol

stray pasture
fringe ore
#

Thats fair

stray pasture
#

Do yall remember the Battle Royal phase?

fringe ore
kindred crescent
vernal niche
#

Honestly I believe there is wisdom in taking the modding tools you have, and building a (base) game with that, instead of endlessly over-engineering the platfrom. dogfooding and all. Tells you what the platform actually needs, and gives the community something to play and get familiar with while they're building their first mods.

kindred crescent
stray pasture
kindred crescent
sharp lake
#

We're building Hytale with modding at its core. Most of what you see in the game can be changed, extended, or removed entirely. Blocks, Items, NPCs, World Generation, UIs, systems, and behaviours are all driven by data and code that you can influence.

kindred crescent
#

They have stated that you could remove everything they did and make a completely new game

rich solar
#

I've put my Godot and roblox projects away as soon as Hytale was brought back haha

stray pasture
kindred crescent
#

Do you want me to go in every employee's home and verify πŸ’€ ?

silver cloak
#

6.1 Integrity. We implement anti-cheat and integrity measures for the Game which are primarily server-side, with limited client-side telemetry. We do not deploy kernel-level anti-cheat.

vernal niche
#

As mentioned, it's not my position to speak for the Hypixel folks, but let's just say these folks really know what they're doing. You're in good hands.

kindred crescent
rich solar
kindred crescent
sharp lake
sharp lake
#

Even if they're not using their own tools
With data-driven and shared-source, you'll be able to get an extremely far way

vernal niche
#

I was preparing some long text what pitfalls around networking they should be looking out for and then I saw the transfer packet and deleted all that text 🀣

fleet isle
vernal niche
sharp lake
#

Well they've been dealing with that garbage for so many years lol

#

Bungee and all the proxy things we have in Minecraft are a literal nightmare to work with

rich solar
#

I still think its funny to see people join this chat to ask how optifine will be made if no client access. For everyone to just say Sodium guy works for them.

kindred crescent
woeful depot
kindred crescent
rich solar
woeful depot
vernal niche
sharp lake
# kindred crescent I know I could read up on it/ask AI, but what do transfer packets help do exactl...

It's not necessarily to get lower ping
The way you connect multiple servers together in Minecraft is by connecting to a proxy which can move you between "dimensions" in a hacky way
And these different dimensions are actually entirely different servers
With a transfer packet, you don't need to do the hacks or require a proxy
You can just send a command to the client, and force them to connect to a different server

silver cloak
woeful depot
#

I'm still thinking about what if you loop between two servers or do you have option to cancel transfer

rich solar
kindred crescent
#

Would transfer packets help in something like a huge MMO with a single world separated in "zones" or something like that?

sharp lake
sharp lake
kindred crescent
#

Ah well I see why it's interesting then

woeful depot
#

Also you can send 4KB data with the packet too

#

That's what people said

kindred crescent
sharp lake
#

If you wanted to have 20,000 players
You'll need multiple servers in order to hold them all
And pooling these players and spreading them around will be an important aspect of managing that many

silver cloak
#

I wonder how making a replay system in hytale would work. Since we don't know if we will have packets

woeful depot
rich solar
#

I wonder if instanced based loot drop pools can easily be added to the server without a overlift of the server source.

fleet isle
woeful depot
sharp lake
woeful depot
#

Yeah ik

kindred crescent
vernal niche
woeful depot
#

Does nitrado have crash detectors and auto backup mechanisms for this

fleet isle
vernal niche
sharp lake
sharp lake
woeful depot
#

Would putting a try catch in the main of server software let us detect crash and prepare backups?

sharp lake
#

LOL you don't really want to wrap your entire server in a try catch

fleet isle
vernal niche
woeful depot
#

I use another try catch

sharp lake
#

πŸ’€ πŸ’€ πŸ’€

#

We've been trolled

silver cloak
#

a while loop

woeful depot
#

I would just curl to /health

west elk
rich solar
fleet isle
#

is there going to be an official API of sorts to essentially remotely control the server? Something like Minecraft got recently?

west elk
#

Havent heard about something like that so likely not at the start of early access

vernal niche
#

πŸ§‘β€πŸ³

rich solar
#

Rcon baby

pure inlet
fleet isle
rich solar
#

I did hear someone say that Pelican and parkervcp are going to have a nest/egg/yolks ready for Hytale pretty quickly. So I feel like I should archive my docker/scripts i made for it already lol

pure inlet
#

It would be nice to have access to the server few days before the EA release

vernal niche
dense quarry
#

maybe not day1 but eventually I guess it will

dense quarry
# vernal niche You're absolutely right. And we have a list of things we are working on.

By any chance, did you look into proxy solutions for hytale proto? I figure it would be possible to just early terminate cert like CF does with their non-full ssl mode, and then open another connection with server directly and just pipe packets through. SNI seems available in TLS handshake so it's not even required to dismantle packets. Only thing that I'm curious about is proper ip forwarding, I think it's something that Hytale server would need to support. With Minecraft it was possible with PROXY v2 and some LD_PRELOAD magic (at least that was my trick to get around this issue) but here with UDP packets it doesn't seem so easy anymore.

#

Probably too early to even think about this but doesn't hurt πŸ˜‚

fleet isle
#

It looks complex to me... I don't think I will be making a C# Hytale server... welp, hello Java my old friend

livid sequoia
#

Technical question here! When EA launches, will I be able to create a Server on an ARM based Linux? Or just x86? Do we know it Already. I guess if it is a Java based it won’t matter obviously but I don’t know it it’ll be Java / 100% Java.

woeful depot
#

Does it run java 25?

livid sequoia
#

The server?

woeful depot
#

Your machine, isn't JVM working everywhere

livid sequoia
#

Yes it does

woeful depot
#

I don't think there will be problems

livid sequoia
#

Ok so just like a MC server then, thank you!

woeful depot
#

But soon they will release a system requirements for servers

fleet isle
#

"soon" and they will do it after Christmas just to tease us

livid sequoia
#

hope that ain’t true gotta prepare for it ahahah

woeful depot
#

Soonβ„’

livid sequoia
#

I have a 24GB RAM ARM-based oracle server and an 8GB x86 NAS. I wanted to host it on my β€œlocal” NAS and thought about upgrading the NASs RAM but you know, no DDR5 available for humans, AI slop needs it…

woeful depot
#

Arm servers perform better?

west elk
#

they're cheaper

livid sequoia
#

I mean I think in my case the difference in RAM is what matters the most

fleet isle
#

In theory they should. The CPU doesn't have as many instructions and therefore parts can be easier to make... is my understanding of it

livid sequoia
#

If I want long render distances

#

They super efficient

#

I’ve hosted MC on the ARM based machine with hundreds of mods (+- 350) with 6 simultaneous players and it has been perfect

#

I mean for 6 player 24GB of RAM is a bit overkill…

woeful depot
#

Yeah kinda

west elk
#

single-core performance is way more important than cpu architecture. but if you compare two cpus with similar benchmark rankings, the arm one will likely have a better price/power efficiency

vernal niche
#

I really wanna run the server on one of my Pi5s now

woeful depot
#

But if you had fun it's all good

rich solar
livid sequoia
#

I have an M1 MacBook (ARM) and it is an absolute beast

#

I actually sometime play on it instead of my PC with a GTX 1660 S

#

I mean neither of them are the most powerfully things in the world but it still surprises me how the Mac can compete with an integrated graphics card and a TDP of 15W against my pc hahah

vernal niche
#

The memory bandwidth on the Macs is insane. Which is one of those metrics that people rarely look at but can make a huge difference.

livid sequoia
#

Yes, but how is it posible to perform similarly running minecraft with 300 mods.

#

Comparing graphics performance

#

Still blows my mind

vernal niche
#

Your graphics chip benefits from that memory bandwidth. It's one of the reasons people use Macs for local LLMs

livid sequoia
#

The problem is, as you know, 95% games aren’t on Mac

#

But I bought it to work, memory bandwidth helps when editing videos haha

#

3D modeling and AI (not for training)

vernal niche
#

I have to Hypixel_Sleepy now, got a large prod deploy in the morning. Have fun y'all

chrome rampart
#

I suppose, you also need to transpile to ARM. Though, Valve apparently has a solution for that too now, for their Frame, in form of the FEX library. So maybe somebody will look into this further now.

rich solar
#

So MoltenVK would be a pretty hard hurdle to use instead

#

I think CrossOver is working now tho? dont quote that

chrome rampart
rich solar
#

I think MoltenVK auto translates that but autotranslated work in gaming can be finnicky

chrome rampart
#

I can see that. Infuriating, tbh. I remember the optimism of making games around '16-'17, looking at everyone being on x86-64 and progress being made on Vulkan, which was looking to become the standard for graphics on all major platforms, and then it all came crashing down.

rich solar
#

The Apple way means devs get a pile of crap Hypixel_ThisIsFine

stray pasture
#

Can we also just talk about the misery of just compiling for apple? πŸ˜„

fathom pelican
#

yeah. i have a better experience playing games on linux than on mac os. hardware discrepancies aside.

chrome rampart
#

My worst experience working with Mac has been realizing that their version of POSIX is ever so slightly different from Linux version in some critical places, but none of it is documented because, "Well, POSIX documentation already exists." πŸ€¦β€β™€οΈ

#

But I never touched the graphics, and I haven't worked with Macs since their ARM CPUs came out.

chrome rampart
stray pasture
chrome rampart
#

The work I done on Apple wasn't for anything shipped. I was working at a startup at the time, and our work laptops were Macs. For convenience of quickly testing server changes locally, I maintained our back-end to be cross-compilable on Linux and Mac. Hence the POSIX nightmares.

#

XBox and Playstation has been for games I've worked on, though. Well, and actually I worked on one game that shipped for Stadia, which was a Linux platform. So I technically have a game shipped on Linux with Vulkan rendering.

#

The only part of rendering I've touched was some custom shader nodes, though, and setting up relevant buffers to get some fancy water FX, though. Most of my work was very much platform-agnostic.

#

Doing this in triplicate (DX12, GNM for PS, and VK for Stadia) was really annoying. Glad I'm not a rendering engineer.

fathom pelican
chrome rampart
#

Even people in the industry with multiple shipped titles often underestimate shipping. One of the things I keep seeing is teams switching to Unreal, praising it for how much easier development got compared to a bespoke engine, and then they try to ship something. Invariably, there's either a performance hitch they can't resolve or someone just straight up breaks a blueprint somewhere in the "squash all bugs" panic as the deadline looms, and then the whole thing's broken.

stray pasture
# chrome rampart Even people in the industry with multiple shipped titles often underestimate shi...

Not to mention Unreal can and will corrupt your blueprints for funzies.

I find Unreal so unruly anyway and their target is now far more towards cinema rather than games. πŸ™

I don't work in Unreal, I work in Unity. πŸ˜„ now with their DOTs and GameObject system and soon to be updated .net ecosystem I cant really find a reason to leave (besides the company themselves. Unity is scrappy as a company)

Haha, even now I dont work in Engine all to often anymore, I am the only build engineer they got! πŸ˜› so I do the internal tooling, build pipeline and whatever other misc stuff gets thrown on my plate. (Startup mentality ya know?)

lilac grove
#

Wait their GameObject system is getting reworked?

stray pasture
# lilac grove Wait their GameObject system is getting reworked?

No, maybe? They mentioned at a Unity Unite that they wanted to merge DOTs and GO together in some way, but that was also the same time they said they were going to intertwine NGO, and NE network engines together... So I am thinking that is no longer happening

The legendary Unity 7 statement. πŸ˜›

distant pike
#

Mannn, if I make a game plugin, again - I'm using Kotlin this time. ;')

stray pasture
#

I don't blame you.

primal shoal
summer ibex
#

Do we know if the server.jar will expose TPS?

west elk
#

we don't even know what their concept of ticks will be

rose atlas
west elk
#

I think it's safe to assume that at least basic performance data will be available at launch (since they're doing performance testing right now) but in either case, it'll likely be easy to add a mixin/reflection for it

chrome rampart
#

Whatever equivalent of ticks there will be, nothing stops you from adding a custom object that increments a counter on ticks and publishes that through whatever channel that makes sense if there isn't a native perf counter already.

stray pasture
#

Its also likely you wont have to worry about ticks, if it works for the entire game I'm sure its bound to work for whatever your adding to the game.

atomic nebula
stray pasture
#

He is asking more about "fixed", vs "delta" vs other conceptualized tick systems I believe.

atomic nebula
#

Oh yeah, they use delta time

#

And after searching a bit in the leak, it seems servers run at 30 TPS and the client runs at 60 TPS and then it interpolates from there.

sharp lake
#

Interesting, I was curious how much higher they'd go

atomic nebula
#

or that's what the copyright says

fringe ore
rose atlas
#

does anyone know if zap-hosting is reliable for a VPS?

lilac pine
atomic nebula
#

go bare metal, it's cheaper

hard walrus
#

also depends on what you're trying to do

kindred crescent
hard walrus
#

so we get 33.4ms to play around with instead of 50ms

#

it's neat that the client is 60 cause then you could run a custom server at 60 tps without too many problems

atomic nebula
hard walrus
#

actually wtf is a client tick rate lmao

atomic nebula
#

It's the time step really

hard walrus
#

surely it's fps tied

sharp lake
#

lmao 60fps locked

sharp lake
#

Yeah, there's no way that'll ever be used
Which might be the point

atomic nebula
# hard walrus surely it's fps tied

No, that would be horrible since it would make physics run differently based on FPS. The time step is just how often the game engine updates, it's independent of the FPS

hard walrus
#

it could be used 100% maany use cases for high tickrates

west elk
#

Minecraft also allows tick warping these days

sharp lake
west elk
#

very useful to test contraptions

sharp lake
hard walrus
south wren
#

Hi I’m a Minecraft plugin dev who just joined here πŸ‘‹

tbh I’ve been not paying attention to how servers work on hytale, how do they? did hypixel studios release their api? will there be the equivalent of bukkit spigot and paper?

sharp lake
sharp lake
#

They plan to have everything be data-driven, and for all modding to be server-sided
So the capability of plugins will be similar to what you'd get with full-game mods on Minecraft, regarding content additions and the like

south wren
#

sounds cool

#

Java api? Kotlin?

sharp lake
#

It'll be Java, but you could use Kotlin to write your plugins if you wanted

#

Since they're interoperable and everything

south wren
#

can’t wait to check this out

atomic nebula
hard walrus
#

the internal tick as you call it is just the server tps, there are calculations done on the client at a set tick per second in some games but im not sure how that would apply in hytale unless the client can take network ownership like it can in unity, roblox, etc

atomic nebula
# hard walrus if you write a game that way then there would never be a reason to have more tha...

Because the game's logic is independent of FPS. The logic (physics, movement, positions, etc) runs on its own internal tick rate. Higher FPS just means the game draws more frames, but it doesn't make the underlying calculations run faster. For example,. Minecraft has its own game logic that runs at a fixed tick rate, completely separate from FPS. You can change the tick rate with /tick rate, and it speeds up the game logic while your FPS stays the same

atomic nebula
lilac pine
#

Hmm, so servers will have built in anti-cheats?

9.1 Safety. We implement measures to promote safety and integrity, including anti-cheat systems and content moderation.

stray pasture
lilac pine
sharp lake
lilac pine
#

Since when

sharp lake
#

Since ever.

atomic nebula
lilac pine
#

That's not true xD

hard walrus
ember current
#

cuz chatgpt never gives wrong answers

sharp lake
lilac pine
#

Maybe you're talking about bedrock actually, I'm not familiar with that side of MC

sharp lake
#

I'm talking about Java
You can't just teleport everywhere, there are limitations and it kicks you for flying and the likes
They're anti-cheat measures

stray pasture
lilac pine
atomic nebula
ember current
#

it's hacked clients that give minecraft servers the most issues. Since mods(plugins) are server-side only, there shouldn't be nearly as many issues shouldn't

sharp lake
hard walrus
lilac pine
stray pasture
sharp lake
lilac pine
#

It doesn't detect killaura, fly hacks, autoclickers, or even x-ray lol

hard walrus
sharp lake
#

It targets movement hacks, spawning items, reach, some denial of service attacks, and that's about it

atomic nebula
atomic nebula
#

ya

hard walrus
lilac pine
hard walrus
#

dangit stop editing your messages lmao

lilac pine
#

I assume bedrock is better with cheating

stray pasture
hard walrus
sharp lake
atomic nebula
sharp lake
#

It becomes way more obvious when compared to other releases of Minecraft without the anti-cheat

#

Literal teleportation, flying, super speed, and all of the things you listed

lilac pine
#

and I believe like 1.16 at one point

hard walrus
sharp lake
stray pasture
hard walrus
#

but the interpolation goes directly from server tps to client fps

#

where's this 60 number coming from

stray pasture
hard walrus
#

so what we're saying is the client is locked to 60 fps?

stray pasture
atomic nebula
# hard walrus the real question here is what's this "60 tick rate" for the client

It's the fixed simulation rate. Basically, the game runs its logic around every 16 ms to update movement, physics, gameplay, etc. It checks for time to then trigger an update, so yeah it's time based but not FPS tied as you said. The server still runs its logic and is obviously the authority like every other game but the simulation is needed for interpolation reasons

stray pasture
atomic nebula
#

yeah

stray pasture
#

60 Ticks at 144 FPS Explained:
Ticks (60/sec) = Game Logic

Physics, collisions, input processing
Runs at fixed 16.67ms intervals
Same for all players (multiplayer sync)

FPS (144/sec) = Rendering

What you see on screen
Runs as fast as your GPU can handle
Interpolates between game states for smoothness

Why Split Them?

Game logic needs to be consistent/deterministic
Visuals should be as smooth as possible
You get 2.4 frames rendered per game tick

Example:

Server: Updates game world 60 times/sec
Your PC: Draws 144 frames/sec
Between server updates, your client interpolates movement so it looks butter smooth

TLDR: Game "thinks" at 60Hz, you "see" at 144Hz. Best of both worlds - consistent gameplay + smooth visuals.

Claude can explain better than I. πŸ˜„
This is incredibly common for multiplayer games, almost every multiplayer game runs this way.

hard walrus
#

I was never asking about server ticks and client fps, I just want to know where this 60 tps on the client comes in

atomic nebula
#

lmao

stray pasture
#

From the engine?

hard walrus
#

actually I guess that answers that lmao

#

input are processed at 60 ticks

sharp lake
#

πŸ’€ after all of this i think i'm confused too

stray pasture
#

Ask away! - Best way to learn!

steep sun
#

It leads to smoother gameplay since packets from the server would be processed quicker, right?

#

Even if the server only sends them out 30 times per sec

west elk
sharp lake
#

And that's common practice? My input systems must suck πŸ’€

#

Like girl I'm just checking if the key is down at the end of the frame

#

Render thread or no thread, screw me

hard walrus
stray pasture
sharp lake
#

We're definitely living in the future πŸ’€ πŸ’€ and I just never progressed

#

That's actually astounding to me
I've always decoupled physics, but never inputs

steep sun
atomic nebula
stray pasture
atomic nebula
steep sun
#

interesting

hard walrus
sharp lake
#

So what things would be controlled by client TPS and not its FPS?
I'm pretty sure I understand server TPS and how the client interpolates based on that
But surely we're not talking about animation calculations when talking about client TPS, since that would be a waste of resources?
We've got inputs; would this also be velocity calculations for entity predictions?

stray pasture
atomic nebula
sharp lake
#

Are we stacking interpolation on interpolation? Interpolating the server's last reported velocity, and interpolating the client's last prediction for frames?

steep sun
hard walrus
#

that's were we started at lmao

atomic nebula
#

I don't care anymore. Let's agree to disagree

hard walrus
#

I just wanted to know what this 60 tick clock runs

sharp lake
#

I'mma read this dang source code now lmfao wtf is even happening

hard walrus
#

I dont have the source code thats why I asked lol

lilac pine
#

did u guys know a pb&j adds 33 minutes to your life.

steep sun
#

I heard it's only 33 ticks

atomic nebula
# hard walrus I just wanted to know what this 60 tick clock runs

Stuff like player movement and physics, entity updates (NPCs, projectiles, mobs), chunk/world updates, time progression (day/night cycles, timers), network checks and movement packets, and I think also interactions and triggers (doors, switches, etc), and some other stuff

stray pasture
sharp lake
#

And in circumstances where the FPS is higher, those are calculated less
But why would you ever want to calculate those more often than you have frames?

stray pasture
#

Bigrand you go for it. πŸ˜„ You seem to have better explanations than I. πŸ˜›

sharp lake
#

I can understand the user input part, but time progression and physics?

#

Those can just be resynced later and the frames are more important, no?

hard walrus
sharp lake
#

They are, but your client should still do a little guesswork to make it feel smooth

steep sun
#

The server's the authority, but the client needs to process it to actually render it to you

sharp lake
#

The part I don't get is why you would calculate the sun's position, or whatever else, more often than you would have frames

stray pasture
atomic nebula
# hard walrus I was under the impression a majority of those things were handled server side o...

Both the client and server run the game. The client does it because it's smoother to show you a fake simulation that's most of the time right, and then the client receives the server's updates and then corrects itself to show what is actually happening. That's why in Minecraft, when you lag out, you can still move and do stuff, but then when the server sends you the updates everything moves super fast, because that's the client trying to correct itself with the server's state

sharp lake
stray pasture
hard walrus
#

im not gonna lie, i dont know why I even started this. I have used client tick rate's on every project I've worked on

sharp lake
hard walrus
#

thats what I get for trying to have a technical conversation while drinking

sharp lake
#

LMAO I should be drunk for this

stray pasture
#

I think I got drunk off of this. πŸ˜„

sharp lake
#

My brain is a fckin potato that has been left soaking for so long that it's just a mess of starch

hard walrus
#

my fault I convinced myself clients dont tick and then tried to argue it

atomic nebula
sharp lake
#

I'm reading the modules now πŸ’€ πŸ’€

#

Omg it's literally

#

Ticks don't happen more often than frames with this

stray pasture
#

I was literally typing that, and I was thinking "What a terrible explanation"

sharp lake
#

It's just a cap for how many times these calculations are ran, it's not fully de-coupled from the frame rate

hard walrus
#

@atomic nebula sorry about that I just wasted your time

#

I promise I dont suck at programming LMAO

#

it's probably hard to tell from that whole conversation

sharp lake
#

On every new frame, it basically counts up the time that has passed
And if it's been enough time, aka 1/60th of a second, it'll tick all the modules
So it's not ticking without a frame

atomic nebula
stray pasture
sharp lake
#

I promise I do suck at programming, and concepts, and design 😍

#

Holy christ

hard walrus
#

programming is applying said concepts so it kinda matters lol

stray pasture
#

Now, if you ever wonder why your Minecraft server "freezes" when friends are loading in chunks quickly, its because your game updates are taking longer than that 16ms. πŸ˜› - So the simulation LITERALLY slows down, but again just as you stated your FPS does not.

  • I hope this made sense. I am so sorry if I confused you again
sharp lake
#

Nah I'm sure they understand that part

steep sun
#

If we're not confused we could bring up how chunk loading is separate from the main game thread

hard walrus
#

well it is now

#

minecraft used to have it on the main thread