overworldtheme: (internet)
Saturday, November 8th, 2014 07:56 pm
[Cross-posted from the Vision Riders Blog.]

In case you missed it, this past Wednesday brought the out-of-the-blue surprise announcement that Bad Juju Games, an analytics middleware developer, had purchased Desura and its sister site Indie Royale. Some people, like myself, first noticed the change when the logo suddenly changed on the Desura site.

This is what I imagine happened:

The new Desura logo eating the old one.

Well, something like that, anyway.

Last year, Linden Lab of all things had bought Desura. In case you're not familiar with them, Linden Lab is the company that develops Second Life. Their purchase of an online game storefront focused primarily on indie games seemed odd at the time, and is arguably even more strange in hindsight. I'm honestly not sure what they had hoped to get out of it, and they never seemed to actually do anything with it. Desura has always been a bit of a niche online retailer, and under Linden Lab the site seemed to languish without any direction, as if frozen in time. A few months ago came the introduction of the "Desura Version 2" site design, but that was about the only outward change the sale ever brought.

I can't say I'm exactly "hopeful" about the sale, but I am trying to be optimistic. Desura has needed some serious care and attention to make it relevant again, especially with up-and-coming storefronts like itch.io that are doing a much better job meeting the needs of indie developers. And an analytics company like Bad Juju does make some sense as the owner-operator of an indie-oriented online retailer. Certainly more than a strictly virtual world oriented developer like Linden Lab.

So far, it does sound like Bad Juju is actually interested in their newly acquired website. For one, they're actually going to focus on the Desura client app, which is practically impossible to even find on the current version of the Desura site. It certainly will be great if they make good on their promise of a Mac and (official) Linux port of the app. Maybe they'll even finally introduce the vaporware Desura API that'll give devs access to Steam-style achievements and such.

And hopefully they'll do something about that crippling $500 payout limit.
overworldtheme: (programming)
Wednesday, October 29th, 2014 04:40 pm
[Cross-posted from the Vision Riders Blog.]

In case you haven't noticed, Another Star is part of the latest Indie Royale bundle. The Debut 20 Bundle, to be exact.

Bundles have become a really controversial issue among developers. When the concept of indie bundles as we know them began with the first Indie Humble Bundle back in 2010, it was really well received. But the first Humble Bundle was a novelty. Now bundles have become as commonplace as sliced bread, with dozens of sites and brands dedicated to selling them.

To many, bundles are a waste of time for developers (with the usual exception of the flagship Humble Bundles that sometimes manage to break the million dollar mark). Many of these bundles go for less than a single game by itself, which in turn must be further cut down and shared by all the companies involved. Thousands of sales are likely to result in only a few hundred dollars at most. The devs then have to provide support for hundreds of copies of a game from which they received less than a dollar each, and post-purchase support is one of the single most frustrating and time-consuming tasks in the entire development and lifetime of computer software.

When Indie Royale contacted me about putting Another Star in a bundle, I was hesitant. It was fairly short notice, I felt it was too early to put it in a bundle, I knew the returns would likely be small, and I knew it could bite me in the rear end with an onslaught of support emails I'd have to respond to.

But I also really needed the publicity. After thinking it over, I changed my mind and accepted.

As of yesterday, Another Star had only sold 64 confirmed copies. (It's actually sold at least one more copy than that, but FireFlower Games uses a monthly reporting format instead of a daily or realtime one. I haven't gotten the report for October yet, but someone noted they bought it during a recent sale.) As of writing this, that number has increased by eightfold. As already noted, this doesn't translate into much as far as dollar amounts go. I don't think I can discuss exact numbers, but I haven't made very much despite almost 500 copies of the game being sold so far today. But I knew that going in.

Now for the flip side. The bundle has been on sale for six hours now. In that time, I've gotten roughly a hundred up-votes on Greenlight. That's more than the past three months combined. The last time I broke one hundred up-votes in a single day was in the first week of the Greenlight campaign, and the day isn't even over yet. I seriously doubt a steady pace of 100 votes every 6 hours will keep up through the entire two weeks of the bundle deal, but if I can manage just 200 votes a day, that'll get me into the top 100 games on Greenlight, which puts Another Star that much closer to getting on Steam. Being on Steam is not some kind of magic bullet, especially these days with so many indie games available through the service, but the importance of being on that storefront cannot be understated.

