![](https://miro.medium.com/v2/resize:fit:1400/1*RTBMMqrRkmi0xOmtQwDmcg.jpeg) Welcome to **Eidolon**! If you are new, the TLDR is that Eidolon is a game development tooling company here to help developers build games better and faster. How do we do this? 1. Top Tier SDKs — with a focus on Unity but some web based and mobile tools in Alpha. 2. Top Tier Support — we want to help you ship. It’s ok to ask for help. 3. Web2 + Web3 Experience — that’s right. We aren’t afraid to explore and help developers even in unproven areas. ## Eidolon.OS **Eidolon.OS** streamlines access to device-specific data, making Unity development more dynamic and responsive to user environments. With this package, developers can effortlessly retrieve system information like OS type, battery level, memory size, and network status. By centralizing access to device data, Eidolon.OS saves developers time from coding platform-specific logic and enhances app performance by intelligently adapting to user devices. **Code Example** ```csharp string deviceModel = OS.GetDeviceModel(); ``` ## Eidolon.Newton2D/3D **Eidolon.Newton2D** and **Newton3D** are physics packages for Unity, optimized for managing 2D and 3D physics interactions. Both provide easy-to-use methods for applying forces, managing constraints, and controlling motion damping. By focusing on common physics tasks, these tools reduce the need for repetitive code and help developers create engaging and realistic environments in games and simulations. **Code Example** ```csharp // 2D Physics Newton2D.ApplyForce(rigidbody, forceDirection, forceMagnitude); // 3D Physics Newton3D.ApplyForce(rigidbody, force); ``` ## Eidolon.Random **Eidolon.Random** simplifies adding randomness to Unity projects. With versatile functions for generating random values — booleans, colors, vectors, and more — it covers all aspects of randomization, helping developers add unpredictability to gameplay and simulate natural variations. **Code Example** ```csharp Color randomColor = RandomUtil.RandomColor(); ``` ## Eidolon.Timer **Eidolon.Timer** is a flexible timer solution, perfect for games needing precise time management. Offering start, stop, pause, and completion callbacks, it’s a ready-to-use package that replaces complex timer code, making event-based programming simpler. **Code Example** ```csharp float duration = 10f; GameTimer timer = new GameTimer(duration, OnTimerComplete); timer.Start(); ``` ## Eidolon.Controller **Eidolon.Controller** standardizes controller input handling, accommodating popular controllers like PlayStation and Xbox. This package allows developers to detect connected controllers, initialize button mappings, and easily retrieve input data, making cross-platform compatibility simpler. ```csharp bool controllerDetected = Controller.DetectConnectedController(); ``` ## Eidolon.Web3 **Eidolon.Web3** is an all-encompassing Ethereum compatible SDK for blockchain integration in Unity, abstracting complex operations like wallet interactions, asset management, and smart contract executions. Tailored for Unity, it’s user-friendly with comprehensive documentation, helping developers unlock new possibilities in game economics and ownership. ## Eidolon.WalletConnect **Eidolon.WalletConnect** enables blockchain-based interactions within Unity, allowing players to connect mobile wallets like MetaMask directly to the game. With QR-based connections and built-in transaction handling, it’s a straightforward solution for integrating blockchain assets and dApps into game experiences. **Code Example** ```csharp private void Awake() { // Instantiate our wallet using a default configuration that will use the chain we set in our project setup. wallet = new WalletConnectWallet(); } private async void Start() { // Initialize our wallet and generate the QR Code data string rawQrCodeData = await wallet.Initialize(); // Generate and show the QR Code Texture qrCode.texture = await wallet.GenerateQRCodeImage(rawQrCodeData); // Wait for the player to connect and assign their public address to a variable string account = await wallet.AwaitAuthentication(); // Optional - Set the account to PlayerPrefs PlayerPrefs.SetString("Account", account); // Display the connected account Debug.Log("Connected Account: " + PlayerPrefs.GetString("Account")); } ``` ## Eidolon.Networking **Eidolon.Networking** simplifies HTTP requests within Unity. Supporting GET, POST, PUT, and DELETE operations, along with custom headers and error handling, it minimizes setup complexity, allowing developers to efficiently incorporate web-based features. **Code Example** ```csharp string url = "https://api.example.com/data"; EidolonRequest.Get(url, headers, response => { Debug.Log(quot;Response: {response}"); }); ``` Each Eidolon package is designed to save development time, provide focused functionality, and integrate seamlessly with Unity, making them essential tools for efficient game development in the blockchain and web-enabled space. Additionally, while every Eidolon SDK is designed to be minimal to maintain maximum impact with the smallest footprint; the suite is also 100% modular with every package being able to work in the same codebase with zero conflicts. Interested in using Eidolon with your next Unity game? Reach out to [TheGreatAxios](https://t.me/thegreataxios) on Telegram!