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
|
||||
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>
|
||||
|
|
|
@ -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 })]
|
||||
|
|
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>
|
||||
<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 |
|
@ -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>
|
36
readme.md
36
readme.md
|
@ -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)
|
||||
...
|
||||
|
|
|
@ -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()
|
||||
);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
using System;
|
||||
|
||||
namespace slash;
|
||||
namespace dofdemo;
|
||||
|
||||
public static class Maths
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
using StereoKit;
|
||||
|
||||
namespace slash;
|
||||
namespace dofdemo;
|
||||
|
||||
static class Rig
|
||||
{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
using StereoKit;
|
||||
|
||||
namespace slash;
|
||||
namespace dofdemo;
|
||||
|
||||
static class SFX
|
||||
{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
using StereoKit;
|
||||
|
||||
namespace slash;
|
||||
namespace dofdemo;
|
||||
|
||||
static class VCam
|
||||
{
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
using StereoKit;
|
||||
using System;
|
||||
|
||||
namespace slash;
|
||||
namespace dofdemo;
|
||||
|
||||
static class VFX
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue