Introduction

Hello and g’day everyone - to this first Dev Log entry!

As the community for our little game grows, I was asked to provide regular updates to the state of the game, especially due to the impending release of a alpha version in the near future. Therefor let me introduce myself. The name’s Chris, and I’m your navigator through this journey. My main roles consist of development and data-management throughout this project. Gabriel asked me to join the team back in October 2019. Up until this point I worked on Unity-based prototypes of games, Godot prototypes and a couple of weekly game jam projects. So this is my first bigger project to tackle. If you guys got any suggestions to changes or any (constructive) critisism feel free to contact me on our Discord server, directly via PM or in our Disqus forum.
I’m natively german-speaking, living in Austria, Europe, so you may encounter me more often during European time-zone evening - especially since I am doing this aside my full-time job.

Project start

Let put down some ground work here. Gabriel is the leader of this project, he send out a reddit post looking for team members back in late ‘19, and I asked him to join the team. After checking with the project and seeing that there are mock-ups, artists and a general idea of what is going to be created I decided to join and am now the designated programmer for this project.

Technical project settings

The game is designed as a Real-Time Strategy Simulator, akin to games like Age of Empires (II), StarCraft, Warcraft 3, and many more games from the golden era of RTS.

We decided to use the Unity engine, in regards to be able to jump platforms if there is interest leading up to the release of the game, and in case we need additional developer to simplify the on-boarding process. With Unity’s current development in regards to 2D games, we decided to go with the new Light-Weight Render Pipeline (it’s called ‘Universal Render Pipeline’ now). The current version of Unity we use is 2019.3.6f1, but this may be subject to change if newer versions include features we need to continue with the game development.

The graphic style is a pure 2D game with frontal facing sprites and tiles, and Z-levels (slopes).

Development progress

As this project started back in October already, we already had quite some progress done. Gabriel and the rest of the team started to create all the data for units, buildings, mechanics and many more definitions in regards to the game, as well as started to draw the sprites.

2019 October & December

I started implementing the basic game play and the RTS components first to get a working prototype running.

  • First idea was to use Scriptable Objects to generate “template” objects which the Unity instances are created from. For example: You got a template “villager” with all the attributes, and every newly created Villager uses that template and takes over those values.
  • The general mechanics (collecting resources, in-game UI, attacking)
  • Map generation was started, Gabriel created a very detailed document how river generation is suppose to work. This took the biggest part of my time for those 2 months.
  • Gabrial also informed me that, additionally to those requirements we also need to implement “slopes”, therefor a system for Z-Level

One of the template units I was using during this time (it was one the first units drawn):

Soldier sprite

Due to the christmas holidays my time was sadly cut short so I had to bench most stuff until January

2020 January

The month of january was riddled with day-job projects, so very little time for LandCrisis.

  • Implemented a first version of the scenario Menu and the main menu (see screenshot below, still has the old Land Crisis logo and buttons)
  • Added data transition between menus and games
  • Started first researches into Fog of War
  • On the map generation front I added the basic system for z-levels and slopes (basically just acting as illusion, technically we could increase/decrease a artificial Z-level on the slope entrance tile, but for now there is no requirement for this)

Main Menu
Single Player
Ingame Screenshot (missing tiles)

2020 Feburary

In feburary I got informed that we need a Alpha build quite soon, so I had to get the gears rolling. Basically up until now, most things were hard-coded. Units, values, build buttons, etc. So this meant I needed to come up with the new adaptable system. Why? So we can easily test and rebalance game values (think unit balancing) without having to rebuild the entire project every time. Recently this would have been possible to do with “Remote Config” by Unity, but I’d like to not have a constant internet connection to be able to play the game.

  • Attempting to implement Fog of War in a prototype project. Turns out Unity really doesn’t have an easy way of implementing Fog of War. Apparently there was a way to do it via shaders, but I wasn’t able to get it to work with the LWRP as the Shaders changes over the versions. I came up with a very reduced version of a map. Basically: downscale the map from the pixel perfect resolution to a smaller one and basically “copy” the seen part to 2 textures - one for the grayed out map, and one for the current visible one. I’d have prefered to have a kind of mask to cut out he seen parts of the map, but that’s the best I can come up for now.
  • Cleaning up the project, tried a build, turns out loading files from within Unity is dangerous. The old build wasn’t able to load entities and files outside from Editor. That meant I basically had to migrate to “Resources/” and ResourceBundles.
  • With time progressing forward Gabriel and NightRaven both sent me new versions of the UI to implement, in particular that was the

