Experimental game Wordish launches after 21 days of development
From concept to launch in (nearly) 21 days
Every year, I try to work on a game jam scale project as a means to experiment with different ideas, learn something new and give myself a break from an ongoing production. Over the holidays, I decided to start development on a game at a breakneck speed for a swift Steam launch, but while trying to avoid the pitfalls of quick turn arounds.
The game was simple, a word game with the online multiplayer being the central pillar of the design. A solid understanding of scope is pivotal to bring a project like this to fruition. This meant that to fit within my tight schedule, elements unrelated to the proper functioning of the online component were more likely to be discarded. I also made sure to build the game in a way to easily cut features if I recognized later in development that they would take too much time to implement. With so little time, every work hour matters and a feature even only taking a few hours may end up disrupting the entire process.
The result, Wordish, is available now and I want to break down some of the choices I made and the lessons I learned over the 21 day development schedule.
A warm atmosphere, perfect for some word puzzles
Where credit is due
Many will note that Wordish is heavily inspired by Wordle, the currently trending web game by Josh Wardle and it's true that after playing the clever mastermind meets word game, I was pushed to work on my own version. I didn't want to be yet another clone however and immediately had a few ideas on how I could iterate on what had been presented.
Knowing how important visuals are to a game, the first step I took was to create a distinct 3d presentation using assets I had purchased for my other project Aethernaut. I introduced camera movement around a warm study environment to make it look a more dynamic, along with some nice looking wooden blocks and glowing 3d letters. I was partially inspired by Clubhouse 51 for this presentation, although leaned a lot more into a darker atmosphere.
Sharing was a big part of the success of Wordle and I knew my game also needed to provide that option to players. The system simply displays a standard message with the player's results, which they can copy and paste into social media directly. For solo games, it even includes a share code which can be used to encourage different challenges with other players.
To display results, I looked at the Unicode optionsand decided to replace the squares Wordle uses with circles of colors. While this is only a minor difference, it at least prevents people from confusing the two at a glance. I also hashtagged Wordish by default to make sharing easier. I'll likely aim to use these methods across future games as well, to help increase shareability.
Tries: Failed / 6
Solo Code: DPAGRXRCI
Can you best me at my own game?
I also did some research on color blindness and decided to adapt the result colors to ensure they would be readable across all spectrums. This is how I landed on this specific shade of green, which might look slightly off at first but a more pure shade completely blended in with the yellow. Alternatively having different shapes for the blocks would have been preferable, but due to the schedule I had and the assets on hand, this is the solution I chose.
Let's join hands... digitally
The keystone for the entire project was always going to be the online multiplayer aspect, which was designed as a race between players to find the word first. Players make their guesses at the same time, with a time limit, and once everyone has submitted a guess, they can see the results of other players but not the actual words they tested. This simple design was a perfect opportunity to learn Mirror, an open source networking tool for Unity.
Because this article isn't intended as an in-depth look into programming, I'll be bypassing most of the specific implementations of the game, however I do want to touch upon the solutions to some of the bigger problems I would expect beginners would encounter.
To start, Mirror is set up as a serverless host/client platform, meaning the game will shut down if the host leaves. Additionally, the host is the only one who can update clients, so if a client needs to push an update, for instance send a text message, update a player character and so on, it needs to go through the host rather than immediately dispatching to all the players directly. On Wordish, the words players try are sent to the host, who validates and sends the results to each client for display.
By default, Mirror connections are done through an IP address and port number, however most modern routers will block this connection by design. While it's possible to configure the router, it's no longer realistic to expect that level of tinkering from players, which is where FizzySteamworks comes into play.FizzySteamworks establishes a host/client connection through Steam rather than the regular IP address. That connection can be determined directly to a player using a unique CSteamID (provided through the Steam API), or you can further customize your system to incorporate Steam Lobbies, which is included in the Steamworks wrapper I use. Wordish uses both systems, which allows me to invite players through an in-game code, to use Steam's friend invite system, or allows for a quick game with a stranger through the lobby system.
The end result is a game which allows for 2 to 8 players and runs fairly smoothly. This was my first implementation of the system and I likely would approach it very differently next time, however I was surprised at how straight forward everything was for such a project. The most challenging aspects were the lobbies themselves since it added a layer of approval and were not considered from the get go.
Finally, every state of disconnection had to be considered, including when during the game clients and hosts leave and ensuring that the multiplayer connection was appropriately broken at that time. To simplify the connection process, players were only accepted during the initial setup, rather than allowing a player to join when a game is already live.
Perfect for those cold nights
With such a short development schedule, marketing assets needed to be considered and created rapidly as well, including the name of the which game went through several iterations. Every play on the word “Word” was considered, including Word Empire, Wordsmith, Wordmate, Wordgasm. A friend suggested Writer Blocks which I absolutely loved and unfortunately someone registered a game with that name on Steam just a few months prior.
And then on the morning I needed to set up the game on Steam, “Wordish” came to mind, the perfect short, hashtagable name. With that out of the way, I set out to work on the various assets require by the store, including a trailer for Wordish.
I wouldn't say this is the best trailer I've produced, again due to limited time and a game that's very static in nature. One aspect that came out of it was the “fireplace mode”, which just gives you a view of the fireplace to look at and relax. It's the shot I used for the logo reveal in the trailer. Doesn't serve much of a purpose but it's free so why not include it in the final product.
Realities of scoping
Wordish was always intended to be a very short project with the goal to add value to an already awesome game. Due to this short cycle a lot of ideas were ultimately left on the cutting room floor which I'd like to touch upon.
As is evidenced by the screenshots, there is only a single environment in the game, which I think is very unfortunate. Likewise for the style of the letter tiles the player interacts with. I would have loved to add more visual variety which could have been done through some other assets I already own, however it would also require repositioning cameras, managing the changing of visuals through the code and other added work which I felt were out of scope.
Same with additional modes, I think a more varied array of play modes would have been nice, like players trying to solve as many words with a limited number of lives or a more involved progression system. Multiplayer could have also benefited of additional modes, I wanted to have some sort of battle royale gameplay for bigger crowds or maybe a battleship style mode where players have a few words and you eliminate them one by one.
Because I'm French Canadian, I always want to include the french language in my games, however it became challenging for Wordish since the gameplay is directly connected to the word list used. The possibility of multiple languages was cut to avoid switching word banks and adding more overhead, not to mention further dividing online audiences.
What is this all for
Commercially, I don't expect Wordish to become much of a success. I think it has the potential to rise interest, but since it's such a simplistic game, it'll be tough to properly market and gain interest in the added features like a multiplayer.
As evidenced by the more popular Wordle clones out there, the value of it wasn't just in its concept, it's the name itself. Clones using the same name just rose faster, whereas even some of the precursors of the concept like Lingo have stagnated. Of course Wordle had another advantage with its sharing feature, but now that it's established as the defacto name, I think clones without the name can't expect much.
But even without the commercial value, Wordish provided me with an excellent opportunity to learn the multiplayer system, and it also helped me relax after a stressful 2021 through a fresh new project. I encourage everyone to go see it as well as the inspiration.
And with that said, it's time for me to get back to Aethernaut and get it ready for its own imminent release in a few months.