Secret Project @ EGW

I am super pleased (and freaked out) to announce that Secret Project’s first public appearance will be at the 2018 Experimental Gameplay Workshop, held on the last day of GDC.

I’ve made a point of attending that session in the years I’ve been to GDC, and seeing the selected games and prototypes has been an inspiration and a breath of fresh air every single time. Now I’m panicking a little bit at the prospect of having to demo the game to a packed room of game developers, and finding a way to communicate what the game is about in only 10 minutes or so.

Speaking of the game, the pace is slowly picking up. There are now 3 developers assigned full-time to the project. The current main focus of work is refactoring the underlying network code (so now you know it’s an online game then!) to make it more robust, we’re also making a proper research for the art style, and narrowing down the minimum product we need to launch on early access or closed alpha.

Stuff like the game’s final name, or levels, or details of some core mechanics are still being defined, even at this advanced stage of development.

Au travail!

Secret project part 3: On Hiatus

As is goes, Secret Project’s development is currently frozen. It has been for the last two months, actually. Not super for the project, but good for the company.

We decided to freeze development right after coming back from Gamescom, because a big contract got signed and we needed everyone on that job to get the ball rolling. Additionally, since the signed project is in the roughly same genre as Secret Project, it would look bad releasing it while initial development was going on on the other one.

And yet, this may turn out to be for the best after all. I am able to take a few steps back on the design and look at it with fresh eyes (the time before Gamescom was pretty crazy in that regard, we completely overhauled the look of the game in 4 weeks!), and we’re also getting to develop some finer technical infrastructure that I hope will carry over to Secret Project once development resumes.

Meanwhile, we’re also getting good vibes from the few people we showed the alpha to in GC, and I still get to go ahead and fill the backlog while no one’s looking to sneak in more important features.

I hope to report back soon with part 4: the Thawing!

Secret Project part 2: The Prototype(s)

After getting the pitch shortlisted, our first task was to actually prove that the mechanic was viable ASAP. This was a rather unique challenge compared to other selected pitches, since they mostly had to build a regular First Playable.

We had two weeks to make it work. I’m kind of freaking out thinking on how to actually get the mechanic implemented in networked multiplayer under such a short deadline. The project would have most certainly failed its first milestone if it weren’t for the heroic arrival of… El CTO! *cue Mariachi fanfare*

Continue reading

Secret Project part 1: Threading the needle

There have been …interesting… developments at work with some clients, the result of which ended up in our doing a company-wide brainstorm for ideas, geared towards internal development and eventual publication.

One of the selected projects is an idea I pitched, and I now find myself at the lead of that project, one with a very nerdy mechanic.

I kind of need to tell someone of how that goes, even though if I cannot yet share what the project is.

So, here is what has been happening so far…

Continue reading

Using BitmapData.threshold()

Since one of my objectives is to be able to publish this yet unnamed game to the web, one of my main concerns is keeping the total download size low, relying on as little static art as possible.

One cool thing I’ve always wanted to try out is palette swapping: basically you take the same bitmap and you replace color values to change the way it looks. Most widely known for its ability to recycle the same beat’em up enemy in several levels by changing pixel colors without requiring a whole new bitmap being stored on the ROM.

In my case, I use it for far more utilitarian goals: to signal player ownership of a given vehicle.

Thanks to openFl’s near perfect port of the flash API, BitmapData.threshold() is available. You give that method a source bitmap, a threshold color, a replacement color and an operation (==, <=, etc) and all pixels that match the condition will see their color set to the replacement color.

I added the color swap method right into my asset manager class:

 public function getColoredTank(p_color1:UInt, p_color2:UInt):BitmapData
 var coloredTank:BitmapData = baseTank.clone();

 //apply first color, replacing Magenta (0xFFFF00FF)
     "==", 0xFFFF00FF, p_color1);

 //apply second color, replacing Yellow (0xFFFFFF00)
    "==", 0xFFFFFF00, p_color2);

 return coloredTank;

This allows me to turn this:


Into these:

Workspace 1_004

Both tanks in the bottom image share the same source bitmap.

Since I’ve had some fun playing with this, I decided to see about allowing players to set their own color preferences for their vehicles, which might be a nice touch in multiplayer.

Borrowed time

The recurring problem when working on such a project on borrowed time: coding in & hour increments, between 1 and 2 a.m., if the kids don’t wake up.