Two US Congressmen have called on the Biden administration to launch an investigation over concerns that networking products made by the widely used TP-Link brand could be used to covertly spy on Americans, or be used for cyber attacks.Republican Representative John Moolenaar and Democratic Representative Raja Krishnamoorthi have formally requested an investigation from the US Department of Commerce citing national security risks. According to a letter posted by
Two US Congressmen have called on the Biden administration to launch an investigation over concerns that networking products made by the widely used TP-Link brand could be used to covertly spy on Americans, or be used for cyber attacks.
Republican Representative John Moolenaar and Democratic Representative Raja Krishnamoorthi have formally requested an investigation from the US Department of Commerce citing national security risks. According to a letter posted by the Select Committee on the Chinese Communist Party (via Reuters), "TP-Link’s unusual degree of vulnerabilities and required compliance with PRC law are in and of themselves disconcerting".
TP-Link products are widely used in the US, and can be found inside critical facilities, including US military bases.
Last year, TP-Link routers were used to launch an attack on European foreign affairs organizations. TP-Link firmware was infected with malware, giving attackers the ability to run shell commands, access files and relay communications between devices on the network. TP-Link is not the only manufacturer that can be exploited. Other manufacturers including Cisco and Netgear have also been used to launch attacks from foreign adversaries.
The request for an investigation is just the latest in the US government's actions against Chinese companies, with Huawei and ZTE being forced out of the US market. TikTok is another well known example of a Chinese company facing similar spying concerns.
Most end users are at least somewhat aware of the need to keep devices and PC software updated for security reasons, but there is far less awareness around the potential for router based attacks. I'd place a wager and suggest that a majority of home users have never updated their router's firmware. Now would be a good time to start.
Steam store page
One of my favorite activities in Minecraft is going deep inside the caves and just exploring them. A few years ago, the developers behind Cave Digger reached out to me and asked me to review their game. Not too long after, the sequel got released and looked like it would be a VR exclusive. Until I noticed that it appeared on the Nintendo Switch eShop. So, I thought, maybe it also released on Steam, since after playing the Switch version, I felt like this game was better p
One of my favorite activities in Minecraft is going deep inside the caves and just exploring them. A few years ago, the developers behind Cave Digger reached out to me and asked me to review their game. Not too long after, the sequel got released and looked like it would be a VR exclusive. Until I noticed that it appeared on the Nintendo Switch eShop. So, I thought, maybe it also released on Steam, since after playing the Switch version, I felt like this game was better played with keyboard and mouse. Now, a non VR version is on Steam now… But is it worth it? Well, after playing the first sections of this game, I want to talk about it. The latest update was on May 28th, 2024 when writing this article. Now, before we dive right into it, I want to invite to you leave a comment in the comment section with your thoughts and/or opinions on this game and/or the content of this article.
Risk of Staleness
In this game, we play as an unnamed miner who is throwing into the deep end, when his digger broke. You arrive at a mysterious valley. In this valley, a hardy explorer once did his research. But why? Which secrets are in these valleys and the accompanying mines? That’s for our miner to figure out. Now, the story is being told by various comic book pages you can uncover and, according to the Steam store page, has multiple endings. I’m quite curious where it’s going to go.
So far, I haven’t gotten too deep into the story. But, from what I can read on the Steam store page, I think it has potential. I have my doubts on how the multiple endings will work. Since comic books mostly have one ending, right? Unless, it all depends on which page(s) you find or in which order or where. That’s something I’ll discover when I’m deeper into the game.
If this game is like the original game, the story overall will take a backseat for the gameplay. And after 5 hours in, that’s the case. The original game didn’t have a lot of story to begin with, but more story in a game like this can be interesting.
There is one voice actor in this game. He does a pretty fine job and brings some life to the atmosphere. I replayed a bit of the first game and I have to be honest, I appreciate the small voice lines during the exploration. Even when you quickly hear every different line, it’s a nice break since they aren’t spammed and don’t appear that often.
One of the biggest changes in this game is that the cave this time around is randomly generated each time you enter. So, this game becomes a rouge like to a degree. But, you can always exit via the lifts to safety. Since, dying in the caves means that at least half of your obtained loot is dropped. The atmosphere this time around is very cohesive. This game presents itself as a sci-fi western game, and it really feels like that. Something I really like in this game is that it doesn’t go overboard in the sci-fi genre and stays grounded. The technology could realistically exist today, apart from the unique enemies in the cave, that is.
With the story taking more of a backseat, it’s quite important that the gameplay loop is enjoyable. The gameplay loop is simple, you have to explore the caves with 4 chosen tools. The three slots above the entrance give you a hint on which tools you will need to bring to gather the most loot. You take the lift down and gather loot, while fighting enemies and avoiding pitfalls to survive. The goal is also to find the other elevator that takes you down to the next level to gather even more valuable ores to bring to the top. You have to fill in the ores you gathered into the grinder to buy upgrades to your tools and environment to progress.
The big risk with this kind of gameplay loop is that this is just a different numbers game. What I mean by that is that, apart from maybe the visuals changing, the core concept is always the same. This risks that the game becomes stale and repetitive. It’s possible that it is just a “me thing”, but I enjoy games like this more when there are some variations on the gameplay or some different puzzles. Thankfully, this game has that. There are a lot of things you can upgrade and improve to make each run feel rewarding, and each type of cave you can visit has different enemies types and unique lay-outs to keep you on your toes. In a way, I dare to compare the idea a bit to Cult of the Lamb in a degree.
The music in this game is also a blast. It fits the atmosphere of each area like a glove. My favorite track is the track that plays in the lake caves. It sounds like you image a typical track like that to sound. And it gets more intense while you are fighting enemies down there. Now, the silent moments when the music doesn’t play feel a bit long, but I always know that there is more music coming and that it fits the atmosphere perfectly and draws me more into the game. Sadly enough, this isn’t the only problem with this game, and I’d like to talk about them.
No feedback
This game has an addictive gameplay loop, and I’m really curious how the multiplayer works. I haven’t tested the multiplayer in this game, but it looks like fun. Now, this game can be played solo perfectly fine.
Now, I don’t know if VRKiwi took the VR version as a base for the non VR version, since I have the impression, that is the case. I especially notice that with the controls in this game. It feels a bit floaty, like you aren’t really connected to the ground. It also feels a bit stiff, like you have to move your mouse like you would a VR headset. You really have to play with the settings until you hit that sweetspot that feels right for you. For me, I had to lower the sensitivity to 80, amongst other things. I highly recommend that you tweak the settings to your liking, since on the Nintendo Switch version, I had to lower the sensitivity to 40 before it felt right.
Still, the character control doesn’t feel right. At first, I thought it was because the controls felt floaty… But, after some testing, I think I found a few other problems with the character control that might cause it to not feel quite right. First, the jump in this game is just silly. You can’t really rely on it, since it doesn’t always trigger when you hit the spacebar, and it’s just a pathetic jump. You can’t even jump out of ankle high water sometimes.
Secondly, there are no sound effects for walking on most floors. You feel like you are floating, and it’s jarring when you suddenly hear a sound effect when you walk over a table or a railway. Thirdly, climbing on ropes amongst other things is just insanely picky. There is also no real feedback or sound to show you grabbed the rope. Fourthly, the scroll order between tools is extremely weird. You get numbers on the wheel counter clock wise. But you go down, right, left, up. Which still confuses me after 6 hours of playing this game.
And finally, some things are extremely picky. For example, there are safe riddles you can solve down in the caves. But to rotate the letter wheels to make pick the right letter is more difficult to do. All of these things give you a feeling that you aren’t always in control of your character and that you don’t get the feedback as a player on what’s happening. Making you unsure what’s happening and doubt if you are doing the right thing.
Prompts like “Use W/S to use the crank” should be “Hold W/S to use the crank”. Since, you need to hold the key instead of pressing it. Small things like that could also improve this game and it’s controls quite a lot. Overall, the controls are good, but they lack feedback to the player sometimes. Either with sound effects or with some visual effects. Like with the hammer, you barely have any sound effects when you use it, and it has some wind up animation, making you unsure if you are using it or not.
That is one of the biggest flaws in this game. The lack of feedback on your actions. Things like not knowing how many bullets are still left in your revolver or a sound effect when you hit an actual enemy. I think if there is one thing I’d use the built-in feedback tool is to report various cases/moments when I expect feedback from the game, like a sound effect or visual effect. Maybe they appear in the form of rumble effects… But, I’m not playing this game with a controller.
When you read this section of the article, I wouldn’t blame you if you think that this game isn’t good. Small bugs like the text of “Press R to reload” when your gun isn’t equipped or the bullets not leaving from the gun but from the player model don’t improve things either. Yet, I find myself looking past these problems since the core gameplay still works. I find myself getting used to the jank in this game and finding a very rough diamond. If the developers keep up with their promise of improving this game, I think that more action feedback will bring a lot to the game and maybe fixing the small bugs like in this paragraph as well.
Things like the animation of the shovel looking weird sometimes. The animation looks like the arms go through each other after a dig. Speaking of the shovel, the last dig is annoying since you have to move a pixel or two for it to count and give you your goodies. But the bug I’d love to see fixed most is the freeze for several seconds when you pick up something new or get a new codec entry. The game locks up like it’s about the crash, but it doesn’t.
What’s next for us?
Usually, I’m not really picky when it comes to the visuals of a game. As long as a game looks consistent, I’m quite happy. It needs to have a certain style so that you can quickly identify what’s what and enjoy the game.
Yet, for this game, I do have some things that I not really like in terms of the visuals. Firstly, the contrast of some ores and the floor isn’t clear enough. Sometimes I was passing up on ores since I wasn’t able to notice them on the ground.
There are also a lot of objects to give more details to the cave, but you can barely interact with them. I’d love to see lilly pads in lakes to move a bit when you walk past them or something more than just being able to clip through them. As well, a sound effect when you hit a wall you can’t mine. You get shouted at when you use the wrong or a too weak tool on something, so when not for the rest?
I think the biggest mistake that the visuals make is that it has an identity crisis. What I mean by that is that it isn’t a cohesive style. There is a lot of shell shading going on, but there is also a lot of details that give off a more realistic vibe. Some textures aren’t detailed enough and strechted too wide giving wrong impression the rest of the visuals that look more modern. The floor textures sometimes suffer most from this issue.
Looking back at this article, I think I’m being very critical for this game. I have played a lot worse and broken games for 15€. But, in this game you even have customisation options for your character and thee developers are extremely open for feedback. This game has a lot going for it. Fun achievements to hunt for, bosses at the end of runs and an amazing auto save system.
Apart from improving the character controls and adding some feedback on actions, I think this game is pretty decent. Yes, there is some polish missing like not having a tooltip with the lever at the cave entrance on what that lever does. I personally feel less conflicted about this game compared to the original. The growth in this title is immense and brings me a lot of hope for either some amazing updates, DLC or a new entry in the series.
The basis of for an amazing title is here and if you look past it’s short comings, this game is a blast to play. Maybe it’s a bit too repetitive for some and can be more fun in short bursts. But, when this game sinks it’s hooks into you, it really clicks. There is some polishing left to do and for a rather new VR focused developer, this is amazing. It’s their second non VR game and it shows a lot of promise.
The game is a perfect relaxing game to wind down, since it isn’t too difficult. The game is rather forgiving. I wouldn’t be surprised that I play this game after work to wind down and try and finish it slowly. Then again, while I’m writing this, I have summer holidays and I wouldn’t be surprised that I finish most of this game during my summer break.
Like I said earlier, I feel less conflicted about this game compared to the previous title. This game has a lot more going for it compared to the original. It’s less repetitive and it has a lot more going for it. It has it’s problems, yes. But, if you enjoy games like Minecraft, Steamworld Dig or Cave Digger, give the demo of this game a chance. The demo gives a very good idea on what you can expect from this game and if you enjoy it, buy the game. I’m enjoying myself quite a lot with this game and I’m happy that I have chosen the PC version over the Switch version since I feel like it just plays better. But maybe, if I get used to the Switch controls, I might enjoy it on Switch as well.
With that said, I have said everything I wanted to say about this game for now. Maybe when I finish this game, I might write a full review with the final thoughts and opinions on this game. But for now, I think the best conclusion for this game is that it’s an amazing step up from the original and besides some unpolished things… It’s a great game and comes recommend from me.
So, it’s time to wrap up this article with my usual outro. I hope you enjoyed reading it as much as I enjoyed writing it. I hope to be able to welcome you in another article, but until then have a great rest of your day and take care.
In Unity/UNet:
How do you properly spawn a NetworkPlayer? Right now, I'm doing it like this from inside a NetworkManager derived class:
public override void OnServerAddPlayer(NetworkConnection conn, short playerControllerId) {
NetworkPlayer newPlayer = Instantiate<NetworkPlayer>(m_NetworkPlayerPrefab);
DontDestroyOnLoad(newPlayer);
NetworkServer.AddPlayerForConnection(conn, newPlayer.gameObject, playerControllerId);
}
This code snippet works pretty well an
In Unity/UNet:
How do you properly spawn a NetworkPlayer? Right now, I'm doing it like this from inside a NetworkManager derived class:
public override void OnServerAddPlayer(NetworkConnection conn, short playerControllerId) {
NetworkPlayer newPlayer = Instantiate<NetworkPlayer>(m_NetworkPlayerPrefab);
DontDestroyOnLoad(newPlayer);
NetworkServer.AddPlayerForConnection(conn, newPlayer.gameObject, playerControllerId);
}
This code snippet works pretty well and both clients can communicate with each other. However, there are a few little issues that arise only on the host:
In Unity's hierarchy-view on the host, there are only two NetworkPlayer instances. Shouldn't there be four NetworkPlayer instances on the host? Two client instances and two server instances? If so, do you have any ideas what could cause the missing NetworkPlayer instances?
The two NetworkPlayer instances have both, their isClient and isServer flags set to true. But only one of the has it's isLocalPlayer flag set. Now I wonder if this behavior is as intended? And if so, how do you distinguish between the client and the server instance of a NetworkPlayer?
Two player behavior: If the remote client sends a [Command] that changes a [SyncVar] on the server, then on the host, the [SyncVar]-hook is called only on the NetworkPlayer instance that represents the remoteNetworkPlayer. The [SyncVar]-hook is not called on the host's"isLocalPlayer-NetworkPlayer" instance. Shouldn't the [SyncVar]-hook be called on both NetworkPlayer instances?
One of the more subtle trends at this year's Computex was that the majority of high-end motherboards now come equipped with a 5GbE network controller. At present, this might be considered a limited benefit as 5GbE and 10GbE switches and routers are still pretty expensive. But Realtek is planning on tackling the issue from both ends, as the company is preparing a hardware platform for sub-$100 5GbE switches.
Realtek’s quad-port 5GbE switch platform consists of five key chips: one RTL9303 switch
One of the more subtle trends at this year's Computex was that the majority of high-end motherboards now come equipped with a 5GbE network controller. At present, this might be considered a limited benefit as 5GbE and 10GbE switches and routers are still pretty expensive. But Realtek is planning on tackling the issue from both ends, as the company is preparing a hardware platform for sub-$100 5GbE switches.
Realtek’s quad-port 5GbE switch platform consists of five key chips: one RTL9303 switch system-on-chip, and four RTL8251B 5GbE physical interfaces (PHYs). The chips are accompanied by various other components, such as power management ICs, but in general it relies solely on in-house developed components, which is why it can be made so cheap.
RealTek's platform is meant for home and small offices, which is reflected in the switch's feature set. This is a simple, unmanaged switch with a handful of ports, making it ideal for linking up a few systems, while enterprise users will likely find it a bit too basic.
Segmenting the market like this is ultimately critical for bringing down the price of hardware. The bulk of 5GbE/10GbE switches on the market today are more enterprise-focused managed switches, which carry more features and a price premium to match. So developing a stripped-down platform for cheaper consumer switches is a huge development that should finally make it economical for consumers to adopt faster networking hardware, similar to 2.5GbE a few years ago.
At present, 2.5GbE switches are running at around $20/port, so RealTek's sub-$100 target for a 4-port switch aims to bring 5GbE in at just a slightly higher price tag of $25/port. Or, compared to the handful of unmanaged 10GbE switches on the market, which average $60/port, this will be less than half the price (though at half the bandwidth).
The proliferation of cheap 5GbE network switches will also mark a notable inflection point in Ethernet hardware design, as it's the fastest standard that is rated to work the ubiquitous Cat 5e cable. The NBASE-T standard was penned almost a decade ago in order to cover the missing-middle between 1GbE and 10GbE, while getting more bandwidth out of existing, widely-deployed Cat 5e cabling. So with the release of consumer 5GbE gear, the standard's goals are finally coming to fruition – though it does mean we're finally reaching the end of the road for the oldest network cabling still widely in use.
For now, Realtek is only talking about one customer offering a sub-$100 5GbE switch this September, but something tells me that other partners of the company will come up with similar devices soon enough. As a result of the competition, prices could get even lower, which is always good for buyers.
These benefits should also funnel into Wi-Fi 7 routers, to a limited extent. Wired backhaul speeds need to keep pace with ever-faster Wi-Fi standards in order to keep those newer radios fed, so it's not a coincidence that cheaper 5GbE is finally coming right as Wi-Fi 7 is taking off.
Overall, the company's 5GbE switch platform is part of a larger ecosystem of 5GbE hardware that Realtek was showing off at Computex. In addition to RTL8251B 5GbE PHYs and RTL9303 switch SoC, the company is also preparing their RTL8126 PCIe 3.1 network controller, and RTL8157 NIC for USB dongles.
No one likes slow internet. Whether you're working on an important project, dealing with work calls, gaming, or watching your favorite movies, bad internet can ruin the whole experience. Now, you could go all out and buy a new Wi-Fi 7 router, get Gigabit internet, and completely overhaul your home network. But let's be real here, that's not always a realistic or affordable option.
No one likes slow internet. Whether you're working on an important project, dealing with work calls, gaming, or watching your favorite movies, bad internet can ruin the whole experience. Now, you could go all out and buy a new Wi-Fi 7 router, get Gigabit internet, and completely overhaul your home network. But let's be real here, that's not always a realistic or affordable option.
I am currently trying to make a simple multiplayer game but had a little bit of trouble implementing client-side entity interpolation for entity movement. For some context, I am aiming to make a server-authoritative entity interpolation system using the method outlined in the famous Source article from Valve: https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking (The entity interpolation section)
What I am currently doing is I buffer the packets that I receive from the server an
I am currently trying to make a simple multiplayer game but had a little bit of trouble implementing client-side entity interpolation for entity movement. For some context, I am aiming to make a server-authoritative entity interpolation system using the method outlined in the famous Source article from Valve: https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking (The entity interpolation section)
What I am currently doing is I buffer the packets that I receive from the server and use the bounding states of the time calculated by current_client_time - cl_interp and use the fractional value between the two bounding packet times as the lerp value. However, this is where I face a problem. How do I record the time/timestamp of the packets?
Currently, I am storing and using the client timestamp of the game time I received the packets to compare. However, this led to the problem of the movement looking smooth, yet, slightly "wobbly". This was because although the server sends packet information at a stable rate, the times that the client receives them aren't perfectly stable. This means that there are times when the interval between two packets is short or sometimes longer, leading to a slower or faster interpolation between two states. This was the case even for sending the information through the local host.
I found a post with a similar question on reddit: https://www.reddit.com/r/gamedev/comments/85ndvx/implementation_specifics_for_entity_interpolation/
and the answer suggests using the servers' timestamp instead. However, based on my understanding (please correct me if I am wrong), this would mean that I would have to include the server timestamp in the packet. When I looked up the packet structures for other multiplayer indie games (Terraria, old Minecraft), I noticed that they do not include the timestamp, yet they have relatively smooth movements with no noticeable wobble.
My main question is how do they do it if they do not include the server timestamp included in the packets? Or is there something that I am misunderstanding or is there an alternative approach? If my approach/understanding is wrong, here is some more context of what I want: I don't need client-side prediction as much because I am trying to use a top-down click-to-move system like League of Legends or Starcraft. I just mainly need smooth movement and the latency is less of an issue. I hope someone can point me in the right direction.
I don't know if this will help, but here is the structure of my game. I currently have a separate fixed logic update loop and unfixed loop (mostly for rendering) for the client and a single fixed update loop for the server. The server runs at a rate of 60 ticks per second and periodically sends the positions of moving entities at a stable 20 times per second. The client polls and processes network events at an unfixed rate (though I can easily move this to a fixed one. I'm not sure where to put this but neither really helped with the wobbly behavior). The client's fixed update is also at a rate of 60 ticks per second and an unfixed rate of about 165 times per second (vsync).
If youre putting together a DIY project that needs a network connection, like a NAS or a home media server, plugging into your main network is the end goal, but could cause some problems if youre still experimenting. DIY projects by their very nature can result in a lot of trial and error, and if youve got other members of your home using your home network, they might not think that restarting the router or needing to assign custom IPs to every new device is quite as interesting as y
If youre putting together a DIY project that needs a network connection, like a NAS or a home media server, plugging into your main network is the end goal, but could cause some problems if youre still experimenting. DIY projects by their very nature can result in a lot of trial and error, and if youve got other members of your home using your home network, they might not think that restarting the router or needing to assign custom IPs to every new device is quite as interesting as you do. For the most part, you won't need another router for DIY projects, but if it involves networking, it's not a bad idea to do your testing on a separate router.
The SZBOX G48S is a compact computer that looks more like a router than a PC… although the lines between those two product categories are pretty blurry these days. What makes this mode interesting is that it’s a small, affordable, and silent system that pairs an Intel Alder Lake-N processor with support for up to 16GB […]
The post SZBOX G48S is a cheap, fanless mini PC made for networking with Intel N100 and four 2.5 GbE LAN portsrts, and appeared first on Liliputing.
The SZBOX G48S is a compact computer that looks more like a router than a PC… although the lines between those two product categories are pretty blurry these days. What makes this mode interesting is that it’s a small, affordable, and silent system that pairs an Intel Alder Lake-N processor with support for up to 16GB […]
In reference to the snapshot and delta compression approach popularized by Quake 3, but with ECS.
Understand the delta should only contain changes — makes sense.
However, if a snapshot delta no longer contains some component x, how does the client know if it’s because there is no state change or because the server removed the component? Same for entities, an entity may just not have any state change over the last few ticks, or, it may have been destroyed on the server, perhaps it was killed but
In reference to the snapshot and delta compression approach popularized by Quake 3, but with ECS.
Understand the delta should only contain changes — makes sense.
However, if a snapshot delta no longer contains some component x, how does the client know if it’s because there is no state change or because the server removed the component? Same for entities, an entity may just not have any state change over the last few ticks, or, it may have been destroyed on the server, perhaps it was killed but we missed that state update.
Now, I could:
Encode this into the actual diff as proposed in the comments, e.g. component x from previous snapshot no longer exists in latest snapshot. This of course would not be compatible with how my deltas are currently being auto generated by XORing two snapshots.
Include ALL — in view — entity IDs and component types in a given snapshot delta packet even if the corresponding components are zero'd out (no change). Packet size concerns here as we’re no longer sending ‘only changes’ — e.g. if entity ID is 1 byte, component tag is 1 byte; 100 entities each with 5 networked components is already 600 bytes uncompressed even if the component data is unchanged and zeroed out (such as XOR).
Use a separate command system to relay key entity or component events e.g. entity x destroyed/spawned, etc., but that seems like overkill since it could be handled implicitly via state updates.
Example: P2 -- standing in view of P1 -- goes AFK for a few seconds and so the last x snapshots for P1 didn't contain the P2 entity. P1 doesn't know if P2 is dead and so it’s entity needs destroying, or it's actually just doing nothing. The reverse is also true, i.e. P2 could have been killed and the server destroyed that entity, but P1 missed the state update that indicated the death.
A somewhat related note but please feel free to stop reading: Quake 3 as far as I can see here will include all entities in the snapshot including an indicator if the entity is null (destroyed I assume). In the ECS world where we don’t have one struct representing an entity, but instead have many (components), if the same approach were to be followed for an entity’s components it could lead to a bulky delta — as per my original concern. Whilst not related to my question, diff is also much easier with the single struct approach since it would have many fields and you could simply XOR with a previous version and RLE out the zeros — also doesn’t work for components which would defeat the RLE.
I have a question about UDP. For context, I'm working on a real-time action game.
I've read quite a bit about the differences between UDP and TCP and I feel I understand them quite well, but there's one piece that has never felt correct, and that's reliability, and specifically acknowledgements. I understand that UDP offers no reliability by default (i.e. packets can be dropped or arrive out of order). When some reliability is required, the solution I've seen (which makes sense conceptually) is
I have a question about UDP. For context, I'm working on a real-time action game.
I've read quite a bit about the differences between UDP and TCP and I feel I understand them quite well, but there's one piece that has never felt correct, and that's reliability, and specifically acknowledgements. I understand that UDP offers no reliability by default (i.e. packets can be dropped or arrive out of order). When some reliability is required, the solution I've seen (which makes sense conceptually) is to use acknowledgements (i.e. the server sends a packet to the client, and when the client receives that message, it sends back an acknowledgement to the server).
What happens when the acknowledgement is dropped?
In the example above (one server sending a packet to one client), the server handles potential packet loss by re-sending packets every frame until acknowledgements are received for those packets. You could still run into issues of bandwidth or out-of-order messages, but purely from a packet-loss perspective, the server is covered.
However, if the client sends an acknowledgement that never arrives, the server would have no choice but to eventually stop sending that message, which could break the game if the information contained in that packet was required. You could take a similar approach to the server (i.e. keep sending acknowledgements until you receive an ack for the ack?), but that approach would have you looping back and forth forever (since you'd need an ack for the ack for the ack and so on).
I feel my basic logic is correct here, which leaves me with two options.
Send a single acknowledgment packet and hope for the best.
Send a handful of acknowledgment packets (maybe 3-4) and hope for the best, assuming that not all of them will be dropped.
Is there an answer to this problem? Am I fundamentally misunderstanding something? Is there some guarantee of using UDP I'm not aware of? I feel hesitant to move forward with too much networking code until I feel comfortable that my logic is sound.
I'm encountering an issue while using the NetworkDriver.Create method in Unity Networking and I could use some assistance.
Here's the code snippet where I'm facing the problem:
s_networkDriver = NetworkDriver.Create(new ReliableUtility.Parameters { WindowSize = 32 });
Whenever I run this line, I receive the following error:
error CS0315: The type 'Unity.Networking.Transport.Utilities.ReliableUtility.Parameters' cannot be used as type parameter 'N' in the generic type or method 'NetworkDriver.Cr
Whenever I run this line, I receive the following error:
error CS0315: The type 'Unity.Networking.Transport.Utilities.ReliableUtility.Parameters' cannot be used as type parameter 'N' in the generic type or method 'NetworkDriver.Create<N>(N)'. There is no boxing conversion from 'Unity.Networking.Transport.Utilities.ReliableUtility.Parameters' to 'Unity.Networking.Transport.INetworkInterface'.
I'm not entirely sure what this error means or how to resolve it. Can someone please provide some guidance on how to properly use NetworkDriver.Create in Unity Networking?
I'm a beginner about client/server calculations and relationships (never trust the client), and I would like to know if I did or didn't get the concept right.
My weapons are calling this function inside their OnTriggerEnter2D:
[Rpc(SendTo.Server, RequireOwnership = false)]
public void TakeDamageServerRpc()
{
//Calculate damage and stuff
//then send to Rpc client
TakeDamageClientRpc(1, RpcTarget.Single(OwnerClientId, RpcTargetUse.Temp));
}
This means the damage calculation (here it
I'm a beginner about client/server calculations and relationships (never trust the client), and I would like to know if I did or didn't get the concept right.
My weapons are calling this function inside their OnTriggerEnter2D:
[Rpc(SendTo.Server, RequireOwnership = false)]
public void TakeDamageServerRpc()
{
//Calculate damage and stuff
//then send to Rpc client
TakeDamageClientRpc(1, RpcTarget.Single(OwnerClientId, RpcTargetUse.Temp));
}
This means the damage calculation (here it just sends 1) is done on the servers; afterwards, I call the function on the corresponding client side which looks like this:
[Rpc(SendTo.SpecifiedInParams)]
private void TakeDamageClientRpc(int damage, RpcParams rpcParams = default)
{
if (state == STATE.DEAD)
return;
if (damage >= 1)
state = STATE.DEAD;
}
My questions here are :
Is the state variable on the player safe here? (I'd say yes.)
Can the integer damage sent to the client be manipulated? (I'd say no.)
Should TakeDamageServerRpc have an entry variable, can I trust it? (I'd say no.)
Without a doubt, coverage and speed are the two most important considerations when choosing a router, but it can be hard to find one with the right balance. While most routers strive for good coverage, some models excel more than others with clever antenna designs and modern technology support like OFDMA and beamforming. If youre willing to go with one of the best mesh systems, you have a lot more options, but if you just want a single router that can do it all, and maybe expand with
Without a doubt, coverage and speed are the two most important considerations when choosing a router, but it can be hard to find one with the right balance. While most routers strive for good coverage, some models excel more than others with clever antenna designs and modern technology support like OFDMA and beamforming. If youre willing to go with one of the best mesh systems, you have a lot more options, but if you just want a single router that can do it all, and maybe expand with a mesh later on, youll want something with a bit more power.
Resetting your router can be a quick way to solve some connectivity issues or to get a fresh start, but if your internet connection doesnt come back on, its very frustrating. Your router is part of a large collection of devices that directs data from your connected devices to the right server online and back again, so there are a lot of things that can prevent your connection from working. If youve reset your router, and it wont connect to the internet, there are some quick fixes you
Resetting your router can be a quick way to solve some connectivity issues or to get a fresh start, but if your internet connection doesnt come back on, its very frustrating. Your router is part of a large collection of devices that directs data from your connected devices to the right server online and back again, so there are a lot of things that can prevent your connection from working. If youve reset your router, and it wont connect to the internet, there are some quick fixes you can try.
upgrade your hand engraver with a solenoid system for a modern take on a classic craft
The post Modernizing The Craft Of Hand Engraving appeared first on Make: DIY Projects and Ideas for Makers.
TP-Link's discounted Deco X55 Wi-Fi 6 mesh triple pack is still my favorite wireless networking solution since I tested it in 2022, and it still provides a reliable connection to my home office.
TP-Link's discounted Deco X55 Wi-Fi 6 mesh triple pack is still my favorite wireless networking solution since I tested it in 2022, and it still provides a reliable connection to my home office.
The final approval of the 802.11be standard may only be scheduled for December 2024, but that has not put a spanner in the works of the Wi-Fi Alliance in creating a Wi-Fi 7 certification program.
At the 2024 CES, the program was officially announced with products based on silicon from Broadcom, Intel, Mediatek, and Qualcomm obtaining the Wi-Fi CERTIFIED 7 tag. Broadcom, Mediatek, and Qualcomm have already been through two generations of Wi-Fi 7 products, and it is promising to finally see Wi-Fi
The final approval of the 802.11be standard may only be scheduled for December 2024, but that has not put a spanner in the works of the Wi-Fi Alliance in creating a Wi-Fi 7 certification program.
At the 2024 CES, the program was officially announced with products based on silicon from Broadcom, Intel, Mediatek, and Qualcomm obtaining the Wi-Fi CERTIFIED 7 tag. Broadcom, Mediatek, and Qualcomm have already been through two generations of Wi-Fi 7 products, and it is promising to finally see Wi-Fi 7 exit draft status. This enables faster adoption on the client side, as well. The key features of Wi-Fi CERTIFIED 7 are based on the efforts of the IEEE 802.11be EHT (Extremely High Throughput) working group.
The introduction of 6 GHz support in Wi-Fi 6E in select regions opened up channels that were hitherto unavailable for in-home wireless use. Wi-Fi CERTIFIED 7 brings in support for 320 MHz channels. These ultra-wide channels are available only in the 6 GHz band.
These channels are responsible for the high throughput promised in Wi-Fi CERTIFIED 7. However, the non-availability of 6 GHz in many regions has proved to be a deterrent for client device vendors. Many of these companies do not want to spend extra for features that are not available across all geographies. It is likely that many client devices (particularly on the smartphone side) will ship without support for 320 MHz channels initially.
Multi-Link Operation (MLO) is yet another technique to boost available bandwidth for a single client. Wi-Fi CERTIFIED 7 allows clients to connect to the access point through multiple bands at the same time. It also increases the reliability of connections.
Wi-Fi 7 also brings in 4K QAM , allowing up to 12 bits to be encoded per symbol. This represents an increase in spectral efficiency of 20% over Wi-Fi 6 (which only required support for 1024 QAM).
Dense constellations require extremely sophisticated circuitry at both the transmitter (linear power amplifiers) and receiver ends (to avoid symbol decoding without errors). Those are part of the advancements that we can see in Wi-Fi CERTIFIED 7 devices.
Some of the other key updates in Wi-Fi CERTIFIED 7 include support for 512 compressed block acks, multiple resouce units to a single station / client, and triggered uplink access.
802.11n introduced the concept of block acks at the MAC layer where multiple wireless 'frames' (MAC Protocol Data Units or MPDUs to be more exact) can be acknowledged by the receiver in one response. The ack indicates the missed MPDUs, if any, in the previously transmitted set. In Wi-Fi 6, the limit for the number of MPDUs per block ack was 256. In Wi-Fi 7, this has been pushed up to 512. Spreading out this communication allows for better resource usage.
Wi-Fi 6 introduced the concept of resource units in the OFDMA scheme wherein the radio channel gets partitioned into smaller frequency allocations called RUs. These allow small packets to be transmitted to multiple users at the same time. In Wi-Fi 6, each user could get only one RU. Wi-Fi 7 allows for better efficiency by enabling allocation of non-contiguous RUs to a single user.
Benefits of Multiple RU Allocation to a Single User (Source: Mediatek)
Wi-Fi 6 introduced the concept of triggered uplink access, allowing clients to simultaneously transmit data back to the access point in an independent manner. This transmission is synchronized by the AP sending out a trigger frame containing the resource unit allocation information for each client. Wi-Fi 7 optimizes this scheme further for QoS requirements and latency-sensitive streams.
In the meanwhile, the 802.11 working group has already started the ground work for Wi-Fi 8. 802.11bn (ultra-high reliability or UHR) aims to bring more resilience to high-speed Wi-Fi networks by allowing multi-link operation distributed over multiple access points, coordination between multiple access points, and power saving features on the access point side.
Timeline for 802.11bn (EHR): Wi-Fi 8 Deployments in 2027 - 2028? (Source: What Will Wi-Fi 8 Be? A Primer on IEEE 802.11bn Ultra High Reliability [PDF])
The Wi-Fi Alliance expects a wide range of application scenarios for Wi-Fi 7, now that certification is in place.
These include mobile gaming, video conferencing, industrial IoT, automotive, multi-user AR / VR / XR, immersive e-training modules, and other use-cases. Wi-Fi 6 brought in a number of technological advancements to Wi-Fi, and Wi-Fi 7 has added to that. Unfortunately, AR / VR / XR has been trying to break into the mainstream for quite some time, but has met with muted success. It is one of the primary single-client use-cases that can benefit from features like MLO in Wi-Fi 7.
Advancements in spectral efficiency over the last few generations have helped greatly in enterprise deployments. These are scenarios where it is necessary to service a large number of clients with a single access point while maintaining acceptable QoS. User experience in MDUs (multi-dwelling units / apartments) where multiple wireless networks jostle with each other has also improved. That said, vendors are still in search of the ideal single-client scenario to bring out the benefits of Wi-Fi 7 - wireline speeds have largely been stagnant over the last decade, and there are very few ISPs offering gigabit speeds at reasonable prices or over a wide enough area. Both wireline and wireless technologies have to evolve in tandem to bring consumer benefit and pull them in with attractive use-cases. As it currently stands, the pace of progress in Wi-Fi has largely surpassed wired networks over the last couple of decades.
The Chinese PC makers behind that build-your-own NAS motherboard with an Intel Alder Lake-N processor and a lot of networking and storage options are back, and this time they’re selling a higher-performance model powered by an AMD Ryzen 7 7840HS processor and featuring support for even more storage. The Topton N11 mini-ITX motherboard is available now from AliExpress for […]
The post This mini-ITX motherboard has a Ryzen 7 7840HS processor, four 2.5 GbE LAN ports, and up to 9 SATA drives appear
The Chinese PC makers behind that build-your-own NAS motherboard with an Intel Alder Lake-N processor and a lot of networking and storage options are back, and this time they’re selling a higher-performance model powered by an AMD Ryzen 7 7840HS processor and featuring support for even more storage. The Topton N11 mini-ITX motherboard is available now from AliExpress for […]
upgrade your hand engraver with a solenoid system for a modern take on a classic craft
The post Modernizing The Craft Of Hand Engraving appeared first on Make: DIY Projects and Ideas for Makers.