Aleksei Duriagin
I’m a Web and iOS developer. Maker of Quick Habit. Contributor to LandLords.
GitHub Github Mastodon Mastodon Bluesky Bluesky LinkedIn LinkedIn Archive RSS RSS

LandLords. Catan board game alternative

LandLords

Couple of months ago a friend of mine i13luck from tezee.art asked me to help them on their endeavour to create a new game called LandLords. It’s an alternative version of the very popular board game Catan

Catan, previously known as The Settlers of Catan or simply Settlers, is a multiplayer board game designed by Klaus Teuber. It was first published in 1995 in Germany by Franckh-Kosmos Verlag (Kosmos) as Die Siedler von Catan (pronounced [diː ˈziːdlɐ fɔn kaˈtaːn]). Players take on the roles of settlers, each attempting to build and develop holdings while trading and acquiring resources. Players gain victory points as their settlements grow and the first to reach a set number of victory points, typically 10, wins. The game and its many expansions are also published by Catan Studio, Filosofia, GP, Inc., 999 Games, Κάισσα (Káissa), and Devir. Upon its release, The Settlers of Catan became one of the first Eurogames to achieve popularity outside Europe. As of 2020, more than 32 million copies in 40 languages had been sold.

Wikipedia

Experience at tezee.art in game development is still growing, as LandLords is their first game. Despite this, I believe they have the potential to make a small indie game dev studio in the near future if they keep the pace of development new features and new games like the LandLords. Their main goal was to launch a production version in January 2025. Spoiler: They did it! You can try it out on vk.com/landlords_the_game To expand their audience and facilitate faster matchmaking, a web version is crucial. Hopefully, this will be available within a few months for those who don’t have an account on VK.

Gameplay
Short video of the gameplay.

Rules of the game

To help you understand LandLords, here’s an overview of the basics. Detailed rules can be found on Catan's official website.

Standard version of LandLords is a strategy board game for 3-4 players. The goal is to be the first player to reach 10 Victory Points by building settlements, cities, roads, and acquiring development cards.

Resources
The game board consists of hexagonal tiles representing different resources: brick, lumber, ore, grain, and wool, along with desert tiles.

Players place 2 settlements and 2 roads on the board before the game starts, ensuring settlements are at least 2 spaces apart. After placing settlements players start to roll the dice. Rolling the dice determines which hexes produce resources for all players based on their settlements or cities. Players with settlements or cities adjacent to the rolled hex receive resources. 7 activates the robber.

Numbers
Each hex has a number token (2-12), determining the dice roll that produces resources for that tile.

When the robber is activated, players with 8+ resource cards must discard half of them. The active player moves the robber to a hex, blocking resource production for that tile. The robber allows the player to steal 1 resource card from a player with a settlement or city adjacent to the chosen hex.

Players can trade with others or the bank. 4:1, or better if they control a harbor. Resources are used for building, buying development cards, or trading with other players.

To win the game players earn Victory Points through the following actions:

What’s next

In the next article, I’ll share insights about my contributions to the game over the past few months. The first article of the series will focus on creating balanced maps. Properly balanced maps avoid adjacent hexes with the same resources and ensure even distribution of numbers across the board. Popular numbers like 6 and 8 should not dominate specific zones, as they appear more frequently and could disrupt game balance.

Quick Habit 1.2.1: Early marketing and iOS 17.4 Bugfix

As I mentioned in my previous post, my focus was mostly on marketing. Making progress in marketing is challenging for me because my full-time job mostly involves writing code. To improve my marketing skills, I'm learning from other developers on social networks and blogs. Currently, it is the only good source where you can improve your marketing skills.

Roll out slowly

I plan to roll out the app slowly for several reasons. It might sound odd, but I do not want a large user base yet. The app has small bugs and performance issues. Moreover, while the app has core habit-tracking functionality, it lacks features like Notes and Achievements, and it's not yet available across all Apple platforms. Only iOS so far. This limits my marketing options.

Because of all this factors, I deliberately released the app with compatibility starting from iOS 17.4. This aproach gives me some time to improve my marketing and Swift development skills. The app will be improved, have all the important features, and support all the Apple platforms. Later this year, Apple plans to launch iOS 18. They'll encourage most users to update their devices from iOS 16 to iOS 17. This update will bring me many new potential users.

Early marketing

I considered using several marketing channels to attract more users. First idea was creating a page on Indie Hackers After some research I noticed that developers abandoned their accounts. Instead, I decided to write a small post on Reddit. There are at least a few good communities where you can promote your app. I chose /r/iosapps and wrote a post about the app, which led to hundreds of page views and a significant number of new installs. I'm preatty happy with the results.

iOS 17.4 Bugfix

For persistent data storage, I chose the relatively new technology, SwiftData. I like how easy you can write code for data persisting and synchronisation between devices. Accidentally, I made a bug in SwiftData migrations and this bug didn't cause any issues on iOS 17.3. I missed checking it on the iOS 17.4 beta versions, and the bug showed up when iOS 17.4 was released, which was right when I posted about my app. I had to fix it as soon as possible. I think this bug might have stopped some people from using the app. It was a valuable lesson to test apps on all new iOS versions before they come out to avoid these problems.

Quick Habit 1.2: Best Streak and New Languages

This release is not big in terms of new features. There are ton of new ideas and interesting features in the backlog but unfortunately I didn't have much time this week. So, I decided to improve accessibility and add one new interesting motivational feature.

Accessibility and New Languages 🇫🇷 🇩🇪 🇮🇹 🇯🇵 🇵🇹 🇧🇷

