Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411484 Posts in 69371 Topics- by 58427 Members - Latest Member: shelton786

April 24, 2024, 03:32:37 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsProfundum - Steampunk virtual reality adventure puzzle game
Pages: 1 [2]
Print
Author Topic: Profundum - Steampunk virtual reality adventure puzzle game  (Read 7204 times)
nosferathoo
Level 1
*


indiedev from Poland


View Profile
« Reply #20 on: May 15, 2018, 01:57:45 AM »

I haven't posted in a while - sorry for that. Will post more soon but for now I would like to show you main objects in the game - gears. You can inspect them by clicking on gif. This will open object in sketchfab. There are some things to be improved (for example high poly usage) but you can already see them in action Smiley








Gears are working 100% on game physics so we can do a lot of stuff using them.
Currently we are working on some great stuff that we will like to share soon. Stay tuned Smiley
Logged

nosferathoo
Level 1
*


indiedev from Poland


View Profile
« Reply #21 on: May 21, 2018, 02:54:06 AM »

After feedback from testers we implement many little things that increase player immersion. One of these things was the ability to remove lightbulbs from sockets because near everyone testing the game tried to do it Smiley







All lightbulbs can also be broken so this led to situations when player is left in the darkness. Besides that we also thought about selected places in the game when darkness is intentional. In the meantime while browsing steampunk stuff on instagram we found great steampunk handmade works done by SvartMaster and immediately we came to conclusion we want one of his fire lighters designs in our game. We started with a prototype:









That you can fire up and put out using HTC Vive touchpad! (sorry for instagram video dump Smiley )










Meantime we asked SvartMaster to use one of his original designs and we are very happy to announce he agreed  Kiss . Immediately we started to copy his design to 3d model and implement it in the game:











You can all judge how it looks but we really love how it adds to the mood in dark places:











Once again big thanks and kudos to SvartMaster for his great designs - please check out his works!


Logged

nosferathoo
Level 1
*


indiedev from Poland


View Profile
« Reply #22 on: June 14, 2018, 04:31:58 AM »

We have not been posting for a while mainly because we were occupied showing game on game conferences/festivals (Casual Connect@London and Pixel Heaven@Warsaw). To break the silence we would like to show you next game prop - the furnace. From the concept art by our concept artist:








Through roughly textured model by our 3d specialist:










To fully hand textured one using substance painter, again by our concept artist who also likes to play with substance painter now Smiley











Can't wait to show you guys how this look in the game.

Logged

nosferathoo
Level 1
*


indiedev from Poland


View Profile
« Reply #23 on: June 18, 2018, 05:01:28 AM »

At first we didn't plan any obstacles that could harm or kill player and the gameplay was rather static and it was suppose to be that way right to the end. But lately we came up to the conclusion that giving player some challenge will be a good idea. After initial levels that teach you how to play and test your ability to think there will be 'exam' levels that you have to solve puzzles in a limited time.

Here's concept art for traditional moving walls with spikes - Indiana Jones style:






Then the rough model...







Some programming + animation and voila - player triggers the stress inducing trap:








Walls might be moving very slow and the puzzle is not very hard but mix them up and that gives player adrenaline rush:









Watch out for the spikes!








You can see footage with WIP sounds here:



Logged

nosferathoo
Level 1
*


indiedev from Poland


View Profile
« Reply #24 on: June 23, 2018, 02:18:57 PM »

Just a little sneak peak at what we were also working last two days. Just a crazy idea - can't wait to show you more Smiley







Logged

nosferathoo
Level 1
*


indiedev from Poland


View Profile
« Reply #25 on: July 09, 2018, 04:44:18 AM »

We've promised to show you our furnace/oven in action so here it is. The sounds are still WIP but the mechanic is nearly 100% ready





Logged

nosferathoo
Level 1
*


indiedev from Poland


View Profile
« Reply #26 on: July 18, 2018, 09:17:59 AM »

We thought it would be ok to record timelapses of our work to show it to you guys. So here's concept art of the ingame pickaxe:







and here's quick timelapse of modeling the 3d object from this concept:









Please let us know if you like to see more timelapses in the future?

Logged

nosferathoo
Level 1
*


indiedev from Poland


View Profile
« Reply #27 on: July 19, 2018, 07:00:08 AM »

We got a lot of questions about physics stability of our linked chains so I'm passing the "mike" to our programmer so he can explain how we made it work Smiley

Few clues about (almost) physically correct chain (in this case in VR but there is nothing standing in a way of using this in other games).

First I must write something about interactions with objects in VR. In SteamVR SDK (which we used from the beginning) picking up something is just changing object's parent to hand (controller). This is equal to changing object position via transform.position. It is efficient but really bad for immersion. Imagine that it’s like teleporting object from one position to another - even with high rate of frames it makes strange complications with collisions and constraints with other objects.

