Skip to content

Commit

Permalink
Merge pull request #2 from guillaume-haerinck/unified_readme
Browse files Browse the repository at this point in the history
Unified readme + Use local gem (remote is not compatible anymore)
  • Loading branch information
stevenharmongames authored Apr 28, 2024
2 parents 45b4bd0 + 8b74b54 commit 9a838e7
Show file tree
Hide file tree
Showing 6 changed files with 105 additions and 23 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[Bb]uild/
[Cc]ache/
[Uu]ser/
5 changes: 3 additions & 2 deletions Projects/FirstPersonProject/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@
"icon_path": "preview.png",
"engine": "o3de",
"external_subdirectories": [
"Gem"
"Gem",
"../../Gems/FirstPersonController/0.0.0"
],
"restricted": "FirstPersonProject",
"gem_names": [
Expand Down Expand Up @@ -44,5 +45,5 @@
"TextureAtlas",
"WhiteBox"
],
"engine_version": "2.1.0"
"engine_version": "2.2.2"
}
48 changes: 48 additions & 0 deletions Projects/FirstPersonProject/project.json.bak1
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
"project_name": "FirstPersonProject",
"version": "1.0.0",
"project_id": "{250F200B-38F7-4780-8EDC-51297D565B38}",
"origin": "The primary repo for FirstPersonProject goes here: i.e. http://www.mydomain.com",
"license": "What license FirstPersonProject uses goes here: i.e. https://opensource.org/licenses/Apache-2.0 Or https://opensource.org/licenses/MIT etc.",
"display_name": "FirstPersonProject",
"summary": "A short description of FirstPersonProject.",
"canonical_tags": [
"Project"
],
"user_tags": [
"FirstPersonProject"
],
"icon_path": "preview.png",
"engine": "o3de",
"external_subdirectories": [
"Gem"
],
"restricted": "FirstPersonProject",
"gem_names": [
"AWSCore",
"Atom",
"AudioSystem",
"CameraFramework",
"Compression",
"DebugDraw",
"DiffuseProbeGrid",
"EMotionFX",
"EditorPythonBindings",
"FirstPersonController",
"FirstPersonProject",
"GameState",
"ImGui",
"LandscapeCanvas",
"LyShine",
"PhysX",
"PrefabBuilder",
"PrimitiveAssets",
"SaveData",
"ScriptCanvasPhysics",
"ScriptEvents",
"StartingPointInput",
"TextureAtlas",
"WhiteBox"
],
"engine_version": "2.1.0"
}
72 changes: 51 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,62 @@
<u>Supported o3de versions</u> : **23.10**

# O3DE-First Person Interaction Toolkit
![alt text](https://i.imgur.com/5GaxsZo.png)
The O3DE-FirstPersonInteractionToolkit is a template project for first person adventure games built atop of Porcupine-Factory's [FirstPersonController gem](https://github.com/Porcupine-Factory/FirstPersonController) and using the [Open 3D Engine](https://github.com/o3de/o3de/).

# Toolkit overview:
![overview gif](https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExOWxxcGo4Y3gyODZoZTA2emZiNTZ1N215NjVycmhnbXQzeWJocjA0MyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/IpsPFuHom0A16yceuz/source.gif)

The O3DE-FirstPersonInteractionToolkit is a template project for first person adventure games built atop of Porcupine-Factory's [FirstPersonController gem](https://github.com/Porcupine-Factory/FirstPersonController). The project contains a variety of simple documented script canvas scripts for various interactions as well as some template art assets for level design prototyping.

In this sample project, there's a variety of simple documented script canvas scripts for various interactions as well as some template art assets for level design prototyping.
For a comprehensive setup guide please see [Projects/SetupGuide.pdf](https://github.com/stevenharmongames/03DE-FirstPersonInteractionToolkit/blob/5b745fe87137040d9203c669841bc4c1e3ceee0f/Projects/SetupGuide.pdf)

## Prerequisites

You need to build or [install O3DE engine](https://o3de.org/download/).

## How to run

1. Download (green "Code" button, then "Download ZIP") or clone the github repository (`git clone https://github.com/stevenharmongames/O3DE-FirstPersonInteractionToolkit.git`)
2. Launch O3DE. It will open the Project manager. Click on the **New Project** button then **Open Existing Project** option.
3. Navigate to your download (and make sure it is unzipped). Open the **Projects/FirstPersonProject** folder. The project should now be registered.

![project](doc/project.png?raw=true)

4. Click on the **Build Project** button, located on the **FirstPersonProject** image.
5. Once the project has been built successfully, use the **Open Editor** button.
6. The asset pre-processor will run for a bit. Once it is over you will be welcomed with the **Open a Level** window, simply pick the first one.

## Controls

Move the character with WASD on the keyboard.
Use the mouse to rotate the camera.
All of the interactions are done via mouse left or right click.

## Project Highlights

[![click to play demo video](https://i.imgur.com/S1qEOv3.png)](https://youtu.be/kQ5ckXGn9xE)

# Mechanics included:
![overview gif](https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExOWxxcGo4Y3gyODZoZTA2emZiNTZ1N215NjVycmhnbXQzeWJocjA0MyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/IpsPFuHom0A16yceuz/source.gif)
* Modular interaction system with dynamic UI crosshair / popup text anims / object highlight
* Pickup, inspect (rotate), throw object, and return to original position
* Physics based doors that can be open, closed, and locked
* Ladder (half life 2 style based on look direction)
* Elevator with buttons to call the lift up/down
* Valve + Scifi Door (turnable wheel that controls 0<->1 value that can smoothly open doors or control other things)
* Read note (UI popup)
* Light switch (toggleable)
* Teleport triggers (walk in trigger area or place item, teleport to position without error / clipping through floor - height adjusted)
* Trampoline (based on incoming velocity, applies opposite upward force to objects / characters)
* Slide (no script, just weeeeeee!)

# License:
* **Modular interaction system** with dynamic UI crosshair / popup text anims / object highlight
* **Pickup**, inspect (rotate), throw object, and return to original position
* **Physics based doors** that can be open, closed, and locked
* **Ladder** (half life 2 style based on look direction)
* **Elevator** with buttons to call the lift up/down
* **Valve** + Scifi Door (turnable wheel that controls 0<->1 value that can smoothly open doors or control other things)
* **Read note** (UI popup)
* **Light switch** (toggleable)
* **Teleport** triggers (walk in trigger area or place item, teleport to position without error / clipping through floor - height adjusted)
* **Trampoline** (based on incoming velocity, applies opposite upward force to objects / characters)
* **Slide** (no script, just weeeeeee!)

The O3DE-FirstPersonInteractionToolkit is licensed under the [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/FAQ/).
### Screenshots

![screenshot](https://i.imgur.com/5GaxsZo.png)

# Special Thanks:
![screenshot](doc/screenshot-1.png?raw=true)

# Special Thanks

This project would not be possible without the generous help and advising from Eric Kuzmenko & NanaYellen, creators of the O3DE first person controller gem, and the O3DE Discord Community. Shoutout to Kepler - keplercodes & AJ - theoneabis for the debugging help.

# License

The O3DE-FirstPersonInteractionToolkit is licensed under the [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/FAQ/).

Binary file added doc/project.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/screenshot-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 9a838e7

Please sign in to comment.