Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411567 Posts in 69386 Topics- by 58444 Members - Latest Member: darkcitien

May 04, 2024, 06:06:44 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsPeaks of Yore
Pages: [1] 2 3
Print
Author Topic: Peaks of Yore  (Read 22140 times)
andos
Level 0
**


View Profile
« on: October 02, 2019, 11:55:25 AM »

Peaks of Yore











A bright day, a hopeful day, yet cluttering clouds veil, hard-edged and imposing like the mountain itself.
A dangerous climb, yet the peaks beckon of wistful ascension...

Peaks of Yore is a first-person "climb-em-up" platformer set in 1887.

Ambitions

I want to create an engaging and tense climbing experience that focuses on several different aspects, such as precise hand movements, momentum, climbing gear and more. I aim to create an experience that is centered around early mountaineering culture and it would be nice to also put a portion of focus on narrative and level-design aspects. Ideally I also want to experiment with the artstyle a fair bit, as I don't really have a specific style in mind, though preferably I'd want to look into artstyles that can help depict the 19th century vibe I'm going for. There are specific parts of actual mountaineering aspects that I want to depict and already have plans for within the game.
For this game I am using Unity 3D. I will be working on my own, and doing a bit of everything will also keep me motivated in case I run dry in something.


Art & Narrative

I will be creating all of the art for the game, including animations. Since I am mainly a character artist I doubt I'll have many hiccups here.

I've collected a bunch of images relating to 19th century mountaineering. One thing that I like about these types of pictures are the tints, tones, and general sense of reverence and awe they depict. There's a bunch of different things I want to try in order to achieve this type of look, and I will probably have to take a deep dive into a rabbit-hole of vintage photography so I can try and replicate in an interactive scene. Maybe I'll end up with something completely different, but I take it as I go.

Moodboard

With the narrative, I'm not set on anything specific but I do want to achieve a sort of light-hearted narrative.

Devlog

Since I am currently at my 3rd year of university studies, I will probably have limited time to do many regular updates on this devlog, but I will try to keep it as active as I can. I enjoy making these devlogs and it's also a great way to keep myself on track and make some significant progress.
I will be posting a gifs, pictures and builds as often as I can.


Progress

The player is affected by physics (using rigidbodies), which allows me to play around with lots of gameplay aspects, like other bodies pushing the player, swinging momentum and more.
The way you move around on the ground is pretty rudimentary; walk, run, crouch, jump, crouch-jump(for a bigger jump). Once you grab onto something you can climb, that's where it gets pretty fun.



Grabbing and holding on



Early climbing tests.

The way you grab and hold on to things is very simple:
You press left click to hold out your left hand, if your left hand then touches something grabbable, you automatically grasp on to it until you let go. Vice-versa for the right hand.
Once your 'hand-spheres' collider with a specifcally tagged object, they create a joint between you and the point you grabbed so you basically become a pendulum from the point of your grabbing hand to the point where your arm starts.
You grasp onto the surface automatically if your hand (sphere) collides with the right object.
You can then pull yourself up / flex your arm by holding space.



Adding force by hands


You can use your hands to gain extra momentum while you swing, by "flinging them into the air"(exaggerated here).
I ended up switching out the hand-spheres for a couple of simple 2D sprite hands along with a line renderer. This was just to have something as placeholder the would give a little better feedback, while I still experiment with values of the various controlling-physics affecting the player when they are holding on.
I do intend to replace them with 3D arms and hands eventually, but for now they serve a good prototyping purpose.

The way you swing in a direction is simply by using the movement buttons.



Combining movement mechanics


Here the player swings using forward and backward controls, then as they are about to leap, they pull themselves towards the swing(using space) and gain extra length on their leap. (With added force from flinging your hands out)


A very tough leap where you need lots of swing momentum, flexing at the right time, and using both hands to gain extra height during air-time (looks easier than it actually is).



I have added a lot more since then, but mostly to do with the physics and the general feel of the physics and momentum. The hand-climbing feels pretty good right now, but adding feet into the mix should be an interesting challenge. I am not entirely sure about the game's title yet, but I do want to hear others opinions on this.

