Social Justice Warriors in A Good Bundle

This week, Social Justice Warriors is in A Good Bundle on itch.io to support the ACLU and Planned Parenthood. You can get up to 151 indie games for just $20 and 100% of the proceeds will be split evenly between the American Civil Liberties Union and Planned Parenthood.

If you buy the $20 tier you get 173 DRM-free indie games worth $519, making this a ridiculously good value. You get popular titles such as:

And of course Nonadecimal’s own Social Justice Warriors. You have until November 29th to grab this deal, so check out the bundle page on itch! With everyone’s support, we’ve already raised almost $100,000!!

 

Update: Thanks everybody! We raised $161,000 with this bundle!

Automata Update #4: Multiplayer, Stats, Leaderboards

Automata Empire’s online multiplayer is here!

You can now play 2-4 player matches against your friends around the world, proving yourself a master strategist. Or form an alliance to drive back the undead hordes on Migration and unlock a rare cooperative achievement. Show off your skills on Steam’s global leaderboards. Plus the newly added stats page tracks your progress and reveals the state of the ongoing rivalry between the Red and Purple factions (sorry Orange).

It took a little longer than originally planned but multiplayer wouldn’t have been possible without all the extra features, performance improvements, and bug fixes released in updates 1-3 over the last few months. I challenged myself to achieve a lot of new things with this game: gamified cellular automata, AI that can play an RTS competitively, online multiplayer and leaderboards. I’m proud of what we’ve been able to accomplish with Automata Empire. If you agree, please leave us a positive Steam review. Thank you!

And I hope that 3 of you will help me defeat all the undead so I can unlock that brand new achievement. As an added incentive, the game is going to be 25% off all week to celebrate the multiplayer launch. Tell your friends!

Here’s the full patch notes for this update:
  • added online multiplayer with multiple region servers
  • added Stats page to display past gameplay performance
  • added online leaderboards for multiplayer high scores
  • added 2 new Steam achievements for cooperatively eliminating the undead on Migration and for beating the game’s developer in multiplayer
  • more performance improvements
  • monsters now wear monocles properly in the postgame awards
  • fixed construction timer bugs
  • normalized the length of turns in singleplayer and multiplayer
  • fixed bug that caused undead to arm themselves faster than they should
  • fixed issues with long names in postgame awards
  • fixed bug that caused buildings to destroy when picking up a flag in CTF
  • fixed several bugs that caused game to freeze in CTF

Automata Empire Multiplayer Beta

The multiplayer beta is here! Now you can play 2-4 player games against your Steam friends around the world with online multiplayer.

Since this was my first time adding multiplayer to a game, it’s taken some time to thoroughly test everything and fix all the bugs. For that reason, I’m doing a brief beta period to stress test the system and make sure nobody encounters any bugs or connection problems that I didn’t encounter in my own testing.

To opt in to the beta, follow these steps:
  1. To participate, right-click on Automata Empire in your steam library.
  2. Go to Properties.
  3. In Properties, click the Betas tab.
  4. From the dropdown menu, select “multiplayer – multiplayer beta”. No code is required.
  5. In your Steam library, the game’s name should now display as “Automata Empire [multiplayer]”.
  6. After the game updates on Steam, you will now be able to enter the multiplayer lobby on the main menu.

The online multiplayer lobbies are divided into global regions. If there aren’t any players connected to the same region as you, you can try selecting other regions from the dropdown menu. You can also use the Multiplayer subforum here on Steam to schedule matches with other players. You also have the option to create private matches that only your Steam friends can join.

If nobody reports any issues with multiplayer during this weekend beta, then there should be another announcement coming next week about the full multiplayer release (and a 25% off sale!)

Thank you all for your patience!

Automata Update #3: Patches and Performance

In the past few weeks, I quietly patched Automata Empire several times so that everyone could benefit from things I’ve fixed while working on multiplayer. Many of these changes make multiplayer more fair by eliminating slowdowns and timing issues for people with slower computers, but it also reduces lag in singleplayer. I still have to tackle the Steam friends matchmaking functionality, but multiplayer should be live in Update #4 this month.

