self portrait

Garbage Country Logbook 2018 pt.1

Week 2 & 3

Fixing player prediction and movement on stairs. Using a rigidbody simulation for player movement has advantages and disadvantages.



Created variable jump height using the “Cap Velocity on Button Up” method.

Week 4

Basically just did blender tutorials on rigging and animating.


Week 5

Working on a character model.

2018-01-19 s

2018-01-19 s

2018-01-31 17.09.35 Screenshot

Screen Shot 16.20.48%20at%2016.20.48

Character Model TODO

Last day of this week, gonna start moving the physics computation to a separate C++ program. Managed to send transform updates from C++ already.

Week 6

Next steps:

It’s Friday and I got it to work! However, I’m also going to try a different approach. To enable fast iteration, it would be more convenient if different server types can share code, not having to duplicate physics object creation between C# and C++.

The hack is as follows:

Week 7

Todo’s before going to Improbable office

Spent some time making it easier to create stairs. Before this it was only possible to create stairs from pillar to pillar. Now the stairs can also be built on top of or towards a floor, as seen below. Additionally improved how easy it is for the player to climb stairs.


Week 8

2018-02-19 naive_interpolation_without_velocity


The animation above shows the issue when trying to simply send position updates (it shows a player jumping). Floaty movement! A first fix is to always send a position update when the velocity changes rapidly as an “anchor point”. But the interpolation needs to be tighter.

For the rest of this week

Going to try and make the environment more interactive. Adding simulated elements like grass and water.

Managing some kind of terrain simulation:

2018-02-23 16_23_12

Week 9

Continued work on the grass update method. Each slow update hook updates a section of the terrain, and updates only half the entries in a checkerboard pattern. This is to prevent two adjacent entries from being updated in the same frame and obviates the need for a “double buffered” approach.

even frames:   

odd frames:

Then, work on planting detail meshes around the player on the terrain.

2018-02-28 14_52_42

Blocks above show the detail meshes being placed around the player. Below they have been replaced by an actual plant model.


Week 11

Continued work on randomizing plants.

It’s really hard to match the plants to the terrain because they use a different lighting model. I think I have to fix the terrain shader now to match the two tone simple lighting.

What to do today?

Week 14

2018-04-06 at 17.27.19

Working on a seamless texture for the rocks based on a 3d sampling. I started out with a simple 3d texture of 32x32x32 with something like a tiled/repeating voronoi diagram.

2018-04-06 output

Then I just sample from this texture based on world space coordinates. Then I added a slider that actually offsets the 3d sample in the direction of the surface normal — with a distance based on the first sample value — for some weird refractive patterns:

Not really appropriate though. And really doesn’t fit with the pixel aesthetic of the other textures. Tricky stuff!

2018-04-07 at 13.46.45

Also, I think I need to generate a good-looking heightmap first before trying to texture it based on its shape. If the shape changes drastically, so will the texturing.

Gonna switch to some camera jobs.

Did some work on the camera and cursor, not ideal but better than before. 👍 Made the camera follow the player when walking, and completely decoupled the crosshair position from the camera angle when standing still.

Week 15

Worked on player movement. Ledge hanging now looks acceptable.

Week 16

Working on terrain generation. Since I need to generate a 2D heightmap I need to write some 2d-image manipulation tools. (Matrix multiplication, blend modes, etc).

2018-04-19 at 17.00.09

Week 17

2018-04-25 at 14.57.03

Week 24


So, it’s kind of bullshit work but I tweaked the terrain generator to store the heightmap in a 32-bit float texture to get rid of the ‘stepping’ introduced by 8-bit values. 8-bit values can only contain 256 different heightmap values, which is wayyy not enough to make smooth terrain.

Week 25

The real question is what the fuck am I doing with this game though? Can it be fun? What’s the minimum amount of things it needs to be fun? Like a game loop? Maybe that starts with gathering some resources:

Minimal dependencies:

gameplay dependencies

Next step: create some kind of method for digging around in the ground. This probably means that first I will have to fix the cursor UI. I think the cursor should have two modes: locked and unlocked. In locked mode, the cursor is always in the middle of the screen, and moving the mouse will move the view. The player moves relative to the view direction.

2018-06-21 at 16.59.27

2018-06-22 at 15.00.41

Terrain Related:

Peaks are smoothed:

2018-06-24 15_58_31

Carrying Over to later task:

Week 26

Okay. It’s week 26. 🤷🏻‍♂️

Construction Interaction:

Close the loop: crashed buildings create trash

At some point I’ll need some kind of system that alerts objects to changes in e.g. Terrain height:

Cursor / Construction UX

Okay, it’s happening. I’m currently thinking:

Todo List for the above

Build mode:

2018-06-25 at 15.26.24

2018-06-26 13.51.01

Ok, zoom out time. Loop closing stuff:

2018-06-29 18_26_57

Okay last task of the week: gonna fix the wood building to build just ladders and platforms. Also make sure that only ladders trigger the climbing movement.

Week 27

The priorities:

Fog Simulation

Fog Visuals

This is actually the old fog but it looks nice anyway:

2018-07-05 at 15.58.19

It’s sad. The new fog doesn’t look as good (from above) so I don’t even have a screenshot yet. But I have to move on to other things.

The transition to ‘below fog’ looks way better now though, that was important.