It's too early to say whether participating in this bundle was a good idea or not, but I hope it was. If it nets me enough to finally earn a payout from Desura, I think I'll be content if nothing else.

Regardless, the game is in the hands of 500 more people today. I hope they enjoy it.
overworldtheme: (programming)
Tuesday, October 21st, 2014 02:51 pm
[Cross posted from the Vision Riders Blog.]

Last night in bed, as I was thinking about things that still need to be done for my next game before I can really start diving into it, I began thinking about the scripting engine. Another Star just hard-coded all scripting in C#, but, for one, there's no way I'm scripting scenes in C++, and two, it's really tedious to hard code script even in C#.

As I thought about the scripting language and how I could store all the script in files, I came up with the idea of packing all the scripts in one file. In the file header would be a table of all the individual scripts with their locations and sizes within the file, so I could load only what I need at a time.

And, since I want the language to be case insensitive anyway, I figured I could probably save some space by reducing each character to just six bits. Six bits gives enough for only a subset of ASCII. 64 characters, to be exact. And you want to convert lowercase letters to uppercase letters (or vice versa) so you don't waste an extra 26 of those precious characters on just letters. With six bit characters, you can do what's called packing. This is a form of data compression where you shove four six bit characters into three bytes, where normally each ASCII character would need a full byte each. Reduces the file size by exactly 25% right off the bat. Well, not counting the file header and such, but that's only a minute portion of the file.

Granted, there's really no need to save 25% by compressing a text file. I mean, really now. It's highly unlikely that all the scripts in the entire game combined together will amount to much more than a megabyte or two, if even that. But it's something I could do if I wanted to, nonetheless.

Then, I began to wonder if I could compress it even further. Five bytes per character! Eight characters would fit into every five bytes! Mwa, ha, ha, ha! I'm a madman!

Thing is, it can be done, and it can be done without a lot of "shifting" like in old-timey standards such as Baudot code.

Click here to continue reading and find out how )
overworldtheme: (bunnies)
Wednesday, October 15th, 2014 09:38 am
I'm programming a game
In C++

Writing the music
Using a real-time FM synthesizer
That I wrote from scratch
Directly interfacing with the system's sound API

The game will be 2D
I programmed the graphics engine
Directly using OpenGL
I almost used DirectX for the Windows version
But then I'd have to program OpenGL for ports anyway
And I didn't feel like doing the core graphics engine twice

I could do the game in 3D
I've done 3D
I understand matrix math
I understand transformation matrices
I understand shaders, linear interpolation, and vertex arrays
But it'd take to long to do 3D
So I chose something that would work well in 2D

I'm doing all the sprites myself
Animating them myself
Creating all the character designs myself
Creating all the promotional art myself
Doing all the promotion myself

I wrote the story myself
Plotted it out carefully in advance
All the dialog will be by me
It will be displayed using a custom raster text engine
That uses bbcode style tags for formatting
And works directly in UTF-8
For Unicode support
Using UTF-8 reading and writing routines that I myself authored

I'm still coming up with the exact gameplay mechanics
Still trying to get a feel for what I want
It's not there yet
But it's nothing I haven't done before
I have three released games to my name, after all

Meanwhile I'm looking at this application for cashier
At the Dollar General in town
Because I can't find a job

Wow, I suck
overworldtheme: (tales of veigue)
Sunday, October 12th, 2014 04:58 pm
Just caught a Mitch McConnell ad on television trying to link Alison Grimes to Benghazi. Ladies and gentlemen, the Kentucky Senate race has officially jumped the shark.
overworldtheme: (programming)
Friday, October 3rd, 2014 10:46 am
[Cross-posted from the Vision Riders Blog. You are welcome to comment here or there.]

There's a lot of programmers out there that are big fans of "self-documenting code". That is, code that is easily understandable without comment lines explaining it. Robert Martin, in his book Clean Code: A Handbook of Agile Software Craftsmanship, even goes so far as to say:

The proper use of comments is to compensate for our failure to express ourself in code. Note that I used the word failure. I meant it. Comments are always failures. We must have them because we cannot always figure out how to express ourselves without them, but their use is not a cause for celebration.