Here’s what’s changed:
  • fixed several bugs that caused game to freeze
  • fixed building construction/destruction timer bugs
  • clicking a sidebar button no longer constructs a building underneath when your monsters are present
  • remade Game Over menus to prevent bugs when spectating after a multiplayer loss
  • fixed bug that occasionally prevented player from building on valid locations
  • significant improvements to FPS again! (~60FPS)
  • adjusted overpopulation thresholds
  • fixed another bug that allowed players to destroy their own flag capture zone in CTF
  • improved AI’s responsiveness to human threats
  • fixed bug preventing AI from building walls on the NE corner of their bases
  • AI generally builds more walls now
  • improved AI’s flag return capabilities in CTF
  • fixed bug that caused lower post-game achievement scores
  • fixed bug when pressing ESC in Game Over menus
  • monsters no longer talk when Purple is selected in Autoplay
  • fixed a memory leak

edit: On August 5th, I also patched one more time to fix a brand new bug that sometimes caused construction to stall on certain buildings.

edit: On August 11th, patched again to fix a rare bug where buildings started teleporting around the map. Also fixed some missing images in the How To Play guides.

Automata Update #2: AI and Speed Boosts

I’m happy to finally announce that the second major update to Automata Empire is live!

While I originally intended to complete this update within a few weeks, it took 2 months. The update ended up being particularly large because of the scope of the changes I made to the enemy’s AI, making it much more strategic while also making Hard difficulty harder and Easy difficulty easier. It took 2 complete rewrites of the AI code to get it right. I’ll explain in more detail at the bottom of this post. I also spent the last several weeks doing major performance overhauls to eliminate lag when there are thousands of monsters moving around the screen, which will be especially important for multiplayer.

Here’s what’s new in this update:

  • added a fourth “Challenging” difficulty option
  • improved difficulty scaling so Easy is easier and Hard is harder
  • AI is more strategic about achieving primary objectives in each game type
  • AI uses A* path planning to build more intelligent road routes
  • AI is capable of rebuilding missing or destroyed roads
  • AI builds defensive walls around its taverns, castles, and flags
  • AI counterattacks nearby threats to its bases
  • AI stops moving units out of a tavern if its population gets too low
  • AI can reinforce underpopulated taverns
  • AI chooses better locations for taverns, catapults, armorers, and arsenals
  • undead spawn rate increases with game difficulty
  • adjusted rules for monsters’ death by overpopulation so it happens less frequently
  • made camera scrolling smoother
  • added 50 new monster voice clips
  • added sound effects for mouse clicks and building placement/construction
  • achievement for exclusively controlling all 3 zones in King of the Plateau now awarded correctly
  • fixed bug where monsters announced when enemy castles were under attack too
  • players can no longer destroy their own flag capture zones in Capture the Flag
  • catapulting monsters into an enemy catapult now deals it double damage too
  • improved level load times
  • improved the precision of each turn’s duration
  • many, many framerate and memory optimizations to reduce lag
  • game no longer uses gigabytes of memory if left running for hours
  • fixed several rare bugs that caused game to freeze or crash

Multiplayer

Now that the singleplayer AI is much smarter, the game runs much smoother, and my replacement computer is built, I’m finally free to finish multiplayer. Based on the feedback I was getting from players, these issues seemed more important to fix before releasing multiplayer, especially streamlining the game’s performance. I’ll need a few days to catch up with personal responsibilities that I’ve been ignoring since the game launched, but then I’ll be fully committed to completing multiplayer and further performance improvements. A lot of the remaining work is in the user interface: letting people play with their Steam friends, giving people control over who can join the match, adding error messages for every conceivable connection problem, handling when players leave matches or get disconnected from the game, and making sure the server list scrolls and updates properly when there are lots of open games. I don’t know how long this will take so I can’t promise a specific completion date yet. Plus, after my computer fire before launch and a 7000 acre wildfire came within a few miles of my apartment this month, I’m wary of more unscheduled misfortunes in the future.

AI: Behind the Scenes