Fog of War
New Menu

2020 March

This month I really started to free up some more resources for LandCrisis.

  • Added a start-up logo, customized the game logo, warning
  • Revamped the player selection screen
  • Added options menu (with functionality!)
  • We had to modify the FOOL font we are using to include missing characters like “+” “%” “/” and other things we need for tool tips
  • On that note: We added the Tech Tree to the player selection.
  • Added a new warning screen to the start of the game
  • We changed all settings to JSON files. That means: map generation, drop downs in the Single Player selection screens, units, buildings, resources, everything.
  • Added the tech tree based on JSON configurations
  • Also, for future modability we create TypeScript Bindings for all JSON files, to avoid errors and to enable mod creators to build their own mods later down the line. Those will be released as soon as the format is stable and usable enough so we do not need to change them 30 times a day and cause frustration with mod creators. If you’d like a sneak preview let us know and we might show them off in the next dev log!

Just as a side note: the FOOL font is a CC font to use, so we have to put the font up for grabs, you can find it over on our GitHub - be warned that we only did the most neccessary kernings tho. The link is here.

Splash
Start splash

Game

Options menu

Tech Tree
Tooltips

Font test
Font %
Font fixed

2020 April (1.-14.)

And this leaves us with the current state of things. Due to the outbreak of a certain global condition things have slowed down again. Luckily I still have my job and therefor continue to do my day-job from home (which I do most of the time anyways) - but due to drained motivation the current state isn’t progressing as fast as I’d like.

So this leaves us with the current done topics last and this week:

  • Gabriel fixed some corners back in January, as you can see on the screenshot above, we had issues with channels and other missing tile entities. There are still a couple of them missing, but by definition of our river generation this should not be an issue currently and we should be fine for an alpha release which only includes a reduced number of game elements.
  • Finally came around after migrating all the map types to JSON to implement the other tiles, that is, Desert and Ice, and their corresponding “transition” tiles (Grass to Desert, Desert to Ice, Grass to Ice).
  • Right now I am working on finishing up the new GameEntities. Basically we took the system from before with ScriptableObjects and translated them back to JSON files. This are now the new “templates”, including things like hit points, attack speed, walk speed, attributes like FLY or SWIM for air-born and sea-born units (or buildings).

Terrain Generation old
Terrain Generation new

Lost to time

Some honorable mentions I did not put into the lists above as I do not remember when we implemented them are:

  • Translations (i18n)
  • Added debugging Gizmos for help during development
  • Audio subsystems and audio playback
  • …and so much love from the community

Additional infos

I hope you enjoyed looking back at the progress we made this far.
Due to the aformentioned issues I wasn’t able to provide much information lately, so by delivering this blog-log-format I hope to reach out to those people who are eagerly awaiting some form of new information regarding the game.

Upcoming planned next steps

Here I’ll describe what the next steps are planned for the project, in the forseeable future. No completeness guarantee, so take everything here with a grain of salt, and if something more important is coming up (mechanic-wise) it will get reprioritized. The format (very loosly) follows the format of Tim Beaudet’s time recording sheet.

Status Date Topic Sub-Topic Description
Done 4/13/2020 LandCrisis Development Spawn (new) GameEntities when building map
Plan   LandCrisis Development Check abilities with new GameEntity system (attack, gather)
Plan   LandCrisis Development Import FoW implementation
Plan   LandCrisis Development Static playtest, initial build

Where are we going

Currently we are trying to prepare for an alpha relase later this month or earlier next month. That alpha will only contain parts of the game, as we currently do not have the resources to complete the game as is, yet we see that there is a thriving community around our project that seems to be excited to see more about this.

How often are these blog posts coming? Once a year?

We, or rather I, plan to release these blogs weekly now, instead of the aforementioned streaming. I did prepare some OBS overlays for streaming, but due to my very poor time management skills my developments are distributed across the entire day, from sometimes as early as 6.30am in the morning up to around 1.30am the next day - hence a streaming format wasn’t currently fitting the style of development I’m in. If I can get some regularity in these (especially with the dev log) and the interest is there we could think about starting to define fixed days and/or times for streaming. This may help out all of us.

Closing statement

I hope you enjoyed reading this development log - instead of creating lengthy youtube videos explaining the situation I think it makes way more sense to write them up and give some additional context for future references.
If you got any questions, hit us up on Discord, the link is here.

Stay safe, stay strong, keep your distance and I’ll keep you guys updated soon!

- KuhnChris