dofdemo branch

This commit is contained in:
ethan merchant 2024-12-04 23:31:33 -05:00
parent 2c56f6fe52
commit b182017f12
20 changed files with 112 additions and 76 deletions

View file

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8" ?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dofdev.slash"
android:versionCode="48"
android:versionName="1.53"
package="com.dofdev.dofdemo"
android:versionCode="1"
android:versionName="1.01"
android:installLocation="auto"
>
<uses-sdk android:minSdkVersion="29" android:targetSdkVersion="32" />
@ -17,25 +17,43 @@
<!-- <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> -->
<!-- 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" />
<queries>
<provider android:authorities="org.khronos.openxr.runtime_broker;org.khronos.openxr.system_runtime_broker" />
<intent> <action android:name="org.khronos.openxr.OpenXRRuntimeService" /> </intent>
<intent> <action android:name="org.khronos.openxr.OpenXRApiLayerService" /> </intent>
<provider
android:authorities="org.khronos.openxr.runtime_broker;org.khronos.openxr.system_runtime_broker"
/>
<intent> <action
android:name="org.khronos.openxr.OpenXRRuntimeService"
/> </intent>
<intent> <action
android:name="org.khronos.openxr.OpenXRApiLayerService"
/> </intent>
</queries>
<!-- Vive specific items -->
<uses-feature android:name="wave.feature.handtracking" android:required="false" />
<uses-feature android:name="wave.feature.tracker" android:required="false" />
<uses-feature
android:name="wave.feature.handtracking"
android:required="false"
/>
<uses-feature android:name="wave.feature.tracker" android:required="false" />
<!-- 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>
<package android:name="com.qualcomm.qti.spaces.services" />
<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>
<!-- Oculus specific items -->
@ -45,25 +63,52 @@
<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_SCENE" />
<uses-feature android:name="com.oculus.feature.PASSTHROUGH" android:required="true" />
<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" />
<uses-feature
android:name="com.oculus.feature.PASSTHROUGH"
android:required="true"
/>
<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
android:allowBackup="false"
android:icon="@mipmap/appicon"
android:label="slash in a Box"
android:label="dofdemo"
android:roundIcon="@mipmap/appicon_round"
android:supportsRtl="true"
>
<!-- Oculus -->
<meta-data android:name="com.oculus.supportedDevices" 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.supportedDevices"
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" />
<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 -->
<meta-data android:name="pvr.app.type" android:value="vr" />
<meta-data android:name="handtracking" android:value="1" />
@ -71,7 +116,7 @@
<meta-data android:name="spaces.version" android:value="0.15.0" />
<activity
android:name="slash.MainActivity"
android:name="dofdemo.MainActivity"
android:launchMode="singleTask"
android:excludeFromRecents="false"
android:screenOrientation="landscape"
@ -86,4 +131,4 @@
</intent-filter>
</activity>
</application>
</manifest>
</manifest>

View file

@ -9,7 +9,7 @@ using System;
using System.Reflection;
using System.Threading;
namespace slash;
namespace dofdemo;
[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 })]

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,4 +1,4 @@
<resources>
<string name="app_name">slash</string>
<string name="app_text">slash</string>
<string name="app_name">dofdemo</string>
<string name="app_text">dofdemo</string>
</resources>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 109 KiB

View file

@ -4,10 +4,10 @@
<RuntimeIdentifiers>android-arm64</RuntimeIdentifiers>
<SupportedOSPlatformVersion>29</SupportedOSPlatformVersion>
<OutputType>Exe</OutputType>
<ApplicationId>com.dofdev.slash</ApplicationId>
<ApplicationId>com.dofdev.dofdemo</ApplicationId>
<ApplicationVersion>1</ApplicationVersion>
<ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
<RootNamespace>slash</RootNamespace>
<RootNamespace>dofdemo</RootNamespace>
<ReadOnlyProject>true</ReadOnlyProject>
<SKOpenXRLoader>Standard</SKOpenXRLoader>