For those who are interested in a behind the scenes look at the game development process, I wanted to go into further detail on the story of the game’s AI. While I was working on multiplayer a week before the game launched, I realized I needed to add construction timers for the buildings to compensate for the amount of time it takes to send that info to another player’s computer. Previously, you’d click on the screen to build a tavern and it would instantly appear fully built, immediately killing 6 monsters for its cost. But in multiplayer, it might build on Day 35 on your computer and Day 36 on the other player’s computer. In a normal RTS, this isn’t a huge problem. But in a deterministic cellular automata simulation, if even one monster turns left instead of right it creates a massive butterfly effect of changes between the two players’ games over time. We realized this during testing when we both started gloating about our victory in a 1v1 multiplayer match. Our game worlds had diverged in a way that allowed us both to win on our own computers.

The solution was to add a construction timer to delay when a building was placed on the grid, allowing time to synchronize it on each computer. Unfortunately, I wasn’t able to implement the construction timer until 2 days before the game’s scheduled launch date. While I got it working in time, the AI was designed with the expectation that every building it placed would build immediately. With the delay of the construction timer, now units might move out of range before the timer ended, causing the building to despawn. This was especially a problem with the AI’s roads. A few roads in the chain might not complete and the AI had no way of knowing to rebuild them. Delaying the launch date wasn’t an option so unfortunately the game launched with these AI issues making it much less competent than it had been just a few days earlier.

Rather than apply some quick fixes, I wanted to replace the entirety of the AI’s logic and rebuild something more versatile that was capable of macro strategy. That took several complete rewrites of the AI code before everything finally came together, but I’m very pleased with the results. I think it’s going to be a lot better at putting up a fight against skilled players and I definitely enjoy watching the AI battle itself in Autoplay mode a lot more. I’d like to continue improving the AI by giving it more capacity for strategic foresight and cooperation with other losing players to block the leading player’s victory, but those further improvements will have to wait until after multiplayer is live.

I hope you enjoy playing against the new AI and feel free to let me know what you think of it on the Steam forum. If you’re interested in getting more frequent progress updates on the game’s development, along with screenshots of funny bugs, follow @Nonadecimal on twitter too.

Automata Update #1: Welcome to Automata Empire

First of all, I want to thank everybody for playing Automata Empire. While I was certain there would be a community for an objective-based cellular automata game, I didn’t anticipate how many people would be so excited by the idea. It was especially uplifting seeing Automata Empire just below Dark Souls III on the Popular New Releases list.

Because there are so many people playing the game right now, I spent an extra couple days testing the new update. I don’t want to break the game for anybody! Since a few people seem to be having trouble finding the tutorial, I’ve added a one-time welcome screen with some background info about cellular automata and a link to the How To Play section.

Also in this update:

  • the post-game awards now permanently unlock more names for your rulers
  • fixed your ability to pave over enemy roads
  • fixed the 1-7 building hotkeys so they’ll properly toggle the sidebar buttons
  • added a floaty camera to Autoplay mode to make it even more like a screensaver (you can toggle this with the O key)
  • improved the AI’s road-building
  • included 64-bit builds
  • fixed a crash issue

If you encounter any technical issues with the update or the 64-bit builds, please make a thread in the Technical Support forum and I will try to fix things as soon as I am able.

Looking Forward:

Multiplayer is of course the most anticipated feature. Now that release crunch has subsided, I will be able to order new components to replace my charred case and motherboard and see if I can coax some life out of my primary dev computer. I can’t wait to be challenged by everyone in the community in online matchmaking. (there’s a rare achievement for beating me at my own game)

Due to my past work in swarm robotics, I am very excited to continue improving the game’s AI, especially by teaching it to use some of the strategies I’ve observed in other players. While I think the Easy difficulty is well-balanced, I’d like to make Hard harder, maybe even by adding a 4th even harder difficulty.

I will also be implementing more sound effects and adding a post-game stats graph in the future. Just as soon as I finally get my first night of sleep in a week.

Launch Day Tomorrow! Multiplayer Delayed Due To Fire

I’m glad everyone’s so excited about Automata Empire. I’m excited too! Making this game has been a fun challenge and I can’t wait to see what strange systems people engineer within the cellular automata mechanics.

Unfortunately, there was a bizarre accident a few weeks ago in which my dev computer’s USB port and motherboard were briefly ON FIRE. I guess I should have known better than to listen to Dethklok while coding the game.

Luckily, the game’s code backed up before it went up in flames and Automata Empire was saved! But sadly, this means the game will not have online multiplayer available at launch.

