dofdemo branch
This commit is contained in:
parent
2c56f6fe52
commit
b182017f12
20 changed files with 112 additions and 76 deletions
|
@ -1,9 +1,9 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
<manifest
|
<manifest
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="com.dofdev.slash"
|
package="com.dofdev.dofdemo"
|
||||||
android:versionCode="48"
|
android:versionCode="1"
|
||||||
android:versionName="1.53"
|
android:versionName="1.01"
|
||||||
android:installLocation="auto"
|
android:installLocation="auto"
|
||||||
>
|
>
|
||||||
<uses-sdk android:minSdkVersion="29" android:targetSdkVersion="32" />
|
<uses-sdk android:minSdkVersion="29" android:targetSdkVersion="32" />
|
||||||
|
@ -17,25 +17,43 @@
|
||||||
<!-- <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> -->
|
<!-- <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> -->
|
||||||
|
|
||||||
<!-- Generic OpenXR items -->
|
<!-- Generic OpenXR items -->
|
||||||
<uses-feature android:name="android.hardware.vr.headtracking" android:required="true" android:version="1" />
|
<uses-feature
|
||||||
|
android:name="android.hardware.vr.headtracking"
|
||||||
|
android:required="true"
|
||||||
|
android:version="1"
|
||||||
|
/>
|
||||||
<uses-permission android:name="org.khronos.openxr.permission.OPENXR_SYSTEM" />
|
<uses-permission android:name="org.khronos.openxr.permission.OPENXR_SYSTEM" />
|
||||||
<uses-permission android:name="org.khronos.openxr.permission.OPENXR" />
|
<uses-permission android:name="org.khronos.openxr.permission.OPENXR" />
|
||||||
<queries>
|
<queries>
|
||||||
<provider android:authorities="org.khronos.openxr.runtime_broker;org.khronos.openxr.system_runtime_broker" />
|
<provider
|
||||||
<intent> <action android:name="org.khronos.openxr.OpenXRRuntimeService" /> </intent>
|
android:authorities="org.khronos.openxr.runtime_broker;org.khronos.openxr.system_runtime_broker"
|
||||||
<intent> <action android:name="org.khronos.openxr.OpenXRApiLayerService" /> </intent>
|
/>
|
||||||
|
<intent> <action
|
||||||
|
android:name="org.khronos.openxr.OpenXRRuntimeService"
|
||||||
|
/> </intent>
|
||||||
|
<intent> <action
|
||||||
|
android:name="org.khronos.openxr.OpenXRApiLayerService"
|
||||||
|
/> </intent>
|
||||||
</queries>
|
</queries>
|
||||||
|
|
||||||
<!-- Vive specific items -->
|
<!-- Vive specific items -->
|
||||||
<uses-feature android:name="wave.feature.handtracking" android:required="false" />
|
<uses-feature
|
||||||
<uses-feature android:name="wave.feature.tracker" android:required="false" />
|
android:name="wave.feature.handtracking"
|
||||||
|
android:required="false"
|
||||||
|
/>
|
||||||
|
<uses-feature android:name="wave.feature.tracker" android:required="false" />
|
||||||
|
|
||||||
<!-- Snapdragon specific items -->
|
<!-- Snapdragon specific items -->
|
||||||
<uses-permission android:name="com.qualcomm.qti.qxr.QXRServiceClientPermission" android:required="false" />
|
<uses-permission
|
||||||
|
android:name="com.qualcomm.qti.qxr.QXRServiceClientPermission"
|
||||||
|
android:required="false"
|
||||||
|
/>
|
||||||
<queries>
|
<queries>
|
||||||
<package android:name="com.qualcomm.qti.spaces.services" />
|
<package android:name="com.qualcomm.qti.spaces.services" />
|
||||||
<package android:name="com.qualcomm.qti.openxrruntime" />
|
<package android:name="com.qualcomm.qti.openxrruntime" />
|
||||||
<intent> <action android:name="com.qualcomm.qti.openxr.spaces.intent.action.BIND" /> </intent>
|
<intent> <action
|
||||||
|
android:name="com.qualcomm.qti.openxr.spaces.intent.action.BIND"
|
||||||
|
/> </intent>
|
||||||
</queries>
|
</queries>
|
||||||
|
|
||||||
<!-- Oculus specific items -->
|
<!-- Oculus specific items -->
|
||||||
|
@ -45,25 +63,52 @@
|
||||||
<uses-permission android:name="com.oculus.permission.EYE_TRACKING" />
|
<uses-permission android:name="com.oculus.permission.EYE_TRACKING" />
|
||||||
<uses-permission android:name="com.oculus.permission.USE_ANCHOR_API" />
|
<uses-permission android:name="com.oculus.permission.USE_ANCHOR_API" />
|
||||||
<uses-permission android:name="com.oculus.permission.USE_SCENE" />
|
<uses-permission android:name="com.oculus.permission.USE_SCENE" />
|
||||||
<uses-feature android:name="com.oculus.feature.PASSTHROUGH" android:required="true" />
|
<uses-feature
|
||||||
<uses-feature android:name="oculus.software.handtracking" android:required="false" />
|
android:name="com.oculus.feature.PASSTHROUGH"
|
||||||
<uses-feature android:name="com.oculus.software.body_tracking" android:required="false" />
|
android:required="true"
|
||||||
<uses-feature android:name="oculus.software.face_tracking" android:required="false" />
|
/>
|
||||||
<uses-feature android:name="oculus.software.eye_tracking" android:required="false" />
|
<uses-feature
|
||||||
|
android:name="oculus.software.handtracking"
|
||||||
|
android:required="false"
|
||||||
|
/>
|
||||||
|
<uses-feature
|
||||||
|
android:name="com.oculus.software.body_tracking"
|
||||||
|
android:required="false"
|
||||||
|
/>
|
||||||
|
<uses-feature
|
||||||
|
android:name="oculus.software.face_tracking"
|
||||||
|
android:required="false"
|
||||||
|
/>
|
||||||
|
<uses-feature
|
||||||
|
android:name="oculus.software.eye_tracking"
|
||||||
|
android:required="false"
|
||||||
|
/>
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:allowBackup="false"
|
android:allowBackup="false"
|
||||||
android:icon="@mipmap/appicon"
|
android:icon="@mipmap/appicon"
|
||||||
android:label="slash in a Box"
|
android:label="dofdemo"
|
||||||
android:roundIcon="@mipmap/appicon_round"
|
android:roundIcon="@mipmap/appicon_round"
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
>
|
>
|
||||||
<!-- Oculus -->
|
<!-- Oculus -->
|
||||||
<meta-data android:name="com.oculus.supportedDevices" android:value="quest2|quest3|questpro" />
|
<meta-data
|
||||||
<meta-data android:name="com.oculus.handtracking.version" android:value="V2.0" />
|
android:name="com.oculus.supportedDevices"
|
||||||
<meta-data android:name="com.oculus.ossplash.background" android:value="passthrough-contextual" />
|
android:value="quest2|quest3|questpro"
|
||||||
|
/>
|
||||||
|
<meta-data
|
||||||
|
android:name="com.oculus.handtracking.version"
|
||||||
|
android:value="V2.0"
|
||||||
|
/>
|
||||||
|
<meta-data
|
||||||
|
android:name="com.oculus.ossplash.background"
|
||||||
|
android:value="passthrough-contextual"
|
||||||
|
/>
|
||||||
<meta-data android:name="com.oculus.vr.focusaware" android:value="true" />
|
<meta-data android:name="com.oculus.vr.focusaware" android:value="true" />
|
||||||
<uses-native-library android:name="libopenxr_forwardloader.oculus.so" android:required="false" />
|
<uses-native-library
|
||||||
|
android:name="libopenxr_forwardloader.oculus.so"
|
||||||
|
android:required="false"
|
||||||
|
/>
|
||||||
<!-- Pico -->
|
<!-- Pico -->
|
||||||
<meta-data android:name="pvr.app.type" android:value="vr" />
|
<meta-data android:name="pvr.app.type" android:value="vr" />
|
||||||
<meta-data android:name="handtracking" android:value="1" />
|
<meta-data android:name="handtracking" android:value="1" />
|
||||||
|
@ -71,7 +116,7 @@
|
||||||
<meta-data android:name="spaces.version" android:value="0.15.0" />
|
<meta-data android:name="spaces.version" android:value="0.15.0" />
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name="slash.MainActivity"
|
android:name="dofdemo.MainActivity"
|
||||||
android:launchMode="singleTask"
|
android:launchMode="singleTask"
|
||||||
android:excludeFromRecents="false"
|
android:excludeFromRecents="false"
|
||||||
android:screenOrientation="landscape"
|
android:screenOrientation="landscape"
|
||||||
|
@ -86,4 +131,4 @@
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
</application>
|
</application>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
|
@ -9,7 +9,7 @@ using System;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
|
||||||
namespace slash;
|
namespace dofdemo;
|
||||||
|
|
||||||
[Activity(Label = "@string/app_name", MainLauncher = true, Exported = true)]
|
[Activity(Label = "@string/app_name", MainLauncher = true, Exported = true)]
|
||||||
[IntentFilter(new[] { Intent.ActionMain }, Categories = new[] { "org.khronos.openxr.intent.category.IMMERSIVE_HMD", "com.oculus.intent.category.VR", Intent.CategoryLauncher })]
|
[IntentFilter(new[] { Intent.ActionMain }, Categories = new[] { "org.khronos.openxr.intent.category.IMMERSIVE_HMD", "com.oculus.intent.category.VR", Intent.CategoryLauncher })]
|
||||||
|
|
BIN
Platforms/Android/Resources/mipmap-hdpi/appicon_foreground.png
(Stored with Git LFS)
BIN
Platforms/Android/Resources/mipmap-hdpi/appicon_foreground.png
(Stored with Git LFS)
Binary file not shown.
BIN
Platforms/Android/Resources/mipmap-mdpi/appicon_foreground.png
(Stored with Git LFS)
BIN
Platforms/Android/Resources/mipmap-mdpi/appicon_foreground.png
(Stored with Git LFS)
Binary file not shown.
BIN
Platforms/Android/Resources/mipmap-xhdpi/appicon_foreground.png
(Stored with Git LFS)
BIN
Platforms/Android/Resources/mipmap-xhdpi/appicon_foreground.png
(Stored with Git LFS)
Binary file not shown.
BIN
Platforms/Android/Resources/mipmap-xxhdpi/appicon_foreground.png
(Stored with Git LFS)
BIN
Platforms/Android/Resources/mipmap-xxhdpi/appicon_foreground.png
(Stored with Git LFS)
Binary file not shown.
BIN
Platforms/Android/Resources/mipmap-xxxhdpi/appicon_foreground.png
(Stored with Git LFS)
BIN
Platforms/Android/Resources/mipmap-xxxhdpi/appicon_foreground.png
(Stored with Git LFS)
Binary file not shown.
|
@ -1,4 +1,4 @@
|
||||||
<resources>
|
<resources>
|
||||||
<string name="app_name">slash</string>
|
<string name="app_name">dofdemo</string>
|
||||||
<string name="app_text">slash</string>
|
<string name="app_text">dofdemo</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 109 KiB |
|
@ -4,10 +4,10 @@
|
||||||
<RuntimeIdentifiers>android-arm64</RuntimeIdentifiers>
|
<RuntimeIdentifiers>android-arm64</RuntimeIdentifiers>
|
||||||
<SupportedOSPlatformVersion>29</SupportedOSPlatformVersion>
|
<SupportedOSPlatformVersion>29</SupportedOSPlatformVersion>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<ApplicationId>com.dofdev.slash</ApplicationId>
|
<ApplicationId>com.dofdev.dofdemo</ApplicationId>
|
||||||
<ApplicationVersion>1</ApplicationVersion>
|
<ApplicationVersion>1</ApplicationVersion>
|
||||||
<ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
|
<ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
|
||||||
<RootNamespace>slash</RootNamespace>
|
<RootNamespace>dofdemo</RootNamespace>
|
||||||
<ReadOnlyProject>true</ReadOnlyProject>
|
<ReadOnlyProject>true</ReadOnlyProject>
|
||||||
|
|
||||||
<SKOpenXRLoader>Standard</SKOpenXRLoader>
|
<SKOpenXRLoader>Standard</SKOpenXRLoader>
|
36
readme.md
36
readme.md
|
@ -23,16 +23,16 @@ adb connect 192.168.1.219
|
||||||
|
|
||||||
# publish build
|
# publish build
|
||||||
# increment version in Platforms/Android/AndroidManifest.xml
|
# increment version in Platforms/Android/AndroidManifest.xml
|
||||||
dotnet publish -c Release Projects/Android/slash.Android.csproj
|
dotnet publish -c Release Projects/Android/dofdemo.Android.csproj
|
||||||
|
|
||||||
# adb install Projects/Android/bin/Release/net7.0-android/com.dofdev.slash-Signed.apk
|
# adb install Projects/Android/bin/Release/net7.0-android/com.dofdev.dofdemo-Signed.apk
|
||||||
|
|
||||||
# upload quest
|
# upload quest
|
||||||
source .env
|
source .env
|
||||||
./ovr-platform-util upload-quest-build -a $APP_ID -s $APP_SECRET --apk $APK_PATH -c alpha -n "message"
|
./ovr-platform-util upload-quest-build -a $APP_ID -s $APP_SECRET --apk $APK_PATH -c alpha -n "message"
|
||||||
|
|
||||||
# debug
|
# debug
|
||||||
adb logcat | grep com.dofdev.slash
|
adb logcat | grep com.dofdev.dofdemo
|
||||||
|
|
||||||
|
|
||||||
# install a specific android platform
|
# install a specific android platform
|
||||||
|
@ -41,29 +41,19 @@ sdkmanager "platforms;android-33" "build-tools;33.0.0"
|
||||||
|
|
||||||
```
|
```
|
||||||
todo
|
todo
|
||||||
pitch
|
centralized app for our interaction tech demos
|
||||||
anime slasher with juicy dofs
|
|
||||||
|
|
||||||
target audience/experience
|
target audience/experience
|
||||||
~13-18-year-olds who enjoy competitive, skill-based, solo gaming
|
peers to get a feel of some of our interactions without in a time efficient manner
|
||||||
360 standing experience on all openxr hmds
|
send and forget (perfect ux / no confusion or hand holding needed)
|
||||||
user/dev level editor for additional creative expression and content headroom
|
|
||||||
moderate learning curve
|
|
||||||
stylized visuals
|
|
||||||
fun to play daily for a couple weeks or so
|
|
||||||
|
|
||||||
core mechanics
|
featuring:
|
||||||
stretch slash
|
[] stretch_cursor
|
||||||
revolver
|
[] color_cube
|
||||||
flick reload
|
[] orbital_view
|
||||||
|
[] fullstick
|
||||||
enemy design
|
[] twist_cursor
|
||||||
dmg
|
[] cubic_flow
|
||||||
spd def
|
|
||||||
3 single types *fodder
|
|
||||||
dmg, spd, def
|
|
||||||
3 double types *competent
|
|
||||||
dmg+spd, spd+def, def+dmg
|
|
||||||
|
|
||||||
bug(s)
|
bug(s)
|
||||||
...
|
...
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using StereoKit;
|
using StereoKit;
|
||||||
|
|
||||||
namespace slash;
|
namespace dofdemo;
|
||||||
|
|
||||||
static class Arts
|
static class Arts
|
||||||
{
|
{
|
||||||
|
@ -13,7 +13,7 @@ static class Arts
|
||||||
static Material mat_backface = new Material("backface.hlsl");
|
static Material mat_backface = new Material("backface.hlsl");
|
||||||
static Material mat_justcolor = new Material("justcolor.hlsl");
|
static Material mat_justcolor = new Material("justcolor.hlsl");
|
||||||
|
|
||||||
static Material mat_slash = new Material("unlit.hlsl");
|
static Material mat_dofdemo = new Material("unlit.hlsl");
|
||||||
|
|
||||||
public static Vec3 shake = new(0, 0, 0);
|
public static Vec3 shake = new(0, 0, 0);
|
||||||
// static Quat spin_ori = Quat.Identity;
|
// static Quat spin_ori = Quat.Identity;
|
||||||
|
@ -44,7 +44,7 @@ static class Arts
|
||||||
|
|
||||||
mat_both.Chain = mat_backface;
|
mat_both.Chain = mat_backface;
|
||||||
|
|
||||||
mat_slash.FaceCull = Cull.None;
|
mat_dofdemo.FaceCull = Cull.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Frame()
|
public static void Frame()
|
||||||
|
@ -114,7 +114,7 @@ static class Arts
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
mesh.Draw(
|
mesh.Draw(
|
||||||
mat_slash,
|
mat_dofdemo,
|
||||||
Matrix.Identity,
|
Matrix.Identity,
|
||||||
Color.Hex(0xF9BF05FF).ToLinear()
|
Color.Hex(0xF9BF05FF).ToLinear()
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace slash;
|
namespace dofdemo;
|
||||||
|
|
||||||
public static class Maths
|
public static class Maths
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using StereoKit;
|
using StereoKit;
|
||||||
|
|
||||||
namespace slash;
|
namespace dofdemo;
|
||||||
|
|
||||||
static class Mono
|
static class Mono
|
||||||
{
|
{
|
||||||
|
@ -27,7 +27,7 @@ static class Mono
|
||||||
{
|
{
|
||||||
game_time = 0.0;
|
game_time = 0.0;
|
||||||
world_pose = new(0, -1, -2);
|
world_pose = new(0, -1, -2);
|
||||||
menu = new(true);
|
menu = new(false);
|
||||||
menu_pose = new(0, 0, 0);
|
menu_pose = new(0, 0, 0);
|
||||||
menu_scale = 1 * U.cm;
|
menu_scale = 1 * U.cm;
|
||||||
mode = Mode.Mount;
|
mode = Mode.Mount;
|
||||||
|
|
|
@ -2,7 +2,7 @@ using StereoKit;
|
||||||
using StereoKit.Framework;
|
using StereoKit.Framework;
|
||||||
|
|
||||||
|
|
||||||
namespace slash;
|
namespace dofdemo;
|
||||||
|
|
||||||
class Program
|
class Program
|
||||||
{
|
{
|
||||||
|
@ -13,7 +13,7 @@ class Program
|
||||||
// Initialize StereoKit
|
// Initialize StereoKit
|
||||||
SKSettings settings = new SKSettings
|
SKSettings settings = new SKSettings
|
||||||
{
|
{
|
||||||
appName = "slash",
|
appName = "dofdemo",
|
||||||
assetsFolder = "Assets",
|
assetsFolder = "Assets",
|
||||||
blendPreference = DisplayBlend.AnyTransparent,
|
blendPreference = DisplayBlend.AnyTransparent,
|
||||||
// overlayApp = true,
|
// overlayApp = true,
|
||||||
|
@ -22,6 +22,7 @@ class Program
|
||||||
disableFlatscreenMRSim = true,
|
disableFlatscreenMRSim = true,
|
||||||
renderScaling = 2,
|
renderScaling = 2,
|
||||||
renderMultisample = 0,
|
renderMultisample = 0,
|
||||||
|
// mode = AppMode.Simulator,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!SK.Initialize(settings))
|
if (!SK.Initialize(settings))
|
||||||
|
@ -31,7 +32,7 @@ class Program
|
||||||
World.OcclusionEnabled = true;
|
World.OcclusionEnabled = true;
|
||||||
Device.DisplayBlend = DisplayBlend.AnyTransparent;
|
Device.DisplayBlend = DisplayBlend.AnyTransparent;
|
||||||
Renderer.EnableSky = false;
|
Renderer.EnableSky = false;
|
||||||
Renderer.ClearColor = Color.Hex(0x42A590FF).ToLinear();// new Color(0.0f, 0.0f, 0.0f, 0.0f);
|
Renderer.ClearColor = Color.Hex(0x808080FF).ToLinear();// new Color(0.0f, 0.0f, 0.0f, 0.0f);
|
||||||
|
|
||||||
Rig.Init();
|
Rig.Init();
|
||||||
Mono.Init();
|
Mono.Init();
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
using StereoKit;
|
using StereoKit;
|
||||||
|
|
||||||
namespace slash;
|
namespace dofdemo;
|
||||||
|
|
||||||
static class Rig
|
static class Rig
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
using StereoKit;
|
using StereoKit;
|
||||||
|
|
||||||
namespace slash;
|
namespace dofdemo;
|
||||||
|
|
||||||
static class SFX
|
static class SFX
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
using StereoKit;
|
using StereoKit;
|
||||||
|
|
||||||
namespace slash;
|
namespace dofdemo;
|
||||||
|
|
||||||
static class VCam
|
static class VCam
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
using StereoKit;
|
using StereoKit;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace slash;
|
namespace dofdemo;
|
||||||
|
|
||||||
static class VFX
|
static class VFX
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue