Below you will find pages that utilize the taxonomy term “C#”
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 Projects: March 2021
I started off the month thinking it was going to be Python heavy and ended up doing a lot more micro-controller programming. To be fair, I was mostly programming in CircuitPython, but it definitely came out of nowhere.
Python
Civilization VI Webhook in FastAPI
Last month I created a webhook program in Flask to generate notifications when it was someone’s turn in our multiplayer Civilization games. When I posted about it on reddit, someone suggested that I would be better off using FastAPI instead of Flask. I’d been hearing about FastAPI for months on Talk Python to Me and Python Bytes, but I always got the impression that it would only be useful if I was writing my website to be async.
Programming Jan/Feb 2021
I was pretty busy programming at the start of 2021 across a few different languages. Let’s jump right in!
C#
I’m nearing the end of the GameDev.tv online RTS course, and it’s been a lot of fun. Since last time we added player colors to the units, a minimap that can be used to move around the screen, new units, and a Lobby UI. I’m a few lessons away from being able to create binaries I can use to play online with others or via Steam.
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!
Programming Update
C#
Back when I was doing GameDev.Tv’s Unity 2D class, I really wanted to know how to do multiplayer games (I also wanted some better support on using Xbox/PS3 remotes in games). Well, this year they released their Multiplayer class. So, naturally, I bought it up. I started working on it, resulting in two Github Repos. In the first section we were learned the basics of the Mirror add-on. I’m currently working through the second section, where we will create a basic RTS. I haven’t reached a real differentiation point from the GameDev folks. That may come later after we get past the basics.
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.