All Projects → Placenote → PlaceInvaders

Placenote / PlaceInvaders

Licence: other
Multiplayer AR game sample

Programming Languages

C#
18002 projects
Objective-C++
1391 projects

Projects that are alternatives of or similar to PlaceInvaders

Team-Capture
Team-Capture - A multiplayer FPS game, inspired by games like Quake and TF2. Done in Unity
Stars: ✭ 81 (+237.5%)
Mutual labels:  multiplayer, multiplayer-game
Unity-Firebase-Multiplayer-Example
Multiplayer and Matchmaking system using Firebase Realtime Database in Unity
Stars: ✭ 32 (+33.33%)
Mutual labels:  multiplayer, multiplayer-game
colyseus-kotlin
⚔ Implementation of Colyseus client using Kotlin
Stars: ✭ 26 (+8.33%)
Mutual labels:  multiplayer, multiplayer-game
Magicallife
A 2d game that aspires to be similar to Rimworld, with more depth, magic, and RPG concepts.
Stars: ✭ 145 (+504.17%)
Mutual labels:  multiplayer, multiplayer-game
PlacenoteSDK-Unity
Placenote SDK and sample app for Unity
Stars: ✭ 78 (+225%)
Mutual labels:  augmented-reality, slam
Mrboom Libretro
Mr.Boom is an 8 player Bomberman clone for RetroArch/Libretro
Stars: ✭ 162 (+575%)
Mutual labels:  multiplayer, multiplayer-game
asciiarena
Terminal multiplayer deathmatch game
Stars: ✭ 34 (+41.67%)
Mutual labels:  multiplayer, multiplayer-game
Ancientbeast
Turn Based Strategy Game. Master your beasts! 🐺
Stars: ✭ 907 (+3679.17%)
Mutual labels:  multiplayer, multiplayer-game
Crystalshire
Legacy VB6 open-source ORPG
Stars: ✭ 24 (+0%)
Mutual labels:  multiplayer, multiplayer-game
SuperCTF
A multiplayer capture the flag game made in Godot with love and blood. Running live at www.superctf.com
Stars: ✭ 26 (+8.33%)
Mutual labels:  multiplayer, multiplayer-game
Reldens
Reldens - You can make it - Open Source MMORPG Platform
Stars: ✭ 130 (+441.67%)
Mutual labels:  multiplayer, multiplayer-game
vslam research
this repo is for visual slam research
Stars: ✭ 22 (-8.33%)
Mutual labels:  augmented-reality, slam
Forgenetworkingremastered
In short, Forge Networking is a free and open source multiplayer game (multi-user) networking system that has a very good integration with the Unity game engine. You wanna make a multiplayer game or real time multi-user application? This is the library for you.
Stars: ✭ 1,338 (+5475%)
Mutual labels:  multiplayer, multiplayer-game
karting
A multiplayer racing example project in Unity using the SocketWeaver SDK
Stars: ✭ 39 (+62.5%)
Mutual labels:  multiplayer, multiplayer-game
Frag.exe
Multiplayer First-Person Shooter written in C++ using my own engine, Qor
Stars: ✭ 8 (-66.67%)
Mutual labels:  multiplayer, multiplayer-game
liblast
A libre multiplayer FPS game created in Godot Engine
Stars: ✭ 92 (+283.33%)
Mutual labels:  multiplayer, multiplayer-game
MyRTS
Multiplayer RTS game prototype written in Java using LibGDX
Stars: ✭ 17 (-29.17%)
Mutual labels:  multiplayer, multiplayer-game
Openspades
Compatible client of Ace of Spades 0.75
Stars: ✭ 769 (+3104.17%)
Mutual labels:  multiplayer, multiplayer-game
OpenTrivia
Multiplayer quiz game demo using React and Opentdb API
Stars: ✭ 47 (+95.83%)
Mutual labels:  multiplayer, multiplayer-game
LunarGdx
A networking library for LibGDX utilizing Netty allowing easy creation of multiplayer games.
Stars: ✭ 23 (-4.17%)
Mutual labels:  multiplayer, multiplayer-game

Place Invaders

Multiplayer Place Invaders using Placenote Unity SDK with ARkit and Photon