View file

@ -23,16 +23,16 @@ adb connect 192.168.1.219
# publish build
# 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
source .env
./ovr-platform-util upload-quest-build -a $APP_ID -s $APP_SECRET --apk $APK_PATH -c alpha -n "message"
# debug
adb logcat | grep com.dofdev.slash
adb logcat | grep com.dofdev.dofdemo
# install a specific android platform
@ -41,29 +41,19 @@ sdkmanager "platforms;android-33" "build-tools;33.0.0"
```
todo
pitch
anime slasher with juicy dofs
centralized app for our interaction tech demos
target audience/experience
~13-18-year-olds who enjoy competitive, skill-based, solo gaming
360 standing experience on all openxr hmds
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
peers to get a feel of some of our interactions without in a time efficient manner
send and forget (perfect ux / no confusion or hand holding needed)
core mechanics
stretch slash
revolver
flick reload
enemy design
dmg
spd def
3 single types *fodder
dmg, spd, def
3 double types *competent
dmg+spd, spd+def, def+dmg
featuring:
[] stretch_cursor
[] color_cube
[] orbital_view
[] fullstick
[] twist_cursor
[] cubic_flow
bug(s)
...

View file

@ -1,7 +1,7 @@
using System.Collections.Generic;
using StereoKit;
namespace slash;
namespace dofdemo;
static class Arts
{
@ -13,7 +13,7 @@ static class Arts
static Material mat_backface = new Material("backface.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);
// static Quat spin_ori = Quat.Identity;
@ -44,7 +44,7 @@ static class Arts
mat_both.Chain = mat_backface;
mat_slash.FaceCull = Cull.None;
mat_dofdemo.FaceCull = Cull.None;
}
public static void Frame()
@ -114,7 +114,7 @@ static class Arts
}
);
mesh.Draw(
mat_slash,
mat_dofdemo,
Matrix.Identity,
Color.Hex(0xF9BF05FF).ToLinear()
);

View file

@ -1,6 +1,6 @@
using System;
namespace slash;
namespace dofdemo;
public static class Maths
{

View file

@ -1,7 +1,7 @@
using System.Collections.Generic;
using StereoKit;
namespace slash;
namespace dofdemo;
static class Mono
{
@ -27,7 +27,7 @@ static class Mono
{
game_time = 0.0;
world_pose = new(0, -1, -2);
menu = new(true);
menu = new(false);
menu_pose = new(0, 0, 0);
menu_scale = 1 * U.cm;
mode = Mode.Mount;

View file

@ -2,7 +2,7 @@ using StereoKit;
using StereoKit.Framework;
namespace slash;
namespace dofdemo;
class Program
{
@ -13,7 +13,7 @@ class Program
// Initialize StereoKit
SKSettings settings = new SKSettings
{
appName = "slash",
appName = "dofdemo",
assetsFolder = "Assets",
blendPreference = DisplayBlend.AnyTransparent,
// overlayApp = true,
@ -22,6 +22,7 @@ class Program
disableFlatscreenMRSim = true,
renderScaling = 2,
renderMultisample = 0,
// mode = AppMode.Simulator,
};
if (!SK.Initialize(settings))
@ -31,7 +32,7 @@ class Program
World.OcclusionEnabled = true;
Device.DisplayBlend = DisplayBlend.AnyTransparent;
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();
Mono.Init();

View file

@ -1,6 +1,6 @@
using StereoKit;
namespace slash;
namespace dofdemo;
static class Rig
{

View file

@ -1,6 +1,6 @@
using StereoKit;
namespace slash;
namespace dofdemo;
static class SFX
{

View file

@ -1,6 +1,6 @@
using StereoKit;
namespace slash;
namespace dofdemo;
static class VCam
{

View file

@ -1,7 +1,7 @@
using StereoKit;
using System;
namespace slash;
namespace dofdemo;
static class VFX
{