Harry Kilian

From Wordpress to Jekyll

Decided to move the blog from wordpress.com managed hosting over to github.io pages using the jekyll static site generator. My primary motivation was that I want to be able to embed any content on the blog, perhaps some canvas/opengl stuff in the future. I could have gone the self-hosted wordpress route but of course you have to pay a hosting fe...

Progress 17: Depth, Volumes and CPU Picking

Landscape Depth The landscape now has information in the Y axis(downward), as you dig the tiles change from soil to stone to granite. It’s kept quite simple at the moment but later I want to add further noise manipulation into the algorithm so that the player can find pockets of different types of rock as they dig.

Update 16: AO, Trees and the Perspective Camera

Orthographic vs Perspective Up until now I’ve had the game camera set up as an orthographic projection. Which gives a similar style to an isometric game but in 3D. I went for this initially because I wanted it to be reminiscent of games like Age Of Empires and RCT. It wasn’t until I started working on the construction tools that I realised how i...

Update 14: Minor Improvements

Nothing too major this update, I’ve been working on some other personal things the last month so I haven’t done anything major on the game.

Update 13: Simple Rivers

For me, one of the most important parts of the world generation has to be the rivers. I feel like I rarely see genuine flowing rivers in games, especially not procedurally generated ones. Minecraft and NoMansSky have ‘rivers’ but they don’t really follow any logic, they don’t really flow, and have no clear end and start. This is because the worl...

Update 12: Terrain Generation Experiments

I talked before about the improved noise system. I’ve been playing around and experimenting with different parameters, getting some interesting results. The difference between a real island and my fake video game island is that of scale. I want mountains, sweeping rivers, wildly different biomes, all on one island that spans maybe only 1.5 miles...

Update 11: World Generation Refactor

I’ve spent some time refactoring the world generation and building a useful world generation editor. I think having an actual visual interface to preview the generation in real time will be massively useful. Before, I would make changes to the algorithm in c++, then have to wait while it compiles and launches to see the changes. This is obviousl...

Procedural Planets

I put together a little planet generator a few months ago, thought I would share. The generation is based on several parameters like temperature(distance to sun), size, population etc… then it churns out these neat little pixel art planets. Pretty simple but a cool result, this was done in Unity3D.

Update 10: GPU Picking

Urho3d has a nice method for picking objects by casting a ray through the scene octree. This works well enough for picking objects using their AABBs but it was quite slow for picking points on a mesh. The issue now is that with the new terrain generation the mesh doesn’t even exist on the CPU, so it’s not possible now anyway. I thought about doi...

Update 9: Terrain LOD and the GPU

Previously the mesh for the terrain was generated on the CPU, both positions and normals. While this ‘worked’, it was extremely slow. So slow in fact, that it required the process to be split across multiple frames, usually it would take upward of 50 frames for one chunk to be ready on screen. Usually there are 9 chunks needed, so if the player ...

Happy Meshing Accidents

While trying to write the code to generate a mesh for the terrain I hit a few bugs which distorted the mesh vertices in all kinds of weird ways. I played around with it and got some interesting looking images.

Cape.com Drone Flight Beta

I got invited into the cape.com drone flight beta. This technology involved is very cool. Basically you can remotely fly real drones from your laptop or phone anywhere in the world. You can select 1 of 7 locations in North America to launch the drone, and you can fly around for roughly 5 minutes or so. It’s free for the beta, I imagine you can f...

Update 8: Grass Rendering

I started some experiments with parallax mapped grass, they didn’t turn out to successful. With parallax mapping the grass can not extend out onto other geometry which made it look pretty dull. Next idea was to use shell rendering, this is an age old method used for realtime fur. ‘Shadow of the Colossus’ used it well on the ps2. But it still see...

Update 7: Fixed Camera Rendering

I’ve had this idea for a fixed camera rendering system in the back of my mind for a little while. I thought I would put together a proof of concept. Basically the idea is that the world can only be viewed in isometric and top down oblique perspective, but the game is still a fully 3d world. The idea spawned when I was watching this video by Roll...

Progress Update 6

Entity Component System I’ve started building an ECS, specifically to manage the large amount of game units. The technical design of the game units would indeed fit in a deep class hierarchy, however I don’t believe this system will give me the flexibility or speed that I need. I took a glance at different c++ ECS libraries like EntityX, but non...

Low Resolution Rendering

I did some experimenting with low resolution rendering of the game. Essentially I rendered the the scene to a texture and half or quarter resolution then scaled it back up to full size using nearest neighbour filtering.

Progress Update 5

Art direction Ive been playing around with the terrain shaders. I imagined the game having some form of pixel art, but still being a fully 3D world. Up until this point I’ve just been running generic default shaders with a sprite map from ripped from Minecraft. When I get round to creating the art assets for trees, players etc then I will settle...

Progress Update 4

I’ve made some decent progress over the last week or so. Working mainly on the world meshing and some dev tools. Urho3D has an editor built in but it’s very basic and quite ugly, also it’s written in Angelscript which I have little experience in. Rather than attempt to modify it I’m going to built some custom tools.</p>

Progress Update 3

Long time since the last update, the whole project has undergone some major changes. Very little of the code I had written as of the last update remains. I have made the decision to use an game engine, Urho3D. After a lot of thought it’s clear that if this game has any chance of existing complete then I need to do everything I can to speed up de...

Progress Update 2

Still laying down the groundwork, little to show in terms of visuals at this point.

Progress Update 1

So this is the first progress update. Bare in mind this is very early on, most time has been spent on laying down some engine foundations and working on a method for procedurally generated island terrain.

Plotclock

Due to my recent interest in drawing robots I went and lasercut the parts for a plotclock. You can find the files and instructions on thingiverse