Spaceboy Diary #6

Hello, everyone!

As a lot of you probably know, I’ve been having a pretty busy summer. I thought that I’d write a quickie update for all of you before I head to the gym (it’s 2:00AM and leg day *womp womp*). Anyway, status report:

HackyZack

Ok, so HackyZack was a small project that we decided to take on over the summer for several reasons that I stated here. It’s going well and for the most part, as planned. As usual, things got…slightly larger than originally anticipated, but we’re on schedule. We added some extra playable characters and a break-the-targets mode that will extend the amount of content by quite a bit. Continue reading “Spaceboy Diary #6”

Spaceboy Diary #6

#Gamedev: Efficiency and Morale

Hello everyone!

This isn’t going to be my typical blog post, in fact, it will likely be one-of-a-kind, as far as my blog goes. I am constantly asked about how I iterate on code and designs so quickly, how I stay motivated, where my inspiration comes from, and things of that nature. I’d like to take this time to touch on those topics. I may rant a bit, and I may swear a few times. If that is something that bothers you severely, please tell me. I will post a clean and strictly informative version, because I think that this is important. Continue reading “#Gamedev: Efficiency and Morale”

#Gamedev: Efficiency and Morale

Project Reveal: HackyZack

Hello everyone!

As many of you have noticed, everyone at Spaceboy Games has gone dark as far as Fara progress goes. We have been pummeled with questions over the past two months and it is about time that we come clean!

hackyzack_logo_transparent_2

The team has secretly been working on an older personal project of mine, HackyZack! We have been quietly at work on this game for about two months now. I’d like to take this opportunity to introduce you to HackyZack, get into why we switched gears, and touch on what this means for the development of Fara & The Eye of Darkness.

What is HackyZack?

HackyZack is a unique take on a 2D precision-platformer that incorporates puzzle elements in the form of multi-tasking. As you make your way through each compact level, you must also carry a ball of varying properties.

Pretentious platforming is what @zackbellgames does best. But what does it take to name a game after yourself? Balls. HackyZack has been filled with balls since its original prototype in late 2014. Luckily, the other members of the Spaceboy Games team are fans of balls, as well. The group decided that HackyZack deserved an upgrade. With plenty of new mechanics, polish, a fresh art style, and a unique, original soundtrack, the new HackyZack is a kick in the balls.

hackyzack_gif_1

Why HackyZack?

I have a feeling that most people will be curious as to why we switched gears. A lot of you played and enjoyed Fara at GDC and had assumed that we were working on that project, full-time. Well, we were! Until eight weeks ago, Fara was our sole focus. Friends and fans had been showing great interest in Fara and the game was continuing to grow and grow. A ton of variables were considered when making such a big decision, but I’ll try to keep this concise.

-Spaceboy Games is the largest team that the majority of us have worked on, and we have yet to ship a product together. We felt that a smaller project was a stronger start.

-Having some form of cash flow within the company will allow us to take our time with Fara, and really flesh it out into what we truly believe that it can be.

-For some of us, this will be their first Steam release and/or their first time working within their current role(s). If we’re going to screw up or experiment, we want to do it small. We want Fara development to run extremely smoothly.

With these points on our mind, as well as others, the team came together and decided that revamping my HackyZack prototype was the best path for us at this time.

hackyzack_gif_4

What happens to Fara?

Fara development will continue full-time, as soon as possible. We have a TON of Fara work that is already done, but has yet to be shown (animation, additional spell cards, an entire second biome, more OST, etc). After HackyZack is launched, we will likely have a brief period where we are responding to the Steam community, patching issues that arise, etc, but we will make it a priority to work towards getting Fara into your hands, as quickly as we can!

That being said, I am proud to announce that HackyZack will be coming to Steam in August! We do not yet have a finalized release date, but the game is coming together and will be ready incredibly soon. We are very excited to see how our fans respond to this new project!

hackyzack_gif_2

In the meantime, consider voting for HackyZack on Steam Greenlight: http://steamcommunity.com/sharedfiles/filedetails/?id=727241555

As always, I greatly appreciate all of you and I am continuously humbled by all of the support that we receive. A big thank you from all of us at Spaceboy Games,

Z

Project Reveal: HackyZack

Spaceboy Diary #5

Good evening (it’s 3AM here),

