ZZTT is a game project inspired by Transport Tycoon Deluxe, Factorio, and Age of empires being created by Lucas Montenegro and Thomaz Nardelli.
It is a management game about controlling a resource transportation company in a fantasy world.
"The game is an RTS style, 3D, multiplayer, low poly, procedural management game."
ZZTT is a management game about resource transportation in a fantasy world. In ZZTT you'll be the owner of a resource transport company. Your objective is to serve the needs of the local population, collecting, transporting, and selling various resources for gold. In this fantasy universe, you'll have to hire contractors to handle a diverse range of resource transportation tasks, from hazardous magical mushrooms to ambush-inducing dungeon loot. Let's hope the other players won't also try to disrupt your services, since, in this multiplayer environment, everything can happen!
I have been studying and working on creating a scalable software architecture to be able to create complex games faster spending more time creating features, than fixing bugs. While studying this I realized that I needed a base game to be able to create my framework on top. It would be really hard to understand what the framework needs without having an actual game. Feature creep and unnecessary tools are usually the culprits.
As I got older I started valuing more and more having less code, that is less "smart" and more readable. Having a game project allows me to grow my framework creating just exactly the tools I need.
Apart from that, why would I choose a multiplayer RTS? Couldn't I create a smaller game? Well, yeah, sure! But I was playing a LOT of TTD and I wanted to do it, so yeah.
I told Thomaz, about this idea and he said to me that he wanted to train his computer graphics and technical art skills. PERFECT MATCH. We scheduled a meeting and in two weeks we had a basic design document with the game core loop.
Well, I don't know. We want to finish this game and publish it for sure. I cannot do it for money because of the place I currently work, so I'm not sure. We might publish it for free, maybe even leave it open source or we might think of something else. Once we decide what we are going to do, I'll write about it.
The main intention here is to develop my framework and Thomaz wants to code some nice beautiful shaders and rendering pipelines. We are doing that, so this is our main objective for now.
Since that is our objective, I'll try to keep you guys posted on what technologies we are working with, the hows and whys of it.
ZZTT's core loop is:
- Hire contractors for currency
- Set resource transport missions for the contractors
- Sell resources for currency
- Hire contractors
Our idea is to develop the first mechanics to satisfy this core loop, and then add some mechanics to tie those together. Add some restrictions, relationships, difficulties. Then we will work on our UX so that the game is easier to play. We want some of the amazing complexity TTD has to offer, without the 80s UI and UX.
Current Development Status
We are still working on the basic components of the framework. I have been working hard on creating a good basis for adding new features without having to change what currently exists. I have created a nice DI-Container-based framework that integrates easily with Unity. I have added a scope manager to separate application components during runtime. Also, added Mirage as our networking solution and recently synchronized both server and clients at the same level.
Even though I did all of that, there is still very little gameplay code. We are working very slowly on this. I picking up the pace now, and this blog should help me get there.
Thomaz on the other hand is working on the tile rendering system. He created a render feature that is able to render millions of tiles using instanced rendering. We are converting our tilemap which is a c# data class with asset references (to make it really easy to work on the editor) into something that the GPU can read directly. He created also some nice custom shaders and a special mesh provider that allows us to have different mesh selection rules for each tile!
I'll write a post later just to talk about the tools and techniques we are using. Just the map generation is enough for more than one post.