I consider accessibility as an important part of UI and making the app accessible is currently one of my top priorities. We do not often think about this, but a lot of people do not speak English. Or simply, users want to use their native language on the OS even though they speak English. This underscores the importance of supporting multiple languages in the app, especially the most popular ones. Integrating and supporting new languages is a straightforward process that significantly enhances usability and expands our user base. Seems like win-win situation.

Best Streak

It's a simple yet powerful feature to keep users motivated. There are two main reasons why this feature is important. First, it serves as a motivational tool to beat your own record. Second, it encourages users to maintain daily activity without breaking their streak. Additionally, I'm hopeful this feature will delight many users, especially since it was highly requested.

Statistics

What's next

The goal of the next week will be mostly related to marketing. I hope this will boost our user base. The next big feature for me is achievements 🏆 I will also improve accessibility with a couple of new languages.

Download Quick Habit to try new Best Streak feature and Contact with me on Mastodon for any feedback or suggestions

Quick Habit 1.1: Spanish & Russian languages. Multiple habits widgets

It's been a week since the first release of Quick Habit. In this release, I decided to start localizing the app with a couple of languages to improve accessibility. The first one is Russian since it is my first language and also the easiest way for me to check that everything is translated fine. The second language of course is Spanish. The reason is pretty simple. It's one of the most popular languages in the world.

For translation purposes, I used ChatGPT. Obviously, many of us have already tried it and know what this thing can do with parsing and translating. I just copied the content of a String Catalog, pasted into ChatGPT, and then used the translated result. Russian language wasn't perfect so you have to be careful with this instrument, because it is not always right and can make mistakes. Still, I didn't find any good open-source and ready to use scripts or some kind of instruments to automate this copy-pasting job. It definitely can be an idea for a small open-source project for a weekend. Maybe in the next blog post, I will share something related to this written in Swift or JS.

New features

Multiple habits widgets

This release includes 3 types of new widgets. The first one is a small widget. The widgets can display the first 4 or 8 habits in your app. You can reorder the list of habits on Manage Habits screen. For the first release of these widgets, I decided not to include the settings where you could change the list of habits for every widget separately. This feature is in backlog and will be added in the next releases.

Small widget including 4 habitsMedium widget including 4 habitsMedium widget including 8 habits

"Something wrong?"

I often see buttons like this one in a lot of indie apps. As other developers say this feature is really useful and effective because users who decided to delete an app will encounter this button first and it will motivate users to write something about what was wrong. The button is easy to integrate into the app, so I promptly added it.

Something wrong?

That is all for this release. Download Quick Habit and Feel free to contact me on Mastodon

Quick Habit: My First Mobile App

Habit Tracker. Track your progress with detailed statistics and motivating streaks.Insights. Detaild reports to understand and improve your habits.Customize your experience.Dark and Light themes. Effortlessly switch between light and dark themes.Widgets

I have long been interested in mobile app development and this year, I decided to achieve this goal by releasing several iOS apps. The first app idea I had was a habit tracker. While there are many similar apps available, my background as a software engineer inspired me to create my own version. I took a lot of inspiration from apps that already exist. For instance, a notable feature is the GitHub-style heatmap, which shows how well you stick to your daily habits. Calendar at the top of the screen is an excellent way to navigate between days. I also came up with a couple of my own ideas, which I'll discuss in more detail below.

Features

The app categorizes habits into two types: Good and Bad, each tracked differently. I'll start with common features before discussing specific ones for each habit type.

Common Features

Heatmap

HeatmapHeatmap

This feature visually shows how consistently you practice a habit. For instance, if you miss one of two daily occurrences, the heatmap indicates your progress without suggesting that you've abandoned the habit, thus helping maintain motivation.

Current Streak

This displays the duration you have successfully maintained a habit, serving as a motivational tool.

Stats

Calendar

This allows you to review past days and track your monthly progress.

CalendarCalendar dark

Visual Representation with Colors and Emojis

Allows for easy categorization and identification of habits using a combination of colors and emojis. This approach, using emojis, simplifies user interaction and offers a visually appealing experience.

Emojis and ColorsEmojis and Colors dark

Widgets

The initial release includes three Home Screen widgets. These widgets serve as a representation of in-app content, though they are not interactive due to current technical limitations on Apple's platform.

WidgetsWidgets

Good Habits

Good habits are the ones where you mark each successful day manually. For instance, you have a habit ”Read books” and you want to do this every day, you should open the app and check it.

Good habits also have useful feature called Reminders. You can set as many reminders as you want. It will remind you about activities you planned to do.

The repeat feature lets you do a habit on specific days. For example, if you plan to go to the gym three days a week (Monday, Wednsday, and Friday). Streak will be calculated based only on these days.

Bad Habits

A bad habit is when you only note the days you didn't succeed. If you don't meet your goal for the day, as set in the app, it counts as a failed day and your streak starts over. This way, I can measure a streak more precisely, showing even minutes and seconds. Good habits only track the days you succeed.

Premium

I do not think it's a good idea to limit features in such app to encourage users to purchase the premium version. The only limitation for the free version is that you can add only 3 habits and a small visual feature, which is changing the app icon to a premium one. I think this approach will help the app stay competitive with other habit trackers.

Premium Icons

Plans

There are lots of plans for the app. I won’t disclose everything, I'll share a sneak peek. I understand the importance of having versions for WatchOS and iPadOS, as they offer more flexibility in using the app in various scenarios. Additionally, having notes with a rich text editor is crucial. Features like creating habits from presets and motivational elements such as quotes, reminders, and widgets are also part of the plan.

Download Quick Habit

P.S. As I mentioned before it is the first production ready iOS app that I've made. Being primarily a web developer, I notice many similarities between web and Apple platforms. I hope this experience will help me improve my skills in Swift and creating user interfaces for Apple platforms.

All Posts