Coder Social home page Coder Social logo

ezioleq / portaless Goto Github PK

View Code? Open in Web Editor NEW
17.0 1.0 3.0 8.65 MB

Valve's Portal 2 ripoff but without portals, made in Unity 3D for fun

License: GNU General Public License v3.0

C# 100.00%
portal2 low-poly 3d puzzle hacktoberfest unity game

portaless's Introduction

Portaless

Valve's Portal 2 ripoff but without portals, made in Unity 3D for fun
GitHub GitHub issues GitHub repo size GitHub milestone GitHub Repo stars GitHub forks

About

Portaless is a simple fangame made in Unity Engine for fun and experience. It's featuring well known mechanics from Portal games (expect the portals itself), recreated prop models in their unique style and maybe some original subtleties in the future.

A brief history

This project started as my attempt to recreate the laser mechanics from Portal 2, but I started adding more elements and we ended up here.

See Portal 2 on Steam

Important

This project is not going to be a full grown game.
I'd like to treat it like a prototype, sandbox, something where we can experiment with new entities, learn code, project scaling and maintenance. Please don't expect this project to be a game that you can play from start to finish.

How to

To run this project you just need to:

  1. Clone this repository using git clone https://github.com/ezioleq/Portaless.git --depth=1
    or download it using this link and then extract it.

  2. Open Unity Hub and add existing project or just open project in running Unity.
    Please use Unity 2022.3.11f1 LTS for best compatibility.

  3. Enjoy!

Screenshot

Screenshot

portaless's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

portaless's Issues

Add in-game FPS counter

Describe the solution you'd like
Add settings entry that enables in-game FPS counter.

Describe alternatives you've considered
Using an external FPS counter like mangohud or MSI Afterburner is a way to go through it but it's not always possible or it is problematic, in-game performance monitor will be platform independent and doesn't require any additional programs or knowledge how to install them.

Additional context
In a corner of the screen, small text like 144 FPS, nothing more.

New Input System

Describe the solution you'd like
Change current legacy input system to the new one.

Additional context
New input system would make it easy to implement new control methods like gamepads or steering wheels. Hard coding keycodes also isn't a good practice.

Introduce root namespace for the game code

As in the title. C# classes should be in one root namespace i.e. Portaless.
In this task this have to be set in the project settings as well as updated in every script.

Upgrade the project to a newer version of the Unity engine

Current "compatibility" version of the Unity editor is 2020.3.XX LTS, it's quite old and we should migrate the project to one of the more recent LTS versions of the engine. I'd choose the 2022.X.XX LTS.

  • Migrate project to newer Unity version
  • Update the used version in the README.md
  • Check if everything works as before

Add Pause Menu

Ability to pause the game is very important, this should be present in the game.

Add button activator

Describe the solution you'd like
Add this standing button from Portal.

Describe alternatives you've considered
Another types of activators are needed, one Weighted Storage Cube Receptacle cannot replace them all.

Additional context

Refactor Aerial Faith Plate

Currently the CursedLauncher.cs as its name suggests is kinda cursed. Especially I mean its code is suitable for some slight refactoring which is a part of cleaning the project from the work I did myself in the past.

An important part of this issue is to also change the name of the so called CursedLauncher to actual Aerial Faith Plate.

Grabbed object is clipping others and walls

Describe the bug
It describes itself.

To Reproduce
Steps to reproduce the behavior:

  1. Grab an object
  2. Go for a wall
  3. Observe.

Screenshots

PortalessGrab

Expected behavior
Grabbed object should not clip other ones. This can be done using second camera for grabbed object and rendering it on separate layer. When player drops an object it should drop right in front of him if he was standing towards a wall.

Dishonored game did it very nice and we should copy this behavior.

DishonoredGrab

Add Main Menu

Main Menu should be simple.

  • Play/Continue Game (level selector)
  • Settings
    • Graphics
    • Audio
    • Input (mouse sensitivity)
  • Credits

Add portals.

Describe the solution you'd like
Portals.

Describe alternatives you've considered
No Portals.

Additional context
Portals.

Add some levels

Levels in a puzzle game are important, even it's a simple demo.
I'd suggest at least 3 levels for now:

  • Level 1
  • Level 2
  • Level 3

Designing even simple levels is hard, if you have any suggestions for some I'd love to hear.

Better Player Damage Effect

Currently on damage player is randomly moved and the screen is getting red. It doesn't have the "feeling" of getting hurt.

New game icon

We already have some draft of it and it's in use, but I want to make it better, maybe cool SVG?
You can see current icon here.

Smart Dropper

Dropper should have options to drop new cube when previous was destroyed or not.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.