add automatic build systems

This commit is contained in:
Reid 2023-07-27 22:57:20 -07:00
parent 0dfb98eaef
commit bf8f7186e7
11 changed files with 337 additions and 3 deletions

1
.env.example Normal file
View file

@ -0,0 +1 @@
ROBLOXSECURITY="_|WARNING:-DO-NOT-SHARE-THIS.--Sharing-this-will-allow-someone-to-log-in-as-you-and-to-steal-your-ROBUX-and-items.|youReallyThoughtBuddy"

35
.github/workflows/deploy.yml vendored Normal file
View file

@ -0,0 +1,35 @@
name: Deploy
on:
pull_request:
push:
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Set Node.js 16.x
uses: actions/setup-node@v3
with:
node-version: 16.x
- name: Run install
uses: borales/actions-yarn@v4
with:
cmd: install # will run `yarn install` command
- name: Install aftman
uses: ok-nick/setup-aftman@v0.3.0
- name: Build
uses: borales/actions-yarn@v4
with:
cmd: build # will run `yarn build` command
- name: Deploy project
run: mantle deploy -e default
env:
ROBLOSECURITY: ${{ secrets.ROBLOSECURITY }}

3
.gitignore vendored
View file

@ -13,3 +13,6 @@ build.rbxl
# logs
*.log
# my secrets 😍😎
.env

147
.mantle-state.yml Normal file
View file

@ -0,0 +1,147 @@
#
# WARNING - Generated file. Do not modify directly unless you know what you are doing!
# This file was generated by Mantle v0.11.9 on 2023-07-28T05:39:43Z
#
---
version: "5"
environments:
default:
- id: experience_singleton
inputs:
experience:
groupId: ~
outputs:
experience:
assetId: 4919579554
startPlaceId: 14220563181
dependencies: []
- id: place_start
inputs:
place:
isStart: true
outputs:
place:
assetId: 14220563181
dependencies:
- experience_singleton
- id: placeFile_start
inputs:
placeFile:
filePath: build.rbxl
fileHash: c50f3cab2ad5329bf577def16daa40733462b5e517ab7544b9c6aa711d835d7f
outputs:
placeFile:
version: 3
dependencies:
- place_start
- id: placeConfiguration_start
inputs:
placeConfiguration:
name: Goopler
description: Read my github repo reidlabwastaken/goopler if u can hahaha
maxPlayerCount: 100
allowCopying: false
socialSlotType: Automatic
customSocialSlotsCount: ~
outputs: placeConfiguration
dependencies:
- place_start
- id: experienceThumbnail_marketing/gameThumbnailDefault.jpg
inputs:
experienceThumbnail:
filePath: marketing/gameThumbnailDefault.jpg
fileHash: 882e683c5a0c7c289ca30f533cd966c5b9d974b864261a7ae6a9b4cf190487c4
outputs:
experienceThumbnail:
assetId: 62547342
dependencies:
- experience_singleton
- id: experienceThumbnailOrder_singleton
inputs: experienceThumbnailOrder
outputs: experienceThumbnailOrder
dependencies:
- experienceThumbnail_marketing/gameThumbnailDefault.jpg
- experience_singleton
- id: experienceIcon_singleton
inputs:
experienceIcon:
filePath: marketing/gameIcon.jpg
fileHash: 229781022c91dbcc7a20fefc5f9ad36db3015c68268060045e0a6f893210cb6b
outputs:
experienceIcon:
assetId: 43779451
dependencies:
- experience_singleton
- id: experienceConfiguration_singleton
inputs:
experienceConfiguration:
genre: FPS
playableDevices:
- Computer
isFriendsOnly: true
allowPrivateServers: true
privateServerPrice: 50
isForSale: false
price: ~
studioAccessToApisAllowed: true
permissions:
IsThirdPartyPurchaseAllowed: false
IsThirdPartyTeleportAllowed: false
universeAvatarType: MorphToR6
universeAnimationType: PlayerChoice
universeCollisionType: OuterBox
universeAvatarMinScales:
height: "0.9"
width: "0.7"
head: "0.95"
bodyType: "0"
proportion: "0"
universeAvatarMaxScales:
height: "1.05"
width: "1"
head: "1"
bodyType: "1"
proportion: "1"
universeAvatarAssetOverrides:
- assetTypeID: 18
isPlayerChoice: true
assetID: ~
- assetTypeID: 17
isPlayerChoice: true
assetID: ~
- assetTypeID: 27
isPlayerChoice: true
assetID: ~
- assetTypeID: 29
isPlayerChoice: true
assetID: ~
- assetTypeID: 28
isPlayerChoice: true
assetID: ~
- assetTypeID: 30
isPlayerChoice: true
assetID: ~
- assetTypeID: 31
isPlayerChoice: true
assetID: ~
- assetTypeID: 2
isPlayerChoice: true
assetID: ~
- assetTypeID: 11
isPlayerChoice: true
assetID: ~
- assetTypeID: 12
isPlayerChoice: true
assetID: ~
isArchived: false
outputs: experienceConfiguration
dependencies:
- experience_singleton
- id: experienceActivation_singleton
inputs:
experienceActivation:
isActive: false
outputs: experienceActivation
dependencies:
- experience_singleton