(Emphasis mine.)

The philosophy here is "your code should speak for itself". After all, a programming language is a language, right? We don't need asides just to get through a block of pure English text, do we?

The thing is, programming languages are not one-to-one equivalents to a human tongue. For that reason I follow a different philosophy, as you can probably tell from this sample of some C++ code I wrote:

Well-commented C++ code.

Some of you out there who are programmers are probably cringing right now looking at that. Take, for example, the c = file->peek() line at the bottom. Anyone with experience in C++ would recognize at once what I'm doing. Really, anyone familiar with file input/output in general should understand what I'm doing just from the "peek". I'm looking ahead one character in the file, without advancing the file reader, and storing the value in the character variable named "c".

Yet despite that, the line is proceeded by a comment: "Peek at the next value." It describes the obvious. Some would say it's useless and redundant. But I purposefully took the time to type it out there anyway. As you can probably see, I've even done it more than once.

I strongly believe code should be well-formatted, organized, and easy-to-read, but also extensively commented. Why? There's several reasons.

  1. It keeps me focused. I type out what I'm trying to do right before I go about it, so I have a good idea how I need to format the code to best accomplish whatever task is at hand. When you look at my comments, you're not just seeing what I'm doing, you're seeing the entire thought process behind it.

  2. It helps me keep my code organized. I can easily skim through the comments to find the chunk of logic I'm looking for, without having to dig too deep into the code itself.

  3. It makes it easier for me to find mistakes. Occasionally I can spot a bug by just running through the comments and seeing the thought process doesn't line up. I'm missing a step! Other times, I'll actually find bugs by seeing that a comment doesn't match the code that follows it. My implementation is wrong because I goofed and wasn't following the logic that I'd stepped through in the comments.

  4. Building on point 1, it reminds me what I was thinking when I wrote the code. A lot of times I'll wonder, "why did I write it this way?" Then I'll go back over the comments and remember. It's saved me rewrites before, especially when I've forgotten that I already tried what I might think is the "better" way and realized it won't do what I need it to.

According to Google's C++ coding style standards, when writing comments you should "assume that the person reading the code knows [programming] better than you do." I for one don't. I assume that the person reading my comments is an idiot. Because I will be reading them later.
overworldtheme: (defeated)
Saturday, May 24th, 2014 02:35 pm
[Cross-posted from the Vision Riders Blog, with some minor additions at the end.]

Sorry for the lack of updates, but this has really been an all-around horrible week.

If you've been following me on Twitter, you probably already know that I've been having trouble with my desktop computer. Around Tuesday or so it randomly decided that it wasn't Direct3d compatible anymore. On a Windows machine, this of course spells major trouble. Not only does it render most games unplayable, it makes it virtually impossible to get any sort of work done. Even browsing the internet can be a chore because Windows is chugging along mostly on CPU-generated software graphics. OpenGL appears works just fine, and the display is going out correctly to both monitors, the computer just refuses to interface with or even recognize Direct3d.

I've tried everything. I've reseated the video card (multiple times), uninstalled and reinstalled the video card drivers (multiple times), installed older versions of the drivers, started up with all non-Microsoft services shut down, even messed around with the Windows registry and system BIOS. Nothing. The only thing I haven't tried is wiping the main hard drive and reinstalling Windows, but to give you an idea of just how long it's been since I've had a good system upgrade, the only Windows install disc I have is for XP service pack 1.

The entire reinstall process will take days in and of itself. I'll have to download install all the updates to bring XP up-to-date (well, as much as XP can be), find and reinstall all my work software, reconfigure all the settings back to how they were, troubleshoot all the new issues that inevitably pop up... I'm getting worn out just thinking about it. And, while this should fix the issue, if it's a hardware issue with the motherboard/CPU or the video card, I'll have done it all for naught.

This has been a long time coming. My computer's failure was inevitable, and I knew it. I've only had minor upgrades to my system over the past decade, mostly with hand-me-down-parts, and the last one was five or six years ago. I've had lots of issues with my computer over the past few years, becoming increasingly worse, and I knew it was only a matter of time before it finally gave out. It's part of why I put so much effort into getting Another Star finished before that happened. Sales from the game were supposed to help pay for a major overhaul of my system, but that didn't work out.