We had to change it. Best solution that I found was in Newton VR scripts - I will call it "magnetic picking". It changes Rigidbody.velocity to target velocity multiplied by constant value, called by Newton VR developer, a “velocity magic”. This creates force added to picked object that makes object follow the hand. Same thing u need to do with rotation using few calculations with quaternions and movetoward angularVelocity. U need to do it every frame for picked object.
Now when your object is pickable we can create chain with joints. To do that we created procedural script to put every chain link in correct position, in our case this is circular shape. We use two prefabs that we instantiate interchangeably.




Procedurally generated chain



Every chain link after instantiating must be connected by HingeJoint with previous (and last one with first). Remember about correct axis for hinge joints. Chainlinks’ prefabs can hold HingeJoint components with correct settings. You must figure out best settings for your chain to minimalize chance for jitter explosion.




Our settings



Selected chain links



Small cons:
There is always probability for jitter crash in some specific cases. For that we made respawn trigger script, after “explosion” chain will just respawn in original position. But with correct settings that is really really rare case.

"Magnetic picking" of chains works fine with two controllers (what in our case
is necessary to put them on our cogs). With one controller you are able to pick it up but rotation will never be correct, that’s because we are adding force for one chain link and others connected to it with hingejoints are dragging it down.

There is a way to use that chain like V-belt with friction to propel something, but we got cogs working on physics collision, so we made chain links with proper collider capsules and now it is (almost) physical correct.




Chainlink colliders that propel our cogs



One more thing is we can’t make prefab from created chain. Unity have strange problem properly saving spring values in prefab and that results in strange behaviours. So on every scene with chain we generate them procedurally.




Results Smiley



« Last Edit: July 19, 2018, 01:44:31 PM by nosferathoo » Logged

nosferathoo
Level 1
*


indiedev from Poland


View Profile
« Reply #28 on: July 23, 2018, 02:39:23 AM »

We are now working on something fun, we can show you a glimpse of it below - timelapse of conceptart:






Logged

Sundrop
Level 1
*

Grandma cooks best!


View Profile WWW
« Reply #29 on: July 23, 2018, 02:59:07 AM »

Oh man, this looks amazing! Especially the cog and chain thing!  Crazy
Logged

nosferathoo
Level 1
*


indiedev from Poland


View Profile
« Reply #30 on: July 23, 2018, 04:51:28 AM »

Oh man, this looks amazing! Especially the cog and chain thing!  Crazy
Thanks!
Logged

nosferathoo
Level 1
*


indiedev from Poland


View Profile
« Reply #31 on: August 29, 2018, 12:05:39 PM »

Recently we were trying to improve rope that we use in the beginning of the game. We already showed the result to the community on facebook/instagram/etc. We got some feedback with some interesting ideas how we can improve it further. After few changes we came to the stage that we are very happy with. Here are some hints from our programmer explaining how we did this.

Rope mechanics

1. Generator of connected colliders
     a) Prefab of single rope segment
     b) Instantiating
2.Rendering
     a) Cube interpolation
     b) Modified Tube Renderer found in Unity Wiki
3. Modification of SteamVR interactions
     a) Throwable class
     b) Hand class


1. Generator of connected colliders

To generate connected colliders that make up for our rope we created script that let us generate set of objects of variable length using selected prefab. Script is responsible to generate each rope segment and after that it is responsible to pass updated segments positions to TubeRenderer script (see below).

Single segment prefab contains rigid body, capsule collider and configurable joint with optimal settings:








Script at start is instantiating prefabs in correct order, direction, and is connecting their rigidbodies with configurable joint.

2. Rendering

To make the rope less blocky (and nunchaku like Smiley we use segments positions to calculate additional points using cubic function. These points are then passed to TubeRenderer.
To achieve this we use functions we found that take paremeter t (telling us which “subsegment” position we want to calculate) and four control points: previous segment position, current segment position and two adjacent ones to calculate smooth rope.

New points are passed to TubeRenderer script that generates rope mesh with desired thickness and number of points in cross sections. We modified this script a little because points in cross section were sometimes were calculated wrong way and that resulted in rope that looked like string of sausages Smiley. Cross sections' rotations had to be passed to TubeRenderer from original segments and lerped in cross segments.
We also had to fix bad UV mapping and calculate normals on our own.



Before:


and after (with 4-5 subsegments):




3. SteamVR interactions had to be modified for our usage
     a) Throwable class - after picking up object we don’t change their position but rather push object in the right position using velocity and angular velocity. We described this before when we tried to explain how our chain works Smiley
     b) Hand class - we deleted code that changed parenting of object to the hand.



