What does the work as a developer for one of the biggest ARK tools look like? – BIG Interview with the devs of ARK Smart Breeding (ASB)

ARK Smart Breeding Interview

If you are into breeding in ARK Survival Evolved, then you probably know ASB—ARK Smart Breeding. It’s a neat little software that helps you to archive the stats, colors and infos around your tames, and it helps you to progress with your breeding by giving you breeding suggestions. It  has been a handy tool for many breeders over the last years and I talked to the Lead Developer cadaei and the co-developers coldino and Mr.Plow about their work on ASB for ARK1 and their hopes and wishes for ARK 2. 

What sparked the idea for ARK Smart Breeding?

cadaei:

It’s almost 7 years ago, I can’t really tell. ARK was in early access and had just introduced breeding. While playing on a PvE server and also editing on the official wiki, we were always eager to understand the mechanics behind newly added features to describe them precisely on the wiki. Other users like Crumblecorn wrote detailed articles about the mechanics and mathematics of taming and created JavaScript apps for that. I think it was partly that and also the challenge of solve the problem to determine the levels that make up a given stat value. Some stats like Stamina are easy, it’s just a base value, each wild level increases that by a percentage and a domesticated level then increases that value by a percentage.

Other stats are complicated and depend on the taming effectiveness and have some more factors. To help with that I started a simple application where you could enter the stat values of a creature and the app would try to solve it and display the according levels. At first there were only a couple of species included in this StatsExtractor app. When a new species was released, I had to go in game, spawn in low level creatures, knock them out, force tame them, level them, note the stat values of the different steps, spawn in another, note stats, it was quite some work. When the ARK Devkit was released it helped a lot with finding the stat values of the species, if you were patient enough for the loading times.