Thankfully, I still have a laptop, which despite some minor issues of its own is functional. It's not really designed for anything other than playing DVDs and surfing the internet, but it works at least. I suppose I'll have to be switching over to it for my main system. However, with the lack of storage space and processing power, I'm not sure how long it's going to hold up as a work machine, especially for a freelance artist.

Only time will tell.

I'd hoped to begin major work on my next game soon. The prototype was up and running, and I was almost ready to begin working on actual levels. It looked a lot better in screenshots, so I had hoped that it would get people interested in Another Star as a way to see the new game finished.

I'm not sure how well that's going to pan out now, though, without my desktop. Especially if I can't even accept freelance work because my laptop can't handle it. I have a lot to think about over the weekend as to what to do now and how to move forward. Maybe a future in art/design just wasn't meant to be. But if that's the case, what do I do with my life?
overworldtheme: (vision riders)
Thursday, May 1st, 2014 01:01 pm
[Cross-posted from the Vision Riders Blog]

Let's talk numbers!

In making Another Star, I didn't plan for it to make enough income to live off. I'm not that niave. There are a lot of indie games out there to compete with for attention—not to mention games and entertainment in general—and going into the game's development, I hadn't released a game in over ten years. The game was primarily meant to pad my portfolio and generate some freelance work so I could get back on track, both financially and in regards to my career.

To that end, I was hoping for about 1,000 sales in the first three months. I didn't necessarily expect to get that much, but it was a goal to shoot for. 1,000 sales would earn Vision Riders a little under $9,000 after fees, which I felt would be enough to proceed straight into another six month project.

However, the minimum number of sales I decided I would need was a mere 100 total in the first three months. That would give me enough to pay for a critically-needed upgrade to my aging computer, and maybe even have a little left over on the side for spending money. To reach that, I'd only need about one sale a day for three months straight. That should be easy enough, I thought.

Another Star first went on sale on 20 March, 2014. As of 30 April, it has sold only 24 copies across all retailers, and brought in approximately $217.92 (after initial fees). Here's the raw numbers:

Another Stars sales numbers chart for March and April 2014

The gaps, of course, mean that I'm not meeting my one-a-day minimum sales. In order to reach the meager 100 sales, the game really needs to be at about twice the sales numbers that it is right now. As it stands, the game has not yet reached the payout level for any of the three retailers it's on, which means the company doesn't even get that money yet.

It's certainly not the end of the world, but it is more than a little disappointing. It's also going to make it difficult to go on, unless I start getting some really well-paying freelance stuff in the near future. But that's another discussion for another day.

Meanwhile, here's how the game is faring on Steam Greenlight as I write this:

Steam Greenlight Numbers for 2014

As you can see, it's not doing too bad for only being on the service for a couple weeks now. However, it's still lagging significantly behind where the current top 100 were at this point in their lives. The percentage of "no" votes is also a bit discouraging. As you can see, I get a lot of no votes, which I suppose comes with the territory of the game's art style.

There's still plenty of time for improvement, though. I've been putting money into marketing where I can afford to, and friends are helping me push it through Greenlight as much as they can. Hopefully next month I'll have better news to report!
overworldtheme: (vision riders)
Saturday, April 26th, 2014 09:45 pm
[Cross-posted from the Vision Riders Blog]

After completing Another Star, I thought about expanding my fake "emulator" engine that the game ran on, and doing another project. I'd like to add some of the features that Another Star is missing, such as actual palette swapping for example.

Another thing I thought about adding was real-time sound. In Another Star, all the music and sound effects are prerendered and then played back, but this past week I toyed around with programming a six-channel FM synthesizer from scratch. Thus, not only graphics, but audio would also be emulated. Behold!

(The screenshot is a test mockup, although it belongs to the same game idea/project.)

The programming is not particularly efficient at the moment. If you listen closely, you can hear the tempo wobble from time to time as my computer struggles to render just five of the six audio channels. Still, I thought it was quite an accomplishment, reading countless articles online about how sound and FM synthesis works, and then applying it to an actual, working program over the course of a week. I honestly didn't understand much about sound waves work until now.

That said, I'm not sure if there's much use for it. The only real appeal is that it's rendering audio in real time. There's not really any reason not to use audio files for music and sound effects in games. So, in the end, this week was probably nothing more than a waste of time.
overworldtheme: (art)
Thursday, April 17th, 2014 09:38 am

