Royally Flushed
Oh boy, it's been a while. About a month and a half has passed since my last post. Oops. Remember how I said I'd only post when I have something worth discussing? Evidently, it has been a pretty dull month. That's not true in the slightest, as it has been a very exciting time in the life of Nick, but since we don't care about that here, it's been quiet on this old blog.
As usual, life stuff took priority over my projects and as expected, everything takes a lot longer than expected. However, some good fortune in the past week or so has really reinvigorated me to get back into the swing of things here. Without getting too spoilerific, if all goes well I will be working full-time soon, but with a schedule that will give me ample time to devote to my projects. Or at least a project. Since I will have to allot myself time for development in between work days, I will need to be smarter about how I utilize my time. And I need to actually see projects through to the end and get some results. With that in mind, I figured now would be a good time to lay my cards on the table and see what I'm playing with. There's a lot to go over, so let's get to it.
hxcell
First up, we have my super secret porting project that I had been oh-so coy about in my last few posts. Cards on the table, I'm calling it "hxcell" and it is a port of the Python library openpyxl. It's for reading from and writing to Excel spreadsheets. I don't know why past Nick had so much trouble saying that. Anyways, it's still not done and the state of this project is rocky. My short term goal with this project was to get the reading functionality complete so it could be used. But the porting is a bit of a slog and ultimately, I don't have as much use for it as I initially thought. If I really want to use Excel spreadsheets for game data, I could export them to CSV's and skip this project altogether. Maybe it would make a cool "I made this" open-source release, but that honestly doesn't get me much. This project is going on the shelf for sure. I may return to it one day, but for now I simply don't need it.
ARventure
Oh ARventure, I'm sorry I left you. This is a game that is completely within reason for me to develop myself. Unfortunately, I'm less capable of actually releasing and supporting it. As we've discussed this in the past, there are a lot of factors that would make a release very difficult. However, developing it would be a true testament of my abilities. Client-side gameplay, the quest editor, server-side map query handling, a database for quests, not to mention the art and game design, the list goes on and on. It's a lot to chew, but I know I'm capable of it. This game was the portfolio piece I needed to land a job, but it came too late. However, that is hopefully no longer going to be an issue.
Without the pressure and urgency of trying to use this project to get me places, I can take the time to focus and make it great. Even with a small release limited to some friends, getting ARventure out there would be a tremendous confidence boost. The game was always intended to be a portfolio piece and proof of concept, though getting a polished release out to some friends could be the spark that lights something greater. I wouldn't bank on it, but it's worth a shot. This will probably be the project that I commit to.
hxsvr
Such a fun research project. Ever since I got my first taste of network programming, I wanted more. A lot of reading and trying things out for myself culminated into hxsvr. And the results had been promising. Yet, every time I think about working on it, it's primarily as a prerequisite to some other project. I can't justify holding up something like ARventure by putting my time and energy into my own networking library when so many already exist. If anything, I will probably use Socket.IO for ARventure and lift ideas/implementations into hxsvr, assuming I return to it. For now, it's another project going on to the shelf.
if(adventure)
I'm really not sure anymore if I love this project or just resent it. It's a game I'm fully capable of making, but not clever enough to come up with any actual gameplay. I may have to hit up the game ideas subreddit or something for inspiration. However, to really do this game right, there are a couple other things that need to be done. First and foremost is some sort of data-driven functionality for loading the 'code' files. Creating nested statements and blocks in code is simply too ugly and unintuitive, especially when a format like XML will look very similar to the intended output.
The second item on the list is that this game desperately needs a better engine for displaying text. Using HTML, CSS, and text elements was nice because it was fast to set up. Unfortunately different browsers play by different rules, which makes it difficult to maintain a consistent look. Pile on the usual CSS frustrations and there isn't enough aspirin in the world to deal with those headaches. Plus, having the ability to build for desktop, mobile, and other platforms natively would be nice. I'll have to look into text rendering options, though I may end up making something myself on top of OpenFL. Not a huge priority currently, though the potential for a simple game to release and even sell is appealing.
HaxeFlixel Refactor
Now let's talk about something I've wanted to do for a while, but haven't discussed.
Like many fledgling game developers, I've often flirted with the idea of making my own engine. I never devoted much time to it, however, because I'm not a masochist and there isn't any point to trying to compete with something like Unity or Unreal. That said, in the past I did have a tendency to start from scratch and essentially build a 'custom engine' for many projects. Later on, I ended up relying on prebuilt engines more and more as they make life so much easier, but the transition to Haxe complicated things.
I've mentioned previously that I'm not a big fan of HaxeFlixel. Yet, it's one of the most popular game engines for Haxe developers. There's no doubt that Flixel has been an influential engine since its inception during the glory days of Flash games almost 10 years ago. And I'm certainly not going to knock the HaxeFlixel developers, as I'm sure they have more experience than I do. But there are so many aspects of HaxeFlixel that leave me scratching my head and wondering why. Why do I change states using FlxG rather than some sort of state class? Why does a button position its text during update? Why do my backdrops have a health field?!
I want to like HaxeFlixel, but all these little complaints add up and kill it for me. However, by making my own custom fork of HaxeFlixel, I think I can get the best of both worlds. I can have a HaxeFlixel I enjoy using and scratch that engine development itch. Obviously, like hxsvr, this is another project that would primarily be a prerequisite for other projects, but I feel like this would have greater long-term value for me. Not a priority, but I want to get it off my chest.
The Master Plan
Here we go, the coup de grĂ¢ce. I've had this project on my mind for over 2 years now. This was the project I intended to fulfill my college goal of creating a game from scratch and releasing it. It is the game I intend on undergoing the HaxeFlixel refactor for, as well as the primary use for hxsvr. I'm going to be coy as ever, but the gist of it is that the game would be a fan game, utilizing art and sound (with permission) from a game I played many years ago. It would essentially be a Flash game in scope, that I would release for the community of the original game. Nothing over the top, but able to capitalize on nostalgia.
The ultimate goal of this project, beyond doing something cool for a community I enjoy, would be to catch the attention of prospective game devs within the community. It's a long shot, but by building a team from the talent of this community, there's already a common interest that could propel the next project. What that project would be is still up in the air, but with a completed ARventure in my portfolio, there would be some exciting possibilities.
Obviously there are a lot of prerequisites to this project. Both the HaxeFlixel refactor and hxsvr aren't strictly required, but this project is the motivation behind both and it would be a shame not to pursue them. Of course, if I can't get permission to use assets from the original game, this project is dead in the water. Likewise, I might finish the game, set the hook, and get no bites. Both are risks, but I feel they are risks worth taking.
There you have it. Those are the projects I am currently working on and/or planning to undertake. Funnily enough, the only project with much potential to make any money off it is if(adventure), if I could get the game complete and in a sellable state. Most of my other projects are intended for long term benefit, either technological or by fostering relationships with other developers out there. I don't have much of a desire to pursue game development as a career anymore, unless it is on my terms and my terms are more or less as an indie side project.
I will most likely jump back into ARventure for the immediate future, and see where I'm at after that is complete. Fingers crossed that nothing falls through on the job front, and then I'll be in good shape. Give me some time to get settled into the work schedule, and we'll get rolling again.
As usual, life stuff took priority over my projects and as expected, everything takes a lot longer than expected. However, some good fortune in the past week or so has really reinvigorated me to get back into the swing of things here. Without getting too spoilerific, if all goes well I will be working full-time soon, but with a schedule that will give me ample time to devote to my projects. Or at least a project. Since I will have to allot myself time for development in between work days, I will need to be smarter about how I utilize my time. And I need to actually see projects through to the end and get some results. With that in mind, I figured now would be a good time to lay my cards on the table and see what I'm playing with. There's a lot to go over, so let's get to it.
hxcell
First up, we have my super secret porting project that I had been oh-so coy about in my last few posts. Cards on the table, I'm calling it "hxcell" and it is a port of the Python library openpyxl. It's for reading from and writing to Excel spreadsheets. I don't know why past Nick had so much trouble saying that. Anyways, it's still not done and the state of this project is rocky. My short term goal with this project was to get the reading functionality complete so it could be used. But the porting is a bit of a slog and ultimately, I don't have as much use for it as I initially thought. If I really want to use Excel spreadsheets for game data, I could export them to CSV's and skip this project altogether. Maybe it would make a cool "I made this" open-source release, but that honestly doesn't get me much. This project is going on the shelf for sure. I may return to it one day, but for now I simply don't need it.
ARventure
Oh ARventure, I'm sorry I left you. This is a game that is completely within reason for me to develop myself. Unfortunately, I'm less capable of actually releasing and supporting it. As we've discussed this in the past, there are a lot of factors that would make a release very difficult. However, developing it would be a true testament of my abilities. Client-side gameplay, the quest editor, server-side map query handling, a database for quests, not to mention the art and game design, the list goes on and on. It's a lot to chew, but I know I'm capable of it. This game was the portfolio piece I needed to land a job, but it came too late. However, that is hopefully no longer going to be an issue.
Without the pressure and urgency of trying to use this project to get me places, I can take the time to focus and make it great. Even with a small release limited to some friends, getting ARventure out there would be a tremendous confidence boost. The game was always intended to be a portfolio piece and proof of concept, though getting a polished release out to some friends could be the spark that lights something greater. I wouldn't bank on it, but it's worth a shot. This will probably be the project that I commit to.
hxsvr
Such a fun research project. Ever since I got my first taste of network programming, I wanted more. A lot of reading and trying things out for myself culminated into hxsvr. And the results had been promising. Yet, every time I think about working on it, it's primarily as a prerequisite to some other project. I can't justify holding up something like ARventure by putting my time and energy into my own networking library when so many already exist. If anything, I will probably use Socket.IO for ARventure and lift ideas/implementations into hxsvr, assuming I return to it. For now, it's another project going on to the shelf.
if(adventure)
I'm really not sure anymore if I love this project or just resent it. It's a game I'm fully capable of making, but not clever enough to come up with any actual gameplay. I may have to hit up the game ideas subreddit or something for inspiration. However, to really do this game right, there are a couple other things that need to be done. First and foremost is some sort of data-driven functionality for loading the 'code' files. Creating nested statements and blocks in code is simply too ugly and unintuitive, especially when a format like XML will look very similar to the intended output.
The second item on the list is that this game desperately needs a better engine for displaying text. Using HTML, CSS, and text elements was nice because it was fast to set up. Unfortunately different browsers play by different rules, which makes it difficult to maintain a consistent look. Pile on the usual CSS frustrations and there isn't enough aspirin in the world to deal with those headaches. Plus, having the ability to build for desktop, mobile, and other platforms natively would be nice. I'll have to look into text rendering options, though I may end up making something myself on top of OpenFL. Not a huge priority currently, though the potential for a simple game to release and even sell is appealing.
HaxeFlixel Refactor
Now let's talk about something I've wanted to do for a while, but haven't discussed.
Like many fledgling game developers, I've often flirted with the idea of making my own engine. I never devoted much time to it, however, because I'm not a masochist and there isn't any point to trying to compete with something like Unity or Unreal. That said, in the past I did have a tendency to start from scratch and essentially build a 'custom engine' for many projects. Later on, I ended up relying on prebuilt engines more and more as they make life so much easier, but the transition to Haxe complicated things.
I've mentioned previously that I'm not a big fan of HaxeFlixel. Yet, it's one of the most popular game engines for Haxe developers. There's no doubt that Flixel has been an influential engine since its inception during the glory days of Flash games almost 10 years ago. And I'm certainly not going to knock the HaxeFlixel developers, as I'm sure they have more experience than I do. But there are so many aspects of HaxeFlixel that leave me scratching my head and wondering why. Why do I change states using FlxG rather than some sort of state class? Why does a button position its text during update? Why do my backdrops have a health field?!
I want to like HaxeFlixel, but all these little complaints add up and kill it for me. However, by making my own custom fork of HaxeFlixel, I think I can get the best of both worlds. I can have a HaxeFlixel I enjoy using and scratch that engine development itch. Obviously, like hxsvr, this is another project that would primarily be a prerequisite for other projects, but I feel like this would have greater long-term value for me. Not a priority, but I want to get it off my chest.
The Master Plan
Here we go, the coup de grĂ¢ce. I've had this project on my mind for over 2 years now. This was the project I intended to fulfill my college goal of creating a game from scratch and releasing it. It is the game I intend on undergoing the HaxeFlixel refactor for, as well as the primary use for hxsvr. I'm going to be coy as ever, but the gist of it is that the game would be a fan game, utilizing art and sound (with permission) from a game I played many years ago. It would essentially be a Flash game in scope, that I would release for the community of the original game. Nothing over the top, but able to capitalize on nostalgia.
The ultimate goal of this project, beyond doing something cool for a community I enjoy, would be to catch the attention of prospective game devs within the community. It's a long shot, but by building a team from the talent of this community, there's already a common interest that could propel the next project. What that project would be is still up in the air, but with a completed ARventure in my portfolio, there would be some exciting possibilities.
Obviously there are a lot of prerequisites to this project. Both the HaxeFlixel refactor and hxsvr aren't strictly required, but this project is the motivation behind both and it would be a shame not to pursue them. Of course, if I can't get permission to use assets from the original game, this project is dead in the water. Likewise, I might finish the game, set the hook, and get no bites. Both are risks, but I feel they are risks worth taking.
There you have it. Those are the projects I am currently working on and/or planning to undertake. Funnily enough, the only project with much potential to make any money off it is if(adventure), if I could get the game complete and in a sellable state. Most of my other projects are intended for long term benefit, either technological or by fostering relationships with other developers out there. I don't have much of a desire to pursue game development as a career anymore, unless it is on my terms and my terms are more or less as an indie side project.
I will most likely jump back into ARventure for the immediate future, and see where I'm at after that is complete. Fingers crossed that nothing falls through on the job front, and then I'll be in good shape. Give me some time to get settled into the work schedule, and we'll get rolling again.