Past two months, Tribes has seen a lot of rework. Mostly this is due to how I treated Bevy components and resources initially. Before I started implementing multiplayer, I was heavily relying on resources to hold various game data. It was the simplest approach because it eliminates the need to account for ECS quirks like new entities available only on the next frame or entity removal heuristics. Honestly, I wasn't very familiar with ECS back then, so juggling with components was a bit uncomfortable as well.
But what works for a single player game doesn't necessarily work for a multiplayer. When I started digging into it, I chose a wonderful
bevy_replicon as my networking backbone. It was the only library I found that doesn't require a developer to implement data synchronization logic – it does it by itself and works with components. So I faced a dilemma: either sync my resources myself, or allow the plugin to sync components for me, but that would require a rewrite of most logic to use components instead of resources. And I've chosen the latter.
Now that the work is done, I have a solid foundation for a game I got in my head. I can add stuff and quickly test it myself or with a friend. Gorgeous!
To make this section livelier, I include a screenshot depicting my first approach to distinguishing teams in a multiplayer game the easiest way possible: displaying your enemies as ugly monsters. 👽
C’est La Vie
Art is hard
In this iteration I was going to replace initial art with the new and more inspiring, and despite the fact that I did it, I consider it a failure nevertheless. Originally my plan was to use any AI tool to get some pictures and polish them by hand. But then I've got a new laptop with a touchscreen and a pen and decided to put my drawing skills to the test. 💩
In a week, I had a few terrain designs and one and somewhat satisfying for characters. The problem was that I couldn't combine them together without getting a visual mess. The more details and colors I aimed for, the more mess I got. Adding to this a requirement to have more than one character on a tile – and it seems the impossible task for AI (at that point, at least). Now that I understand that I have to make tiles much larger to accommodate all the visual information I need, I've decided to opt for a simple cave-like art for now.
I wasn't happy with how I had to deal with in-game resources after testing my initial design. It was a burden for me as a player to manage them, separately for hunters and gatherers, rely on luck and factor in chances. It was unnecessary complex for a strategy/tactics game, so I've decided to simplify this part as much as possible. Harvesting resources is not a part of a game now. Instead, there is a tile population cap, and while not reached, children are born, bun once overpopulated, inhabitants starve. Now I like it much better.
What is next
To not tire you any more with a prose, here is a plain list of what's coming next to Tribes:
- two new classes of heroes: Shaman and Warrior
- a fog of war
- large tiles and moving camera
- hopefully, I can make new terrain art
That's it. Thanks for reading!