I will order new desktop components and arrange a solution to finish testing multiplayer so I can make that feature available as soon as possible. I’ll make an announcement when multiplayer is back online. Since it’s unusual that an indie cellular automata RTS has multiplayer at all, I hope nobody will be upset by this delay.

Meanwhile, I’m looking forward to seeing screenshots of your mighty empires on the community page this weekend! Thank you all.

Nonadecimal Back at PAX South 2016

After the fantastic showing at PAX South last year, Nonadecimal’s going back to San Antonio for Round 2!

This year I’ll be back at the Black Ice booth 14063, helping out with the cyberpunk FPS for which I’ve been writing and attempting to generate engaging story quests. Black Ice really transformed over the past year and I look forward to being part of its developing story.

PAX will also be the public debut of Nonadecimal’s new game, Automata Empire, a RTS inspired by cellular automata and Conway’s Game of Life. You can watch me playing the game live on XSplit’s twitch channel Saturday the 30th at 3:45 PM Central (1:45 Pacific). I fully expect to get destroyed by the new AI I’m writing tonight.

You can be the first to play Automata Empire Saturday night at the Indies Need Booze PAX after-party. Everyone at the party will get a free Social Justice Warriors key on Steam, as well as a handful of other party favors. You can pick up tickets for the party on Eventbrite. 10% of ticket sales will go to the AbleGamers charity, which supports accessibility for people with disabilities.

Now, if you’ll excuse me, I have hundreds of lines of Automata code to write before my 3am flight to Texas.

Nonadecimal in 2015

Now that I think about it, 2015 was an amazing year for Nonadecimal Creative.

  • In January, I shared a booth with 3 awesome indie devs while showcasing Social Justice Warriors at PAX South. This was my first time attending a convention and also my first time running a booth. I did a video interview with IGN (another first for me) and the game was greenlit for Steam.
  • In February, I released Social Justice Warriors on Steam after an intense month of no sleep and constant work to add achievements, trading cards, and all the other necessary Steam elements.
  • In March, I flew to San Francisco for a single day at GDC followed by a midnight flight to Boston for PAX East where I was very grateful to have been sponsored booth space by Cooler Master. I met so many great people that week.
  • In May, I released the final update for Social Justice Warriors a year after it was first released on itch.io.
  • In June, I started working on a cyberpunk plot generator for Black Ice that would create branching stories involving randomly generated characters.
  • In July, I left my day job and created a new game, Automata Empire, during 2 weeks of a game jam.
  • In November, I finally participated in PROCJAM and made a demon generator that I’ll expand into a full game, Souls & Accounting, in 2016. Meanwhile, Automata Empire was greenlit for Steam, clearing the way for its release in early 2016.

So much happened in 2015 that I hadn’t even realized it was still the same calendar year!

What did I learn?

Looking back on it, the year was marked by a continuing trend toward smaller projects with tighter constraints that began in 2014. At the start of 2014, I was 2 years into development of Afterdeath, a platformer where you controlled the angle of the characters’ jumps (and for some characters, bounces). Fed up with an endless project where I felt like I had already learned all that I could, I took 4 weeks off to make and release Social Justice Warriors as a project to learn Unity and the basics of releasing a game. While I ended up updating SJW for a full year in an attempt to refine its message in the face of an ever-changing internet war, it left me feeling smaller games that offer focused lessons for me as a developer was the right idea.

This challenged me to create the Automata Empire prototype in just two weeks and the demon generator in less than a week. While Automata still has some work remaining to finish the multiplayer gameplay and some menus, I feel confident it will be finished within 7 months of the initial game jam. Likewise, I think I can finish Souls & Accounting within another 7 month dev cycle. If I can hold myself to those targets, that means I’ll be able to release 2 games in 2016. Hopefully as I continue to gain experience as a game developer, I can keep shrinking that development cycle in successive years. Now that I’m self-employed, I may need those rapid releases to stay afloat too.

