After more than two years of work on Astra Terra (roughly one year of continuous work, because the team only worked on it during the summers for those years), we’ve arrived at a point where we think having a website is a worthwhile investment of time, and later, money. Right now we’re using a free domain (which will continue being free for the next twelve months), christopherdumas.org/astraterra, and a free plan on WordPress for the site. This is because right now we’re operating off my savings, which is rather small because I’m a student in college. However, we’re far enough along in the game that there are real screenshots and game play bits to show, and if we don’t start marketing and getting the word out soon, it never will get out.
By failing to prepare, you are preparing to fail. – Ben Franklin
I don’t know how valid the attribution of that quote is, but it is apropos and describes my approach to these things.
The team consists of myself, Christopher Dumas, Govind Pimpale, and William Trovinger. I’ve been programming for nine years now, and have a lot of personal projects and hobby projects under my belt, as well as having completed a few contracts (one of them for $1500) for startups. I have a regular, non-programming-related job, but I’m in college. I’m the one who started this project, and I’ve kind of taken on the role of project manager, coordinating what everyone is doing and working on through a series of team-management applications. Govind Pimpale has been programming for almost as long as I have and is an exceptional specialist in multithreaded programming and algorithms design, which complements my skill in AI and simulation design nicely. William Trovinger is the artist in the team, and also the “producer.” Besides working on (beautiful) pixel art lovingly rendered from 3D models in Blender, he also has veto power on the story and direction of the game, if not the mechanics.
A good place to start with the current state of the game is the current state of the team. Right now we’re all pretty busy but development is proceeding apace. We’ve each done some things in the last few weeks and are working steadily forward, mostly in different directions for now. We’re using a Trello Board to coordinate our efforts, however, so when we do need to converge on something we can.
Just a few days ago I finished the part of the player-controllable AI that deals with gathering items and stockpiling them, as well as upgrading the AI’s ability to multitask and share jobs with other AIs who have the time/ability to do them. Next, I’ll be working on the basic building commands, which allow the inserting of single-material basic blocks into the world. I don’t expect this to be a feature that is used a lot in the game except for the foundations of a player’s fortress, but in the process of doing this I’ll also be able to see how it would interoperate with a more abstract version of the gathering-items aspect, which is way too tightly coupled to stockpiling right now.
Meanwhile, Will has been working on creating various grasses, dirt, stones, and vegetation for the biomes in the game, having recently finished a few of the add-ons and the base drone graphic. Right now he’s finished most of the grasses and has temporarily moved on to figuring out how to create a looping animation out of a wind simulation of 3D leaves (attached to branches) and render it out into a minimum number of pixel art frames.
Govind has been extremely busy lately with “real” life, but is working on a huge performance and code-cleanliness refactor on a separate branch. Its slow going but will be a huge benefit when it’s merged (although that’ll be a pain). He is also slated to work on some animation related things which I had to leave aside to focus on core game mechanics, and we’ll work together on making the game AI multithreaded to alleviate the load on the single processor. Performance isn’t a problem yet, but we anticipate that it might be, considering how heavy a game with hundreds of AIs operating in real-time might be.
Speaking of merging and branches, we’re using a BitBucket repo linked to git to manage our code. Teaching our artist to use git was interesting but he’s got it now and we’re all working smoothly. BitBucket is a really nice website and we switched to it from GitHub because it allows private repos, which is huge when you’re working on something you plan to sell. On the local side, we’re using Rust, a fairly new systems programming language with a lot of features perfect for writing performant code that doesn’t crash and is robust. Rust has been a huge reason for the speed with which we’ve been able to get things done. It’s an awesome progamming language with a great community.
All in all its actually been a pretty productive week, and things only seem likely to speed up from here. As a bonus, here are a few screenshots of the game running:
Please note that the tree graphics have been fixed but not pushed yet (Will’s still perfecting them).