BANANA! by TheGrandHero on deviantART

Done completely in Photoshop CS2. Time taken: ~3-4 hours.
overworldtheme: (vision riders)
Wednesday, April 16th, 2014 11:54 am
(Just realized that I didn't crosspost this from the Vision Riders blog. By the way, please to be upvoting Another Star on the Greenlights. Thank you!)

I hate Steam Greenlight. I really do. I even wrote at length about why.

A lot of people are asking me if Another Star will ever be on Steam Greenlight. Back in August, I stated that I didn't know the answer to that question.

Truth be told, I’m not sure I care that Another Star has a tiny chance of getting through. I’m not sure I care that I’m losing sales by not putting the game there. Out of principle, I simply cannot stand the very idea of submitting it. I may yet give in, but the whole thing ticks me off and I’d rather just say “screw it”.

The problem is, principles don't pay the bills. They don't put food on the table. They don't fund future projects, or even help keep hardware and software up-to-date. Valve has a virtual monopoly on the PC games market with Steam. A large number of gamers will not even consider buying a game if it's not already on the service. It's a sad, sorry state of affairs, but it's the way things are, and despite Valve's continued, empty promises that they're going to overhaul the system it doesn't look like it's going to change anytime soon.

That said, Greenlight has improved since I wrote both of those entries, even if only a little. At this point, I can say with certainty that Another Star will eventually be on Steam Greenlight. I'm still not comfortable with the service, but at least it's gotten to the point where I don't immediately gag at the thought of it. (It's more of a slow, delayed reaction now.)

The problem at the moment is cash. Steam's horrendous $100 gate is effectively shutting me out for the time being. Moreover, it's not a free ticket to success. The money I have right now is already set aside for things like bills and groceries, and my credit card is just about maxed out. I can't justify buying what amounts to a lottery ticket at this exact moment in time. Later in the month, however, I should have a bit more money to work with, and I'll try to get Another Star up on Greenlight then.

To be clear, I'm not asking for a handout. I'm just asking for patience. If you have $100 to pay for someone's Steam Greenlight fee, please find someone who needs and deserves it more than me. There are a lot of struggling developers out there who deserve a shot. I have more money on the way, but a lot of them don't.
overworldtheme: (vision riders)
Friday, March 21st, 2014 09:03 am
(Cross-posted from the Vision Riders Blog)

After a lot of waiting to get things processed, it looks like everything has finally come together. As of today, you can buy Another Star on the official site. The price is $10, but you can add an extra tip if you so choose by clicking on the "+" symbol on the Humble Store widget before choosing a payment method. It's entirely up to you, but I certainly won't stop you.

I really do hope that you enjoy the game. Let me know if you come across any problems by posting here, or contacting support@visionriders.com for technical support. (I might even stay up late tonight, just in case anyone has trouble getting the game to launch.)
overworldtheme: (programming)
Monday, December 23rd, 2013 09:13 am
(Cross posted from the Vision Riders Blog)

I've been hard at work trying to get Another Star ready for release. Part of that entails making sure the game looks its absolute best.

Comparison of Tachi's old and new sprites.

Tachi looks more like his promotional art now.

As discussed in my last post, I've been toying with the idea of abolishing the self-imposed 256 tile limit. I haven't decided for sure one way or the other, but I have been making new sprites to test out the waters.

Comparison of the original graphics and the possible updated graphics.

It's quite a difference!

What does everyone else think? Is the improvement enough to follow up on?
overworldtheme: (programming)
Thursday, December 19th, 2013 04:21 pm
(Crossposted from the Vision Riders blog.)

I noted last week that, unlike the rest of the game, Another Star's soundtrack had very little to do with the theme of "minimalism". The track count continues to grow, by the way, now standing at 34 tracks with more on the way as I go back over and polish everything. But as the soundtrack balloons, the graphics are quickly getting left behind. The more music that gets added to the game, the more the 256 tile limit sticks out like a sore thumb.

Now I'm wondering if I should just abolish the tile limit altogether. I don't really want to do this. I'm proud of the fact I fit so much—an entire game, with a sizable overworld and eleven dungeons, and all the enemies to fill them—into a mere 256 tiles! It's actually quite amazing the ways I came up with to manipulate tiles to create so many different and distinct locations.