Any ideas, input, or feedback is welcome!
« Last Edit: October 27, 2023, 10:53:14 AM by andos » Logged

ChrisLSound
Level 1
*



View Profile WWW
« Reply #1 on: October 03, 2019, 07:15:25 AM »

I really really like the theme you're going for. Sounds cool!
Logged

I make video/tabletop games and music!
andos
Level 0
**


View Profile
« Reply #2 on: October 16, 2019, 04:18:58 PM »

I really really like the theme you're going for. Sounds cool!

Thanks Chris! I'm hoping to stay on it. Btw, you make some solid music! Really dig your electronic tracks.
Logged

andos
Level 0
**


View Profile
« Reply #3 on: October 16, 2019, 04:36:04 PM »

Arms and Hands

I've been testing how 3D arms and hands would look.
I made the arms appear like big old tweed sleeves, like they used in 19th century mountaineering, and the hands a little more burlier than usual. The 3D is still mostly placeholder with basic materials slapped on.

Scripting-wise, I initially toyed with some solutions such as inverse kinematics for bending arms. The more I tested IK for the arms, the more I learned that it wasn't really going to work well with my current climbing system, or look decent at all with bent arms. The joints that the player is connected to, are only made up of a single connection between the player and the grab point, instead of from the player -to the elbow - to the grab point like a real arm.

In the end I decided that the arms would look better if they just shot out in a straight line from the player to the hands, and it works. Sorta.


With this working, I ran into another issue. The player can clip through the arms with the camera.

Nasty clipping.

I've tried culling the arms on a different layer and using another camera to render them, but this would result in arms being visible behind corners. It also doesn't eliminate the clipping problem.
To me, the clipping is annoying, but for the moment I can't think of anything that might fix it without bringing a host of new problems. This will have to do for now.



Here's a little footage with the arms and hands in play.


Another small thing I added was that if your arm can't "see" your hand, your hand re-positions itself to the edge that was intersected. This was to avoid the arms clipping through corners.



Grip Strength


I've added a form of "grip-strength" into the game. If you are hanging by either left or right arm, you start losing grip-strength on whatever arm you are hanging on. When your grip-strength gets lower, your arm starts shaking more depending on the amount of grip-strength you have left on that particular arm. When your grip-strength reaches zero, you fall, but you can still grab onto things right after you fall, with that particular hand. The grip-strength on that particular hand will regenerate on it's own, if it's not being used.
If you hold on with both hands (and they are not too far from each other), you don't lose any grip-strength at all.

I might change the way this system works later, as I still want to give foot-mechanics a try.




Cliff Testing

The red and green blocks I have been using to test the climbing system have been useful and very clear, in terms of what/where you can and cannot climb.

Since the game is about mountaineering, it's probably best to start early on testing how the cliffs might show affordances. With the red and green blocks, this was kind of obvious, but with a cliff that will have textures and all sorts of jagged edges, it might be a challenge to find a nice and 'non-gamey' way to show the player what can or can't be climbed.


One thing I noticed was that it might be interesting sort of "feel" the surface to where you might find a hold. This could also work with the foot-placement system I have in mind to test.


Disabling the arms while keeping the hands removes a lot of my worries that the 3D arms bring in. At this point, I'm not sure whether I should remove the arms, keep them in, or rework them. To me, the disembodied hands seem too much like many hands that are in VR climbing games.

As I am testing things, I keep thinking constantly about what rock-climbing is about. When I tried this, I realised that like in real rock-climbing, searching for holds where you can grasp onto, is a big part of climbing.
Maybe this gives me enough reason to not explicitly show where you can grasp onto?



Procedural cliff, using a displacement modifier.

The cliff model was made in Blender using various modifiers to create procedural rock faces. To make them procedural, I used the displace modifier with a cloud texture in global coordinates as the displacement method. This allows me to get a different shape every time I move the model in the 3D scene.

Green mesh is the separate climbable collision. Created using a shrink-wrap modifier.

To create climbing collision, I use a shrink-wrap modifier with a separate object, so I can create collision mesh along the surface of the cliff with a slight offset.
« Last Edit: October 20, 2019, 05:31:38 PM by andos » Logged

andos
Level 0
**