Today was an incredibly productive day for me. I feel like I’ve really gotten my groove back lately. I’m not sure if my current work is a great change of pace for me or if I have less distractions going on, but I’ve been working productively for much longer periods than usual.

This period of Spaceboy secrecy is coming to a close. Most of my milestone work is done and I will be wrapping up what’s left tomorrow. I’m thinking that sometime next week I will be able to stream and work more openly again. I also started a shader tutorial series, for those who have yet to see part one. I’d like to do one entry every week or two, but we’ll see!

I received a bunch of new music demos from Vince tonight (it had to have been 4-5AM for him) and I’m super excited to sit down with him tomorrow and talk about the direction of the audio design and OST for this game. With INK I simply trusted his judgement and his first pass is what we shipped. This time he is giving me a few vibes and directions and we’ll kind of pick and choose where we want to take things from here. Joonas is on vacation, but he will be back very soon to incorporate our ideas and mood into some sound effects, as well.

More coming soon!

-Z

 

 

Spaceboy Diary #5

Shaders (Part 1)

Hello everyone!

Introduction

I have been asked a countless number of times to prepare a series of shader tutorials. More specifically, a series of shader tutorials that will help Game Maker users approach this complex topic without being incredibly overwhelmed. Programming requires a certain mindset and shader programming requires yet another mindset to fully grasp what is going on. That being said, I am really going to slow this down in hopes that nobody gets lost.

What is a Shader?

For these examples, I will be using Game Maker: Studio. GM gives you several options for shading languages, but I will be using the default: GLSL ES. This is a shader programming language that is based on the OpenGL shading language, as well as C++.

A shader exists to return a vec4 to the graphics pipeline (at this point I would hope that you have a solid grasp on vectors, as containers). The vec4 contains the red, green, blue, and alpha values of a single pixel. Every frame a shader runs for every pixel on screen. The return value is the pixel that you see rendered on screen. If you do not explicitly set a shader, a pasthrough shader will be called for you.

The Passthrough Shader

For now, we will call a passthrough shader ourselves. To do this, right-click on the shaders tab and choose to create a new shader. GM will create a passthrough shader for you, by default (I called mine shdrPassthrough). A shader can basically be applied to any form and any number of draw calls (a sprite, a entire surface, the application surface, etc). I will create a simple object that let’s us toggle our shader(s) on and off and draws a sprite accordingly.

Create Event

shader_pt1_img1

Step Event

shader_pt1_img2.png

Draw Event

shader_pt1_img3

From here, place the test object in the room. You can press the space bar to toggle your shader on and off, but you will be unable to see what is happening because your shader is the same as the default passthrough shader that is being called while yours is off.

Your First Shader

Ok, so the first thing that we will do is experiment with the Fragment Shader. You will notice that when you open a shader, there are actually two tabs open; a vertex shader and a fragment shader. The vertex shader is called for every vertex, while the fragment shader is called for every pixel. Open up the fragment portion of your shader file and you will notice that the last line of main() sets a variable called gl_FragColor to a particular value. This is the return value and final rendered RGBA value of your pixel. For our first attempt, we are simply going to change every pixel to a solid red. Note that these values are normalized and range from 0 to 1, rather than 0 to 255. Here’s what this would look like:

shader_pt1_img4.png

shader_pt1_gif1.gif

That’s incredibly simple and not very useful, but you have successfully written your first shader! We can take that a bit further by blending each pixel in the original image with red, rather than just replacing it with a solid color completely.

shader_pt1_img5.png

We’re skipping a few steps here, but just be aware that gm_BaseTexture refers to the texture that you’re currently running your shader on and that v_tex is the texture coordinates passed in from your vertex shader (in this case, it should be unchanged). So you essentially have a position within your texture (a single pixel) and you’re multiplying it by your red value. You are doing this for every pixel in the texture.

shader_pt1_gif2.gif

Again, a very simple effect that you may have stumbled upon before. You can also achieve this by setting your object’s image_blend value to c_red. You have now accomplished the same thing via shader!

I’ll leave you all with this for now. I am trying to take this very slow both for people who are new to shaders, as well as people who are new to programming and GM, in general. Play with color inputs and see what other effects you can come up with.

More to come soon,
-Z

Shaders (Part 1)

Mighty No. 9 and The State of Kickstarter

Good evening everyone!