This all resulted in very nice rope that you can bend and twist and also make knots:





... and potentially open a lot of great stuff we can do in the future:






Logged

nosferathoo
Level 1
*


indiedev from Poland


View Profile
« Reply #32 on: January 13, 2019, 09:47:51 AM »

We are very close to the planned release of our game so I can finally write something about one of our biggest achievements - the opus magnum (at least one) of the Profundum project Smiley
During the design process of new mechanics and game elements we came to the conclusion that our physics implementation of gears mechanics could power up some more sophisticated mechanism or vehicle. During the research we naturally found the kinetic sculptures by Theo Jansen, widely known as Strandbeest (see https://en.wikipedia.org/wiki/Theo_Jansen , http://www.strandbeest.com/)




These fantastic creatures called from danish beach beasts are mostly powered by the wind but their true strength is in the way their legs work:




source: wikipedia


As you can see on the in above gifs this brilliant construction transmutes circulas movement of central element (using series of connected moving parts) to movement similar to horse trot:




This design was inspiration for numerous engineers and followers (example) - you just need to google: strandbeest. It was also the perfect match for our steampunk universe and playing with gears, moving parts, steam machines etc.

We started from simple model of single leg acknowledging (quite rightly), that other legs will just have cloned mechanism. First step was to build the model in Blender taking into account all necessary but simplified moving parts and suggested dimensions and proportions (https://www.google.com/search?q=strandbeest+measures):




After some battling with setting up all the pieces and connecting the joints properly (some needed to be fixed to the mech “body”, others should be simple hingejoints and the centre one should be hingejoint with enabled motor to propel entire mechanism) we came to the point where we could clone one leg setup and get first walking version of our mechanical beast.




Finally after some more tweaking we've built this stable version that we could control using keyboard and also test it in VR:




This is where we stopped working on mechanics of our creature and gave all measures and screenshots to our concept artist to do a steampunk makeover for our beast. This resulted in this great concept:






Next the concept art naturally landed on our 3D artist desk, who carved final model using it. Our main programmer, responsible for putting the entire machine in motion, watched him during the entire modeling process so that all moving parts have right proportions, didn’t overlap in strange places and their movement looked good.

Again we started from the legs which movement was most important part of the entire machine. The perfect matching of moving parts between the visions of concept artist-3d artist-programmer was quite dificult and turbulent, but everyone had the same goal - to see the beast in motion and in full glory. After many, many tweaks in the design, dimensions and placement of moving parts we finally got to the point where our machine could move.

[small hint to everyone who wants to export moving machine from 3D modelling app like Blender to Unity: ask your 3d artist to put Empty objects in critical points between two moving parts and export them accordingly.]

3d modelling timelapse of our mecha:






We also built a virtual playground for our beast and we put it in series of tortures... I mean tests:




Meanwhile we also added two control sticks for steering both left and right set of legs separately, so player could freely maneuver.




One more very satisfying gif - I don’t know why:




And last but not least - our model came back to our concept artist, who also is our texture painter. She learned and used Substance Painter to paint our mech so it could finally be used in the game.






I just can’t wait for you guys to sit inside this mech and ride yourself through entire level - one of many others full of surprises and mechanics.

At the end I want to stress that entire machine works on game physics - nothing is precalculated or prerendered earlier as animation. Additionally entire mech is powered by mechanism inside the cockpit that player needs to complete taking into account stuff like moving forward and backward. Obviously we don’t want to show that to not spoil you guys the fun of completing this puzzle for yourself.

Remember you can already add the game to your steam wishlist - here’s short link: http://bit.ly/ProfundumVR
« Last Edit: January 13, 2019, 10:53:18 AM by nosferathoo » Logged

nosferathoo
Level 1
*


indiedev from Poland


View Profile
« Reply #33 on: January 18, 2019, 11:33:03 AM »

We are happy to announce that game just launched on Steam. We hope you will like our game and have a blast playing it. Below is the launch trailer for you to enjoy!





STEAM STORE PAGE
Logged

nosferathoo
Level 1
*


indiedev from Poland


View Profile
« Reply #34 on: February 27, 2019, 03:27:05 PM »

After releasing the game we are still working on optimizing the experience. This work resulted in some experimental tool for texture UV packing and mesh combining - here's first devlog about this:






« Last Edit: February 27, 2019, 03:57:10 PM by nosferathoo » Logged

nosferathoo
Level 1
*


indiedev from Poland


View Profile
« Reply #35 on: July 14, 2019, 04:44:07 AM »

We just released update with a lot of optimisations that should address most performance issues. Here's little comparison video.




Logged

Pages: 1 [2]
Print
Jump to:  

Theme orange-lt created by panic