Role Playing Games (RPG) are not only super fun but a software development space that Nick uses for practicing his coding and trying out both architecture and design patterns.
(You can check out the prior week of RPG development here) Well, so far not so great for getting weekly posts on RPG development! It's probably better for me to aim to do these periodically and summarize the last week or so of work. Fewer commitments that way and it's a bit more realistic for me to achieve. With that said, let's dive into it! Entity Filtering in an RPG Our RPG has had some notion of entity filtering for a long time, but to understand the current state of filtering, it's important to understand the two major sets of entities and components we have: Game Objects + Behaviors: Everything in our RPG game world is represented as a "game object" and the properties/capabilities are captured by components called "behaviors" Definitions + Generator Components: The content for our game is…
As I've been trying to get more YouTube content put together more steadily, one of the themes I'm interested in is doing some behind-the-scenes of the role playing game (RPG) I'm making with some friends in Unity3D. I've found that being able to work on an RPG outside of my regular day job is a really awesome way for me to keep up on my technical skills. I love coding, and the further along I move in my career as an engineering manager, the less time I actually spend writing code myself. I pride myself in being a technical engineering manager, so for me working on this RPG is a great outlet for creativity and practice. I mentioned this in my LinkedIn post here: Persisting Game Objects Across Maps In this video, I focus on one of the challenges the…
I asked on LinkedIn about whether or not people would be interested in a video stream that focused on programming, and I had some positive feedback. In order to test the waters, I decided I'd start with some system-design stuff given that I'm going through a bunch of practice with distributed systems. This is a bit of a change up from distributed systems in that this is interactions between co-located systems in a game framework I'm creating. Here's the video! https://www.youtube.com/watch?v=04rFmvFEeDw&ab_channel=DevLeader In the video stream, what I'm trying to accomplish is finding a way to share information from particular domains to be used in another domain. Domain in this sense is a functional area of the code base in question. I mean, that's the gist of it :) The complicated parts are: How do I keep domain information from leaking…
Progress Pulse - Entry 2 Things have been pretty busy in real life the past couple of weeks, so I haven't had too much time for working on this. However, for this entry in the progress pulse series I'll talk about some of the challenges I had while looking at making a generic data (de)serialization API + implementation, and why I chose to make some of the decisions I did! Which Tech To Pick? I've felt burned in the past by trying to do data serialization for my game framework because it's always created a barrier for refactoring once it's in place (i.e. i change some data i need and now i have to re-make or migrate allllll my SQL data). So I was thinking about how I plan to store game state, which I have written about, and then…
Progress Pulse - Entry 1 For the first entry in the progress pulse series I'll touch on some things from the past week or so. There's been a lot of smaller things being churned in the code base, some of them interesting, and others less interesting so I want to highlight a few. As a side note, it's really cool to see that the layout and architecture is allowing for features to be added pretty easily, so I'll dive a bit deeper on that. Overall, I'm pretty happy with how things are going. Unity3D - Don't Fight It! I heard from a colleague before that Unity3D does some things you might not like, but don't try to fight it, just go with it. To me, that's a challenge. If I'm going to be spending time coding in something I want…
Progress Pulse Series I figured this would be a fun thing to start to do just to get small updates out and talk about what I've been working on for ProjectXyz and my RPG I'm building in Unity3D. This will hopefully be some small updates on the order of semi to bi-weekly about what kinds of things are going on when I'm programming for these projects. This could include: How and why I decided to refactor something A new design practice I'm trying Reflecting on why a design decision has(n't) been working out A new feature that's interesting etc... Some of these will be technical and others much less. A bit of progress pulse allows me an outlet to talk about interesting things I'm doing and maybe sheds some light on some areas (game development or just general programming) that…
Who Needs A Team?! I've been building RPG backends for as long as I've been able to code. I think my first one that I made for my grade 11 class is the only RPG that I "finished"... It was text-based and all you could do was fight AI via clicking attack, buy better weapons, level up, and repeat. It was also 10000 lines of VB6 code and so brutal that I couldn't add anything to it without copying hundreds of lines of code. Since then, I've had the itch. I keep rewriting this thing. I keep taking "Text RPG" (super cool and catchy, I know) and rewriting it. I had my first visual representation of this game called Macerus (here's another rewrite for unity), which is actually how I landed my first co-op job. But every time I'd get…