Below you will find pages that utilize the taxonomy term “Unity”
Software I used for Programming in 2022
Python
This year I really worked a lot on Python web technologies so I came to appreciate all the work that the JetBrains team does to make all the little things (like running Django test server commands) incredibly easy. I essentially did all my Python development in Pycharm. I’ve had access to the paid JetBrains suite because of the work I’ve done for my open source project: Extra Life Donation Tracker. Since development has slowed a bit on there, I may not be able to renew the subscription. If that’s the case, there’s a big chance that I’ll start saving up some money for a Pycharm Professional license. The only real exception to using Pycharm for programming was when I was editing code on a server. There I would use vim or nvim (more on that later).
Programming in the first two weeks of 2021
It’s been a pretty busy 2 weeks. I’ve basically either been finishing up end of year blog posts or programming. Let’s jump in!
Extra Life Donation Tracker
I have the 5.3 release of my Extra Life Donation Tracker. I had a few minor refactoring goals for that release, but also a few user-facing enhancements. I added in the ability to grab the user’s avatar as well as their team’s avatar. They can now use that as an input in either XSplit or OBS. During these two weeks I also fixed a user-reported bug on crashes if a donor had emoji in their name. Oh emoji, you’re the bane of my programming existence!
My Programming Projects and Progress in 2020
Back in 2019, when I did my programming retrospective I made a few predictions. How did those go?
- Work on my Extra Life Donation Tracker? Yup! See below!
- Write more C++ thanks to Arduino? Not so much.
- C# thanks to Unity? Yes, but not in the way I thought. I only did minor work on my game, but I did start a new GameDev.tv class.
- Learning Ruby? Well, I wouldn’t necessarily say I learned Ruby. I did finish the book Ruby Wizardry and I took copious notes. But until I do some practice - maybe via some code katas, I don’t think I’ll have solidified it in my mind.
- 3D Game Dev? Nope, not really.
- Rust and Go? Not even close. Although I did make sure to get some books on the languages.
So, what happened? On the programming front, I wanted to continue my journey to truly master Python after having used it at a surface level for the past 15ish years. I dedicated myself to doing the Python Morsels challenges (more on that below) and working through various Python development exercises. Outside of programming, the time I had off from COVID was used to play with my kids and they wanted to play lots of video games. So we took advantage of having way more time than usual to do that. So a lot of my goals slipped. We’ll get to 2021 predictions at the end, so let’s take a look at 2020!
Followup On Unity and JetBrains Rider on Fedora
As you recall from the previous blog post, I’d installed Unity and JetBrains on my Fedora 32 computer via Flatpaks. I was going to use them for the Unity Multiplayer course I was taking on Udemy. Unfortunately it was an immediate fail and in lesson one after they have me install a new inputs library and restart Unity, it would always crash upon loading the file. I’m currently installing Unity 2020.1 on my Windows computer where I don’t expect to have that issue. Assuming I don’t, then it’s a big fat nope on using Unity on Fedora via Flatpak (at least for this class). Which, to be fair, is not on their supported OS list - which is only Ubuntu and CentOS 7. (And the latter for movie-making)
Unity and JetBrains Rider on Fedora via Flathub
As I mentioned last year in my 2019 in Programming post, I created a bunch of 2D games in Unity by following along with the Gamedev.tv classes. I would watch the videos on Linux and jump over to my Windows computer for the programming, learning how to use SourceTree and Microsoft Video Studio in the process. But for some reason, going back and forth with the KVM when running Unity would sometimes freeze up the Windows computer. So when I saw someone on Fedora Planet running Unity Hub, I thought I’d see if there was a Flatpak - and there IS! Also, I’ve fallen in love with JetBrain’s Pycharm, so I thought I’d go ahead and use their game dev IDE, Rider. ( There’s a Flatpak for that, too!) So, let’s see how well this works!
2019 In Programming
This was a VERY busy year for my coding. This year I had over 769 commits to GitHub; my previous best was 58 in 2014. The commits were very unevenly distributed. If you look at the graph of my commits, outside of a busy week in January and another in May, I didn’t really start coding until August.
GitHub activity graph
But perhaps commits to GithHub isn’t the best metric. If you look at what I accomplished in the second half of 2019, I worked on an incredible number of projects.
Unity 2D Game 6: Tilevania
The sixth, and final, game of the Udemy class on Unity 2D was a tileset Metroid-Vania game which the instructors named Tilevania. I never played Metroid and maybe only played Castlevania once, but its legacy does persist in some newer games like Spelunky.
Tilevania in the Unity UI
This was the closest I’ve come to making a Mario clone. My favorite part of the development process was creating the tile editor rules that allows me to drag around the tiles for the foreground and have it automatically determine if it should be a grass piece, dark, or full of rocks. As usual with the games we used to learn concepts for the course, there is a lot left to do to make a fully-fledged game. I made note of a few items in the tickets on the Github page.
Unity 2D Game 5: Glitch Garden
The fifth video game I made in Unity was another clone of a game I spent a lot of time playing, this time as an adult - Plants vs Zombies.
Glitch Garden during development
For comparison, here’s Plants vs Zombies:
Plants vs Zombies
and here’s my finished Glitch Garden:
Glitch Garden
We learned a lot of techniques and reinforced even more, but the biggest thing I learned was how to do Sprite Sheet animation. Having done bone-based animation in Blender years ago, I have to say that in comparison, sprite sheet animation is easy-peasy. The tradeoff is less flexibility - you only have what your artist drew (or you bought or got for free online), but it essentially automates everything about animation.
Unity 2D Game 4: Laser Defender
The fourth game we worked on was another game that I spent a lot of my childhood playing. We made a Galaxian/Galaga clone:
Laser Defender - a Galaga Galaxian clone
My mom’s youngest brother had a Nintendo and lots of arcade ports. When I was young he lived in the condo above my grandmother’s condo and whenever we’d go visit her, I’d ask if I could visit him so we could play games. The game I loved playing the most there was Galaga because of the frantic pace.
Unity 2D Game 3: Block Destroyer
My journey through 2D game development using the Unity engine continued with our third project: a clone of Brick Breaker or Arkanoid. In case you’ve never seen it before, this is Arkanoid:
Arkanoid
It’s got a pretty important legacy, Breakout, the version that Atari created, was an important stepping stone for the two Steves of Apple (Steve Jobs and Steve Wozniak).
So it makes sense that this would be one of the games we would use on our learning journey. This is what my first level looks like:
Learning how to make 2D Games in Unity
I’ve been playing video games since I was somewhere around 5 or 6 years old and got a Nintendo Entertainment System for my birthday from one of my aunts. I also inherited a Tandy computer from my dad when I was younger. We had a bunch of edutainment games - like this Sesame Street game (that unfortunately a quick search on Google Images does not turn up) where you had to suck the Tweedles (bugs from Ernie’s flower box) to solve math problems. I also, and I’ve mentioned this before in several places on the net, learned to program from a book on BASIC and made myself a bunch of simple games, including Madlibs clones.
Ubuntu to the Rescue: A Tale of Broadcom Wifi Drivers, Prerelease Software, and a new Acer Aspire One Netbook
note: I wrote this on 17 April, a full week before it is published on the blog
[caption id=“attachment_4398” align=“aligncenter” width=“450” caption=“Acer Aspire One - out of the box”] [/caption]
Nearly six years ago I bought my first laptop. I’d never seen the point of laptops over desktops - the value per dollar just isn’t there. But I was going to be traveling for work now and again and needed to be able to get in contact with the family while away. I got an old Acer that was on sale at best buy because it was the last one left. A year after buying that laptop, netbooks came out. I got my wife one of the first Asus EEE PCs because she was going on a work trip didn’t want to haul my heavy laptop around. So for the past few years we’ve traveled with both of those so I can use my laptop to watch my movies and she can use her netbook to watch hers. But I’m getting tired of that heavy laptop and now netbooks aren’t saddled with crippled versions of Linux and inferior hardware. So I got myself a new Acer Aspire One from Amazon. I’d seen the same one at Costco for $50 more (because it has double the battery life) and I’d wanted to get it for a while now. I’m going to be traveling to Chicago for a trip soon, and since my back has been giving me issues, I figured it was the time to go to a lighter laptop.
KDE: Strength in Abstraction
I have not yet tried out Gnome Shell or Ubuntu Unity, but the biggest complaint most people level against them is that our desktops are being tablet-ified. Sure, there need to be new, innovative interfaces for tablets and phones, but that’s no reason to abandon the desktop. Sure, perhaps the average Joe (or Jane) will be using tablets more and more, but some of us have real work to get done. We need to do photo editing, programming, video editing, 3D modeling, and other tasks that require something more than a glorified smart phone. This is where KDE excels.