From 11c5b9797dd2c99fbf5c58a232b7b26a7256d4d7 Mon Sep 17 00:00:00 2001 From: js6pak Date: Wed, 31 Mar 2021 13:37:49 +0200 Subject: [PATCH] Migrate to new csproj format --- Hazel Networking Protocol.docx | Bin 22391 -> 0 bytes Hazel.UnitTests/Hazel.UnitTests.csproj | 127 ++----------------- Hazel.UnitTests/Properties/AssemblyInfo.cs | 36 ------ Hazel.sln | 6 + Hazel/Hazel.csproj | 141 +++------------------ Hazel/Properties/AssemblyInfo.cs | 36 ------ README.md | 42 +----- 7 files changed, 38 insertions(+), 350 deletions(-) delete mode 100644 Hazel Networking Protocol.docx delete mode 100644 Hazel.UnitTests/Properties/AssemblyInfo.cs delete mode 100644 Hazel/Properties/AssemblyInfo.cs diff --git a/Hazel Networking Protocol.docx b/Hazel Networking Protocol.docx deleted file mode 100644 index 615c0cd4750739fc0b15f42e4003888db0289ce4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22391 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 EFL7k<-v9sr diff --git a/Hazel.UnitTests/Hazel.UnitTests.csproj b/Hazel.UnitTests/Hazel.UnitTests.csproj index 19560de..7c4ee6c 100644 --- a/Hazel.UnitTests/Hazel.UnitTests.csproj +++ b/Hazel.UnitTests/Hazel.UnitTests.csproj @@ -1,120 +1,19 @@ - - + + - Debug - AnyCPU - {1394E4CA-E17A-42F5-9216-8046ACA8D16B} - Library - Properties - Hazel.UnitTests - Hazel.UnitTests - v4.5 - 512 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 10.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages - False - UnitTest - + net5.0 + false - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - - - - ..\packages\BouncyCastle.1.8.9\lib\BouncyCastle.Crypto.dll - - - - - - - - - - - - - False - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - {02cfbd30-d77d-400f-94b2-700f60efdd7f} - Hazel - + + + + + - + - - - - - False - - - False - - - False - - - False - - - - - - - - \ No newline at end of file + + diff --git a/Hazel.UnitTests/Properties/AssemblyInfo.cs b/Hazel.UnitTests/Properties/AssemblyInfo.cs deleted file mode 100644 index c6e5128..0000000 --- a/Hazel.UnitTests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Hazel.UnitTests")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Hazel.UnitTests")] -[assembly: AssemblyCopyright("Copyright © 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("e88c2226-946e-4f00-9336-8d8d7946ac23")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Hazel.sln b/Hazel.sln index bc27b0a..420e6a1 100644 --- a/Hazel.sln +++ b/Hazel.sln @@ -7,6 +7,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hazel", "Hazel\Hazel.csproj EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hazel.UnitTests", "Hazel.UnitTests\Hazel.UnitTests.csproj", "{1394E4CA-E17A-42F5-9216-8046ACA8D16B}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Impostor.Api", "..\Impostor.Api\Impostor.Api.csproj", "{9932ED5B-4B76-451D-84C6-BE060DF1FD20}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -21,6 +23,10 @@ Global {1394E4CA-E17A-42F5-9216-8046ACA8D16B}.Debug|Any CPU.Build.0 = Debug|Any CPU {1394E4CA-E17A-42F5-9216-8046ACA8D16B}.Release|Any CPU.ActiveCfg = Release|Any CPU {1394E4CA-E17A-42F5-9216-8046ACA8D16B}.Release|Any CPU.Build.0 = Release|Any CPU + {9932ED5B-4B76-451D-84C6-BE060DF1FD20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9932ED5B-4B76-451D-84C6-BE060DF1FD20}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9932ED5B-4B76-451D-84C6-BE060DF1FD20}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9932ED5B-4B76-451D-84C6-BE060DF1FD20}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Hazel/Hazel.csproj b/Hazel/Hazel.csproj index 9b15a5a..4939380 100644 --- a/Hazel/Hazel.csproj +++ b/Hazel/Hazel.csproj @@ -1,131 +1,24 @@ - - - + + - Debug - AnyCPU - {02CFBD30-D77D-400F-94B2-700F60EFDD7F} - Library - Properties - Hazel - Hazel - v4.5 - 512 - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - true - false - 7.3 - - - portable - true - bin\Release\ - TRACE - prompt - 4 - - true - false - 7.3 - true - - - true - - - - - - - true - bin\DebugClient\ - DEBUG;TRACE - true - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - 7.3 + net5.0 + HAZEL_BAG + + + + <_Parameter1>Hazel.UnitTests + + + - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - - - - - - + - - - \ No newline at end of file + + diff --git a/Hazel/Properties/AssemblyInfo.cs b/Hazel/Properties/AssemblyInfo.cs deleted file mode 100644 index 3d0a292..0000000 --- a/Hazel/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Hazel")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Hazel")] -[assembly: AssemblyCopyright("Copyright © 2020")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("f3935f38-a904-40c7-ab9b-8d01aefe0489")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.1.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] - -// Show internals to unit testing assembly so it can test -[assembly:InternalsVisibleTo("Hazel.UnitTests")] \ No newline at end of file diff --git a/README.md b/README.md index 302ab31..6907485 100644 --- a/README.md +++ b/README.md @@ -1,41 +1,3 @@ -#### Hazel Networking is a low-level networking library for C# providing connection-oriented, message based communication via UDP and RUDP. +# Impostor.Hazel -The aim of this fork is to create a simple interface for ultra-fast connection-based UDP communication for games. - ------ - -## Features -- UDP and Reliable UDP. -- UDP Broadcast for local-multiplayer. -- Completely thread safe. -- All protocols are connection oriented (similar to TCP) and message based (similar to UDP) -- IPv4 and IPv6 support -- Automatic statistics about data passing in and out of connections -- Designed to be as fast and leightweight as possible - ------ - -### This fork has been heavily modified from the original to reduce allocations, copies, and locking. As such, it's fairly stable, but not guaranteed. However, my game Among Us currently runs on it with over 500k MAU, so that counts for something. - ------ - -HTML documentation, tutorials and quickstarts from the DarkRift Website [here](http://www.darkriftnetworking.com/Hazel/Docs) should be relatively accurate; but I doubt the original creator will want support calls for this fork. I can provide some limited support if you create an issue. - -I have changed some interfaces in "non-intuitive ways", it is my hope that [this example repo](https://github.com/willardf/Hazel-Examples) will be able to help users get started. - -If you want to make improvements, I am open to pull requests. If you find bugs, feel free raise issues. - ------ - -## Building Hazel - -To build Hazel open [solution file](Hazel.sln) using your favourite C# IDE (I use Visual Studio 2017) and then build as you would any other project. - ------ - -## Tips for using Hazel with Unity - - * Unity doesn't like other threads messing with GameObjects. This isn't a problem for tasks like relaying information. But for tasks like spawning GameObjects on clients or correcting physics, you will want to have a thread safe list of events that are run and cleared during Update or FixedUpdate. - * A List+lock(object) is fine because you have many writers, one reader and Hazel doesn't guarantee event order. - * A ConcurrentBag is not a bad choice, but you will have to do something special to keep the Update method from hanging if you get an overwhelming number of new events (which suggests problems with your code elsewhere). - * I also recommend using the ConnectAsync method in a Coroutine that waits for State to change so you don't hang the game while connecting. +Fork of Hazel made for [Impostor](https://github.com/Impostor/Impostor) -- 2.39.5