Project Idea

Scythe


For my project I will be creating the board game Scythe and giving a 3D terrain to the board.
Similar to the style of Civilization 6.


Update 1

Board Layout


The goal of this update was to get the base board grid setup and to distinguish the different tile types.
Step 1 was to first get a basic hex grid together.
Step 2 was then to assign different types to tiles and show this by giving them different colors.

Update 2

Ray Casting

POSTPONED

(Will try to implement at a later time if possible)
The goal of this update was to add ray casting.
Ray casting will allow for the mouse to be able to capture the 3D coordinate of the board and select specific tiles.

Update 3

Objects


The goal of this update was to import multiple blender objects on to the board.
First object created was a tree, then created a few more different styles.
Then simply copy and pasted them around to create a forest like scene.



Update 4

Marker


The goal of this update was to add a marker that the player can move around to make selections.
This update is to replace the mouse picking.
Simple 3D object created in openGL.
Movement is controlled by the arrow keys.
Key buffer was also added to give smooth movement.

Update 5

EXTREME UPDATE


This update is a big update as i decided to go ahead and take a different route with the board design.
Rather than importing different tile designs into my program i decided to make the whole board from blender
and leave the other selectable items to be imported separately.
This made it easier for me to create mountains as well as have the possiblity of water.
NEW ITEMS:
 Oil drills.
 Vilage buildings.
 Farm fields.*
*The first attempt for fields was to make a more detailed field.
So i went ahead and made a single wheat object and then proceeded to duplicate it over and over,
til i realized the issue of file size and memory allocation required for just one tile.
My improvised way was to raise the ground itself to resemble the individual rows and to color them later.*
This change can either make this project go smoothly or make it 10x harder.








Update 6

Materials


So now that I made the board 1 object its now time to import materials in order to get the colors from blender.
After looking at the material file I noticed that the Kd line was the actual decimal value of R G B.
Cleaned up the material by getting rid of unnecessary lines.
Added code for reading the material file, counting how many times the material is used and applying the material
First time importing the board led to some weird contrast object.
Scaling down and testing with a smaller object showed I had some error with the colors.
Problem seemed to be fixed but reappeared when i brought in an even bigger object.
Welp error was due to assigning a value passed the array size.
At this point I needed to completely recolor my entire board in order to have an optimized material and object file.
TAKEAWAYS:
 Make sure everything is one object in blender before assigning materials.
 Materials need to be ordered alphabetically in blender before exporting.












Update 7

Waves


I wanted to try and add water to my board as well was motion for it.
First i started with creating a flat grid using a 2D array to hold each vertex position.
I then tried to create a wave by incrementing each vertex of a column at once and the next column would be slightly more and so on.
This worked well as seen below, but once I scaled the grid larger I had flickering issues.
As I scaled it back down the animation broke yet created a much better effect.
To this day I still don't understand why or how.
My work around for the flickering was to instead of creating more squares, I would just increase the size.
This did come at the cost of having a less smooth animation.