Multithreading. How delays with Into the Dungeons led me to make another game, and what's next!
From Wikipedia: In computer architecture, multithreading is the ability of a central processing unit (CPU) (or a single core in a multi-core processor) to provide multiple threads of execution concurrently, supported by the operating system. This approach differs from multiprocessing.
For my brain, multithreading works quite differently. There are lots of ideas I want to develop and execute, efficiently. Instead, it's mostly me trying to un-jumble the various threads in my head and pray that I make progress on even one of them!😂
My first game
In my last post, I recapped what was going on in my Into the Dungeons universe, where I currently have a board game (ITD: Machinata), comic mini-series/graphic novel (ITD: Origins), and a video game (ITD: Heroes & Rogues), all in development.
During the lockdown, I also had an idea for a two player word game. A couch co-op. Imagine Scrabble & Tetris but you're working together with the other player to make words!
This was also the time when work on Heroes & Rogues was progressing very slowly.
The original Skitrix for iOS
Back in '10 or '11, during a summer internship, I got the opportunity to make an iPhone application. I hadn't used Objective-C before and making a game for the iPhone seemed exciting! I started thinking of a few ideas, finally settling on a word game.
The game was called Skitrix. It was a single player game that took elements from Scrabble & Tetris. The player's goal was to make words with the falling letters. There were three special tiles that could be used to erase a row, a column, or both.
Skitrix: Two vs. the Words. The story so far!
I wanted the new version of Skitrix to have a local co-op element (maybe internet multiplayer later on). When I thought about having two players play together and collaborate instead of competing, a few game mechanics came to mind.
A day after I had the idea
There would be two characters, one placed on either side of the grid. Each player would control one of these characters. They would each have a special ability that would charge up as you made words. I ended up with a girl and a boy. The girl could use her time turner to slow down the rate at which tiles fall. The boy would use his wand and make a few rows of tiles disappear.
Each player would be limited to moving on their half of the screen, but they could make words across their movement boundary. The way for players to collaborate would be through their character abilities and a swap action, where either player could initiate a swap of their current tiles!
It has now been 4 months since I had the initial idea. I could have been done sooner, but here's where we blame the multithreading 🤷♂️.
It hasn't all been bad! That's part of the reason for this post. Covering everything that has been done, and making a list of what's left!
I can't draw to save my life, but anyway... MOAR specs!
I made the menu, got the art assets for the big book. Learnt how to use shader graphs in Unity and used a dissolve shader for words appearing/disappearing when a player makes selections on the menu.
The core game loop is done. Letters fall. Each player sees a preview of the next four letters. The swap control works. Valid words are being checked for in a dictionary. The valid words are removed and the rows/columns are adjusted appropriately.
I also added a one player mode!
The characters are in, their idle animations are all done.
Skitrix to-do list
Music and sound. I need to add the tracks and then hook them up with the menu so I can turn sound on/off.
I still haven't coded the special abilities. I need to store information about a "charge" bar. Once the charge bar for a player is at 100%, their special ability is unlocked. Once they use it, the bar goes to zero.
I'm increasing the score based on Scrabble scoring numbers. I want to add an animation that shows up when a word is made. Something like +7 appearing, moving up, and fading away.
Game over logic isn't fully implemented. Players can still press the instant drop button, so just a bit clean up work there.
The controls are currently keyboard only and locked. A, S, D, Left Ctrl, Left Shift (left, down, right, instant drop, swap) for one player and ◀, ▼, ▶, Right Ctrl, Right Shift (left, down, right, instant drop, swap). I'll need two more buttons for each player's special ability. I want to make the control scheme configurable and support console controllers too.
Clean up some bugs that show up while resizing the game window.
Increase the speed of tiles over time.
A tutorial?
Oh, and then there's the little thing of the ITD universe! I have to complete writing the story and defining the comic panes for the ITD: Origins comic. There's game design work to do on ITD: Heroes & Rogues which is moving forward at a faster pace now. Lastly ITD: Machinata needs a rule book, while the cards are being illustrated. Machinata is going to be ready for public play testing soon!
There's another project that I cannot wait to get started on. It's inspired by games like Human Resource Machine and while True: learn() that gamify coding concepts. I can't wait to share more on that!
Interrupt(). Skitrix: Two vs. the Words is close to getting done. I'm excited to wrap it up and continue creating!