QONQR 4.0
Greetings Players
It has been a very long time since my last formal update. I’ve been struggling with some tough decisions regarding QONQR over the past few years. The TL;DR; is that I’m working on QONQR again. I’m making efforts to keep it alive. The details follow. Warning: it is a lot of doom and gloom, but there is positivity at the end.
Some background and history
Version 2 and 3 of QONQR were written using a coding technology called Xamarin. It allowed us to write code once and run it on iPhone, Android and previously Windows Phone. For a small company like ours, it wasn’t feasible to write the application 3 times for 3 different platforms. Xamarin was written on top of Microsoft’s technology, and Microsoft purchased Xamarin several years ago to make it the core of its cross-platform developer solution.
Several years ago, QONQR simply couldn’t pay my salary anymore. I started a new application with another entrepreneur and that project was also a cross-platform application, written in Xamarin, this time for PC and Mac. I’ll refer to this app as “NOTQONQR”.  For the past 10 years, I have worked in Xamarin on Android, iOS, MacOs, and Windows (and Windows Phone). Building cross platform software has become one of the most frustrating and unfulfilling career decisions I’ve made. I realized it wasn’t phone apps or gaming that was making me miserable. It was everything cross-platform and the dependency on multiple companies to make a good product so that I could in turn make a good product.
While things started out “OK”, building software in Xamarin over the past decade has destroyed my passion for building software. I, along with the developers I have worked with, had the attitude for years that the issues were the result of being on the cutting edge and early days of cross platform development. I lost that opinion years ago. To this day, the outstanding bug list for Xamarin is thousands deep. Many of these bugs have been on the list for years, and now they will never be fixed.
While this sounds like a Xamarin issue, it is an industry issue. Look around at other cross platform solutions, and you’ll be hard pressed to find one that doesn’t have many hundreds or thousands of outstanding bugs on their public bug trackers. Building apps is a nightmare, it has been from the start. I have spent most of my development time on both projects the past 5 years fixing issues caused by big companies or governments. I can’t count how many times I spent my days fixing something that worked just fine 6 months ago, but now is broken because Apple, Google or Microsoft decided to do the exact same thing a different way, and now a rewrite is needed. Governments around the world have passed laws making it harder for developers to build apps. Privacy laws have made it nearly impossible to keep predators, would-be hackers and toxic people out of an app. Governments and consumer advocacy groups are suing and fining Apple and Google at every opportunity. As a result, Apple and Google are making changes that satisfy the mob, but hurt developers like me. No smart developer would build a game like QONQR today. The things we did before to ensure the GPS coordinates were legitimate, people were actual people, and gameplay was fair have nearly all been removed from my toolkit, making it very hard to protect my good players from bad people.
To further the opinion that this is an industry problem, a friend of mine who is a well-known Android podcaster, author of several android developer books, and speaker and many large developer conferences recently made a blog post about the state of app development. He mentioned that he is seeing burn out in both Android and iOS camps. Developers are tired of fighting the issues and are leaving to become web developers or leaving all together. He even admitted that he thinks his days as a mobile developer are numbered, despite being an internationally known and industry respected mobile dev. Too many developers are exhausted from the continual churn of fixing things that shouldn’t need to be fixed.
My mental status the last few years
I frequently receive support emails berating me for allowing cheaters to cheat, including two emails last week from a long-time player demanding I either “fix my shitty app or shut it down.” Sadly, most of the perceived cheating isn't actually happening, and the small number issues that we are blocked from addressing are the result of Apple and Google, and many of them are in direct response to new laws and regulations that protect everyone, including criminals and predators, but not developers.
In the first 5 years of QONQR, I would regularly work from 7am to 2am multiple days a week. However, for the last 5 years I have been in a developer depression of sorts. I didn’t want to get out of bed. I would sit at my computer for hours, sometimes an entire day and struggle to write 10 lines of code. I’d find any excuse not to code. Everything I looked at was broken. Internet searches showed me never ending bug reports in Xamarin, Android and iOS, that went unfixed, and workarounds that must have worked at some point, but no longer work today. I hated the profession I had chosen, the technology stack I had invested my career in, and felt trapped by being tied to two applications that I had ownership of, and from which I couldn’t just quit and find a new job. My wife would ask me frequently to consider finding a career I thought I would enjoy and just give up software all together. Unfortunately, I simply didn’t have passion for anything outside of my volunteering as a high school robotics coach. That is a retirement, not a career move.
The technology situation today
Xamarin was declared “dead” by Microsoft a couple years ago. It was replaced by a technology called MAUI. In nearly all respect, MAUI is identical to Xamarin, but of course different enough. My fellow developer and I started migrating NOTQONQR from Xamarin to MAUI about 3 months ago. Early indications are that MAUI will have better performance and stability than Xamarin had. It seems to be slightly or moderately better in most cases.
For the developers reading this, I’ll get into some technical details in this paragraph, skip to the next if you aren’t a developer. We built the UI for both apps using code. XAML markup wasn’t even an option for years when QONQR staring using Xamarin. You needed to build your pages one element at a time using code. No markup, no layout tools. Many/most developers who have been using Xamarin for more than 5 years, probably built their UI using code, rather than markup, even after XAML became an option. For the NOTQONQR app, I spent a week in June and completely converted the code from the Xamarin framework to the MAUI framework. It was pretty easy to get to a point everything would compile. I was able to get tens of thousands of lines of UI code to compile in the new framework in a few days. When the app would run, we found lots of minor issues with layout. Things didn’t align quite right or wouldn’t become visible when they should have been shown. We came to the realization that we needed to completely rewire the UI in XAML, and could no longer draw our pages using code. The rendering engine was built for pre-compiling your page layout and it was clear Microsoft had not put much emphasis or testing on generating UI on the fly. It makes sense. Given the timelines the Microsoft developers were under, it was the right choice. Unfortunately, it took a few weeks migration and made it into a few months for those of us who started with Xamarin a decade ago. The effort to get to MAUI even though it is basically the same as Xamarin is a huge lift due to the age of our code.
I attempted to migrate QONQR to MAUI two years ago when Xamarin was declared “dead” and MAUI the new successor. At the time, MAUI could not play sounds, did not have notifications, and could not make an in-app purchase. The product was “ready for production” and completely unusable. I was stuck. There was no way I could migrate QONQR to MAUI and given my mental state, I just couldn’t force myself to push through the issues like I had in the past. That was a stopping point for me and QONQR. I’m sure all the players noticed nothing new was happening.
Fast forward two years, NOTQONQR must migrate. I wasn’t the only owner of the app and my partner company needed to make it work. We were looking at a complete rewrite of the app in a new language, or push through a MAUI migration.  So we revisited MAUI. Things are much better two years later.
When I started working in MAUI for the NOTQONQR app, it felt like home. I spent years working in XAML markup before Xamarin. MAUI made sense and seemed to work well. Yes there are still thousands of bugs on the backlog. This is frustrating but not new.
My attitude got better. I have spent several days in the past month working past midnight in MAUI. I’ve spent my weekends writing code. It has been a significant change from being unable to force myself to write code, to looking forward to it again. I can’t say that I love writing code again, but I do feel productive.
The future for QONQR
I’m up against a big deadline. Apps written in Xamarin have an end of the year deadline to be migrated to something else or stop working. I am getting notices that maps will stop working in the next version of iOS if I don’t update my controls, and an update isn’t possible in Xamarin. It is very possible the current version of QONQR will not work on the new iPhone or when everyone updates iOS.
I had planned to try and work on QONQR over the summer, but having a summer intern at NOTQONQR I needed to manage and that MAUI migration taking months more than planned took all my time away. Now that intern has returned to college, and the NOTQONQR migration can be wrapped up by the other developer on that team, I have told the owner of the NOTQONQR company I’m taking a month off work. I’ll be avoiding my other job to focus on QONQR.
Sadly, the first two weeks of the QONQR migration have been painful and slow. After two weeks of long days and weekends, I have the Welcome page, login and map working including the Android Anti-hacker security checks. That’s it. Some of the simple pages may work as is, with the basic migration, but all of the complicated pages (which is a lot of the app) will need a fresh start. For example, the launch page draws everything in the middle of the screen stacked on top of each other. Very little can be salvaged, I need to start over and build the screen from scratch. I think many of our pages may be this way.
Admittedly, I spent much of my time the past two weeks just trying to get the core of the app to work. A lot of the system stuff like local storage, notifications, sounds, colors, fonts, images, etc all had to be setup differently. I had to start with a completely new map. Animations never really worked well in Xamarin and they aren’t any better in MAUI. I’m taking them out everywhere I can since they have always been the source of most crashes. Today I have a running app in MAUI, but it doesn’t do much yet. The past two weeks have shown me this looks possible to complete before the end of the year.
Beta release of QONQR 4.0.
Distribution: If/when I get to that point, the beta would be available through Google Play and Apple App Store and you would need to opt-in to the beta program. I previously had been using Microsoft’s App Center for pre-release versions of the app for player testing. That has been shut down. The only good option available is to release through the stores, which requires official (and long) app reviews on Apple, even for a test release. You won’t be able to run the beta side by side with QONQR 3.X
Barebones: Registration may have to be done online in the early releases. Upgrades and ordnances may also have to be purchased one the web portal. Probably no notifications.
No Chat: Right now, I am planning to remove chat from the app. The US Senate passed a bill in July that would make me responsible for anything posted in my app by a user. While this bill is unlikely to become law, it is a sign of further punishing app developers, but not giving us the tools to keep bad people out of our apps. I will replace chat with a link to the “Unofficial Community Discord”.  It is unclear how this potential law may impact the forums should something similar become law in the future.
Launch: I’m going to do my best to get something like the old launch screen working, but it may be just the simple launch screen to start. Whatever I come up with, I hope it will be temporary. A big challenge with QONQR is hackers attempting to automate launching. While I have some ways of stopping that after a few hours the current “are you human”, takes hours to have an impact. I’d like to redo this screen so that it requires more than just tapping in the same spot over and over to launch. No one likes change, but I hope you like cheaters less. I’ll do my best to come up with something players will tolerate but is harder to automate.
Messaging: Player to Player messaging may eliminate the use of the custom emoji packs we have sold. This will simplify the complexity of this screen and message passing. If you purchased one of these emoji packs, you will receive a bundle of cubes as compensation. I won’t know for sure if we are removing the packs until I get in there and attempt to migrate.
Sync Lock Mini Game: This unfortunately needs to stay as our only reasonable way to combat multi-scoping. I am well aware this still hurts families, but I don’t have an alternative giving the privacy laws the EU and US have enacted that prevent me from taking better measures. This is a very complex UI and I’m concerned about the effort it will take to migrate.
No music: I don’t think I’m going to migrate the background music. I think it is time to let this go. Background audio is hard and inconsistent.
Skins: This seems unlikely. The library I used in Xamarin to tint images doesn’t work on Maui. I don’t have plans to work on a replacement until everything else is working.
New features: None are planned yet, but the largest roadblock to new features in the past 3 years was the knowledge that anything we built was being built on a dead coding platform. If the migration succeeds, that roadblock will be gone.
Can developers help?
Many have asked me if they can help or if I can make QONQR open source. Sadly, I don’t think this is a viable path forward. Exposing all of the code would make it a trivial matter for a hacker to bypass all the protections in the app and automate and manipulate everything except buying cubes. Even if I went to the effort to pull out the secret code that stops hacking the app, any developer who worked on the code would be perceived a cheater. There are too many instances in the past where a player I asked for advice or tips, claimed to be a QONQR developer and claimed to have a special build and/or free cubes. This has never been true, but if people think their opponent is cheating they stop playing or stop spending money that is needed to keep the servers alive. The past has shown that letting anyone have even a little access never ends well.
Even today, with as hard as it is to stop hackers and cheaters the impact is much smaller than most people believe. Yes, some players are probably cheating their location, but they are put into overheat penalty on their scope when they do. They can deploy in two locations, but deploy fewer bots than if they stayed in one spot. I get many emails with “proof” that someone is cheating. Most of the claims don’t hold up when investigated. There are certainly limits on what I can do, but the perception of people cheating is much much higher than actual instances we have uncovered. Every day, I receive dozens of automated notices where QONQR code blocked devices that had a hacked version of the game, attempts to steel cubes, GPS spoofing penalized, too many failed launch verification, and players switching devices too frequently. There are many many cheater detections in place and they are working. For the most part, the biggest problem with cheating isn’t that it is happening, but that players think it is happening much more often than it really is. Giving anyone access to even part of the code would only make this problem worse.
In Reflection
Next week, it will be 14 years since the name “QONQR” came out of Justin’s mouth at a Starup Weekend competition. So much has happened in that time. There was a time when I felt like it was going to be time to turn off the servers because profits had gone negative. Then Gmenman goes and gets a huge damned Legion tattoo. There was no way it could be shut down in the months after that. A while later, profits got a little better and the servers were safe again. A few years ago, I posted a fairly negative blog post about how things were going, hinting that things may finally be coming to an end. The next day I received a heartfelt thank you message from a player who had shared that she struggled in her real life and QONQR was the first place where people accepted her as the person she was, and didn’t judge her as they did in the real world. She thanked me for making a safe place for her to be her true self. There was no way I was going to take that away from her, so I kept the servers up. TotallyGomer and YellerCukes both shared with me their appreciation for QONQR as a way to stay in touch with their friends and the outside world before their passings. This will forever be something I’m proud to have provided. Together we have grieved the untimely losses of several players, and the memorials show how much they are missed. Players have been through so many challenges in their lives, with QONQR friends supporting them along the way.
The necessity to either rewrite QONQR or shut it down has been looming over me for months. It doesn’t make financial sense for me to stop working at my other job and spend months rewriting the QONQR app to keep this going. The smart thing would be to shut it down and move on. Focus on something new and leave behind all the issues of mobile gaming, government regulations, and abusive mobile marketplaces. But… the smart decision has been the wrong decision too many times before.
QONQR is too much of who I am, who you are, who we are. I’m going to try. QONQR may be always full of issues. It may have fewer features than in the past, but I’m going to try and keep the heart of what QONQR has always been in the new version. I can’t promise it will be done soon and can’t even tell you it will keep working on your current or new device in the coming months. However, I’m here today to tell you, QONQR is too important to let go, and I’m working on keeping it going until I find it just isn’t possible. I now believe I can make it work. I ask for your understanding and patience as the 4.0 beta moves forward.
For those that continue to buy cubes, thanks for keeping the servers alive.
-Scott (aka Silver)






