[Dev Log] The Bear's Black Heart

Recommended Posts

Hi all,

Game idea

So the game is a rogue like about a bear, it snuffled its way into a load of coffee and has insomnia so it can’t hibernate and has to travel around the forest looking for food to keep it going over the winter. As it gets colder food become harder to find and the player must make white/black choices in order to survive. Will they eat these weird mushrooms they found? Will they try catch a fish through ice etc?

Bad choices turn the bears heart slowly darker as it becomes more and more feral.

Every time a player makes a choice it moves to the next day. The hunger meter goes up constantly so the earlier the player makes their choice the less hunger they have the next day. If a player doesn’t like the look of a choice they can look for more.

The game can end 3 ways, the player starves, the player goes feral or the player lasts through until Spring.


I’ve never done anything procedural before and I want to use this as a chance to explore various methods of building decent playable systems that are somewhat random.

Generating a 2D terrain with a path for the bear to travel along, I’m not sure if I’ll make it branch or not but branching would be a cool thing to add.

Ensuring the hunger meter is balanced. If the winter is say 30–50 days long the amount hunger increases and the amount of food to be found will be important. Its also vital to not put too much food around in order to force the player into making a few bad choices.

Choice generator. I’m planning these to be structured like random events you come across in open world games.

First thing I’m going to get working is the terrain generator then I’ll move on to the other challenges.


So theres 2 of us working on this (Abban and Bob), I’m doing the development and Bob is doing the illustration.

Share this post

Link to post
Share on other sites

So day 1


First thing I did was to generate a path for the bear to travel along. It was pretty straight forward, add a few points stepped on the y-axis and random x-axis.

Screen Shot 2016-11-19 at 16.15.13.png


For now I set it up to add a new point on the path when space is pressed. Then I added some code to go through between each point and add terrain tiles, 3 tiles either side of the path and some grass padding. That fills up the path like this:


Screen Shot 2016-11-19 at 16.19.06.png


The terrain will be generated off screen as the player walks. I'm thinking of stopping the player from going backwards, once you pass a choice its gone forever.


Tomorrow I'll look into branching, I think I'd like to randomly branch on a point and generate 2 paths off it, once the player chooses one only generate terrain on that path from then on.


I'll also add some code for the tiles to swap their sprite depending on what tiles are next to them, this will round off the path edges which currently hurt my eyes.


Share this post

Link to post
Share on other sites

Super interesting! Very excited to see more! By the way in case you missed it ProcJam, the procedural jam, just wrapped up and they are hosting free assets and talks on procedural generation if you want to peruse:

Share this post

Link to post
Share on other sites

Thanks Rilen for the link. I actually knew nothing about that game jam, as this is my first ever. It helped me put the amount of work needed and the time frame into a lot of perspective.




Day 2


I did a little system design and some reading and realised my original plan of a constant path that would be creating and destroying terrain around the player as they walked wasn’t going to be feasible in the time frame. So I decided to break it up.

I’m taking my path generating code and making it into rooms. When you walk through an exit a new room will  be generated with a segment of path. This means I can easily add different branching and larger areas as needed. No going backwards for now though. Bears never look back!

Actually, if I have time towards the end I have an idea for generating groups of rooms for a day/level and keeping them persistent while keeping the generator. Generate the rooms and connections first and assign each one a random seed which is saved for that level. Then assign each room a connection through top/right/bottom/left doors. When a player reaches a door generate the room assigned to it using the seed and it should be the same room they enter each time they come back, right?

If I have time, this probably won’t happen…

I didn’t do any prototyping at all because it was Sunday and I had Watch Dogs 2 to play. So I followed a load of Marcus’ descent from hacktivist into full blown cyber terrorist.


Day 3


Longer day today.

I rewrote the path generator to make simple rooms for parts of the path, Horizontal, Vertical, T-Junctions, Elbows and Larger areas. I added a basic top down character controller to move a sprites around and some triggers to load a new scene with a new room type when they enter.


Screen Shot 2016-11-21 at 20.17.43.png

I looked into making planes to tile the terrain sprite on rather than Instantiating multiple terrain prefabs, but I think that the room based system will be ok with a few hundred static tiles. Time will tell.


Bob is working on the sprites now, he’s been sketching samples of the Bear and we’re working on aesthetic stuff a little more.


Screen Shot 2016-11-21 at 18.09.44.pngScreen Shot 2016-11-21 at 18.09.55.png


Beer O’Clock.

Share this post

Link to post
Share on other sites

Dev day 4 & 5


Stupid paid work was an obstacle the last couple of days! But now I have working room types! Wall of images coming up:


Screen Shot 2016-11-23 at 15.39.51.pngScreen Shot 2016-11-23 at 16.43.23.pngScreen Shot 2016-11-23 at 16.43.38.pngScreen Shot 2016-11-23 at 16.43.51.pngScreen Shot 2016-11-23 at 16.44.17.pngScreen Shot 2016-11-23 at 15.52.10.png


Ok some of them need a little randomisation on their paths!


So basically how it works now is each room has multiple doors, depending on the last exit one of the doors will be converted into a spawn. The player can then walk to another door and it'll load the the next room at random. Some room only follow some exits.


To smooth the path I wrote a script to generate the tiles, store them with their position in a dictionary and then loop back through to check what tiles are around them and set their sprite.Screen Shot 2016-11-23 at 16.53.23.png


As far as I'm concerned thats all the boring stuff done, now onto making this thing into an actual game.



Share this post

Link to post
Share on other sites

Day 6 - (Lunchtime Update)


Just finished the camera controller. Added some smoothing and made it move ahead of the player in the x or y direction they're moving in. The trick to that in Unity is instead of just SmoothDamping the camera position to the player you SmoothDamp an offset based on the player's velocity then add it to the player's position.


I also generated a collider as the level bounds and use that to clamp the camera's position.



Share this post

Link to post
Share on other sites

Love the latest character designs. The plushie teddy bear look reads more as "this is a cute/creepy toy with a heart", but the newer designs say "this is a character who has feelings!" Can't wait to see bears in motion.

Share this post

Link to post
Share on other sites

That camera behaviour looks like it is the platonic ideal of top-down camera behaviours. I'd love to see how it looks from the player's perspective.

Share this post

Link to post
Share on other sites

Hmmm....atmospheric title screen or BOLD title screen? I make all my art in Affinity Designer these days, its perfect for rapidly laying out things like this.

Screen Shot 2016-11-25 at 11.33.27.png

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now