This year has also made me realize the importance of structuring each game as a learning opportunity. Just as I used SJW to learn Unity and BIKE GAME to learn Unity’s 2D physics in 2014, I used Automata Empire to learn about managing large amounts of data (thousands of monsters traversing tens of thousands of grid cells) and tackle multiplayer synchronization for the first time. I used Black Ice and Souls & Accounting to test procedural generation theories and further my long-term goals for generating quirky, yet believable characters. And even more important are the game ideas and prototypes I’ve abandoned during the year simply because I didn’t feel I’d learn the right things from them relative to how much work they’d require to finish.

I think that’s a useful lesson for all developers. Keep asking yourself what you learned and what you will learn going forward.

What’s Next?

After a brief break from dev to get married (!), I’ll be going back to PAX South in January. I’ll be helping out at the Black Ice booth so feel free to stop by and talk to me about the plot generator and my long-term ideas for procedural narrative. I’ll also be debuting Automata Empire at the Indies Need Booze party, if you’d like to play my new game before everyone else. With both Automata Empire and Souls & Accounting gearing up to release in 2016, I’m already looking ahead to my next game that I’ll inevitably start prototyping in 2016. After asking myself what I need to learn, the obvious answer is the grammar and methodology for using semantic networks, which I will need to make more complex generative simulations, as well as the basics of long-term planning agents. With such complex subject material, you can bet that whatever kind of game it is, it’s going to be scoped small!

I’m really excited for 2016 and with so many opportunities ahead, I think it will easily be an even more eventful year than 2015. Happy new year everybody!

Procedural November 2015: Part 1, #procjam

I often mention that my primary interest is procedural generation, particularly generating stories. While most of my time lately is spent trying to make small, reasonably scoped games, I really want to dive into ambitious procgen projects. So when this year’s November procedural generation jams rolled around, I decided to take the month off from finishing Automata Empire and generate stuff!

First off was PROCJAM, a week-long challenge to generate something — anything — whether it’s a game or art or music or just random noise. There aren’t really any formal rules so it’s extremely accessible. Recently I’d been thinking about an old game idea from 2012 for a corporate management sim, except the employees you manage are demons selling humans consumer goods in exchange for souls. Originally I’d shelved the idea since animating an isometric office of monsters was too much work but then I reimagined it through the lens of a collectible card game with your workers represented as employee files with randomly generated polaroid photos stapled to them.  That seemed like something I could complete in just a few days (since I had to travel for the last half of the week of procjam).

The first step was establishing the head shapes. I decided I could add variety by layering two different head shapes to create the overall silhouette and drew eleven of them. I was pleased to discover that flipping the heads I’d drawn vertically added even more variation.

Collaborating with my fiancee to draw dozens of eyes, mouths, and horns was the fun part.

I found the method to derive commonly used RGB color from HSB color values, which enabled me to select random hues for the monster’s skin, suit, and features with specific saturation levels and vary the brightness so that the face layers and neck were slightly different skin tones.

With all the components drawn and ready to color, the last step was placing them all intelligently. This was a step-by-step process. Suit shoulders of a random width and height are positioned at the bottom of the frame. The neck of course must be as wide as the collar of the suit, but with its own random height. And so on with the background and foreground heads. The last challenge is knowing where to place the facial features relative to the center of the head. Since I had made some of the heads radically different shapes, there needed to be a safe zone specified for each head type so that eyes weren’t floating outside faces. For lack of an easy way to derive this due to the vertical asymmetry of the heads, I decided to just define a rectangular region for each head that defined the limits for placing features. The mouths and eyes could be scaled down in size so that they’d fit the dimensions of that rectangle multiplied by the head’s scaling factor. A little vector math got the demon generator pumping out polaroids.

The fun part after all that work was populating arrays of silly text to fill out the employee files. Degrees in Creative Accounting and Middle Management from Poison Ivy League schools such as Hellmouth and Harmward and Yael. Appropriately demonic skills such as Faustian Bargains and Extremely Graphic Design. With the simple generator finished, I achieved my goal and submitted to itch.io just in time to catch my flight.

I’d like to pick this concept back up after Automata Empire is released in 2016 and add the corporate management logic and UI over the existing employee generator. I’d also like to improve the color generation to give some of the monsters slightly better fashion sense. Hopefully I can finish the full Souls & Accounting game by October in time for Halloween and the US presidential election.

For now, you can download the simple employee generator on itch.io. I recommend checking out all 100 procjam submissions too!