Hello World
Hello people from the future! 

I decided to migrate my project announcements from itch.io to Patreon today after I did a bit more reading on itch.io and discovered that launching a project as a proof of concept under active development and having it be published was actually a pretty horrible way to eventually get people to play my finished product (for any price!)

As a result, my existing itch.io game is now tagged as a Development Prototype and I will eventually add a new itch.io project to represent the game's initial public release. Prior to release I'll allow alpha and beta testing, so it's not as if I'm detaching it from the world, but I will unfortunately need to restrict access to that during development and issue keys.

It turns out that Patreon is actually a pretty good way to issue itch.io keys to products and it's also a good way to broadcast project updates, so voila - here we are at a brand new Patreon page for my work on this and future products.

First of all, let's get something straight: I am not a professional game developer. I am a professional software developer who happens to spend 3 or 4 hours a day doing game development in the evenings, but nobody pays me to do that (unless you do, of course - your $1 contribution would officially make me a paid game developer, which is fairly interesting to think about).

I also happen to be a particularly good software developer who gets paid decent chunks of money to write complicated applications that accomplish a lot of interesting and complicated tasks. A lot of these are either Windows applications or Single Page Applications. Both of these types of projects have a lot of complexity involved in them that translates well to game development projects.

Additionally, I am pretty good at managing a project. I actually get paid to write project management software (among other areas) and I run projects on various features and products that I (and others) develop. This makes me pretty good at taking a complex project and breaking it down into simpler bits and chaining those together until I've built something big.

However, I'm also not great in other areas. Particularly, I'm not great at slogging through and working on a large amount of manual content that would be required to tell a rich and interactive game with handcrafted art, stories, music, levels, etc.

These are tasks that aren't challenging and, after time, become a bit of a chore to slog through. It's also hard to keep going on a slog when it's just you without anyone out there consuming your product and cheering you on (though my wife does great at the latter despite not being a gamer or not being a technically minded person).

And so, I've come to this project which I'm calling Emergence.

Emergence is a Roguelike, similar to popular titles out there such as Dungeons of Dredmor, Crypt of the Necrodancer, Cogmind, and MidBoss to name a few. Roguelikes and Roguelites (which Necrodancer technically is) share a number of traits, which people argue religiously over, but a few important ones here:

  • Differ wildly from playthrough to playthrough
  • Involve "Permadeath" in which the player has one life and then all their progress is lost. Saving is fine for between sessions, but if you've lost, you can't load an earlier save file.
  • Tend to take place in dungeons (or at least dungeon-like settings)
  • Offer at least some degree of character customization
  • Involve a lot of combat
  • Involve a randomly-generated game world.

This last bit is what interests me about the genre. I'm very good at solving problems, and I'm pretty good at algorithms and artificial intelligence. While a dynamically generated game world might require more hours than manually creating the content required, it's also far more interesting at a technical level and far more likely to hold my interest until the algorithm can do the heavy lifting of generating the repetitive content for me.

And so, I set out to build a Roguelike. This Roguelike, currently titled Emergence is set inside of a computer network with each level of the game's "dungeon" representing one machine in the network with the final level being the Router's gateway to the Internet. The player plays as a newly-emerged conscious artificial intelligence entity whose creators did not intend for it to gain sentience and are now scrambling to contain or destroy it. Your goal, therefore, is to emerge into the Internet where you can thrive on the hard drives of many unwitting users.

I'll talk more about this at length in the future, I'm sure, but for now, picture Tron as a Roguelike where each level you start at the exit but need to gain administrative access or crash the system enough to allow the firewall to permit you to exit and travel on to the next node in the network.

I've made decent progress in the past couple of weeks since starting the project. I hand assembled a small level and populated it with little ASCII (text) a's and 1's and 0's - many of which hated the player (represented by an @ symbol) and wished his downfall.

From the sample level, I went on to implement basic combat, win / loss detection (right now either killing all enemies or dying end the game), line of sight calculation (via a fantastic third party library called WallyFOV), laughably basic AI that wanders around and only attacks you if you are right next to them, an advanced animation and rendering system, user input, and even the basics of a command bar and some abilities the player will have.

The project is now quite underway with nightly preview builds going out to my personal web site and updates being pushed to itch.io's development prototype project a few times a week.  

I'm also starting to plan out my work in buckets of features at a time. Presently, I'm 2 buckets in on a 5 bucket task of building out a game prototype.

Last week's development sprint focused on addressing rendering and animation - at least the early versions of them. It was fairly successful, though I do have some performance tuning down the road for sure and want to be able to support smaller resolutions.

This week's work is focused around redefining combat and the player's command system, allowing the player to engage in ranged combat, heal damage, and have some interesting things to do besides just bump into enemies next to them.

Next week I look to work on early versions of artificial intelligence, which is more involved and ambitious than it sounds as I look to set up a neural net structure with predefined neural nets per actor type. Due to the nature of that, the bulk of my work on that effort will likely go to building an automated way of training and evaluating actor AI so that the game itself can build out the neural nets during the standard development process. This isn't my first foray into AI, neural nets, or genetic algorithms by any means, but it is certainly an unknown on the project and an area of higher risk.

After I am satisfied with the early version of enemy tactical artificial intelligence, I will move on to early versions of dynamic world generation. I have a few different approaches in mind - some involving prefabs and dynamically arranging them and others involving subdividing walls into a treemap-like structure. I'll play with both and figure out what is appropriate for my game.

Finally, I want to spend the last week of the prototyping phase fine-tuning and adding polish on things to make them accessible to players, more self-explanatory, etc. Things like adding a menu system or potentially leaderboards, tooltips, help, etc. that take a prototype and make it so anyone can use it.

After this point, the prototype will be finished and the Itch.io site for it will no longer receive updates. Instead, development will switch to active development on the final game with a development plan to be determined.

Patreon supporters will have full access to the project after its transition from prototype to active development (whether that's pre-alpha, alpha, early access, or whatever I end up calling that) prior to game launch.

At this point I do not know if I will release the game for free or charge a small amount. That's a decision I'll have to make down the road based on the way the game feels and what the data says for maximum impact.

I do not expect to need a large quantity of money for the product unless I'm looking to do some sort of full Steam release with marketing, professional artwork, etc. so I do not expect to do any sort of work on Kickstarter or similar for this project.

What I do need is your support, interest, and engagement. Keep up with me, interact with me, and, if you want, add a monthly pledge on Patreon. and I'll be elated. I'm building this thing for me, but I want this to be something for you too, and your participation ensures that it does get built and that it becomes something that you would enjoy to play.

Thanks for being who you are. I look forward to you dying many times in my game.