Skip to content

Commit 8a44655

Browse files
committed
First night work
Essentially the upload of the boilerplate code to work from.
1 parent 138487b commit 8a44655

File tree

200 files changed

+21145
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

200 files changed

+21145
-0
lines changed

.gitattributes

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Normalize EOL for all files that Git considers text files.
2+
* text=auto eol=lf

.github/workflows/github_to_itch.yml

+138
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
name: Publish Nucleus to Itch.io
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
branches:
9+
- main
10+
env:
11+
BUTLER_API_KEY: ${{ secrets.BUTLER_API_KEY }} # Needs to be added through github
12+
DISCORD_WEBHOOK: ${{secrets.DISCORD_WEBHOOK}} # Needs to be added through github
13+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
14+
IS_MAIN: ${{ contains(github.ref, 'main') }}
15+
PROJECT_NAME: "Nucleus"
16+
17+
jobs:
18+
CleanArtifacts:
19+
# This job clears out the previous artifacts made so you don't run out of space in your github account
20+
runs-on: ubuntu-latest
21+
steps:
22+
- uses: kolpav/purge-artifacts-action@v1
23+
with:
24+
token: ${{ secrets.GITHUB_TOKEN }}
25+
expire-in: 1hr
26+
27+
Export:
28+
needs: CleanArtifacts # wait for artifacts to clean before making a new one
29+
runs-on: ubuntu-latest
30+
steps:
31+
- uses: actions/checkout@v2
32+
33+
- name: Download + Authorize Godot
34+
run: |
35+
curl -L -o godot.zip https://downloads.tuxfamily.org/godotengine/4.0.2/Godot_v4.0.2-stable_linux.x86_64.zip
36+
unzip godot.zip
37+
mv Godot_v4.0.2-stable_linux.x86_64 godot
38+
ls
39+
chmod +x godot
40+
41+
- name: Download Export Templates
42+
run: |
43+
curl -L -o export_templates.zip https://downloads.tuxfamily.org/godotengine/4.0.2/Godot_v4.0.2-stable_export_templates.tpz
44+
unzip export_templates.zip
45+
46+
- name: Install Export Templates
47+
run: |
48+
mkdir -p ~/.local/share/godot/export_templates/4.0.2.stable
49+
mv ./templates/* ~/.local/share/godot/export_templates/4.0.2.stable
50+
51+
52+
- uses: actions/upload-artifact@v2
53+
with:
54+
name: exports
55+
path: exports
56+
57+
Release:
58+
needs: Export
59+
if: ${{ contains(github.ref, 'main') }}
60+
runs-on: ubuntu-latest
61+
steps:
62+
- uses: actions/checkout@v2
63+
64+
- name: Version
65+
id: tag_version
66+
uses: mathieudutour/[email protected]
67+
with:
68+
github_token: ${{ secrets.GITHUB_TOKEN }}
69+
70+
- name: Verify Tag
71+
if: ${{ !steps.tag_version.outputs.new_tag }}
72+
run: exit 1
73+
74+
- name: Download Exports
75+
uses: actions/download-artifact@v2
76+
with:
77+
name: exports
78+
path: exports
79+
80+
- name: Zip
81+
run: zip -r release-${{ steps.tag_version.outputs.new_tag }}.zip exports
82+
83+
- name: Create Github Release
84+
id: create_release
85+
uses: actions/create-release@v1
86+
env:
87+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
88+
with:
89+
tag_name: ${{ steps.tag_version.outputs.new_tag }}
90+
release_name: Release ${{ steps.tag_version.outputs.new_tag }}
91+
body: ${{ steps.tag_version.outputs.changelog }}
92+
93+
- name: Upload Release Artifact
94+
uses: actions/upload-release-asset@v1
95+
env:
96+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
97+
with:
98+
upload_url: ${{ steps.create_release.outputs.upload_url }}
99+
asset_path: ./release-${{ steps.tag_version.outputs.new_tag }}.zip
100+
asset_name: release-${{ steps.tag_version.outputs.new_tag }}.zip
101+
asset_content_type: application/zip
102+
103+
- uses: frdrwrt/[email protected]
104+
with:
105+
filepath: ./VERSION.txt
106+
content: ${{ steps.tag_version.outputs.new_version }}
107+
mode: 0655
108+
109+
- uses: actions/upload-artifact@v2
110+
with:
111+
name: VERSION
112+
path: ./VERSION.txt
113+
114+
Publish:
115+
needs: Release
116+
if: ${{ contains(github.ref, 'main') }}
117+
runs-on: ubuntu-latest
118+
steps:
119+
- uses: actions/download-artifact@v2
120+
121+
- name: Download + Authorize Butler
122+
run: |
123+
curl -L -o butler.zip https://broth.itch.ovh/butler/linux-amd64/LATEST/archive/default
124+
unzip butler.zip
125+
chmod +x butler
126+
./butler -V
127+
128+
- name: Login To Butler
129+
run: ./butler login
130+
131+
132+
Cleanup:
133+
needs: [Export, Release, Publish]
134+
runs-on: ubuntu-latest
135+
steps:
136+
- uses: geekyeggo/delete-artifact@v1
137+
with:
138+
name: VERSION

Nucleus.csproj

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<Project Sdk="Godot.NET.Sdk/4.0.2">
2+
<PropertyGroup>
3+
<TargetFramework>net6.0</TargetFramework>
4+
<EnableDynamicLoading>true</EnableDynamicLoading>
5+
</PropertyGroup>
6+
</Project>

Nucleus.sln

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
Microsoft Visual Studio Solution File, Format Version 12.00
2+
# Visual Studio 2012
3+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nucleus", "Nucleus.csproj", "{9FFBE1A0-0BFF-4EBF-AADB-A645B0B4FAFA}"
4+
EndProject
5+
Global
6+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
7+
Debug|Any CPU = Debug|Any CPU
8+
ExportDebug|Any CPU = ExportDebug|Any CPU
9+
ExportRelease|Any CPU = ExportRelease|Any CPU
10+
EndGlobalSection
11+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
12+
{9FFBE1A0-0BFF-4EBF-AADB-A645B0B4FAFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
13+
{9FFBE1A0-0BFF-4EBF-AADB-A645B0B4FAFA}.Debug|Any CPU.Build.0 = Debug|Any CPU
14+
{9FFBE1A0-0BFF-4EBF-AADB-A645B0B4FAFA}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU
15+
{9FFBE1A0-0BFF-4EBF-AADB-A645B0B4FAFA}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU
16+
{9FFBE1A0-0BFF-4EBF-AADB-A645B0B4FAFA}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU
17+
{9FFBE1A0-0BFF-4EBF-AADB-A645B0B4FAFA}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU
18+
EndGlobalSection
19+
EndGlobal

QODOT-README.md

+111
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
![](https://raw.githubusercontent.com/Shfty/qodot-extras/master/graphics/qodot_logo_small.png)
2+
3+
Quake *.map* file support for Godot 4.x. **For the original Godot 3.x plugin, see [Qodot-Plugin](https://github.com/QodotPlugin/qodot-plugin/).**
4+
5+
# Before you enable Qodot
6+
7+
1. [Use Godot Engine .NET / mono build](https://godotengine.org/download/).
8+
2. [Download .NET SDK](https://dotnet.microsoft.com/en-us/download), **must be .NET SDK 7.0 or higher**.
9+
3. Run the .NET SDK installer, ensure it completes successfully.
10+
4. Go to Project > C# > Create C# Solution. Then click *Build* in the top-right corner.
11+
5. Go to Project > Project Settings > Plugins, then enable Qodot.
12+
13+
# About this version
14+
15+
Latest Tested Engine Version: **4.0.stable.mono**
16+
17+
This is a port of Qodot to Godot 4.x. It requires the .NET build of Godot to function correctly.
18+
19+
Moving forward this will be the official version of the plugin and where active development will continue.
20+
21+
## Documentation
22+
23+
Consult the [Qodot User Guide](https://qodotplugin.github.io/). Documentation may not be up to date for 4.0, but most things should be the same.
24+
25+
## Overview
26+
27+
Qodot extends the Godot editor to import Quake *.map* files, and provides a data-driven framework for converting the entities and brushes contained therein into a custom node hierarchy.
28+
29+
![](https://raw.githubusercontent.com/wiki/Shfty/qodot-plugin/images/2-usage/in-editor.gif)
30+
31+
## Features
32+
33+
- Natively import `.map` files into Godot and convert them into a usable scene tree
34+
- Supports
35+
- Brush geometry
36+
- Textures and customized UVs
37+
- Convex and concave collision volumes
38+
- Gameplay entities
39+
- FGD (Forge Game Data) export for custom game definitions
40+
- Configurable scene population
41+
- Leverages the map format's classname and key/value property systems
42+
- Spawn and configure custom Godot scenes and scripts based on entities defined in the map editor
43+
- Define the visual and collision properties of brush entities on a per-classname basis
44+
- TrenchBroom Integration
45+
- Simple, intuitive map editor with a strong feature set
46+
- TrenchBroom game configurations can be exported for tighter workflow integration
47+
- Nested TrenchBroom groups can be used to build a tree hierarchy from the format's standard flat structure
48+
49+
## Showcase
50+
51+
[![](https://raw.githubusercontent.com/Shfty/qodot-extras/master/showcase/sunkper-props-thumbnail.jpg)](https://raw.githubusercontent.com/Shfty/qodot-extras/master/showcase/sunkper-props.jpg)
52+
53+
Assorted props by [@SunkPer](https://twitter.com/SunkPer)
54+
55+
[![](https://raw.githubusercontent.com/Shfty/qodot-extras/master/showcase/sunkper-summer-island.gif)](https://cdn.discordapp.com/attachments/651209074930876416/659427504309796876/Project_Summer_Island_WIP_25.mp4)
56+
57+
Summer Island by [@SunkPer](https://twitter.com/SunkPer)
58+
59+
## Thesis
60+
61+
Qodot was created to solve a long-standing problem with modern game engines: The lack of simple, accessible level editing functionality for users without 3D modeling expertise.
62+
63+
Unity, Unreal and Godot are all capable of CSG to some extent or other with varying degrees of usability, but lack fine-grained direct manipulation of geometry, as well as per-face texture and UV manipulation. It's positioned more as a prototyping tool to be used ahead of a proper art pass than a viable methodology.
64+
65+
Conversely, dedicated 3D modeling packages like Maya or Blender are very powerful and can iterate fast in experienced hands, but have an intimidating skill floor for users with a programming-focused background that just want to build levels for their game.
66+
67+
Enter the traditional level editor: Simple tools built for games like Doom, Quake and Duke Nukem 3D that operate in the design language of a video game and are created for use by designers, artists and programmers alike. Thanks to years of community support, classic Quake is still alive, kicking, and producing high-quality content and mapping software alike. This continued popularity combined with its simplicity means the Quake *.map* format presents a novel solution.
68+
69+
## Extra Content
70+
71+
[The Qodot extra content repository](https://github.com/Shfty/qodot-extras) contains a set of additional resources, such as map editor plugins, logo graphics, showcase content and screenshots.
72+
73+
## Qodot Elsewhere
74+
75+
[Discord - Qodot](https://discord.gg/c72WBuG)
76+
77+
[Reddit - Qodot](https://www.reddit.com/r/godot/comments/e41ldk/qodot_quake_map_file_support_for_godot/)
78+
79+
[Godot Forums - Qodot](https://godotforums.org/discussion/21573/qodot-quake-map-file-support-for-godot)
80+
81+
[Godot Asset Library - Qodot 3.x](https://godotengine.org/asset-library/asset/446)
82+
83+
[Hannah's Twitter](https://twitter.com/STUDIOEMBYR)
84+
85+
## Credits
86+
87+
[Josh "Shifty" Palmer](https://twitter.com/ShiftyAxel) - Original Qodot plugin
88+
89+
[Hannah "EMBYR" Crawford](https://twitter.com/STUDIOEMBYR) - Godot 4.x & C# port & maintainance
90+
91+
[Kristian Duske](https://twitter.com/kristianduske) - For creating TrenchBroom and inspiring the creation of Qodot
92+
93+
[Arkii](https://github.com/GoomiChan) - For example code and handy documentation of the Valve 220 format
94+
95+
[TheRektafire](https://github.com/TheRektafire) - For a variety of useful tidbits on the .map format
96+
97+
[Ember](https://github.com/deertears/) - For creating the user guide
98+
99+
[Calinou](https://github.com/Calinou) - For making Qodot work on case-sensitive systems
100+
101+
[SunkPer](https://twitter.com/SunkPer) - For showcase screenshots
102+
103+
[lordee](https://github.com/lordee), [DistractedMOSFET](https://github.com/distractedmosfet) and [winadam](https://github.com/winadam) - For laying the groundwork of the FGD export and entity scripting systems.
104+
105+
[fossegutten](https://github.com/fossegutten) - For a typed GDScript pass
106+
107+
[Corruptinator](https://github.com/Corruptinator) - For the idea of using TrenchBroom groups as a scene tree.
108+
109+
[grenappels](https://github.com/grenappels) - For implementing smoothed brush normal edge splitting
110+
111+
[FreePBR.com](https://freepbr.com) - For royalty-free PBR example textures

SFPS-LICENSE

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
Copyright 2023 Hannah "EMBYR" Crawford
2+
Copyright 2019 Josh "Shifty" Palmer
3+
4+
MIT License
5+
6+
Permission is hereby granted, free of charge, to any person obtaining a copy
7+
of this software and associated documentation files (the "Software"), to deal
8+
in the Software without restriction, including without limitation the rights
9+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
copies of the Software, and to permit persons to whom the Software is
11+
furnished to do so, subject to the following conditions:
12+
13+
The above copyright notice and this permission notice shall be included in all
14+
copies or substantial portions of the Software.
15+
16+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22+
SOFTWARE.

SFPS-README.md

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# simplefps
2+
3+
A simple first-person shooter asset for the Godot Engine. Ready for immediate use when added to a 3D game.
4+
5+
Updated & Tested for Godot 4.0.2 Stable
6+
7+
#### Features
8+
9+
- Walking with Input Map strings (Godot default is the arrow keys)
10+
- Looking Around with Mouse
11+
- Interacting with Physics
12+
- Jumping with Spacebar
13+
- Standing on Rigid Bodies
14+
15+
#### Default Keymap
16+
17+
- Arrow Keys = Movement
18+
- Shift + Arrow Keys = Sprint Movement
19+
- F = Toggle Flashlight
20+
- E = Grab physics object (Rigid Body by default)
21+
- Left-Click to throw held object
22+
- Space = Jump
23+
24+
[![Icon](simplefps-icon.png)]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2016-2023 The Godot Engine community
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

0 commit comments

Comments
 (0)