{"id":22607857,"url":"https://github.com/structed/jb-gamedev-days-24","last_synced_at":"2025-08-11T14:44:45.415Z","repository":{"id":266619019,"uuid":"867623367","full_name":"Structed/jb-gamedev-days-24","owner":"Structed","description":"Supporting project for my talk \"Building a Godot Addon\" presented at the JetBrains GameDevDays 2024.","archived":false,"fork":false,"pushed_at":"2024-10-09T17:44:37.000Z","size":1998,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-11T05:53:01.660Z","etag":null,"topics":["demo","gamedev","godot","jetbrains","talk"],"latest_commit_sha":null,"homepage":"https://lp.jetbrains.com/gamedev-days-2024","language":"GDScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Structed.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-04T12:13:34.000Z","updated_at":"2024-10-09T17:59:12.000Z","dependencies_parsed_at":"2024-12-05T08:14:55.333Z","dependency_job_id":"589113d6-9c0a-4790-a724-58ac8086f940","html_url":"https://github.com/Structed/jb-gamedev-days-24","commit_stats":null,"previous_names":["structed/jb-gamedev-days-24"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/Structed/jb-gamedev-days-24","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Structed%2Fjb-gamedev-days-24","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Structed%2Fjb-gamedev-days-24/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Structed%2Fjb-gamedev-days-24/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Structed%2Fjb-gamedev-days-24/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Structed","download_url":"https://codeload.github.com/Structed/jb-gamedev-days-24/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Structed%2Fjb-gamedev-days-24/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269905919,"owners_count":24494319,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["demo","gamedev","godot","jetbrains","talk"],"created_at":"2024-12-08T14:22:35.064Z","updated_at":"2025-08-11T14:44:45.365Z","avatar_url":"https://github.com/Structed.png","language":"GDScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿# Godot Plugin/GDExtension Demo Project\nThis is a demo project I did for my talk \"Building a Godot Addon\" at the [JetBrains GameDev Days 2024](https://lp.jetbrains.com/gamedev-days-2024).\n\nIt showcases two otions for addons:\n\n1. A simple Godot project that uses a GDScript module to add a new main screen panel to the editor.\n2. A simple Godot project that uses a custom GDExtension plugin to add a new node type to the engine.\n\n### Prerequisites\n- Godot Engine 4.3 or later\n- Python 3.6 or later\n- Pip 24.0 or later\n- SCons 4.8.0 or later\n- C++17 compatible compiler (Visual Studio 2019, GCC 8, Clang 6)\n\n## Plugin\nYou can find the Plugin in the `addons/demo_guide` folder.\nIt creates a main screen panel with two buttons to add/removes an Editor Tool menu item.\n\n## GDExtension\nThe GDExtension has a few more components to it:\n\n1. `/Sconstruct`: The build script for the GDExtension.\n2. `/src`: The source code for the GDExtension.\n3. `godot-cpp`: The Godot C++ bindings as a git submodule.\n4. Binaries are compiled into: `addons/demo_gdextension` folder. This is also where the `gdextension.gd` file is located, which lets the Editor know about the GDExtension.\n\n### Building\nRun `scons platform=windows` to build the GDExtension for Windows. You can also build for other platforms by changing the `platform` parameter.\n\n## GitHub Actions\nThis project has a GitHub Actions workflow that packages and deploys the Plugin to the Godot Asset Library.\nIt needs some configuration, which you can easily do by updating the environment variables in workflow.\n\nThe `.asset-template.json.hb` file is a template for the asset metadata that is used the workflow to upload to the Asset Library. Please update it with your own Icon. The rest of the metadata will be inferred from the GitHub Actions context.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstructed%2Fjb-gamedev-days-24","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstructed%2Fjb-gamedev-days-24","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstructed%2Fjb-gamedev-days-24/lists"}