It is not typical for me to write generic articles related to the games industry, but a few people were asking for my opinion(s) on this subject over on Ask.fm and I decided that it was important enough to share and expand upon here.

Here is my answer when asked about the Mighty No. 9 launch a few days ago:

mighty no. 9?

“Ugh, ok. Games are difficult to make. Bigger games are more difficult to make than smaller games. Competing with a popular franchise (even if it was once your own) is more difficult than trying something else. Crowdfunding a game is difficult. Handling a large team is difficult. Handling a large budget is difficult. Handling player anticipation, expectation, and critique is difficult. Every fucking thing that this guy had to do to make this what everyone wanted it to be was difficult. Hell, it was impossible.

Yet, I find myself in a position where I feel it necessary to complain. It’s a very complicated situation because depending on how you look at it, the deck can either be stacked in favor or against the devs of Mighty No. 9. They had lots of money, lots of time, and lots of resources. Cool. I wouldn’t want that. The ONLY reason Fara will ship when it does is because I personally know the half dozen people who rely on its release and because we will be desperate and running out of money. This is not to say that I plan on half-assing our project and pushing it to market before it is ready, but what I am saying is that I can handle and comprehend the current team size, budget, and scope of the project. If you were to hand me $4,000,000 I would severely fuck this up. I guarantee it. We would hire people to help us transition to 3D. We would license new engines. We would expand upon content. We would toy with ports, networking capabilities, and spin-offs. It would be a disaster. Megaman had restrictions that kept it in a pocket where it could shine. Given different circumstances, the entire franchise may have been as much of a headache as the spiritual successor.

Have I complained? Yes. Have I made jokes? Yes. It’s easy to laugh this off because everyone saw it coming, but Kickstarter is NOT and will NEVER be a consistent storefront for high-quality deliverables. Kickstarter is a slot machine, at best. I do not envy the team who has such tasks on their shoulders.”

I continued to discuss the topic further on Twitter, if you’d like to continue the conversation or read more about my stance on Kickstarter, in general. You can find the original thread here. In short, when you double or triple a campaigns asking price, you aren’t just giving them a financial buffer, you are implying and insisting that they attempt to make a product that is also two to three times the original scope (consciously or otherwise). Most teams are incapable of comprehending and/or delivering your dream project. We gave Comcept too much and they were unable to cope with the scale that we set them up to deliver. I strongly believe that the game would have been better had they hardly reached their original asking price.I wish the best of luck to Comcept and their future endeavors.

Z

Mighty No. 9 and The State of Kickstarter

Spaceboy Diary #4

Hi everyone,

I feel like it has been a week or so since I got around to doing an entry, so here I am writing something new! To be honest, it is a good sign! I have been happy working again and because of that I have been writing fewer entries to keep me motivated. Maybe that’s backwards thinking and I should work extra hard to keep the momentum up, but I have pretty much just been going with the flow lately.

As for work specifics, I still can’t say much. I promise that this is just as hard on me as it is on any of you. I absolutely love being transparent with my work and these few weeks of secrecy have been brutal. I recommend that people watch GDC talks or perhaps stray outside of their typical workflow or interests a bit. I watched a few talks from hacker meet ups while building some levels over the weekend and I got this huge rush to start challenging myself and programming outside of my comfort zone again. I get super jazzed up and excited when I listen to truly intelligent people speak.

In game development, it’s easy to kind of find your safe place and stick there (I still do it a lot). I know that I could pump out level-based, precision platformers for the rest of my life, but at some point I should do something different. Something bigger. Something more challenging. To an extent, that’s what Fara was. It was a game that I wanted to play rather than a game that I knew how to make. It’s a lot of things that I am not and it has challenged me in several respects.

Aside from level design, I have been screwing with some unique music and sound design ideas. Vince is a blessing and his music is absolutely amazing. In a few tracks that I am working with he has written a second track that lies on top of the first. I have both tracks playing simultaneously, but fade the secondary track in or out based on certain things that may or may not be happening in the game. It feels really cool and sometimes it’s not even noticeable what is happening. I hope that people enjoy it and I hope that you can all see/hear it soon.

Lastly, we’re just screwing with some marketing material for PAX West. Myriame and I will be there, but the rest of the team won’t be present since we aren’t showing off any particular build or hosting a booth. However, if you find me, I’m sure I’ll have *something* to give away.

Love you all,

Z

Spaceboy Diary #4