We've now decided a name for this game and that is Farquest. We also decided to have a break from combat and focus on other things, such as, other gameplay elements. I'm going to focus on optimizing the game for now as I noticed that the frame rates have been dropping a lot since I last worked on the map generation.
One optimization I've now made is polygon merging, biggest challenge with this was in the shader as I could not use wrap mode because all the textures are in one texture. So I created a shader that does the "wrap mode" differently, I injected the texture repetition count to UV, it will lose some quality but not enough to be visible (I can notice it if I look at a cube closely). Otherwise the polygon merging algorithm is very simple as you can see on the picture below.
Another "optimization" is multithreading, I did not want to do this one but I could not get the chunk generation faster. I divided the chunk generation to multiple threads and a part of the chunk mesh creation as well.
Oh and we created a twitter account https://twitter.com/FarquestTheGame if you wish to follow us there, we will try to update there more often with smaller details and pictures and whatnot.
Saturday, January 13, 2018
Sunday, December 31, 2017
Speaking of time flies...
So.. yes, hello, hi. For clarification I did not forget this blog, I was just hard at work, honest. But in all seriousness I have been at work this whole time, working on combat... which has been interesting and frustrating, mostly frustrating. The hardest part in this whole thing was making animations work in game, as this combat is very animations based. If a character is stunned and the stun animation does not exit early or at all it will break the combat as the character will be in an infinite stun lock. Most of my time was used in fixing these kind of problems and trying to crowbar unity mecanim to work the way I want it to (like animation transitions and blending), as well as trying to balance combat to be fun and engaging. While I was busy doing all that Samuli was hard at work providing me with new animations, concept art and modeling and texturing different armor parts.
Below I have a sort of a video compilation of all the progress we've made these past months on the combat and at the end what the combat looks like right now.
You might have noticed that there were only two types of combat, fists and sword and shield, we decided that the sword and shield will be our main focus at the beginning and then use it as a template for the other weapon types. The combat has also undergone a lot of change in how it functions, as we want it to be fast paced and responsive.
Below I have a sort of a video compilation of all the progress we've made these past months on the combat and at the end what the combat looks like right now.
You might have noticed that there were only two types of combat, fists and sword and shield, we decided that the sword and shield will be our main focus at the beginning and then use it as a template for the other weapon types. The combat has also undergone a lot of change in how it functions, as we want it to be fast paced and responsive.
![]() |
I also created a wind shader, my very first displacement shader, for the trees and grass |
Wednesday, May 31, 2017
Time flies
Well time really flies and I almost forgot for a second time to write an update on the project, we've been so focused on creating combat for this game that it has taken most of our the time, there has been some hiccups with designing combat but all in all it's been heading in the right direction.
Currently the combat is still being created but is still missing animations and mechanics as well as some AI functionality, you can fight and defeat your opponent but it is still too soon to for it as the combat is too repetitive or easy.
Wednesday, March 29, 2017
Distorting time for a new direction
So we've decided to change the course of the project temporarily to create something smaller. We are using a lot of things that we've already created, but the combat and things the player will do in the game will be different, we will however continue the base project after we've completed this shorter one.
So what do we have planned? we are creating a survival game with quests and crafting, the combat is action based and there is character progression based on what the player does, very similar to the base project except for the combat. We're using the map generator for this as well.
We've been designing a lot of things and have created a timetable in which we hope to finish a demo of sorts of this game. Currently we are working on combat (fists for now). I've created a character in Unity's mecanim using the animations and character model that Samuli created, currently it has running, jumping, idle and fist combat moves. I have to say that using mecanim has, at times, been a real pain in the ass.
While testing we noticed that we could only have 40 characters at the same time before the fps starts dropping below 60, the reason for this was that there are a lot of seperate parts in the character model and each has a skinned mesh renderer, so I've began created a skinned mesh combiner so we can have different armors for different body parts.
So what do we have planned? we are creating a survival game with quests and crafting, the combat is action based and there is character progression based on what the player does, very similar to the base project except for the combat. We're using the map generator for this as well.
We've been designing a lot of things and have created a timetable in which we hope to finish a demo of sorts of this game. Currently we are working on combat (fists for now). I've created a character in Unity's mecanim using the animations and character model that Samuli created, currently it has running, jumping, idle and fist combat moves. I have to say that using mecanim has, at times, been a real pain in the ass.
While testing we noticed that we could only have 40 characters at the same time before the fps starts dropping below 60, the reason for this was that there are a lot of seperate parts in the character model and each has a skinned mesh renderer, so I've began created a skinned mesh combiner so we can have different armors for different body parts.
Tuesday, February 28, 2017
Housing part 2
The house system is in a state that it can be used but it took quite a while and the rules with which a house will be built changed quite a bit, instead of creating the walls first the floor will be created first, then the walls and after that the roof, I also removed the levels button and instead players can just created high walls and add a floor to different levels, so why all these changes? well for one I didn't want to restrict players and adding more levels from a button would mean that only a certain wall height could be created and that seemed too much of a restriction and just complicates the programming unnecessarily.
Automated tools have also taken some of my time and some of the tools I will be creating later as it just seems too much work and I really want to focus on gameplay after the greedy meshing.
The construction GUI has also undergone some major changes as we forgot that we need to add other types of buildings and constructions to the world beside houses.
I've also been able to identify rooms automatically by using a flood fill algorithm, it starts filling above every floor cube and while it fills any found floor cubes will be removed from the check as they would just flood the same space unnecessarily, once a space is filled and it's closed inside walls and such it is defined as a room.
I also created RLE compression so I can compress the houses into a smaller size.
Automated tools have also taken some of my time and some of the tools I will be creating later as it just seems too much work and I really want to focus on gameplay after the greedy meshing.
The construction GUI has also undergone some major changes as we forgot that we need to add other types of buildings and constructions to the world beside houses.
I've also been able to identify rooms automatically by using a flood fill algorithm, it starts filling above every floor cube and while it fills any found floor cubes will be removed from the check as they would just flood the same space unnecessarily, once a space is filled and it's closed inside walls and such it is defined as a room.
I also created RLE compression so I can compress the houses into a smaller size.
Tuesday, January 31, 2017
Housing
The house editor which I mentioned in Designing, optimizing and moving forward is coming along well and I have already added quite a few useful tools to it, there are a few missing features like the rules which the house should be created with.
After I've created the editor version I'm moving on to creating it for the game as well, after that I'll be focusing on greedy meshing.
Samuli also has almost finished the building GUI for the game and it looks awesome.
I've modified the biome editor slightly, we can now select which trees appear on different heights.
After I've created the editor version I'm moving on to creating it for the game as well, after that I'll be focusing on greedy meshing.
Samuli also has almost finished the building GUI for the game and it looks awesome.
I've modified the biome editor slightly, we can now select which trees appear on different heights.
Saturday, December 31, 2016
Before the end
I changed the orthographic camera to perspective as you can see in the above video, we decided to do this because the sense of depth was necessary and we might need to move the camera closer to the character in places like caves.
I also created multiple arrays of vertices/tris/normals/etc which will act as buffers for when I'm generating a mesh from chunks, this will reduce the amount of garbage that would have otherwise produced by the temporary mesh arrays, the only downside with these buffers is that they will use up a small amount of memory. Of course this could be avoided if I could just create a single buffer of each vertices/tris/etc and give it to unity's mesh class with a length parameter but I can't.
PS: Happy new year!
Subscribe to:
Posts (Atom)