View Profile
« Reply #4 on: February 23, 2020, 06:26:30 AM »

Long time no post!

Devlog has been quiet for a long time, but I have been making a lot of progress. I've been busy with both final year university stuff, and the game. Concerning the last post, I have ditched the idea of using legs for climbing, as I found that they would bring in too much complexity and be too distracting because you'd have to look around so much. I am not set on an idea of stamina at the moment, as the game is already pretty difficult, especially for new players. I might come back to tinkering with the stamina ideas that I have eventually though.

Here's a quick rundown of what I've been up to.



A Coherent Gameplay Loop

I've been working towards a soft deadline of the end of this month, which involves putting together a vertical slice of the game.
Since last post, I've been planning a lot for the game which includes design, which assets I need, and so on.
The game now has a more refined gameplay loop.

The game is essentially centred around "peak-bagging". This involves the player choosen peaks to climb through their Peak Journal. Once the player has summited a peak, they can ink-stamp the peak in their journal as 'summited'.

I've created a small gameplay loop diagram to help convey this idea a bit:



This diagram gives a general idea of the gameplay, however, I found the death segment to be kind of annoying, since players who fall a lot would be going back to the rest segment constantly. To fix this, I'm simply having the player tumble a bit around once they fall too far, and get up on their feet immediately after with a small animation.





A lot of the art is still placeholder, so I will be focusing on filling in bits and pieces.



With the surrounding environment, I want to keep it simple but still a bit animated.



I also want to keep the tutorial quite simplified and non-intrusive, so I figured a few icons to depict actions would work. (The Peak Journal stamping is also extremely basic at the moment, including wrong pages and all).

I have also included a simple mechanic that allow the player to return to the rest segment at the beginning of each peak level (by hovering over and clicking on the player’s backpack and equipment on the ground).



The sphere will be replaced by a model of a backpack + other various equipment.




Journal Page Layout

I also took a bit of time to create the Peak Journal’s page layout, as this was also important for level selection and clarity and because I wanted a clear page layout which would be consistent for the entire journal. Creating one clear and good-looking page would mean that I don’t have to re-design any elements across 20 or so pages.
Here's the page for the first peak, un-stamped and stamped.


By having one clear page layout, I can replicate each page and just change the description and illustration of the peak. I also made sure that there was enough space to display the detailed stamp texture clearly.
This also means that I can have consistent page selection and stamp areas across the entire journal. Each page will also have a different description and climbing Grade (difficulty).



Close-up of the Summited Stamp. The “Official Society of Ascension” is made-up, but I felt like it had a nice ring to it.
It was worth it to spend a little extra time on the design of the stamp, since the stamp will appear on every page in the player’s peak journal after each summit.

Logged

andos
Level 0
**


View Profile
« Reply #5 on: March 10, 2020, 04:38:27 PM »

A little update on some climbing improvements

Basic Climbing

After my tutor David Doak playtested the game, I was suggested to make changes that would aid in favour of the player. Things such as switching hands on the same rock would not always work since each hand would reach with the same length. This has to be easily doable since I didn’t want the player to fall if they simply wanted to do something trivial, like switching hands on the same rock.


The fix was actually quite simple. I simply increase the length of the arm that is reaching when the other hand is holding onto something. This fix coincidentally also made the climbing more intuitive when performing simple grab-hold and reach for the next hold.

View Rotation Limit

Another addition that I have been struggling to get right since the beginning of the project where I was prototyping, was trying to get a limit on the player’s current rotation when they are holding on, which could be any arbitrary horizontal  rotation.

I got some help with the logic and tips from my tutor Aaron Bostrom that helped me understand how to get around the issue.
When grabbing, I simply cache the current rotation once, then add a minus and plus limit to a clamped value which is driven by the input mouse or game-pad thumb stick.






Currently, I allow a maximum of about 110 degrees in either direction whenever the player makes a grab.





After this I had to determine whether the left or right hand was grabbing, then set the current rotation depending on which hand was the last hand that performed a grab. The limit is always set depending on the last grab that happened and is currently set to 110 degrees, which seems to feel appropriate for the game, without any unnecessary and extremely unrealistic twisting happening. The climbing is very 'gamey', and I'm fine with that so I do allow a bit of jank here and there.

