Today, the oldest independent game developer in the world celebrates the 40th anniversary of its official founding.
On Wednesday, January 13, 1982, forty years ago today, I took my completed “Certificate of Persons Conducting Business Under Assumed Name” form into the Ingham County Clerk’s office in downtown Lansing, Michigan, signed where I needed to sign, paid my $10 fee, and thereby officially established Sophisticated Software Systems.
Over the years, the structure of the business changed. After many years as a sole proprietorship, I brought in two partners and we incorporated as SophSoft, Incorporated in early 1996. A couple years later, we launched Digital Gamecraft, a division specifically for developing our own game projects, and last year we were awarded a registered trademark for Digital Gamecraft®.
In the early years, I developed products for a number of platforms and experimented with different business models. Our first legitimate success was a self-published title for MS-DOS, using the “shareware” method, in 1990. That game led to additional contacts in the retail game industry. We went full-time in 1994, and soon we had as much contracting work as we could handle; in fact, we had products in 3 different booths at the very first E3 in May 1995.
Since that time, we have done a great deal of work, especially in game development. The relative priorities of types of work have shifted over time; we still do contracting, but the focus recently has been on self-funded projects, while the retail game work, both contracting and pitches for funding, has necessarily waned.
Yesterday, I went back a did a cursory review of the work we have done over the years (and especially prior to this blog starting), and here are some fun facts:
We have pitched 8 different ‘AAA’ retail products (and teams) to publishers.
We have developed more than three dozen retail/commercial titles.
We have created 40 significant internal projects, plus 120 minor projects.
We have done work for 19 different clients, 8 of those for multiple projects.
We have worked on approximately 60 distinct projects for these clients.
We have been stiffed on multiple projects, and ghosted at least twice.
We have 32 projects planned and prioritized, plus 4 more added recently.
I am very proud of the work that the company I founded has done for the last 4 decades, and I am proud that I played a principal role in most of it. However, the anniversary is somewhat bittersweet because the two people who most helped me, my partners, Sherry Seelhoff (Director of Operations, and my wife) and Rick Tumanis (Art Director, and friend), did not live to see this day and to celebrate it with me.
Still here, still working, and still young enough to hope for another 40 years. 😉
The best iPhone Solitaire game on the market just got even better.
Pretty Good Solitaire Mini (for iPhone) has been updated to version 1.10, which is now available on the App Store for the unbelievably affordable price of only $1.99 US. This is the best Solitaire software value to be found anywhere!
In addition to the new games, the entire program has been reworked to support iOS 15, including dark and light modes, and to (continue to) work on the latest iPhone models; all known bugs (most introduced by iOS updates) have been resolved.
This is the first update of Pretty Good Solitaire Mini ever, since the first version was released almost three years ago, becoming Goodsol Development‘s first (and, thus far, only) iPhone title. That version has a perfect 5.0 rating on the App Store (out of only 12 reviews 🙁 ), and as I write this, the new version is climbing up the charts (according to Apple).
Best Solitaire Game
I have played the Mac, iPad and now iPhone games and this is the best solitaire game out there.
Labtech89 (app store review)
The only real issue with this game is that it is a rip-off… for the publisher and developer. We work hard to make an excellent game, and there is almost no chance that it will ever recoup the cost and effort put into developing and maintaining it. It costs the customer less than a quarter cent per game, and still not enough people are buying it to justify maintenance.
Nevertheless, we continue to do so. Of course, after this amount of time, it is no surprise that Apple has completely rejiggered the internals of the iOS operating system, including the eliminating of the concept of screen orientation entirely, so there was plenty to update to resolve problems created by their aggressive (and unnecessary) deprecation.
You can read about most of these issues in my post from about a year ago, Pretty Good Solitaire Touch Edition 1.60, where I detailed how I first dealt with these (same) issues. For the iPhone version of the Goodsol Solitaire Engine, when compared to that iPad version of GSE, the engine (i.e., model) code is identical (as it also is on Windows and Mac); that is its whole point. The controller code is very similar, but requires a review of all changes, rather than a wholesale code replacement, but that was much less effort than it could have been.
The view code, however, is very dissimilar. On the iPad version (i.e., Touch Edition), the interface consists of key screens and several popover views. On the iPhone version (internally, Phone Edition), a smaller screen and no popover support requires that the interface is constructed in a different manner, with only two main views, supported by 3 tab bars and 10 various tab views. While the low level code to display images, fill tables, and whatnot, is nearly identical, all of the surrounding view code is incompatible, and it was much of this code that was affected by the deprecation. The best we could do was establish certain templates for the types of changes that had been necessary in PGSTE and use those to both identify places where changes were likely necessary and guide us in making the necessary alterations.
I say “we” and “us” but, of course, I am the only programmer working on either of these products, which fact, frankly, probably makes it a little easier to coordinate, though all of the programming work (and a lot of testing) falls to me.
There were a couple of minor positives to this development process. First, the bugs I accidentally introduced in PGSTE 1.60 had been fixed in PGSTE 1.61, so they never entered the code base for this update in the first place. Second, the fact that the iPhone version necessarily has no popover support means that we completely avoided the double deprecation problem that we experienced with the iPad version development.
The most amusing item was that just prior to development on this update commencing (and after its originally planned start date), hence about 2.5 years after the last release, Apkmonk Blog did a very nice review of Pretty Good Solitaire Mini. Right up front, the very first screenshot is (embarrassingly) a background missing the intended game preview. The writer actually (unknowingly) makes lemonade out of this bug: “Don’t worry about the plain look of the app when you first open it“. They go on to give a very nice review (with the odd factual mistake here or there) and rate the game 5 stars (out of 5).
Now what really happened is that the game worked perfectly when released, showing a game preview image on that first (“plain”) page, or a splash image if no game is currently selected. Then, as so often happens, Apple makes unnecessary changes to iOS and breaks things. In this case, it changed the process for initializing a view and its subviews in a way that broke the code we were using to show these preview images (and a few minor images elsewhere).
Specifically, what happened was that Apple made changes to the layer objects of general views after the viewDidLoad method was called. Our previews were not image views (deliberately), and in that method we initialized the contents of the layer object associated with the subview, resulting, as expected, in the preview images displaying properly. When a later version of iOS changed the way that (and when) Apple did this initialization, the preview images stopped displaying. In the end, we had to convert to image views and implement our other behavior on those. It looks like Apple introduced a bug into their system, and though they could argue (illegitimately) that we were not using a sanctioned method, the fact remains that they should not have been messing with view initialization in this way in the first place!
I am generally satisfied that 2021 was decent, and somewhat better than 2020, for SophSoft, Incorporated and Digital Gamecraft®, but I am expecting us to perform significantly better this year, particularly in expanding our offerings and improving our finances. However, the development schedule will not be quite as aggressive as last year, which should allow for greater and deeper focus, and generally be slightly more realistic; it will still be challenging, though.
Product Development Goals
This year, I decided to break the goals into appropriate sections, so I start here with the priorities for (only) our internal development projects:
Unannouncedproductivity tool – this product has been under development for, literally, 32 years, though obviously not continuously. We are fairly close to an early release version, at which point we will (probably) announce the product and unveil the web site for a soft launch. This is the highest priority because it helps manage the development and prioritization of all the other projects. While I see almost unlimited potential of this project, it is the means to an end, and should the internal ends be satisfied by an unpolished alpha version, the effort to polish the product for public consumption could be de-prioritized. (We have to get there first.)
SophPlay System™ – this product combines libraries, tools, standards, and procedures into a complete development system for creating robust games on multiple platforms, and it has been in use here for more than 25 years. Although a public release has always been envisioned for the future, the development work this year is particularly in support of (all) internal game products, which is why it is given this high priority.
Unannounced Gamecraft Classics™ product – this traditional game title has been under planning and development, intermittently, for decades. It was buoyed (back) up the list of priorities in the middle of last year when we were reassessing our product lineup. It was promoted due to the vast amount of research and code that was already complete and available, combined with its ready support of simultaneous improvements to SophPlay.
Unannouncedconsole title – this is a game title that (perhaps unusually) focuses on accessibility and inclusion. It started as the highest priority last year, but it became clear that 3 months of development was too optimistic an estimate, and combined with the economic realities of the situation, it had to be slightly de-prioritized this year, but by no means am I any less excited by the prospects, and the above two projects will help pave the way. (We need to hear back from Sony and Microsoft whether we can reveal which consoles are supported. 😉 )
Unannouncedreference website – this is yet another project that has been in the conceptual and prototype design and development phases for ages. It is given this high a priority now as it also gives me a great deal of excitement and purpose, and because it helps support one of the projects above, but it is given a lower priority than that project because we currently have no viable business model for it, and while we are more than willing to make it free in theory, that concept makes it much harder to justify devoting development effort (given the other projects).
Demolish! Pairs – this product has been available in its initial form since 2013 (on iOS, 2018 on Android). We have early plans to refresh the Android version, and later plans to both redesign the mobile versions and expand to other platforms (such as Windows, where there has been a working prototype since 1999). Currently, this title doesn’t quite earn enough to justify the time it takes to bring up the sales reports; its primary benefits are the development and exercising of SophPlay and the demonstration of our capabilities on various platforms.
Although the above projects are given numbered priorities, which are generally correct, the fact is that there is some interplay among them, so we will not (and cannot) be just focusing on a single project until it is finished and then moving onto the next. For that reason, this year I will not be assigning or predicting target release dates; everything will just be “as soon as reasonably possible”, with the above priorities in mind.
Of course, we have a backlog of dozens of products in various stages of design and prototyping, and we know exactly what the next few games will be, but even touching #7 before 2023 is something of a pipe dream.
Client Development Goals
To be completely honest, I really like my two primary clients and the projects I get to work on for them, but I see the inherent limitations in trading my time (and skills) for money. I really should be charging them between more and very much more than I currently am, but that doesn’t really resolve the bigger issue. If I could quadruple what I charge and work more hours, I could go from struggling to comfortable, maybe even well off, but that does not scratch the itch. This is the reason that I have not really been actively seeking any more long-term clients, and also why I have (deliberately) not been filling all my development time with client work.
Instead, I have been relishing the actual work and the challenges it provides, as well as the experience and knowledge I gain (and, sure, the funding). At the same time, I want to make sure that, for each client, neither of us is overly reliant on the other, especially given how close we came to this being an issue last year. (Plan for the proverbial ‘hit by a bus’ scenario.)
For one client, I am working on a feature for an established (non-game) product that has involved a lot of research to this point. This has given me the opportunity to program in Pascal for the first time since the 1980s (and Object Pascal for the first time ever) and to improve my knowledge of JSON, while I exercise my intellect and my technical design, programming, and debugging abilities. In (the early part of) the new year, I expect to have the fundamentals of the feature ready to be integrated into the main product, and I hope it can be in a new release of that product (of which my feature is but a small part) ready before the end of the year. Also, I expect that I will be able to announce the name of the client and product.
For the other client, Goodsol Development, with whom I have been working for more than 20 years (!), the products are much closer to those that Digital Gamecraft develops. (In fact, our PC solitaire game prototypes date to 1989, predating Goodsol by 6 years, but they were put on hold permanently in 2001 when Goodsol became a client.) These titles provide the challenge and fulfillment that I would be seeking even were they not a client, while general knowledge cross-pollinates with our internal products; some features have been implemented more quickly (on both sides) because I already did the research and had the requisite knowledge, so products from both companies benefit.
Last year, we had an aggressive release schedule planned, but that was necessarily interrupted in April and, in truth, was a bit optimistic anyway. However, that means that the early part of the year is fairly well-defined as the carryover from last year’s schedule. You can expect to see releases for Pretty Good Solitaire Mini (not a stretch, given it was essentially already done in December), Pretty Good MahJongg (Windows and Mac), Most Popular Solitaire (Windows, Mac, and iPad), Action Solitaire (Windows only), and FreeCell Plus (Windows, Mac, and iPad). After that (or sooner), it would be a good bet that we would add new games to Goodsol Solitaire Engine and then have subsequent releases of Pretty Good Solitaire Mac Edition and Pretty Good Solitaire Touch Edition.
General Development Goals
There are always general development projects ongoing to support commercial releases, or just business operations. These can be tools or, probably more often, non-programming tasks such as documentation, research, and marketing. SophPlay used to be the perennial top entry on this list, but it has now been (appropriately) elevated to ‘product’ status. Here are the (5) main general development tasks to be completed this year:
Pitch deck and company bible – these documents give information about the structure and purpose of the company and its various divisions. We have always bootstrapped the company, and we have never received third-party loans nor investment, but writing these documents gives a bigger picture view of the company and is very helpful. It is like writing a business plan without having to include nonsense numbers and projections to impress investors.
3D graphics research – this research is essential to our products going forward. It is no secret that most of our games to this point have been 2D or isometric, but that is definitely not the case going forward, especially with our expansion into consoles. We have been very rapidly expanding our knowledge and capabilities, but there is still much to be learned about the differences among the 4 or 5 different systems on the platforms we currently support. Additionally, I am personally learning to create 3D artwork, a skill I have never had before.
Xbox project approval – this is required to release and market our upcoming console game(s) on the Xbox One. This development task consists of adjusting our design documentation to fit their desired format, plus the development of some mockups and other explanatory imagery. This is not (necessarily) a difficult task, just one that has not gotten completed yet.
Blog writing – this is simply a greater commitment to openness and transparency via blog posts in 2022. The only blog post I wrote in 2019 was announcing the death of my wife, Sherry, who was also my only surviving business partner, and it has been difficult to get back into the swing of posting regularly since then. However, the facts that I enjoy writing, and that I do not enjoy the idea of providing free content on social media, combined with a huge upcoming anniversary, give me the impetus to really try this year.
Nintendo Switch developer reapplication – this is needed to complete our portfolio of major console support. Nintendo was the first application we completed, and it was also the first that was rejected, although no reason (nor obvious means of appeal) was given, so I have no idea why we were turned down. Sony took seemingly forever to approve us, and it required a change in our registered business address; Microsoft took almost no time with only one casual clarification (via email with a real human being). With our newfound experience, it is only fair to give Nintendo another chance to get in on this opportunity. 😉
At this point, staying healthy, safe, and productive is a given, and continuing to make payroll should be considered a necessity though, to be fair, I personally have enough runway via available credit that I could continue to pursue these goals until 2023 even if company funding disappeared tomorrow. Given that, these are the 3 main business priorities:
Substantially increase business income – clearly, the primary way to do this is to release new products, so that is the main focus. Half of the products listed as development goals should increase income, and each of those has the potential to be huge.
Resolve outstanding business paperwork – Sherry was the officer in charge of keeping up the necessary business paperwork, and since she died, it has become my responsibility. While I think I have all the legal requirements fulfilled, I need to organize everything and make sure.
Complete home/office renovations – while this is not actually a business function (and is not funded by the company), it will provide benefits such as additional safe and secure storage for equipment and documents, as well as a larger space for testing console and AR/VR products (not to mention a nicer place for breaks when nature calls).
We definitely take over the world in 2023. 🙂
We have a lot of development work to do to release more of our own products, plenty of development to perform for our clients, loads of support projects to complete, and a few major business goals, so we are going to be very busy… a good thing.
There are other activities that I will, personally, be participating in less this year, including social media, television, and newsgroups. I will, however, continue (or even increase) those activities that bring me joy, including spending time with my grandchild and the rest of my family, finding solitude in nature, playing games, and exercising (as well as programming and writing).
It may look overwhelming, but the counterpoint is that this company turns 40 this month! We have been doing this for a very long time, and we are still here, so we have the experience and (global crisis or not) 2022 is going to be a breakout year for us.