10 SEC. P🌀RTAL

by hilkojj
Overall★★★★★★★★★★3.71
Fun★★★★★★★★★★3.50
Innovation★★★★★★★★★★3.42
Theme★★★★★★★★★★3.63
Humor★★★★★★★★★★2.60
Mood★★★★★★★★★★3.10
Reach the end of the level by shooting portals every 10 seconds. Passing through a portal will also teleport you 10 seconds back in time, making it possible for your older self to help your current self.

🕹️ How to play


You can shoot portals on the white parts of the walls/floors/ceilings. Passing through a portal will cause your older self (from up to 10 seconds ago) to be played back in the level. Use this to your advantage, as you might need help from your older self with pressing a button.

⌨️
WalkW A S D
JumpSpace
Shoot Portal ALeft Mouse Button
Shoot Portal BRight Mouse Button
Retry LevelR

▶️ Play in browser!

* ⚠️ You might need to click the screen multiple times before entering first person mode!
* ⚠️ Download the Desktop version for better performance/graphics/less glitches.

🎥 Gameplay video:

If you're stuck in the game, you can watch the video to see how it should be played:

👨‍💻 Technical details:



Tool
Game EngineOwn made using C++/OpenGL with Lua Scripting and PBR shading
3D modelingBlender 3.3
SFXAudacity

Game Engine

This game was made using my custom C++/OpenGL engine (Engine source/Game source).
This is an Entity-Component-System based engine. Entities and their Components can be created and updated in Lua scripts (through Sol3, and the engine's automatic Lua API generation) upon specific events or time intervals, while systems programmed in C++ can do the heavy calculations. An example of such a system is the `PhysicsSystem` that links the Physics related components with the actual Physics simulation done by Bullet and fires Lua events on collisions.

Screenshot of the Engine with debug visualization and inspection GUI

The graphics in this specific game are rendered with a PBR renderer that I made using the help of LearnOpenGL. 3D models & (rigged) animations are imported from Blender through glTF. With the `CustomShader` component I can render certain entities with an alternative shader: The swirl effect on the Portal Guns is a good example of this.

Art/Graphics

Even though the 3D models and shaders were made by me, I opted out of the Graphics category because I downloaded PBR materials from textures.com.

Render the 'other' side of the portalApply fancy swirl shaderMagic


Audio

All sound effects were downloaded from freesound.org. (List with attributions)

All feedback is welcome!

Twitter

Comments16

Timo Strating
Timo Strating3 Oct 2022, 23:14
Great game. Simple in its essence, with nice puzzels. Some suggestions for improvements: Loading new levels and loading the game are a bit slow, with no indication it is loading. Puzzels are very limited in there options. This makes them veal lineair instead of explorative. Teaching the player it can shoot a portal on the sealing could forexample be done in a room where a portal can be placed on any wall. The player also has the option to clone itself many many additional times. This gives the game the feeling you are brute forcing all options instead of puzzeling. It comes down to "Make the player feel smart". When there is one place to place a portel it feels correct but it does not veal rewarding. When there are many places and a player finds once of them they think, haha I outsmarted this game hhihhii. Overall this was a really solid game with a lovely ascetic. The graphics look great. The small details, especially are really great (small shader details or wires that are hanging down from a platform). The sound effects are also really well done. They are soft and feel very coherent. They set the mood really well. The ending of a level also feels very natural where the game shows how you solved the level.
Craig King
Craig King4 Oct 2022, 20:14
Love the elegance of the mechanic. Really good example of "do one thing and do it well". I did notice I can aim 180 degrees down which is pretty trippy too!
Oliver Richmeier4 Oct 2022, 20:17
Really cool mechanic! The puzzles are also nice albeit a bit linear, having more spots to place portals would make it more engaging to solve. I also really liked the atmospheric sound design
unprecedented4 Oct 2022, 20:18
Had a great time figuring out the puzzles! I love the concept of seeing your past self doing things after going through the portal. This unique concept could definitely lend itself to some really cool puzzles, given the development time. Keep up the good work!
ccollider
ccollider4 Oct 2022, 20:19
Man this concept definitely has legs, super impressive that you managed to get portal mechanics working! It definitely took me a second to get a handle on the time-delay mechanic, though. It's a great moment when you realize it's a past version of you, not the back of your own head like in the original portal, but it's a lot to take in in 10 seconds, lol. Overall amazing job, though!
lonagi
lonagi4 Oct 2022, 20:19
Woow nice game using "Time manipulating", is it? Anyway this game is amazing. Great job and wish you success!
hansj4 Oct 2022, 20:19
Wow, this is super impressive for a self made engine as well! Loved the look and feel of it, and how you included the jam theme into a proven game loop like this. Very impressed.
cybek
cybek4 Oct 2022, 20:26
Hey, really fun game! I spent too much time on third level, because I haven't seen the upper platform. And in the forth level, I totally missed the purpose of the bananas, I just used myself to push the button and I used the strafe jumping to get to the exit of level :D
I really appreciate that you made this game using your own engine in c++ and opengl, really rare in these times. Especially it's nice because I didn't know that you can export it to webgl. I hope that you will make more levels :)
LDJam user 237588
LDJam user 237588author4 Oct 2022, 20:46
@timo-strating Thanks for the elaborative feedback.

@oliver-richmeier Yeah, I agree. I had too little time to design less linear levels, because there were a lot of technical challenges; ranging from visuals to physics. That was a very nice learning experience, though. I'm considering making a post-jam version with better level design :)

@cybek Haha yeah, the fourth level experiences a great lack of proper level design, because when I introduced the bananas to the game, I also introduced some very nasty physics-related bugs that took a lot of time to solve. :dizzy_face:

And yeah, you can export C++/OpenGL games to WebAssembly/WebGL using Emscripten!
Tero Pulkkinen
Tero Pulkkinen5 Oct 2022, 03:04
graphics in this entry looks very nice. The rendering quality is awesome.
cavejohnson332
cavejohnson3325 Oct 2022, 08:03
I like the game a lot but got soft-locked on the chapter with a banana, I jumped into the portal and then got repeatedly re-spawned on the button with no way out and no portable surfaces, overall, a great game!
LDJam user 237588
LDJam user 237588author5 Oct 2022, 10:06
@cavejohnson332 yeah the 🍌 level isn't designed that well. However, you should let the bananas fall through the portals so that they fall on the button on the platform you're describing. That way you don't have to get to the platform yourself.
Misfire_dev
Misfire_dev8 Oct 2022, 11:07
Super impressive for a three day game and honestly who isn't gna enjoy a game with portal guns?
alks
alks8 Oct 2022, 19:37
Great work! It's really fun to play and feels amazing! Graphics are just out of this world! Amazing how you put this all together in such a short time! Good job! :)
Bender Biber8 Oct 2022, 20:38
I wish there were more levels really well done. It is even more impressive that you have done this with your own custom engine
Rincs
Rincs14 Oct 2022, 03:50
That was pretty fun! Not too challenging but fun~ It's neat that you managed to get this mechanic working so quickly! :)

Other games by @hilkojj

Found a bug?
Tell us on Discord