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: (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: (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: (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: (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: (Default)
Thursday, September 12th, 2013 04:06 pm
Cross-posted from the Vision Riders Blog.


Today I learned that my sister's wedding is taking place this October, not next October the way I had originally understood. In fact, it's taking place the same week as Another Star's scheduled release date. Even though it's not like I'm planning the wedding or undertaking its execution, considering the stressful amount of post-release bug-hunting and publicity I expect to have to keep on top of, 21 October is just not going to work—especially if I'm on the road that particular day driving my grandparents up here!

This leaves me with two options.

1. Move the Release Date Back

While this gives me more time to polish and promote the game, it also presents all-new problems. It's looking like I'm going to be moving sometime before the end of the year, probably in November, and there's no way I'm going to do a move and a game release at the same time. Not to mention moving the release even closer to the end of the year puts it in conflict with year-end sales at places like Steam and GoG.com. I'm not sure how a low-profile release like mine would fare when people are busy saving their money for snagging titles bigger than mine at 80% off.

So, early next year then? That'd give me time to do additional cool stuff like a Nintendo Power style strategy guide in PDF format, akin to the kind they put out for Final Fantasy and Dragon Warrior on the NES back in the day. But that's also really postponing a project I'm ready to be finished with. The fate of Another Star and what comes soon after—if anything—is seriously going to determine whether Vision Riders continues to exist in any form. I'd rather get that over with sooner than later.

Which leads me directly to the next option.

2. Move the Release Date Up

It's a possibility, but it's a slim one. I could move the release date forward by a week or two. I'm not particularly fond of this option. 21 October is already a close shave as it is. September is nearing its halfway point, and I still have the last dungeon, final boss, and ending to design and code. I would have precious little time left to refine the script, get playtesting feedback, fix bugs and typos, and do all the promotion a title like this needs to get noticed.

Still, it is a real possibility, and one I'm seriously considering. Once the fate of the game's release is known for sure, I'll post about it here. Until then, assume the game is coming out later rather than sooner.

I'm really sorry about this. If the game gets delayed, I'll try to find some way to make up for it.
overworldtheme: (video games)
Tuesday, July 9th, 2013 05:51 pm
One of the most common questions I get about Another Star now that it's getting noticed is whether or not I'm going to put it up on Steam Greenlight. The easy answer is: I don't know.

On one hand, it's all the more publicity for the game even if it doesn't get through.

On the other, Steam Greenlight sucks for all the reasons I've previously pointed out, and I hate it.

Actually, hate is a weak work.

I despise it.

I don't feel like coughing up $100 for "publicity" when I could put that money to better things like hosting and tools and computer parts, especially now that the bigger dogs are buying their Steam lottery tickets and grabbing that much more attention from the smaller guys.

I hate what Steam has done with the service, I hate how they treat indies while patting themselves on the back and thinking they've done a good job, I hate how opaque the service is after they played up how "transparent" it would be, and I hate how arbitrary their ideas are of who can and cannot use the service.

I also hate the fact that Valve--the supposed champion of indies--requires you to sign an NDA once you've been greenlit. The very idea of it irks me, in part because I hate the whole concept of an NDA for something as simple as a freak'n online storefront. Yes, I know they required an NDA prior to Greenlight, but it's not the transparency and openness they promised when they pitched this thing.

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".

Life would be a heck of a lot easier if I wasn't such a stupid idealist.

EDIT:
I may actually be making the right choice.

On that same note, can you believe it's come to the point where it's easier to get on to a Sony console than it is on to Steam? Wow. Way to go Valve.
overworldtheme: (bunnies)
Thursday, June 27th, 2013 07:36 pm
I'm so ticked off. Who would leak my game that I so cleverly hid at this link:

http://www.visionriders.com/beta_test/AnotherStarLEAK.zip

I don't know how they found it, but I'm totally going to take the file down by tomorrow afternoon, just you wait and see!
overworldtheme: (vision riders)
Saturday, June 22nd, 2013 06:09 pm


A demonstration of the gameplay and world of Another Star, an 8-bit style RPG packed into a single 128x128 pixel tile sheet. In this video I demonstrate exploration, battles, visiting towns, and some basic party management.
overworldtheme: (video games)
Thursday, June 13th, 2013 08:54 pm
Here, have a thing:



You can visit the site at:
http://www.visionriders.com/anotherstar

I've also got the game listed on IndieDB now, so check it out:
http://www.indiedb.com/games/another-star
overworldtheme: (programming)
Tuesday, June 4th, 2013 08:34 pm
Named Project Minimalism "Another Star". Not completely happy with the name and hadn't fully committed to it, but then someone posted a blurb about it under that name so I decided I better stick with it.

It also has a website, which you can visit here. Progress on the game is really picking up now that all the major components are in place. At this point, I now think the switch to this from Junction was the best decision. Junction wouldn't have been done until August-ish at best, while I may have this ready to go by the end of the month. It'll be nice to have something done for a change.
overworldtheme: (computers)
Wednesday, May 1st, 2013 09:18 am
For those who aren't on Twitter, or missed it, or ignored it, this past weekend on a whim I took part in the latest Ludum Dare and worked hard to complete an entire game in 48 hours. You can read about my project and the fun I had here on the Vision Riders blog. Here are some screenshots from the project:

screenshot

screenshot

Now it's already playable with a working map and battle system, and with just a month or two of work I could probably craft something simple and fun that I could turn around and sell for anywhere from $1 to $5 depending on the final product. But to do so I would have to put Junction on the back burner for that time. This game is far more likely to be finished within the next three months (taking testing and debugging into account, Junction may not be out until near the end of the year), but it's also not going to be able to retail for as much. Both projects are gambles because there's no telling what the actual sales would be.

My gut is telling me to stay the course and finish out Junction, but my heart is telling me to finish this little RPG. I've wanted to create one so badly since my QBasic days! Also, I don't want to cling to Junction solely out of a sense of guilt for not finishing it sooner. I'm really not sure what to do. Bah! Why does life have to have so many difficult decisions in it?
overworldtheme: (tales of cress)
Saturday, April 13th, 2013 01:32 pm


More footage from Junction. Here I talk a little bit more about character interaction and dialog choices, and show off some new areas and music from the game.

If you'd like to know more about how in-game dialog choices affect the story, you can read this article on the Vision Riders blog where I talk about it in more detail:
http://www.visionriders.com/blog/index.php?/archives/236-A-Game-of-Choices.html

For more information about the game in general you can check out the game's web site:
http://www.junctionthegame.com
overworldtheme: (video games)
Thursday, April 11th, 2013 11:22 am
(Crossposted from the Vision Riders Blog.)

Junction screenshot
Click on the screenshot for a larger version.

Junction is an adventure game at heart, but it takes a lot of inspiration and design cues from visual novels. When playing the game you will often come across prompts like the one pictured above, asking you how you want to respond to a situation. Of course, visual novels aren't the only medium to use these as a mechanic, and even traditional adventure games like Secret of Monkey Island had them. But I think the way I've chosen to incorporate them has more to do with my experience with Japanese visual novels than anything else.

Cut for length. Click here to read more. )
overworldtheme: (computers)
Monday, March 4th, 2013 06:09 pm
Here's a taste of Junction in action! Pardon the audio quality and my sub-par public speaking skills. I'll try to improve for next time.

overworldtheme: (defeated)
Friday, July 6th, 2012 05:40 pm
Please read this, even if you don't want to play my game, "Junction", and even if you really don't care about it at all. I am in serious need of advice and input. I hate to sound desperate and all, but I am, so I'm risking making myself look (more) like an idiot. I'll try to make this quick.

Junction is probably the absolute worst kind of game for me to be trying to sell. It wasn't my first choice of game to make, but I thought it was going to be a quick project, and so it was okay if it didn't do so well. It didn't need to make a lot to be marginally successful. Instead it's been in development on and off for almost three years.

First things first. I'm not stupid. Junction is a commercial venture, yes, but it's not going to be some break-out indie title. It's not going to make enough money to justify the hundreds of hours I've poured into it. It may not even make back the couple thousand dollars I spent specifically on its production. But I would like it to do well enough to have a chance to make another game, maybe even keep my Vision Riders venture afloat, or if nothing else have it be notable enough on my resume to actually get a full-time job.

The game has several major issues working against it, but two really stand out. The first is that it's an adventure game; namely, a point-and-click adventure game. There's actually been a lot of successful games in this genre recently, but it's very much a niche, and a niche that's become very crowded. Add to this that Junction looks more akin to a visual novel than a western-style adventure game and you run into a problem: it's hard to show the game off. With, say, an action game, or a first-person shooter, or an RPG you can get people interested by posting videos of the gameplay and passing screenshots around. It's harder for me to do that with Junction, especially without spoiling anything since it relies so heavily on its story. It's a basically a step up from trying to make a commercial for a novel, which I always thought was tacky. (Oh look, watch the dust jacket pan across the screen again!)

This is what I need the most help with. I've fished the latest beta around a couple indie game places and I'm getting absolutely no interest. I need a way to get people to actually look at it for a change. I thought about a weekly update blog, but the genre just doesn't lend itself to that. I mean, what am I going to post? "Oh, today I rewote the dialogue in this section over here." Yeah, that kind of thing doesn't make as good a screenshot as adding a new enemy sprite or reworking a multiplayer map for balance. Is there even anything I can do leading up to release, or do I have to wait until after it's out to trumpet it? Any ideas at all.

The second is something completely different, and it's my own fault for painting myself into a corner by being so weird. When I said recently that I enjoy role-playing, I meant it. Junction is a tale told in the second person, narrated to "you" the protagonist. ("You pick up the object and put it in your inventory." "A cold breeze blows against your skin." That sort of thing.)

Yet, you're not a classic adventure game ageless-faceless-gender-neutral-culturally-ambiguous-adventure-person. Though the story is a conspiracy-theory-inspired tale, you play as an adult woman who has a son, a husband, and a backstory. It's a bizarre perspective, but like I said, I'm weird like that and it's just how the story ended up coming together. I think I shot myself in the foot with it, though. I'm afraid it will turn too many people off--especially guys--to imagine themself as a mother and wife in a video game. But I don't want to switch to a first-or-third person narration. Am I being stupid over this? Do I need to rewrite everything so that these predefined relationships aren't so direct? Or is this something I should just run with and promote it as a unique aspect of the game?

Sorry for being so selfish and asking for help. I know how busy most of you are, and I don't expect you to just throw whatever you're doing aside and write a big long advice column in response. A sentence or two is enough if that's all you have to say, and if you don't have anything thing to say that's fine too. I'll understand. (And if you only read the first paragraph and this one, don't feel bad either.) But I'm getting really anxious about this. Nothing I'm doing is connecting with anyone, and if I can't find some way to make my own projects work (with or without freelancing on the side) and I can't find an illustration/animation/design-related job, then what future do I even have in the arts?
overworldtheme: (vision riders)
Thursday, June 14th, 2012 07:45 pm
Today I played the game from beginning to end for the first time. There were a great number of hiccups along the way, but it was possible. After tweaking some things, I'll be sending a build of the game around for feedback.

My completion time was 2:57:30. Granted I already know all the solutions to the puzzles, but I was hoping it would take just a little longer. Still, it matches my original 4-6 hour estimate (when taking into account puzzle solving). Not a bad length, I guess.

Finishing this thing by October is beginning to seem like a real possibility--so long as I don't think about it too hard.