Monday, February 25, 2013

Character Screen, Park, and more

The first major feature I implemented was the Character Select screen. Back in an early build of Felinity, eating the food bowl gave the entire party +1 to all stats, and that was fine as the party was only 1. But with the story rewrite to have Tandy and LilKitty be a duo earlier on, fixing up this functionality came up.

Just a normal dialog, but helps establish that someone gets it, and not everyone.
Very similar to the normal Character screen.
Namely it allows previewing stats before you give your character the buff.

The character select screen can be used for any number of things, and will just send a bitmask to the script state for any further actions to interpret. Namely the "IncreaseStat" command which increases the stat of all party members set in the script state.

On the Debugging side of things, I added the GID Stack. Basically to find out a bunch of info about any place clicked on the map while playing to help debug, or add features:

2013-02-25 00:42:52.027 Felinity[29818:10403] tilelocation : 18.000000,5.000000
2013-02-25 00:42:52.028 Felinity[29818:10403] Wpeep: LilKitty
2013-02-25 00:42:52.028 Felinity[29818:10403] GID Stack
2013-02-25 00:42:52.029 Felinity[29818:10403] triggers: 0
2013-02-25 00:42:52.030 Felinity[29818:10403] collision: 0
2013-02-25 00:42:52.031 Felinity[29818:10403] roof: 0
2013-02-25 00:42:52.031 Felinity[29818:10403] notroof2: 0
2013-02-25 00:42:52.032 Felinity[29818:10403] notroof: 0
2013-02-25 00:42:52.033 Felinity[29818:10403] objects: 0
2013-02-25 00:42:52.034 Felinity[29818:10403] terrain2: 0
2013-02-25 00:42:52.034 Felinity[29818:10403] terrain1: 69

Another useful debugging feature added was turning on the collision layer:
Helps visualize in game various walking paths etc.
Next up, I added "party" to the map loading. This allows maps to be aware of a "party" of characters to follow the main character around. This was sorely needed, because trying to "setup" a map with scripts to follow the main character was not gonna work when I had multiple entry/exit points. And with this, I just define the party, and everything auto-follows correctly.

Rats only included for testing purposes. They were promptly ate by Tandy and LilKitty after this photoshoot.
A subtle, but "big" feature that was added was smarter moving using the touch / click method of movement. User feedback deemed the boundaries of movement (using the mouse) to be unresponsive when clicking on areas that were not walkable on. They were deemed too unforgiving sometimes. So now clicking on a "unmovable spot" will be a smarter about moving you to where you probably intended to go. Should work great on the ipad when you're fat-fingering around.

And one more thing. I've been working on The Park. In the uDevGames version of Felinity, this was actually part of the Alley map, but I wanted to make this much bigger, and be its own little area. It's still very much a work in progress, but I'm liking how it's shaping up.

Sunday, February 3, 2013

Felinity - March of the Green People

A few updates for the past 2 weeks.

I put out a brief demo for a few people to test. Very brief. In doing so I found a few bugs:

  • My game doesn't work on retina displays. A few people in the cocos2d forums posted some suggested fixes, but they seem sketchy. I'll have to give them a try.
  • Apparently Lick didn't heal you completely back to full. Weird bug where you would be stuck at like 239.999999 / 240, and it wouldn't make it the full 240 (since the display it casts to an integer)
  • If dialogs contain a line break before a pause, it would show the first character of the next line. The appropriate fix is to put the pause before the line break (since there is a bug in my version of cocos2d that really doesn't like strings of 0 length)
  • You could click on selectors while the character screen was up, and you could click on the character screen while dialogs were up. Those have been fixed.
  • Fixed player stuttering bug which was also the cause of why there was a "race condition" issue for wpeeps following the player
Along with those bug fixes I did some some map work on the post office:
Tandy walking around the empty post office.
Using a reference from the pixeljoint forums, I created a 32x64 walking man template to base my people on. I think the sizing looks perfect: 
The walking animation in each of the 4 directions.
So from those, I'll need to pixel a generic man, a generic woman, and a post office worker.

I've added 2 new script commands that are 2 variations on the same theme: GotoScript and CallScript. GotoScript interrupts the current script and loads the new one. CallScript involved implementing a script stack, so that you can load a script, then return to the current one.

Monday, January 14, 2013

Felinity - Follow the leader

Work has begun again on Felinity. I've updated my TODO and started working through it again.

Three updates for this round:

Wpeeps can now follow other wpeeps. This will namely be used to create the party following system. When a new cat joins your party, it can follow Tandy around. I created a simple test level to show this off.

I got Graphics Gale working in OS X! This is fantastic news to me as pixeling on the Mac is an incredible pain in the butt. Many people suggest Pixen, but it's simply not there yet as a pixeling tool. And Photoshop, while an excellent pixeling tool, costs too many arms and too many legs. Adobe does offer old versions of Photoshop CS for free, unfortunately, CS2 is PPC only, and Apple effectively killed that with OS X Lion.

But back to Graphics Gale. I got it working under OS X using Wine / Wine Bottler. Simply download the executable (trying out GraphicsGale's new beta), create a new Bottle with Wine Bottler (do make sure you have X11 installed) using the Graphics Gale installer executable. Bing bang boom, you're done. Open that up. It was a bit tricky to find my working directory folder, but otherwise, it's working just like what I'm used to.

Lastly,  you can now add party members. Implementation was pretty straightforward, and it'll allow the new story rewrite to happen sooner.