When the app was running kind of stable, I uploaded it on GitHub and wrote a post in the official subreddit (https://www.reddit.com/r/playark/comments/3tq4qy). While breeding got more popular, and it became more useful to know the exact stat levels, more people downloaded the app and I got more and more feedback with ideas to improve the app and to add more features.

Back then Smart Breeding was my first larger project in C# and programming was (still is) only a hobby, so it was great when people joined on GitHub, gave suggestions and contributed more professional code. The first one was NakramR who helped a lot with programming style and who said it would be nice to save and load the levels you had extracted, so you don’t lose your work. So the library was introduced. He also didn’t want to enter all the stats by hand (exporting dino stats wasn’t a thing back then), so he just built the OCR functionality and also added the overlay, so you could see the extracted levels directly in the game when viewing the inventory of a creature without even tabbing out of the game.

I think it’s a good example how “laziness” is a great motivator to add new feature to ease the workflow, and also that a lot more is possible with programming than you might first consider. Later Flachdachs from the ARK wiki joined with more programming knowledge and improved the code quality a lot. He also translated the ArkSavegameToolkit by qowyn from Java to C#, which was later integrated into Smart Breeding directly by coldino.

With the creation of the discord server user issues, feedback and suggestions could be collected faster than via Reddit, GitHub, or the official ARK forum and more contributions and improvements could be added by many more people. Also, more people joined and helped improve the app and answered questions of other users, especially MrPlow. To my relief with alex from the ARK wiki, coldino and MrPlow soon created Purlovia, a new application which would extract all the species stats automatically from the game, saving me the time to manually determine these values.

ASB Library Overview with different Stat Priorities
ASB Library

What made you decide to help with ARK Smart Breeding?

coldino:

It was simply me being lazy. I was playing single-player and wanted a quick way of indexing all my tames in one go. At the time ASB could only get data by manual entry or fairly unreliable OCR (before creature exports), and that felt like way too much work to me! So I hooked ASB up to a save game reader to get it all in one go with a single click.

Since then, I’ve also helped out when we needed to make significant structural changes to ASB, for example to support species from mods and the problematic Gacha, with its crafting skill stat. To do this we had to spin up a full Ark data extraction project called Purlovia, which uploads its data every day to GitHub where everyone can see it and use it for their own tools. We cover the core game, all DLC and a bunch of the most popular mods. The wiki now uses this data heavily, as well as Beacon and probably other tools we don’t know about. On top of that we’re developing a small set of useful web tools at arkutils.

Mr. Plow:

I was simply a solo tribe on an (at the time) aged PvP server. I was building in the shadow of the server’s alpha tribe, and they left me alone as I just wanted peace and posed no threat to them. The former alpha tribe ruled the server for 4 months before finally being taken down by new blood. While I was determined to remain peaceful as Ark was an outlet for me to have fun with good players and trash talk with the trolls. But I realized that without the overwatching eye of an alpha tribe, I needed something to set Mr. Plow apart from everyone else.

Raising Argentavis. Prior to the great flyer speed nerf, Pteradons were the king on PvP servers due to their speed. But I targeted my Argentavis towards health, damage, and carry capacity. I sold to EVERYONE on the server. I even offered mixing colors for 50% more iron and cementing paste. Even after selling more than 50 Argentavis, hand raised by myself while maintaining a full time job, I realized I needed help, but I just couldn’t trust anyone. Then I stumbled upon ASB.

With the calculations and library tracking features of ASB, I ended up selling over 200 Argentavis before giving up on the server. I was the last “active”, original tribe on the server. Multiple alpha tribes tried raiding me but failed due to the small footprint of my base but extraordinary defenses (before Plant X nerfs). The same people I sold to regularly ended up being the people that couldn’t beat my defenses, and then I sold to them some more to fill a dozen more turrets with ammo for the next failed raid.

None of those 9 months on that server would have been possible without the convenience of ASB on my netbook next to me. It was about 6 months or a year after I left that server that I decided to give back to ASB. Contributions in general have been small, ranging from a logical improvement for TE (Taming Effectiveness) and wild level calculations in the extractor to discussing how some of the variables from the DevKit fit into calculations required for ASB (we still don’t know what all of the variables are).

I also assisted with Purlovia and support for the 12 stats of creatures, but coldino and alex have done most of the work, I just enjoyed learning new topics and analyzing the observed data. I feel that Purlovia, and the complexity that went into, is only known to few users and undervalued by most of them.

Which were the biggest challenges you had programming ARK Smart Breeding for ARK 1?

cadaei:

H Pedigree view in ARK Smart Breeding
H-Pedigree

The development was always in small steps with a small new feature here and a fix there. The extractor is probably the most complex part of the application, or rather how it tries to not look too complex to users. In the beginning a lot of feedback was that people didn’t understand how to use the app. Due to the complexity of the stat system in ARK the user first needs to make sure the server multipliers are entered exactly in Smart Breeding, and there are a lot of them. How the app helps to avoid the most common mistakes was improved a lot over the time, still it’s probably a bit overwhelming when starting the app and not exactly knowing where to begin. To ease this complexity is probably the biggest challenge over the course of the development, and it’s still going on.

The biggest challenge regarding a specific feature was when coldino and MrPlow convinced me that Smart Breeding should not only support the 8 stats visible in the game, but all 12 available stats in ARK. To only support 8 stats became an issue when the Gacha was introduced which used the stat Crafting Speed which hasn’t been used by any other species. Changing the application to support 12 stats instead of 8 made it clear how unflexible all the algorithms were built assuming there are only and always only 8 different stats.

Another big challenge was the OCR. It was never really reliable, especially when it was used to read letters and if these were in different font sizes, e.g., if a dino had a very long name. Luckily the ARK devs at some point introduced export files for dinos (initially intended for transfer your creatures to the VR game ARK Park) which were very convenient to use in Smart Breeding. OCR is still not perfect, but from the feedback I get it’s still used by some, e.g. when they can’t export creatures.

Imprinting was another big challenge, at least at first. Imprinting increases the stat values by a certain percentage depending on the species and the amount of cuddles or other tasks the player has to perform, and to determine this exact percentage seemed to be impossible at first. It introduced a new variable that could change all other variables and there were no restraints. People couldn’t extract creatures that were imprinted, and often just these creatures were the ones they wanted to breed. In the end we found the imprinting is always increased based on specific values and multipliers and implementing this long missed feature was like adding 4 lines of code.

coldino:

I have so much respect for Cad, going from little programming experience to such a well-loved, feature-full app. Unfortunately on the other side of the coin, ASB has grown into quite a complex beast that’s hard to extend now. In many ways we’re all looking forward to a bit of a reset for Ark 2.

Mr. Plow:

Since I was late to the party (Ark was still in early access on Xbox), the code base was already interesting to say the least. At the time, I was not a professional programmer and was severely turned off from working on the code due to the sheer size (and spaghetti) of the code base. After I learned to put my blinders on, I began working through the stats extractor. That was the most impressive part of ASB to me.

I became intimately familiar with the calculations in the extractor. I studied documentation on the assumed equations it was based off of. I began untangling the interwoven variables and references. And then I gave up.

Two months later and I came back, determined to reapply what I had learned and looked for improvements. Most of the changes I offered early on were pushed through Cad since I didn’t know GitHub. To this day, I wish I could have provided more assistance to the code clean-up, it is something I enjoy once in a while at work.

And WinForms.

Is ARK Smart Breeding now the tool that you wanted it to be or do you wish more things would have been possible?

cadaei:

In fact, I never really had a vision of what this app should be. It just grew over time from just a tool that could solve some equation systems to the tool it is today with a lot of ARK related features like the breeding plan and support for mod species when more and more ideas from more and more people were added.

One major issue only became obvious to me after some years. The used framework (WinForms) is pretty old and especially with flexible layouts or styling (e.g. dark mode) you have a hard time compared to more modern frameworks like WPF. The to-do list of feature requests and ideas is rather increasing than decreasing.

Over the last years I often thought Smart Breeding is done and that the user count is going down, but it seems still be used by many. One major feature often requested is an improved breeding plan that also considers colors. The algorithm for the breeding planner was implemented in the early years, and could itself probably be improved before new features like the color breeding was added. So far I just hadn’t the motivation/time to rewrite that.

And of course the code structure is not very clean due to how the app developed over time, which is probably a hindrance for new contributors if it’s hard to understand what which part of the code does.

coldino:

We all wish it had a dark mode! Unfortunately the old software library it is written on (WinForms) and the sheer amount of UI make that an impractical job that nobody has dared to tackle.

Mr. Plow:

ASB Early Development
ARK Smart Breeding in early development 2015

I don’t think any of us expect ASB to get this big. Cad showed us an early development screenshot and ASB has changed quite a bit (not so much the extractor, visually). I think I can collectively say that none of this would have been possible without the years of dedication (headaches, and maybe tears) from Cad. Not many projects survive this long under the original developer, and actively. This is a testament to the dedication he has to the community and how wonderful our community is. Between our Discord assistants, mod developers, the users of ASB, and everyone else who contributed or assisted us, this has been an enjoyable ride.

That said, I feel that ASB is more than I would have ever wanted from such a tool. Some of the biggest requests that we’ve had over the years, aside from a dark theme, is mobile support and mod support. While ASB in its current state offers significantly more mods than it did just a few years ago, the Purlovia team still experiences significant complications with adding mods.

Mod data has to be manually reviewed for complications, like breaking Purlovia, for meaningful benefit, it should be popular and more than just one creature and 10 colors, and for any conflicting mod configurations, I’m looking at you Naj and your Speedy Flyers. Mods have always been a challenging part of Ark, let alone ASB. I think it was only 3 years ago we found out that mods don’t necessarily override any stats, so we had to rework some of our knowledge and code to support inheriting stats more correctly (still isn’t perfect).

It would have been swell to have maybe just 100 mods we needed to support, all of which just extracted smoothly, didn’t have conflicting configurations, and had amazing mod developers like Lethal of the Dino Storage mod, and so many other developers that I’ve worked with.

Mobile support. Just. *sigh*

Very few people knew that behind the scenes, coldino and I were working on a purely web based version of ASB. I rewrote the aforementioned stat extractor. From the ground up. From scratch. In JavaScript. And optimized it enough that over 200,000 iterations took less than 100ms. On mobile. And then Google’s Firebase happened.

This was, at the time, the largest project I had worked on with a language I wasn’t familiar with and concepts I didn’t know. Coldino educated me, put up with me asking dumb questions (you’re regretting that now, aren’t you?), and dealt with my severe inattentiveness and frustrations. We endured a lot because we knew how much it meant to so many people. We even implemented a cloud based database the worked seamlessly with mobile and web browsers.

But ultimately, all that hard work came crashing down after observing significant data usage during a random test we were doing. Coldino and I, after quite a bit of bickering, did some testing and verified our biggest fear. Google was counting us just checking that out cache wasn’t out of date the same as us just downloading everything fresh. Without getting into too much detail, this killed the project in its tracks. I’m not sure about coldino, but I immediately lost interest, even though I was in denial about it for a while.

To this day, I’m still incredibly proud of the work I did on the extractor and really wish that everyone could have seen coldino’s vision for the app (I have no design abilities) and the effort we put into it to ensure everything just worked. The upside to this is that many things we discovered during ASBM’s (ASB Mobile) development helped also improve features in ASB. Additionally, after licking our wounds, we went on to develop Purlovia.

Breeding Planner in ARK Smart Breeding
Breeding Planner

Are you planning to support ARK 2 as well?

cadaei:

So far I think ARK 2 is similar to ARK, so an application like Smart Breeding would be useful as well. Depending on the complexity of the formulas used for the stats an extractor could be added as well. I just don’t know enough about ARK 2 to decide whether it’s feasible and worth to develop an app like Smart Breeding for that. It would be a good opportunity to recreate Smart Breeding with a clean code base. And maybe if the mechanics from ARK 2 are not that different, a single app could be used for both games.

coldino:

Of course! It’s quite a daunting task to think about recreating as much as we have for Ark 1, so we’ll have to take it one step at a time once we know more about the game and what tools people will need. We’d certainly be interested in hearing from anyone else keen to collaborate on either the next-gen ASB or UE5 game data extraction.

Mr. Plow:

I believe all of us are in agreement that we want to start fresh with this and retain, if not redevelop, ASB 1 in the remake. Unfortunately, it’s still too early to get started with planning until we get some hands on gameplay (you know, for research 😏). I know there are tons of goals with this, and some of your requests might end up on cutting room floor. We had a discussion before about various popular requests and must have features, but with technology constantly evolving and all of us learning new things, we will need to revisit this again.

What would make supporting ARK 2 easier compared to ARK 1?

cadaei:

Hard to say right now with ARK 2 not yet released. Easier is of course that we already have created the current app, so we don’t have to redo the mistakes we already did and have more insight how to implement features from the beginning.

coldino:

The community have developed some great mods and tools for Ark 1, but better access to live game data for users and server owners would bring even more opportunities—and massively help ASB users of course. Even simple things like public CDN access to game assets (e.g. icons) would remove a significant barrier of entry to developers who want to make good-looking web apps.

Mr. Plow:

I thought about this for a while. Ark 1 was not without its challenges, but I think aside from the bugs in Ark’s code (Troodonisms, etc.), it was relatively enjoyable to offer support. Again, very few things in Ark 1 were easy to support. Some things appeared easy at first, like taming effectiveness or imprinting, but as we dug into each topic more and more, they became more complicated.

One of the things I’d like to see carried over to Ark 2 is something similar to the dino export option. This gave players on official servers the ability to use our tool as efficiently as possible. Another one is mod support. While it has been challenging at times to offer the support in ASB, in general, the mods have only enhanced an already great game.

Some of the things that I’ll be more critical of is the perceived lack of transparency. Some long-standing bugs in Ark (even ones from early access), took years to fix, if they were fixed at all. It wasn’t always obvious if this was because the information wasn’t passed along to the right teams, the issue wasn’t a bug but actually intended, or if the teams were just struggling to fix them. It is sometimes disheartening to myself to have spent hours testing and researching an issue, so I could make a proper suggestion to the developers with reproducible steps, specific variable names, and other information regarding the bug, only to see update after update not address it (still looking at the Troodonism’s).

While Wildcard has made efforts recently (last few years now) to extend employees into the public space (content creators, modders, wiki, support programs), I don’t feel that it’s quite enough. There is an obvious presence here, but I feel like they get swarmed by regular players and can’t be relied upon for critical feedback. Utilize your communities to collect information and have a central point of contact for said community. Be more aware of how your players are playing your game, the tools they’re using and enjoying, the mods they’re downloading, and reach out to those communities.

Even though this section was critical of the game, the developers, and the company, I still truly enjoyed Ark. Nothing is perfect in life and for as massive as Ark became, I feel these few things would have happened to anyone. I truly respect the Wildcard team, but there’s a reason we have a WTF WC emoji.

A message to the ARK Devs?

cadaei:

Thank you for creating this great and complex game, even if some bugs sometimes make it hard to implement or adjust features (did someone say Troodons?)! I have to say, I enjoyed the couple of rounds I played Survival of the Fittest, I wouldn’t mind if you bring something like that back.

coldino:

In the age of game simplification, please don’t simplify the breeding mechanic too far! There are certainly some rough edges that need to be improved (the mutation counter confuses EVERYONE), but the depth and many complexities of the system are what keeps us interested in the game for so long. We’d welcome small changes, new ideas, even big reworks—just no dumbing down, please!

And for my personal out-there dream: wouldn’t it be amazing to see more variety on individual creatures, possibly even influenced by breeding. Just think of the possibilities—bigger eyes, longer legs, more spikes, less feathers, different textures. Could mesh really well with the existing stat system.

So far the news for Ark 2 and indeed the whole Ark ecosystem has only been exciting, and shows a great leap in maturity for the company. Can’t wait to see what you do with it!

Mr. Plow:

Ark 2 when?

But seriously, please continue working towards your goals as a company. I’m looking forward to what the next installment has to bring to the table. I believe we are all impressed with the trailers and information so far, but I’m also interested to hear some interviews with the teams (technical interviews are good too).

I’ll be honest, this is probably the hardest question to answer though. I think a lot of us would love to get an early access (alpha/beta) demo, so we can start planning early. While I personally would love to talk to a developer and discuss the game, I’m pretty sure content creators like TiiaAurora have a better chance at that.

After a long 8 years of development, months of crunch time, and what I can only assume is millions of man-hours, I hope you enjoyed the game development as much as your players have enjoyed playing it. Thank you.

Some final words:

Tiia:

My biggest thanks to cadaei, coldino and Mr. Plow for taking their time to answer these questions and giving us a look behind the scenes how a project like ARK Smart Breeding starts out of an idea and how even the smallest idea can become a big project. Looking forward to ARK 2, I think the whole community hopes that there will be an ASB that can help us out in our breeding plans.

If you want to check out ARK Smart Breeding or you now think “Hey I can help!” there are a few links you can follow:

 

Mastodon