Giter Club home page Giter Club logo

aws-gamekit-unity's Introduction

AWS GameKit Unity Package

This repository contains modifiable source code for the AWS GameKit package for Unity in the form of an Embedded Package. If you don’t need to modify the AWS GameKit package, you can download the latest tarball .tgz file from the releases page and add it to a Unity project using the Unity Package Manager. To modify this package we recommend cloning this repo and opening it as a blank Unity project. After making your changes, follow the Packaging steps below to generate a custom plugin package, which you can then add to your Unity projects.

Installing the AWS GameKit Unity Package

See Packages/com.amazonaws.gamekit/README.md for instructions on installing the Package Manager package.

Setup for making changes to the package

Clone this repository

git clone https://github.com/aws/aws-gamekit-unity

Add GameKit C++ SDK binaries

This package needs the GameKit C++ SDK binaries in order to work. There are two ways to get the binaries:

Use pre-built binaries:

  1. Download the latest AWS GameKit Unity Package from the releases page.
  2. Expand the com.amazonaws.gamekit-<version>.tgz file.
  3. Copy the folder <expanded contents>/package/Plugins/] into <root of this repo>/Package/com.amazonaws.gamekit/Plugins and overwrite any existing files with the same name.

Build the binaries:

  1. Clone and setup the AWS GameKit C++ SDK using the tag specified in the .gkcpp_version file in this repository.
  2. Follow these steps each time you modify the C++ SDK:
    1. Close Unity. Otherwise the .meta files for the binaries will be deleted by Unity in the next step.
    2. Compile the AWS GameKit C++ SDK.
    3. Run refresh_plugin.py as described in the Update Plugin with new binaries and headers section of the AWS GameKit C++ SDK README.

Add this Unity project to Unity Hub

  1. Open Unity Hub.
  2. Open the "Projects" tab along the left side.
  3. Click "Add", navigate to the root of the repository, then click "Select Folder".

Generate the C# Project

  1. Open Unity Hub.
  2. Open the aws-gamekit-unity project.
  3. In the Project window, navigate to Packages/AWS GameKit/Runtime/Scripts.
  4. Double click on any C# file.
    This will open the C# project in your IDE. Unity will automatically create the project if none exists. If you haven't set up an IDE or code editor, follow the guide in the Unity documentation.

If you ever need to regenerate the solution:

  1. Open Unity.
  2. Go to Edit > Preferences and click Regenerate project files

Unit Tests

See Assets/AWS_GameKit_Tests/README.md for instructions on running the unit tests.

Debugging

Unity

Follow these instructions to debug the C# code: https://docs.unity3d.com/Manual/ManagedCodeDebugging.html

Debugging AWS GameKit C++ SDK on Windows

Follow these instructions to debug the AWS GameKit C++ SDK on Windows and step through from C# into C++ and back. You'll have two instances of Visual Studio open: one for C# and one for C++.

One-time setup:

  1. Follow the steps in section Optional - Building the GameKit C++ SDK above, ensure Debug binaries are being created instead of release.
  2. Open the AWS GameKit C++ SDK solution file in Visual Studio.
  3. Add the C++ debugging symbols to Visual Studio:
    • Debug > Options > Debugging > Symbols > + (top right) >
      • Add the full path to /Packages/com.amazonaws.gamekit/Plugins/Windows/x64

Each time:

  1. Open the AWS GameKit C++ SDK solution file in Visual Studio.
  2. Attach the Visual Studio debugger to the Unity project. In Visual Studio:
    • Debug > Attach to Process >
      • Process: Unity.exe
      • Title (Example): aws-gamekit-unity - Untitled Scene - PC, Mac & Linux
  3. Open AWS GameKit Unity in a separate Visual Studio window.
  4. Attach the debugger to Unity (see previous section titled Debugging > Unity).
  5. Set breakpoints.
  6. Trigger breakpoints via Play Mode or by interacting with AWS GameKit through the Unity editor.

Packaging

Run the following commands in order to create the com.amazonaws.gamekit-<version>.tgz file:

cd path/to/aws-gamekit-unity
python export_unitypackage.py UNITY_APPLICATION_FULL_PATH

Where UNITY_APPLICATION_FULL_PATH is like:

  • Windows: "C:\Program Files\Unity\Hub\Editor\2021.3.4f1\Editor\Unity.exe"
  • Mac: /Applications/Unity/Hub/Editor/2021.3.4f1/Unity.app/Contents/MacOS/Unity

aws-gamekit-unity's People

Contributors