A lot of nice and also previously expected elements came from implementing this functionality.

- The player will have to position their hands more carefully, if they want to perform certain grabs, jumps, and other moves. This is desirable because it adds to the realism of climbing in real life, where the positioning of your hands on the climb is crucial.

- It removes unnecessary and disorienting spinning around and confusion of your current grabbing direction.

- It keeps the player facing the wall, which is best for maintaining the player’s focus on finding the route on the climb.



With these changes and having had a few playtesters, the climbing seems to be a lot more user-friendly.
I have been adding a lot more things to the game, so it's hard to keep up with the devlog while also having to journal everything we do for our uni-stuff, but I do try to put in a post every now and again.

Logged

Jasmine
Level 5
*****

Boop


View Profile WWW
« Reply #6 on: March 11, 2020, 03:24:13 AM »

This is an INSANELY cool devlog! I wish there was more interest on your timeline, but please know it's definitely been awe-inspiring for me!

Keep up the great work.
Logged

andos
Level 0
**


View Profile
« Reply #7 on: March 11, 2020, 10:06:10 AM »

This is an INSANELY cool devlog! I wish there was more interest on your timeline, but please know it's definitely been awe-inspiring for me!

Keep up the great work.

Wow, thanks a lot! That's really encouraging!
Logged

MrCobble112
Level 0
**


Yup


View Profile
« Reply #8 on: March 11, 2020, 11:37:33 AM »

This looks really cool! Can't wait to see more!
Logged
sophomore
Level 0
*


View Profile WWW
« Reply #9 on: March 11, 2020, 02:43:11 PM »

Really love the concept and art style. Very cool.
Logged
NinthPower
Level 2
**



View Profile
« Reply #10 on: March 11, 2020, 08:41:20 PM »

Very cool concept and great implementation so far!
Logged

andos
Level 0
**


View Profile
« Reply #11 on: March 12, 2020, 06:58:26 AM »

This looks really cool! Can't wait to see more!

Thanks a lot! Will be posting more soon.

Really love the concept and art style. Very cool.

Thanks, that means a lot.

Very cool concept and great implementation so far!

Thank you!



I am currently combining a lot of new features together with the levels. The levels are one of the harder things to balance since I am so closely knitted to the climbing system. I need to be play-testing the levels more, so I will put out a public demo soon.

Next post will be a little about the first couple of hazards.
« Last Edit: March 16, 2020, 02:20:32 AM by andos » Logged

andos
Level 0
**


View Profile
« Reply #12 on: March 16, 2020, 04:31:56 PM »

Warning, long and GIF-heavy post.




One of the goals for the peak scenes I have, are that they each present a different type of element or challenge.
For the next peak level, I wanted to create a few obstacles which wouldn't just be platforming challenges.

