The second year is over and the progress was pretty good. I worked again around 1800h on the game in total. This year, a lot of bigger things happened:
The original plan, to finish the alpha was not finished, due to there were too many extreme big changes that came out of the player feedback, so at the end of the year i changed the focus to finish all major features this year, but i added the interior placing instead.
The year started with updating to updating to all new versions of unity and the related frameworks. In this month also consequences for persons have been added where persons could die.
To make the start of the game more easy, i changed to default buildings of the satelite. To not let the starting rocket get too big, i tried to change the tile size from 10x10m to just 5x5m, to have for the starting satellite 3 tiles next to each other. The main cost of this was that all existing buildings have to be redone.
One of the big features were air systems. So the ship contains Oxygen, Humidity and more. There were several buildings added to regulate them and the complete work-part has been refactored to fit easy to this needs. Also maintenance for buildings was added also including a new building.
After some feedback i redid the tutorial several times with different approaches. Most of the testers complained about the complexity and bad tutorial.
One of the big steps were the release of the steam page. It sounds easy, but there was a lot of things to do, including several different logos, gifs, pictures, and a trailer. To make this easy updatable when things change in the game, i created a small framework to create pictures out of unity in a programatic scripted way. I reused this framework to create quickly (2-3h each release) create Release Videos with it.
To have more survival aspects in the game, i added air leaks when the condition of a building is too low, ending up in too less oxygen for persons. This month i also added some steam features like Achievements and integrated it to discord and polished a lot of small things.
The Playtest started and the feedback was splitted. It seems around half of the players found the game way too complicated, even when not realy started with it. After long analysing i found that the Building process needed to be way more simpler, so i removed the infrastructure placement, ending up with just one constructionCenter. It made the game also way quicker.
I added a shuttle bay and the basics for moon missions to gain resources from the moon and in later stages from other planets. The other big thing was to add Speech. I integrated the Google Speech API to the I18n System and improved also the translation system. Its now just one button to create and add a spoken text to the game. If the Ui Element pops up, it just speeks the text in different voices.
Due to i use the Entity System, animations are not as simple as usual. I created a system that converts bone based animations to textures and push them to the shaders to do the animation completely in a shader. While doing that, i learned a lot about shaders and how they are created. It can now be directly controlled by entity properties, and several systems calculate the data for the shader to be updated.
The next big point was to add nicer persons. Till than i had a dummy person and all persons looked the same. I already experimented for anther game with UMA to generate them, but it needed to be adapted to be used in Entity systems. Also the Animations have to be generated for each model. This had to be done async, due to it could take seconds to create.
Also water tubes have been added, due to it was not realy useful to have each water consumer to have a 1000kg water barrel in the building. So there is now a pump in the storage that pumps it to the ship and all buildings can use it. The implementation refactored a lot of the resource container usage to prepare also for the next topic.
This topic was ship sections. It was very anoying to have an air leak in a useless building and cannot fix it without destroying it. Now the player can seal this building. Seal means that it has their own Air-System (that can go empty). The ship now not contains directly the air anymore, it contains ship sections, containing the air. I added doors that the player can activate to seal, causing a split up one sections to two, splitting the Air and everything equaly. Unseal will merge the buildings together again.
Finaly a new Unity came out, with support of deferred rendering with entities. It was already the third try and this time it looks working. This make it possible to change from precomputed lighting to realtime lights, what makes it possible to reuse machines and buildings.
The next logic step was to reuse as much as possible instead of baking it to several models. To make this configurable easy, i added a small interior system to make it easier. While doing that, we had an idea to let the player choose this now by himself. The new rendering makes that possibe now. It ends up in several things that get to this point step by step and it took in total the whole December to finish and polish this.
The plan for 2022 is to finish the first part of the game. One last major feature are specialized persons, i want to add at the start of the year. The main target for this year is to add more content, buildings and balance everything to finish in time at the end of the year.
I created a summary for the first year of the game development. I worked around 1700h on the game in total, so in average it was a like a normal fulltime work. I learned a lot of different things in this year:
A bit sad, that the other three planned team members did not get the enough motivation to join me for this yourney, so the original plan, to have a sellable alpha right now was not fulfilled. I didn't track it, but my feeling is, that i spend equal amount of time in the different aspects, that were planned before for each of them, so it was clear, that it will not be finished this year.
Playing around with the basics to find a good architecture and learn the needed basics like Cinemachine, Unity-Tests, Selection, Buildings and PlanningSystem, Walkways, Release process and first release
Andi joins, Webserver setup, Starting with UI, First Models, Resource System, GridStructure and Railways, Construction Process, Andi leaves the project
Perfomancetests and Redo the entire Simulation to increase speed from 1h/s to 1year/s. Basic Ui like Mainmenu,... Keybindings, Automatic GridDeforming, SaveGames, Editor-Analysing tools, Photostudio for creating icons from Models
Finished the Construction of Buildings and Infrastructure, Animations, Redo the Coordinate system, Supplyship
The Timewarp was added, to jump to the events like finished buildings. Also the basic Tutorial System was finished. I also added the Sound and Music there and the intro to the game with the starting satelite.
Andi seems not coming back, so i needed to redo his work, due to lack of documentation and not checked in sources... So big research and workflow creation, how to create the Models for the Game in a good and easy way. Due to that, i also needed to redo all of the models, he created so far. I also refactored completely the server he created to took that part also over. In total, it took the whole month
After a month of redoing current work, i could focus back to the game. I refactored a lot the simulation to have an easy code to add more features. The work part of the buildings was changed completely, so resources are used and created partialy. I also added the changelog support, created out of Jira. I also reduced my workingTime to parttime from here on, so the progress was even slower.
Over half a year was gone and i finished the last planned tickets for the playable Game (MVP). I tried a bit around and found more things that should be done before i could define it as ready. So this month was spend for polishing and balancing. Creating a better UI and interaction possibilities for the Player.
After one Month of polishing and several playtests, i was happy enough with it to release the MVP. The Next Features were planned to get to the Alpha, that were a better SupplyShip system.
I learned docker and recreated our the Server-setup and my internal infrastructure. I started also with the next big Topic: Artificial Gravity. I did a lot of research, how this physics is working in real and needed to rethink the concepts a bit, ending up with Mass-Balancers. Also Jira anounced to get cracy and want to force customers to go to their clould, so i searched for alternatives...
In november i had an idea to make the resources more balanced. It was a big problem to balance the systems so they not creating mass out of nothing. I refactored this basic concept and the new one is now way easier to balance. I also make the Person needing these resources and replaced the current Need-System, that changed a lot in the current gameplay. Also i make the ship can hold Resources, so the PowerGrid and the Air in the ship is easy done. I refactored the buildings and came up with a new Idea for the starting satellite, to make it modular.
In the last month, i start to make the last 2 Month nice and polish them, before adding the last big alpha feature to the game (Missions to moon) before the planned alpha. I'm trying to make the game now good playable, before doing that.
The first half year started with Scrum. The planned Storypoints worked well, the sprints were ~2 weeks in the normal workingtimes. In the heavy starting phase the sprints got down to half a week, due to a lot of working-hours.
At the second half, i started to a more kanban workflow, due to i get to not so predictable working-times parttime, so i wanted to remove the fixed working-week hours.
In this year, there were ~450 automated tests created for the different parts of the game. Most of them are Unity-Tests doing something in the game, like planning a building, checking the auto-rotation or something similar. It was very effective to find problems where i didn't expect it and was very useful. Im still trying to fix bugs after i created a failing test. Without that the refactorings would not be possible. The rest are unit-tests that i created due the development of the specific algorithms, to find problems faster.
I spend a lot of time in some generic mesh-manipulation. Due to we have a round spaceship, all building-models need to take care about it, otherwise e.g. the doors will not fit together and it looks strange. Also the Meshes needs to have some cuts in between, to be able to bend streight lines to the circle. This is/was a big mess in blender to take care about it, so i created a mesh-manipulator in Unity, to generate these models in runtime with burst support. There are 2 algorithms: one is splitting the mesh along x or y axis, another one is bending the buidling to the wanted grid. One time, i reduced the amount of tiles in the circle from 100 to 50. Thanks to that generic systems, the models adapted by themselfs automatic.
Another generic aproeach is a automated icon creator, using the game-objects to place them in a scene with good lights, creating a screenshot out of them and saving it as an image.
The plan for 2021 is to finish the alpha and get to Steam.
I will start the year with Infrastructure and improving stuff, trying to update to the newest Frameworks, to get rid of the experimental UI-usage, trying to improve the compile-times (current ~20-30s roundtrip after a code-change). I also plan to generate a Game-Wiki, before i continue and maybe create now logos and FB-Pages with the newest models and up to date screenshots (current ones are still from january).
After that i will focus on balancing and make improve the playability, finding and fixing bugs and polish more. Is that done, i will start with the mission feature.