Interior Decorating

I made quite a few changes this week:

Lighting

I’m not as gung-ho about hiding stuff in total darkness anymore, so I made some changes to the player’s light to make things easier to see:

  • Larger light radius – so you can detect enemies sooner and have more time to whip out your gun.
  • Small amount of ambient lighting – it makes the edges of the light circle a bit nicer.
  • Tracers are now lit through the darkness – so you can see if your magic missiles successfully attacked the darkness or not.

boomThis is my Boomstick

New marble and glass tileset

For a large part of the development of this game, I’ve been using the Grass Maze tileset to playtest my game:

While I have made improvements to it over time, I still got tired of looking at it and decided that the game needed a makeover. Below are some screenshots of the different features of this tileset:

Diamond tiles

Roll out the red carpet

Sunken carpet


Sunken waterway

Miscellaneous additions

I added a bunch of new sound effects and fixed a bug in the countdown timer. If there is anything else I added this week that I forgot to mention, it will be in this video:

Eaten by Some Linux Redux

One day as I was switching between build targets in GameMaker: Studio, I noticed that an entry labeled “Ubuntu (Linux) (YYC)” was on the list of targets. I have exported previous projects to Ubuntu before (e.g. Gonna Catcha) and have been building Feast for the Senses with the Yoyo Compiler whenever I go out to show the game and playtest it with other people. But doing both at the same time? Do I dare to cross these categories? The answer was “yes”.

Come to think of it, I don’t even know when this option (and the “Mac OS X (YYC)” target) was released. I must have missed the memo.

Anyway, I was eager to try it out, since I do want to eventually distribute Feast for the Senses on multiple plaforms and tests have shown that it does benefit from being built with the YYC (e.g. it gets a higher max framerate, so less chance of slowdown or needing cap the framerate at 30 on lower-spec machines). First, I tried to build and run it on my Linux Mint virtual machine, but the compile would failed every time. I eventually learned that the YYC wasn’t supported on Mint and that I should be using plain old Ubuntu.

After creating an Ubuntu VM and much “sudo apt-get”ing, I finally got it to work:

Full-sized screenshot:

The game seems to run fine, though sometimes it can’t maintain 60fps, but that just might be the fact that it’s running on a low-spec VM.

I also got a bricked SteamOS VM out of the experience, but that’s another story. And by another story, I mean:

Next on the agenda, I’m working on a new tileset, because the grass maze tileset is starting to wear out its welcome. This one uses various layered tiles…

…and animated tiles.

It’s still a work in progress, as the tileset has many clashing elements to its design. (Note to self: get new interior decorator.)

Lastly, I’ve implemented areal dialog triggers. This enables Réiltín to comment on areas she enters:

Spicing up the Ooey-Gooey GUI

I finally got around to figuring out this 60fps GIF business. OK, I knew sites like Gfycat existed, but I just didn’t know how to convert my Fraps recordings into GIFs in the first place. But that’s all in the past now. No more awkward 25fps GIFs for me, now it’s 60 all the way… or 30 if some sites won’t let me have fun.

Let’s start off this high-quality GIF thing with some improvements to the GUI. Until recently, I never focused much on the UI; it was mostly there to show me numbers and junk to tell me my game is working properly and not lagging. In the last week or so, I decided to give it a bit of love.


By adding various transforms to the GUI elements, they now “react” to things happening in the game beyond changing values:

  • The health meter shakes upon taking damage; the higher the damage, the more it shakes.
  • The score counter goes nuts whenever it gets incremented.
  • The timer pulses every second when time is running out.
  • The ammo counter also pulses like the timer, but it pulses inward when ammo is being consumed and outward when it is replenished.

The following GIF shows changes I made to the walls:

I redid the wall sprite because for a long time I didn’t like the old rough stone texture I generated in Photoshop; it was too detailed to fit in with the art style. In addition to that, I added in some wall lamps to help modestly pierce through the darkness. I haven’t made any animations for the lamp’s flame yet; that will come next week.

The lighting engine which Feast for the Senses grew out of has two different types of lights: regular and simple. Regular lights cause walls, enemies and other obstacles to cast shadows and are relatively computationally expensive, while simple lights don’t cause objects to cast shadows and are cheap to process. Simple lights were only used for muzzle flashes and grenade explosions before, but then I figured I so get more mileage out of them and uses them for other purposes.

Oh right, I almost forgot. I also added a dialog box to the GUI. Now Réiltín can now speak her mind about what she encounters:

OK, now it’s movie time. Here is how all the changes look in the context of gameplay.