This peak is set at the shore and is home to sea-birds which nest around the peak. For the visuals and setting of the cliff, I was mainly drawn to The Old Man of Stoer in Scotland. With the obstacles for the cliff I wanted to implement a type of angry sea-bird (which was also partly inspired by the annoying gull in Bennett Foddy's GIRP). To add to this, I also had a 'shrubbery'-type obstacle in mind, which could help hide some of the birds, and provide minor as obstructions to the climbing routes.



The Old Man of Stoer, Scotland.


I do want to keep most of the peak scenes secret, but I thought I would make an exception for this one.
Here's a little preview of the related page in the Peak Journal.


The Old Man of Sjór.
Sjór, meaning "Sea" in Old Norse.

The peak's grade is Difficult (+). The added '(+)' means "many obstacles". Additional grades and modifiers are explained earlier in the Peak Journal. In this case, the peak has an abundancy of shrubbery and a couple of birds to make the climbing challenging.


The peak overlooks a vast sea, and a few sea-bird flocks can be spotted flying over the area frequently.



Obstacles / Hazards

Before designing the peak scene itself, I started working on the sea-bird's mechanics. To plan it out, I knew the bird had to do a couple of different things to make it somewhat realistic while also adhering to the existing gameplay mechanics.

- A feature I can set on the fly so the bird can be triggered either by range to the player, or by range to the player's hands.

- Once either of these conditions have been met, the bird should start its cycle of flying randomly around.

- The space in which the bird flies around randomly should be scalable.

- A randomised minimum and maximum interval between choosing when to attack left or right player hands that are holding on.

- Continue between flying randomly and attacking until player gets out of range of the bird's original place.

- All of these features encapsulated in a prefab.




Once planned, putting together these mechanics for the bird was more straight-forward than I had anticipated previously.

The bird is activated by a sphere collider(triggered by player grabbing proximity or player body proximity), which acts as the birds nest or original place where it sits.

Once triggered, the bird will move towards the green box (RandomFlightTarget). This target will randomise its position every time the bird gets within range of it. The position will be set around the shell of the blue sphere gizmo. This blue sphere is also scalable, so I can decide the range the bird flies around in. Generally, this range will be set around 3-5 units so the bird doesn't have any long-winded straight flying patterns. Once the player gets out of range, the bird returns to its original nest position.

I had to do some finnicky things when setting the bird's random flight position.

If the bird's random flight target position was set as truly random around the sphere, there was a chance that it would choose a location very close to the same place, which would look weird since the bird would be spinning around the same point, trying to reach it while moving forwards and turning around endlessly.

To fix this I made sure that once a new place was to be selected around the sphere, it would test if the position was too close to the previous, then continuously do this procedure until a location far enough away was suitable.



Blocky placeholder bird's rest is interrupted by player-testing.


Here, the bird is activated by player's proximity to the nest, rather than player's hands grabbing near it. The behaviour is changed with a simple tick of a boolean.
The bird also randomises which hand to attack when holding. If the player's hands are too close together, the bird will make the player lose grip on both hands.



Triggering the bird by climbing.



Modeling and Animating the Sea-Bird

After getting the functionality of the sea-bird running smoothly, I was eager to replace the blocky placeholder bird with an appropriately annoying-looking bird. I looked at a few different sea-birds, but I was quick to pick a regular seagull. I was also thinking a fair bit about the black and white balance of the bird, since I have to adjust the colour appropriately for the game's desaturated visuals.


An appropriately rattled-looking sea-bird.

Modeling was done fairly quickly, and the animations also ended up being done quickly. I just needed the animations to be simple enough for the bird to be believable. I do have a fair bit of experience with animation, so I tend to get them done quickly and basic enough for them to be usable in-game. With the rig, the only weight-painting I had to spend a little more time on was on the wings to prevent overlapping planes.


A simple 'resting' animation. This animation plays on loop (though more slowly in-game) when the bird is in its default 'resting' state. A lot of squishing and stretching of the bones was done in order to make it appear nice and comfy.


A fly cycle. This animation loops when the bird is flying around randomly. Excuse the badly looped GIF (It loops fine in-game).



Back in Unity

With the bird model done along with a few animations, I had enough to import it back into Unity to replace the blocky placeholder-bird.


Immediately after setting up the new bird model along with its animations, the bird felt a lot more lively and fun to play around with. I also added a few flapping noises, bird-squaks and a feather particles to add to its liveliness.

The bird uses an extremely simple Mecanim animation controller that just switches between rest (loop) > flying (loop) > attack (triggered once).

I also added the ability to shoe-away the bird by reaching out for it right before it attacks.
This brings a little more complexity to dealing with the bird. You will have to constantly check if the bird is flying towards you for an attack and 'slap' it away if it does, while trying to progress on your climb.



Shrubbery

Another quick obstacle idea I had was the shrubbery. The idea was to have an obstacle that would block the path that the player would have to grab to remove.

To implement it, I used a simple sphere collider to check the player grabbing the shrubbery and then simply enabling its physics for it to fall down. To prevent the player from grabbing through the shrubbery, I made the player's arms pull the shrubbery back towards the player, which means that the player wouldlikely have to swing or pull themselves up again to reach for the hold the shrubbery was covering.


The Shrubbery model was done with a segmented icosphere in Blender.








Combining the sea-bird and shrubbery lead to a lot of interesting challenging climbing scenarios. The shrubbery acts as both as a way to conceal holds and the birds. When the player then makes a bird angry, they'll have to find time between prevent the bird from attacking and remove shrubbery from the climbing route.

When creating the peak scene, I had to balance how many birds and shrubberies I would place, as specific holds became more difficult when the birds were trying to make you fall. To sort out areas of the route that were too difficult, I got around it by making more holds, as having your hands far apart when the bird attacks is safer.





This was a pretty lengthy post, but I hope some of it was interesting.

In other news, Norwich Games Festival has sadly been cancelled, which is where I was going to exhibit the game for a week.
However, I will still be releasing a Demo on Itch very soon (Will post the demo information in a blog post too). I need to get a couple more things together before I put out the demo, so I will keep you posted.
« Last Edit: March 17, 2020, 06:15:21 AM by andos » Logged

Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #13 on: March 17, 2020, 04:53:04 PM »

This is looking great! I remember seeing the first post of the thread a while ago; coming back to it and seeing the black and white presentation gives it a whole new feeling. The visuals reminds me of Return of the Obra Dinn but certainly different and distinct enough to not feel like a ripoff in any way.

The new gameplay mechanics (seagull and shrubs) seem like a perfect fit for making the climbing more challenging and interesting.

Sorry to hear Norwich Games Festival is cancelled, it's a great place to show off your game. I hope you get more opportunities to show it somewhere in the future Smiley
Logged

andos
Level 0
**


View Profile
« Reply #14 on: March 18, 2020, 03:18:53 AM »

This is looking great! I remember seeing the first post of the thread a while ago; coming back to it and seeing the black and white presentation gives it a whole new feeling. The visuals reminds me of Return of the Obra Dinn but certainly different and distinct enough to not feel like a ripoff in any way.

Thank you! That's very encouraging. I'm a huge Return of the Obra Dinn fan, so it's safe to say I'm also inspired by it. In fact, it was Lucas' devlog on it that inspired me to start this devlog.
Before I started being active here, I was also lurking on your devlog for Leilani's Island. The pixel-art is really cute!

The new gameplay mechanics (seagull and shrubs) seem like a perfect fit for making the climbing more challenging and interesting.

I am a bit worried that they might prove very hard for a few players, but I'll have to do more playtesting on this. Thanks!

Sorry to hear Norwich Games Festival is cancelled, it's a great place to show off your game. I hope you get more opportunities to show it somewhere in the future Smiley

Yeah, pretty unfortunate, but understandable given the current situation. I went last year with an early build of the game and it was a great experience, so was kinda excited to show the progress from last year.
Will have to look into what will be available, but it's probably going to be hard to find anything for the next couple of months.

For now, I'm hoping the demo I'm working on can make up for that a bit.
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #15 on: March 18, 2020, 09:31:49 AM »

Oooh, as someone who cannot go climbing now due to quarantine this has my interest  Kiss
Logged
andos
Level 0
**


View Profile
« Reply #16 on: March 19, 2020, 02:39:30 AM »

Oooh, as someone who cannot go climbing now due to quarantine this has my interest  Kiss

Thanks. Hopefully it can atleast fulfil the hand-climbing part of rock-climbing!
Logged

andos
Level 0
**


View Profile
« Reply #17 on: March 25, 2020, 11:28:37 AM »

DEMO BUILD



As promised, I have been working towards getting the demo in a nice and playable state.
The demo shows a lot of the core elements going on in the game. For the full game, I do want to spread the content out a lot more so the player won't be too overwhelmed with many things going on at once.





If you have any suggestions, feedback, or comments, feel free to let me know!
« Last Edit: March 25, 2020, 11:33:51 AM by andos » Logged

OctoMini
Level 0
**


Talk does not cook rice


View Profile WWW
« Reply #18 on: March 25, 2020, 03:07:47 PM »

The art style blew my mind! Amazing really! I don't remember the last time I stared short game play gifs this long! Very interested to see where this goes!
Logged

andos
Level 0
**


View Profile
« Reply #19 on: March 26, 2020, 06:58:57 AM »

The art style blew my mind! Amazing really! I don't remember the last time I stared short game play gifs this long! Very interested to see where this goes!

Thanks a lot!
Logged

Pages: [1] 2 3
Print
Jump to:  

Theme orange-lt created by panic