As sappy as the title sounds, I am in love with Tailwind CSS. If you’re not familiar, it is a utility-first CSS framework designed to be as unopinionated as possible. This means you slap some utility classes onto your element and it is styled without writing a single line of CSS.
I was introduced to it through a friend whose agency, BeGreat, has started using Tailwind extensively in their builds. I’m a WordPress-focused developer and so are they and we’ve figured out a mostly painless way to work with Tailwind in developing fast WordPress themes fairly quickly.
The biggest issue with Tailwind, a blessing and a curse as it saves space, is that Tailwind is meant to be used with PurgeCSS, which scans your files and purges any unused classes. Obviously, with dynamic content in WordPress, there’s not really a way to know what kind of classes the end-user may need when writing.
I would imagine for more news or blog style projects, Tailwind may not be a perfect choice, but I recently finished a site for a beauty and skincare brand, Kuza Products, where, with the power of ACF, I was able to limit the client’s input to mostly pre-defined ACF fields, giving me in the PHP files control of what classes were assigned to various elements. With this approach, some careful planning, and ACF, you’re able to focus and limit the dynamic content to live purely within components you’ve defined in your PHP theme files.
There were some extra steps, I found a list of common WordPress classes and was able to whitelist them from being purged, but my main concern was the speed of development on this project. I had a very limited timeframe to craft this site, only two weeks, and so I had to come up with a fast solution.
I love browser-sync and with a little setup, was able to get it working with WordPress and rapidly create templates without having to tab between a stylesheet and the theme’s PHP files. This let me essentially have this process:
The result was a well built site for a national brand, high google page speed scores, and a happy client. My next projects will also almost certainly use tailwind and I’m excited to evolve my workflow with it. Recently Tailwind added a JIT compiler and I’m already looking forward to trying to use that in my next build.
As of now, if you’d like to try my setup, I have switched to using Laravel Mix to watch my files and build the tailwind script and I have a starter WordPress template on my GitHub which can be found here.
Thanks for bearing with my cheesy love-letter to Tailwind. I promise I have no affiliation with Tailwind, but I really do just love using it.
I’ve been a user of Unity since 2010 and made my first unity “game” by remixing the old island demo project into a crude fps with robots and a gun that shot red spheres. I thought I was pretty cool.
Since then I’ve made countless small demos and projects for my own enjoyment but have never released something playable to the public. Since then, despite my dream of making games someday for a living, my biggest failure and personal weakness has been my creative hesitancy. The fear of putting something out and having people not like it.
But something about the end of the year made me want to submit something for the first time. I’ve been closely following the game jam scene hosted on Itch.io and have patiently watched many great jams come and go telling myself I will join one of them someday. Two things about the the 2-Button jam made me intrigued enough to join finally. The premise of using only 2 buttons for gameplay, and embracing accessibility as a core feature of my games.
Use 2, and only 2 buttons, for everything about the game. That’s the challenge. From the menus to the actual gameplay. I love this restriction. I also wanted to challenge myself by creating a fiarly complex game and constantly asking myself, does this need it’s own feature? What decisions can I take away from the player that won’t affect their freedom of choice and keep things fun?
For me, this meant trying to make a game in a genre I absolutely love, top down space shooters, all while keeping true to the challenge of a two button game. Thus Rogue Void was born.
I decided to remove a big element of these games from the player control. The ability to control when the player fires their weapon.
For me, if there were enough enemies on screen, the player would never want to stop shooting. Bonus, if you make the shooting satisfying and fun, they would be looking to shoot more (cue hints from 2016 Doom). So I made the player constantly shoot while in the “Void” or my version of the kind of battlefield where the player would fight. In the hub world, there was no reason to shoot, so in the hub areas the player would simply fly around without firing a single shot.
My second reason for attempting a two button challenge is that I generally believe in attempting to improve accessibility in gaming. I know games are hard to make and they are hard to make well, but I also understand the frustration of not being able to play a game.
As a kid of seeing a game out that I didn’t have the money to buy was awful. That yearning to get my hands on the latest game was agonizing at times. I cannot imagine how terrible it must feel to have both the money and time to play a great game, but be denied due to accessibility issues.
I’m always excited to hear about games including more accessibility features. Unity makes it fairly easy to remap input. Using only 2 buttons makes this process even easier. especially for mobile. Left side and right side. That’s it.
Rogue Void is the first step, more like a proof of concept, for a larger game I hope to make in the future. I love the idea of procedural worlds and “runs” being fashioned for players to delve into. Combining the fun of a fast-paced bullet hell with rogue-like forays into new and hostile environments.
It was a blast to spend 4 days making the game. I put altogether probably 30+ hours into the project and am pleased with the result. Of course, there are many things I hope to include someday. But getting it out of the door was a major step both as a hopeful game developer and from an emotional standpoint.
I’ve been having a blast lately learning Rust, a really cool systems programming language that has the backing of Mozilla. Although I have some experience in C++ and C# due to game development in Unity and Unreal, I’ve never been super comfortable moving outside of that context to learn how to do low-level programming.
I focused on music and art in college and am a bit late to the game when it comes to programming, but I’ve found the rust book is an incredibly well-written and informative introduction.
I plan to continue to post updates as I progress, but for now, my goal is to work through this list of programming projects in rust to better understand basic programming tasks. I want to shore-up my foundation before I continue to dive into various applications like web and game programming.
Keep learning. 🙂