amazon-auto avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

aws-gamekit-unity's Issues

CloudFormation files

Are there CloudFormations template files that adopters can extend?

For example, I would like take the work that has been done to federated Facebook identities and extend it to also federated Google identities.

AWS Credentials entered are not a valid pair

Overview: I'm trying to integrate the GameKit plugin into a Unity project. Unfortunately I get the following error when I enter my credentials AWS Credentials entered are not a valid pair. I'm entering my credentials correctly. As Permissions in IAM I've selected AdministratorAccess because there is no option for GameKitDeveloperPolicy despite what the documentation outlines. Also I couldn't find the python script which is supposed to generate the policies. This is also the case with the SampleGame...

In Unity I get the following errors, too.

image

OS: macOS Ventura 13.2.1
Unity Engine: 2021.3.4f1 & 2022.1.11f1

GameKitInstanceNotFound errors on project startup, unable to login

Overview: When I start up my unity project, about ~28 of these errors occur.
This is my first time trying to use gamekit, I have not added any amazon credentials due to another issue which I'm not sure is related.
OS: Linux, Zorin OS 16.1 (Based on Ubuntu 20.04), x11
Game engine version and build: 2021.3.9f1
Logs

GameKitInstanceNotFound: CoreWrapper::DeploymentOrchestratorInstanceCreate() must be called with proper paths before any settings methods can be used
AWS.GameKit.Runtime.Core.CoreWrapper.GetDeploymentOrchestratorInstance () (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Core/CoreWrapper.cs:376)
AWS.GameKit.Runtime.Core.CoreWrapper+<>c__DisplayClass96_0.<DeploymentOrchestratorGetFeatureStatus>b__0 () (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Core/CoreWrapper.cs:430)
AWS.GameKit.Runtime.Utils.DllLoader.TryDll[T] (System.Func`1[TResult] importedMethod, System.String dllName, T returnOnError) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Utils/DllLoader.cs:41)
UnityEngine.Debug:LogException(Exception)
AWS.GameKit.Runtime.Utils.<>c__DisplayClass40_0:<LogException>b__0() (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Utils/Logging.cs:127)
AWS.GameKit.Runtime.Utils.Logging:LogInUnity(Level, Action) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Utils/Logging.cs:211)
AWS.GameKit.Runtime.Utils.Logging:LogException(Object, Exception) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Utils/Logging.cs:125)
AWS.GameKit.Runtime.Utils.DllLoader:LogDllException(Exception, String) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Utils/DllLoader.cs:103)
AWS.GameKit.Runtime.Utils.DllLoader:TryDll(Func`1, String, FeatureStatus) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Utils/DllLoader.cs:45)
AWS.GameKit.Runtime.Core.CoreWrapper:DeploymentOrchestratorGetFeatureStatus(FeatureType) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Core/CoreWrapper.cs:430)
AWS.GameKit.Editor.Core.FeatureDeploymentOrchestrator:GetFeatureStatus(FeatureType) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Core/FeatureDeploymentOrchestrator.cs:91)
AWS.GameKit.Editor.Windows.QuickAccess.QuickAccessWindow:DrawFeatureRows() (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/QuickAccess/QuickAccessWindow.cs:115)
AWS.GameKit.Editor.Windows.QuickAccess.QuickAccessWindow:OnGUI() (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/QuickAccess/QuickAccessWindow.cs:91)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&) (at /home/bokken/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:189)

Then a debug log:

Calling UserGameplayData.SetNetworkChangeDelegate()
UnityEngine.Debug:Log (object)
AWS.GameKit.Editor.Windows.Settings.Pages.UserGameplayData.UserGameplayDataExamplesTab:CallSetNetworkChangeDelegate () (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/Settings/Pages/UserGameplayData/UserGameplayDataExamplesTab.cs:515)
AWS.GameKit.Editor.Windows.Settings.Pages.UserGameplayData.UserGameplayDataExamplesTab:Initialize (AWS.GameKit.Editor.Windows.Settings.SettingsDependencyContainer,UnityEditor.SerializedProperty) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/Settings/Pages/UserGameplayData/UserGameplayDataExamplesTab.cs:95)
AWS.GameKit.Editor.Windows.Settings.Pages.UserGameplayData.UserGameplayDataPage:Initialize (AWS.GameKit.Editor.Windows.Settings.SettingsDependencyContainer,UnityEditor.SerializedProperty) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/Settings/Pages/UserGameplayData/UserGameplayDataPage.cs:27)
AWS.GameKit.Editor.Windows.Settings.AllPages:Initialize (AWS.GameKit.Editor.Windows.Settings.SettingsDependencyContainer,UnityEditor.SerializedProperty) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/Settings/AllPages.cs:69)
AWS.GameKit.Editor.Windows.Settings.SettingsModel:Initialize (AWS.GameKit.Editor.Windows.Settings.SettingsDependencyContainer) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/Settings/SettingsModel.cs:40)
AWS.GameKit.Editor.Windows.Settings.SettingsController:OnSettingsWindowEnabled (AWS.GameKit.Editor.Windows.Settings.SettingsWindow) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/Settings/SettingsController.cs:42)
AWS.GameKit.Editor.Windows.Settings.SettingsWindow:OnEnable () (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/Settings/SettingsWindow.cs:109)
UnityEditor.EditorWindow:GetWindow<AWS.GameKit.Editor.Windows.Settings.SettingsWindow> ()
AWS.GameKit.Editor.Windows.Settings.SettingsController:GetOrCreateSettingsWindow () (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/Settings/SettingsController.cs:37)
AWS.GameKit.Editor.ToolbarMenu:OpenSettings () (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/ToolbarMenu.cs:57)

Then more errors:

DllNotFoundException: aws-gamekit-authentication assembly:<unknown assembly> type:<unknown type> member:(null)
AWS.GameKit.Runtime.Core.SessionManagerWrapper+<>c__DisplayClass14_0.<SessionManagerInstanceCreate>b__0 () (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Core/SessionManagerWrapper.cs:87)
AWS.GameKit.Runtime.Utils.DllLoader.TryDll[T] (System.Func`1[TResult] importedMethod, System.String dllName, T returnOnError) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Utils/DllLoader.cs:41)
UnityEngine.Debug:LogException(Exception)
AWS.GameKit.Runtime.Utils.<>c__DisplayClass40_0:<LogException>b__0() (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Utils/Logging.cs:127)
AWS.GameKit.Runtime.Utils.Logging:LogInUnity(Level, Action) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Utils/Logging.cs:211)
AWS.GameKit.Runtime.Utils.Logging:LogException(Object, Exception) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Utils/Logging.cs:125)
AWS.GameKit.Runtime.Utils.DllLoader:LogDllException(Exception, String) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Utils/DllLoader.cs:99)
AWS.GameKit.Runtime.Utils.DllLoader:TryDll(Func`1, String, IntPtr) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Utils/DllLoader.cs:45)
AWS.GameKit.Runtime.Core.SessionManagerWrapper:SessionManagerInstanceCreate(String, FuncLoggingCallback) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Core/SessionManagerWrapper.cs:87)
AWS.GameKit.Runtime.Core.SessionManagerWrapper:GetInstance() (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Core/SessionManagerWrapper.cs:50)
AWS.GameKit.Runtime.FeatureUtils.GameKitFeatureWrapperBase:GetInstance() (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Features/FeatureUtils/GameKitFeatureWrapperBase.cs:46)
AWS.GameKit.Runtime.Features.GameKitUserGameplayData.UserGameplayDataWrapper:<UserGameplayDataSetNetworkChangeCallback>b__36_0() (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Features/UserGameplayData/UserGameplayDataWrapper.cs:229)
AWS.GameKit.Runtime.Utils.DllLoader:TryDll(Action, String) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Utils/DllLoader.cs:24)
AWS.GameKit.Runtime.Features.GameKitUserGameplayData.UserGameplayDataWrapper:UserGameplayDataSetNetworkChangeCallback(NetworkChangedDelegate) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Features/UserGameplayData/UserGameplayDataWrapper.cs:229)
AWS.GameKit.Runtime.Features.GameKitUserGameplayData.UserGameplayData:SetNetworkChangeDelegate(NetworkChangedDelegate) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Features/UserGameplayData/UserGameplayData.cs:389)
AWS.GameKit.Editor.Windows.Settings.Pages.UserGameplayData.UserGameplayDataExamplesTab:CallSetNetworkChangeDelegate() (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/Settings/Pages/UserGameplayData/UserGameplayDataExamplesTab.cs:517)
AWS.GameKit.Editor.Windows.Settings.Pages.UserGameplayData.UserGameplayDataExamplesTab:Initialize(SettingsDependencyContainer, SerializedProperty) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/Settings/Pages/UserGameplayData/UserGameplayDataExamplesTab.cs:95)
AWS.GameKit.Editor.Windows.Settings.Pages.UserGameplayData.UserGameplayDataPage:Initialize(SettingsDependencyContainer, SerializedProperty) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/Settings/Pages/UserGameplayData/UserGameplayDataPage.cs:27)
AWS.GameKit.Editor.Windows.Settings.AllPages:Initialize(SettingsDependencyContainer, SerializedProperty) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/Settings/AllPages.cs:69)
AWS.GameKit.Editor.Windows.Settings.SettingsModel:Initialize(SettingsDependencyContainer) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/Settings/SettingsModel.cs:40)
AWS.GameKit.Editor.Windows.Settings.SettingsController:OnSettingsWindowEnabled(SettingsWindow) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/Settings/SettingsController.cs:42)
AWS.GameKit.Editor.Windows.Settings.SettingsWindow:OnEnable() (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/Settings/SettingsWindow.cs:109)
UnityEditor.EditorWindow:GetWindow()
AWS.GameKit.Editor.Windows.Settings.SettingsController:GetOrCreateSettingsWindow() (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/Settings/SettingsController.cs:37)
AWS.GameKit.Editor.ToolbarMenu:OpenSettings() (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/ToolbarMenu.cs:57)
AWS.GameKit.Runtime.Core.CoreWrapper.GetAccountInstance () (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Core/CoreWrapper.cs:106)
AWS.GameKit.Runtime.Core.CoreWrapper.<AccountHasValidCredentials>b__61_0 () (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Core/CoreWrapper.cs:133)
AWS.GameKit.Runtime.Utils.DllLoader.TryDll[T] (System.Func`1[TResult] importedMethod, System.String dllName, T returnOnError) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Utils/DllLoader.cs:41)
UnityEngine.Debug:LogException(Exception)
AWS.GameKit.Runtime.Utils.<>c__DisplayClass40_0:<LogException>b__0() (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Utils/Logging.cs:127)
AWS.GameKit.Runtime.Utils.Logging:LogInUnity(Level, Action) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Utils/Logging.cs:211)
AWS.GameKit.Runtime.Utils.Logging:LogException(Object, Exception) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Utils/Logging.cs:125)
AWS.GameKit.Runtime.Utils.DllLoader:LogDllException(Exception, String) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Utils/DllLoader.cs:103)
AWS.GameKit.Runtime.Utils.DllLoader:TryDll(Func`1, String, Boolean) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Utils/DllLoader.cs:45)
AWS.GameKit.Runtime.Core.CoreWrapper:AccountHasValidCredentials() (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Runtime/Scripts/Core/CoreWrapper.cs:133)
AWS.GameKit.Editor.Core.FeatureResourceManager:IsAccountInfoValid(AccountDetails) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Core/FeatureResourceManager.cs:171)
AWS.GameKit.Editor.Windows.Settings.Pages.EnvironmentAndCredentials.EnvironmentAndCredentialsPage:OnAwsCredentialsChanged(Boolean) (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/Settings/Pages/EnvironmentAndCredentials/EnvironmentAndCredentialsPage.cs:1002)
AWS.GameKit.Editor.Windows.Settings.Pages.EnvironmentAndCredentials.EnvironmentAndCredentialsPage:DrawAwsAccountCredentialsSection() (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/Settings/Pages/EnvironmentAndCredentials/EnvironmentAndCredentialsPage.cs:446)
AWS.GameKit.Editor.Windows.Settings.Pages.EnvironmentAndCredentials.EnvironmentAndCredentialsPage:DrawContent() (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/Settings/Pages/EnvironmentAndCredentials/EnvironmentAndCredentialsPage.cs:167)
AWS.GameKit.Editor.Windows.Settings.Page:OnGUI() (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/Settings/Page.cs:71)
AWS.GameKit.Editor.Windows.Settings.PageContainerWidget:OnGUI() (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/Settings/PageContainerWidget.cs:17)
AWS.GameKit.Editor.Windows.Settings.SettingsWindow:DrawPageContents() (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/Settings/SettingsWindow.cs:233)
AWS.GameKit.Editor.Windows.Settings.SettingsWindow:OnGUI() (at Library/PackageCache/com.amazonaws.gamekit@4e6d95d6d0fc/Editor/Scripts/Windows/Settings/SettingsWindow.cs:187)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&) (at /home/bokken/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:189)

I'm not sure if this issue is related - but I'm unable to login with my aws account with the following error:
The AWS Credentials entered are not a valid pair
(The credentials worked on a team member's computer (on windows), but no matter what I tried don't work for me)
I can make a new issue for this if it is an unrelated issue

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.