Monday, November 19, 2018

Perlinia_7 Biome Variety, Bridges, Networking & More

A lot has been accomplished in the last week so it's hard to know where to start.

First of all, biomes have variety now!




I'm attempting to make biomes more interesting by making so they're not the same in all areas, as you can see the transition between details of the biome isn't smooth right now (and likely won't be smooth for a while) but it's functional and a good first step toward generating more interesting terrain.

Second of all I've been working on the road system and I've added three new important features (and also changed the color):

1) Roads are no longer completely straight, they still don't curve but they're not straight. This helps make walking along them feel a bit less boring.



2) Roads make bridges when over water.



This was a bit more simple than I originally anticipated. Roads are generated with noise after terrain is generated. Water is also always at the same height everywhere in the world. This means that a roadmap that knows it's going to be below or inside of water is told to generate a couple of blocks above the water. As for the supports under the bridge they're generated with a simple idea: Every 10 blocks draw a support downward. Since it's 3D and blocks need to account for both the X and Z axis the operation for calculating this was simple:

if( (X + Z) / 2 % 10 == 0 )

Or simply put: If the average position of both the X and Z is a multiple of 10 then draw a support beam under the bridge.

3) Roads carve into certain areas



Why build a road on top of a hill when you could just go through it?

With terrain now having different details, a roadmap that can make bridges/carve, it's feeling a lot more natural. But it's time to step away from the graphics for a bit and move on to the fundamental gameplay.

The first thing's first: Networking. A game can't or at least not well be integrated into multiplayer after being made. This is why games like Just Cause 2 & 3's multiplayer mod are so stripped down and buggy. It's important that when a game developer is making a game that they know that they are making either singleplayer or multiplayer from the very beginning because it drastically changes the way you code the game.

So the basics of networking being implemented are essential. Right now I've managed to make so 2 players can connect to the same server and see each other spawn in. However this is far as it goes, things like tracking movement have not yet been implemented.




Right now they spawn inside of an empty test world with just a green floor that will be used for developing gameplay mechanics. I chose to do this separate from the terrain generation for now since I haven't yet implemented procedural cities, quests, NPC's, etc. and it would be better to create these features before attempting to generate their placement & data.

I've also worked more on graphic visuals. Ambient occlusion (the black outlines generated at the edges of blocks) has been adjusted. The edges of the screen created distance darkening which basically meant at the bottom and top of the screen if looking at blocks the screen would darken, and the left and right it would get lighter. This glitch is still present in the game but a lot less noticeable.



And finally, I've been working on the player's interface. Right now none of it does or means anything it's just there for looks.



Let me know what you guys think, I asked some of my friends who said it takes up too much of the screen but I'm failing to see how I can take up less of the screen. The player is going to have a lot of abilities and I want to make sure the icons are going to be big enough so that you can tell the difference between them clearly. As it is each icon is only 48x48 pixels so making them any smaller would remove a lot of detail.

As for what I'll be doing next is gameplay as I stated previously (and of course networking to make sure that gameplay works online). The order I'll be working on things is unknown but I want to begin main mechanics such as receiving/doing/completing quests, talking with NPC's, syncing movement over the network, picking up items (inventory), etc.

So that's all for this one! Hope to see you in the next.

Sincerely,
Blake Gillman

No comments:

Post a Comment