View file

@ -5,3 +5,4 @@
[tools]
rojo = "rojo-rbx/rojo@7.3.0"
run-in-roblox = "rojo-rbx/run-in-roblox@0.3.0"
mantle = "blake-mealey/mantle@0.11.9"

23
mantle.yml Normal file
View file

@ -0,0 +1,23 @@
environments:
- label: default
target:
experience:
icon: marketing/gameIcon.jpg
thumbnails:
- marketing/gameThumbnailDefault.jpg
configuration:
genre: fps
playableDevices: [computer]
privateServers:
price: 50
enableStudioAccessToApis: true
avatarType: r6
places:
start:
file: build.rbxl
configuration:
name: Goopler
description: |-
Read my github repo reidlabwastaken/goopler if u can hahaha
maxPlayerCount: 100

BIN
marketing/gameIcon.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View file

@ -20,7 +20,8 @@
"watch": "rbxtsc -w --rojo default.project.json --verbose",
"lint": "eslint src tests --max-warnings 0",
"serve": "rojo serve default.project.json",
"test": "yarn run build && run-in-roblox --place build.rbxl --script out/tests/runners/run.server.lua"
"test": "yarn run build && run-in-roblox --place build.rbxl --script out/tests/runners/run.server.lua",
"deploy": "yarn run build && mantle deploy -e default"
},
"devDependencies": {
"@rbxts/compiler-types": "^2.1.1-types.0",

View file

@ -7,6 +7,9 @@ An in-dev game that I plan to make a shooter game out of.
— reidlab
# Setup
When you first setup this repository, you probably want to add your `.ROBLOSECURITY` cookie into the `.env` file for automatic deployment with [Mantle](https://mantledeploy.vercel.app/). You also should change the ID of the game.
# Hacks
* I get a strange error about private identifiers in [`./src/ReplicatedStorage/ecs/state.ts`](./src/ReplicatedStorage/ecs/state.ts)
* I decided to omit the "TS" folder from [`./default.project.json:40`](./default.project.json) due to the script override not working in Health.server.ts in StarterCharacterScripts.
@ -18,6 +21,8 @@ An in-dev game that I plan to make a shooter game out of.
#### Medium priority
* Crouching
* Animations
* Seperate dev&prod environments (maybe later??? the game is very early stage so idk)
* Migrate todo to somewhere else like the issues tab
##### Low priority
* Camera bobble
* Add the bound tags in [`./src/ReplicatedStorage/ecs/boundTags.ts`](./src/ReplicatedStorage/ecs/boundTags.ts)

View file

@ -0,0 +1,118 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.roblox.com/roblox.xsd" version="4">
<Meta name="ExplicitAutoJoints">true</Meta>
<External>null</External>
<External>nil</External>
<Item class="Part" referent="RBXE7866AEC03004D3B83A1415157AEFC3C">
<Properties>
<bool name="Anchored">false</bool>
<BinaryString name="AttributesSerialize"></BinaryString>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">0</token>
<token name="BottomSurfaceInput">0</token>
<CoordinateFrame name="CFrame">
<X>19</X>
<Y>2.00000119</Y>
<Z>22</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<bool name="CanQuery">true</bool>
<bool name="CanTouch">true</bool>
<bool name="CastShadow">true</bool>
<string name="CollisionGroup">Default</string>
<int name="CollisionGroupId">0</int>
<Color3uint8 name="Color3uint8">4288914085</Color3uint8>
<PhysicalProperties name="CustomPhysicalProperties">
<CustomPhysics>false</CustomPhysics>
</PhysicalProperties>
<bool name="EnableFluidForces">false</bool>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">false</bool>
<bool name="Massless">false</bool>
<token name="Material">256</token>
<string name="MaterialVariantSerialized"></string>
<string name="Name">NotABasePart</string>
<CoordinateFrame name="PivotOffset">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<int name="RootPriority">0</int>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<int64 name="SourceAssetId">-1</int64>
<BinaryString name="Tags">RXhhbXBsZQ==</BinaryString>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">0</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<token name="formFactorRaw">1</token>
<token name="shape">1</token>
<Vector3 name="size">
<X>4</X>
<Y>4</Y>
<Z>4</Z>
</Vector3>
</Properties>
<Item class="Decal" referent="RBXC28C593C6B7F48B6AF6E20AAFD33B531">
<Properties>
<BinaryString name="AttributesSerialize"></BinaryString>
<Color3 name="Color3">
<R>1</R>
<G>1</G>
<B>1</B>
</Color3>
<token name="Face">5</token>
<string name="Name">Remilia Scarlet deka fumo</string>
<int64 name="SourceAssetId">9961773472</int64>
<BinaryString name="Tags"></BinaryString>
<Content name="Texture"><url>http://www.roblox.com/asset/?id=9961773438</url></Content>
<float name="Transparency">0</float>
<int name="ZIndex">1</int>
</Properties>
</Item>
</Item>
</roblox>