That’s why it’s impossible to having working bigger projects in GoLang on Windows because you can’t even compile it. GoLang requires directory structure so you can very easily reach max limit of chars in your execution path.

Conclusion, it is impossible to even to compile bigger project….go with Linux or OSX

As in vagrant blogpost I am playing Terraform with DST, because it’s quite good aspect and problem were you can check out tools like Terraform.

You may wondering what do you have with those all games ? Games for me were *THIS* thing that I started programming, it all has begun from Helbreath, were as a 13 years old I wanted to create my own server so I had to compile C++ source code, it was challenging for somebody with zero knowledge of C++, so that’s why I still love doing private server and giving back to gamers community.

Terraform is a tool that allows you to describe your infrastructure as a code, it means that you can write json-like description and it tells to terraform what it has to do to spin up required parts of infrastructure to achieve fully working environment. This tool is ideal for any kind of cloud provider it supports, Amazon, AWS, DigitalOcean

This block describes that we going to use AWS provider, with access_key, secret_key and specific region.
${var.aws_access_key} and
${var.aws_secret_key} this is how you define variables.

1

2

3

4

5

provider"aws"{

access_key="${var.aws_access_key}"

secret_key="${var.aws_secret_key}"

region="eu-west-1"

}

In this part, we can see block that has information about AWS instance, what AMI to use (image of OS), what type of instance, ssh key name, your custom security group and additionally how to connect with our VM during provisioning step.

Next one aws_security_group block, which describe your topology of ports and connections between your machines. DST requires port 10999 UDP protocol as incoming traffic so we have to add ingrees rule, in “egress” we specify that we allow to any outside traffic on any port and protocol.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

resource"aws_security_group""dontstarve_port"{

name="dontstarve_port"

description="Allow communicate with dontstarve"

ingress{

from_port=10999

to_port=10999

protocol="udp"

cidr_blocks=["0.0.0.0/0"]

}

egress{

from_port=0

to_port=0

protocol="-1"

cidr_blocks=["0.0.0.0/0"]

}

}

Last security rule (ingress) open SSH connection over 22 port, require to connect with our machine and to do provisioning.

1

2

3

4

5

6

ingress{

from_port=22

to_port=22

protocol="tcp"

cidr_blocks=["0.0.0.0/0"]

}

For a long time I was wondering if tools like Vagrant, Terraform could be helpful in game development especially to maintain server infrastructure, and in my opinion they are! Soon I will blog more about hashicorp products and their usage in game development.