But at the end of the day, does anybody really care if I managed to create a game in just 256 tiles? Does the tile limit actually add anything to the game? I'm highly suspicious that the answer to that question is a resounding "NO".

Now, I suppose I should clarify a few things. Supposing the tile limit does get dropped, the graphics would still adhere to the 8-bit limitations of systems past, but I'd be able to switch between tile sets (like on actual hardware). Furthermore, most of the major scripting on the game is done so I'm not going to completely rewrite the game. I'd probably add frames for NPCs to face directions other than straight down, but they'd still be rooted in position, and cut scenes would still be pretty static. The maps themselves would be a lot more pretty and nice to look at, though, and enemies would also be bigger and more diverse.

I think I'll sleep on it before I decide what to do. What are your thoughts?
overworldtheme: (Default)
Thursday, October 10th, 2013 05:15 pm
Looks like I made the right call on Another Star concerning its original release date. I will be on the road that day, as expected.

Now it's just a question on where to go from here.
overworldtheme: (comics)
Thursday, October 10th, 2013 01:07 pm
Here is an absolutely gorgeous comic by French artist Boulet:

Our Toyota Was Fantastic
overworldtheme: (art)
Thursday, October 3rd, 2013 04:45 pm

Another Star - The Cast by ~TheGrandHero on deviantART

Here's some new promotional artwork for Another Star that I just finished up. These are some of the characters that you will meet in your journey. I'm trying to emulate the style of Yoshitaka Amano, although I think my colors are far too saturated.

From left-to-right: Kyne, Eva, Tachi, Rygar, and Soel.

Might end up using this for the game's cover art, although it's not quite what I had in mind for that.

Done completely in Photoshop CS2. Time taken: ~4-6 hours.
overworldtheme: (vision riders)
Saturday, September 28th, 2013 06:02 pm
Cross posted from the Vision Riders Blog.

At last, Another Star is playable from beginning to end. The completion time for the very first run of the game was 20:24:22. That's twenty hours, by the way. A nice, solid total for an RPG, I think.

This means, ladies and gentlemen, that we are in beta.

In fact, you—yes, you—can be a beta tester! All you have to do is download the game from the link below, play it for as long as you want, and then either leave a reply here or send an email telling me what you thought about it. None of the dialog or text is finalized, so I don't care about typos, but please do tell me about bugs. And do let me know what exciting things you found while exploring, and what strategies you came up with to deal with enemies and bosses.

(Save files from the previous version may or may not work. It's best to start a new save.)

Unlike the "leaked" version, I very much doubt this will be left up for more than a week or two, so grab it while you can, and enjoy!
overworldtheme: (tales of veigue)
Sunday, September 15th, 2013 09:46 am
Cross-posted from the Vision Riders Blog.

Sophie Houlden is an indie developer, and was among the first batch of indies to put their game on the Ouya. However, she recently pulled her game Rose and Time from the console. She lists her reasoning in this blog post, which conveniently sums up why I have no plans to ever port Another Star to Ouya.
overworldtheme: (animation)
Saturday, September 14th, 2013 09:07 am
So, Korra. It's good. Real good.

Keep that in mind going into these, because I get a little nitpicky and I don't want to make it sound like I didn't enjoy it.

Thar be spoilers! )

Anyway, a few people I follow on Twitter were really being down on Korra and the characters. It's clear they hate the new series, and I'm all for constructive criticism, but it's really depressing when something I enjoy so much is getting constantly ripped to shreds for hours on end.

It's not even like they didn't have good points--I actually agree with a lot of their criticism, and don't forget that I thought the first season's ending was a bit of a let down. But when all that they post and retweet from others is decidedly negative, without any positive counter-points, it makes it hard to stay excited about finally getting to watch the show again.

I think what really bothers me, though, is the fact that it was clearly not a "discussion", so I didn't feel like I could voice my own opinion in reply when I felt there were elements that they missed (which sort of defeats the point of Twitter). Moreso when they made digs against those who do like it. I guess I need to strive to watch myself and not become like that on Twitter myself.

I'll probably unfollow them until the season's over, so meh. [/emo]