Placenote SDK: 1.5.1

Project's Unity Version: 2018.1.1f1

Xcode: 9.3

Devices tested OS: 11.3


Steps to Deploy on 2 devices:

Before compiling to device:
  1. Register for a Free Photon Multiplayer Account and place your account's "AppId" into the "PhotonServerSettings" in the editor.

photon appid

  1. Register for a free Placenote account and get your api key here: https://developer.placenote.com. To Add your Placenote API key, find the ARCameraManager object in the Scene hierarchy and add your API key under the LibPlacenote component in the Inspector Panel.

  2. Build the Unity project by Switching Platform to iOS in the Build Settings and click build to generate the XCode project. To build and run the XCode, follow the instructions on this page: https://placenote.com/docs/unity/build-instructions/


Playing the Game:
  1. Open Place Invaders on both phones.

  2. Player 1 must press the Host Game button.

PI_Title_Screen

  1. Then Player 1 must enter a room name and press the arrow to create the room.

PI_Hosting_Room

  1. Player 2 must press the Join Game button. They will then be able to join Player 1's room once it is created.

PI_View_Rooms

  1. Player 1 will now be in the game and they must scan the play area - moving side to side. When finished scanning, Player 1 will press the "Finish Mapping" button to complete the scan and save the map's data.

PI_Mapping

  1. Now both players must look at the same scanned area to synch location and position. Then Player 1 can press the start button.

PI_Gameplay

Note:
- Player 1 and Player 2 can join or leave at anytime. They just need to localize before they can play.


Used technologies:

ArKit: https://assetstore.unity.com/packages/essentials/tutorial-projects/unity-arkit-plugin-92515

Placenote (creating AR maps): https://github.com/Placenote/PlacenoteSDK-Unity

Photon (for Multiplayer): https://assetstore.unity.com/packages/tools/network/photon-unity-networking-free-1786

Space Invader Models and Animations: https://www.turbosquid.com/3d-models/space-invader-set-3d-model/768637


Important Scripts:

Project Setup: This project's workflow is split into three different sections: Main Menu, Placenote Multiplayer Manager, and Gameplay Session. This project is designed so that you can easily take the Placenote Multiplayer Manager section, apply that to your own game, and turn it into a multiplayer AR masterpiece!

Main Menu Section

This section is all of the menus before a player joins or hosts a game. It does not have any super important scripts. It is mostly just Unity UI navigation. Note that the UI is controlled by Unity's built in UI system.

Placenote Multiplayer Manager Section

PlacenoteMultiplayerManager.cs: this is the most important class in the project. It is the master class that controls all of the Placenote mapping and Photon Multiplayer integration you will need. It has functionality to handle Photon connection, room setup, room joining, and room leaving. It also handles Placenote mapping, map saving, map loading, and localization. It contains subscribable events designed to interface with the rest of the project. This class is mostly called on OnClick button events and MappingText.cs.

PlacenotePunMultiplayerBehaviour.cs: an extendable class that provides all callbacks that PlacenoteMultiplayerManager can call. Most UI scripts extend this class to get updates on Placenote and Photon changes.

MappingText.cs: controls the user feedback for a Placenote mapping session. Uses most of the callbacks from PlacenotePunMultiplayerBehaviour.

Gameplay Session Section

GameController.cs: controls game logic including starting game, creating enemies, and managing players (creating new, registering, removing).

GameData.cs: stores game data about enemies and players. Also creates events about changes in game data and game state for UI components to update.

PlayerPhotonGenerator.cs: controls spawning of players.

PlayerController.cs: controls player lives, damaging enemies, and synchronizing with Photon.

WeaponController.cs: shoots enemies and calls missing or hit actions on AnimatedGun script.

AnimatedGun.cs: creates shot that damages enemies. Also controls shooting animation, time between shots, and synchronization shots with Photon.

EnemyAI.cs: controls enemies behaviour (attacking players, moving), and contains enemy properties( AttackPower, AttackTimeLimit, Speed etc.).

EnemyState.cs: contains enemies health, player shot interaction, and enemy death.

RespawnPoint.cs: controls spawn rate of enemy spawning.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].