RPG Development Progress Pulse – Entry 2

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…

0 Comments

RPG Development Progress Pulse – Entry 1

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…

0 Comments

RPG Development Progress Pulse

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…

0 Comments

ProjectXyz: Why I Started A Team For My Hobby Project

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…

0 Comments

Using Autofac With Unity3D

Why Consider Using Autofac With Unity3D? I think using a dependency injection framework is really valuable when you're building a complex application, and in my opinion, a game built in Unity is a great example of this. Using Autofac with Unity3D doesn't need to be a special case. I wrote a primer for using Autofac, and in it I discuss reasons why it's valuable and some of the reasons you'd consider switching to using a dependency container framework. Now it doesn't need to be Autofac, but I love the API and the usability, so that's my weapon of choice. Building a game can result in many complex systems working together. Not only that, if you intend to build many games it's a great opportunity to refactor code into different libraries for re-usability. If we're practicing writing good code using constructor…

2 Comments

Part 1 – Exploring Graphs and Trees

Graphs and Trees to Start I was chatting with my colleague about generating maps for a 2D role playing game the other day after getting super excited explaining picking ProjectXyz back up and looking into Unity3D more. He was expressing interest in algorithms for procedural generation and storing data in trees or graphs as an optimal data structure for the scenario we were going over. It stuck with me though. I've been putting a lot of thought into game state management and wanting to address it by using a generic layering/stacking approach. By that, I mean that I want to find a way to take base game state, allow mods or plugins to overlay their state, allow game patches to overlay their state, and then save game data to be overlaid on top of all of that. Conceptually, I believe…

0 Comments

Unity3D and .NET 4.x Framework

Unity3D Default .NET Framework I recently wrote that I wanted to start writing more Unity3D articles because I'm starting to pick up more Unity3D hobby work. It felt like a good opportunity to share some of my learnings so that anyone searching across the web might stumble upon this and get answers to the same problems I had. Unity3D as of 2018.1.1f1 (which is the version I'm currently using), still defaults to using .NET 3.5 as the framework version. Nothing wrong with that either. I'm sure there are reasons that they have for staying at that version, probably because of Mono and cross platform reasons if I were to guess, so I'm not complaining. For reference, this setting in Unity3D is referred to as "Scripting Runtime Version". So if you're googling more about this later, that's what Unity calls it.…

0 Comments

What Makes Good Code? – Patterns and Practices Series

What Makes Good Code? It's been a while since I've had a programming oriented post, and I figured this would be a great topic to write about. It's been a topic I've been thinking about more and more over the last year and I've been experimenting with certain patterns and practices to see if certain things actually make code "better". A lot of the information presented in this series will be completely based on my opinion, but I'll try to back up my opinion with as many concrete examples as I can. If you have a differing opinion, I'd love to hear it in the comments. I'd also like to call out that much of what I'll be discussing is in the context of object oriented programming. To be specific, there may be mostly C# examples used. If this isn't something…

1 Comment

Yeah, We’re an “Agile” Shop

Everybody Has Gone "Agile" If you're a software developer that's done interviews in the past few years, then you already know that every software development shop has gone agile. Gone are the days of waterfall software development! Developers have learned that waterfall software development is the root of all evil, and the only way to be successful is to be agile. You need to be able to adapt quickly and do standups. You need to put story point estimates on your user stories. You need retrospectives... And agility! And... more buzz words! Yes! Synergy! In the cloud! You need it! Okay, so why the sarcasm? Every single software development team is touting that they're following the principles of agile software development, but almost no team truly is. Is it a problem if they aren't actually following agile principles? Absolutely not,…

0 Comments

Should My Method Do This? Should My Class?

Whose Job Is It? I wanted to share my experience that I had working on a recent project. If you've been programming for a while, you've definitely heard of the single responsibility principle. If you're new to programming, maybe this is news. The principle states: That every class should have responsibility over a single part of the functionality provided by the software, and that responsibility should be entirely encapsulated by the class You could extend this concept to apply to not only classes, but methods as well. Should you have that one method that is entirely responsible for creating a database connection, connecting to a web service, downloading data, updating the database, uploading some data, and then doing some user interface rendering? What would you even call that?! The idea is really this: break down your code into separate pieces of functionality.…

0 Comments

End of content

No more pages to load