Archive for the ‘Feedback’ tag

Brain Melt

I’ve been writing and re-writing a lot of code lately. Somewhere between the work to be done and the work I want to see done, there are dozens of thoughts and discoveries that are worth sharing. Some are puzzling, others are simply brain melting.

Behaviors

A long time goal: behaviors! What is it? How does it work? Well… imagine you write this line of code in a Bold Pixel Engine entity:

1
entity.behaviors.face.mouse();

And from that moment on, the entity will always rotate to the mouse position. That’s a behavior.

Imagine that you could say that instead of facing you’d want it to rotate to the mouse position at a given speed, or with a tween, or that you want it to evade another entity or to find the path to a certain point. Now imagine that behaviors could applied to time… that you could tell your engine time would slow down so you could see all in slow motion…

Well… I wrote two behaviors and it works like a charm!

Flash Player is somewhat smart

I’ve noticed that if you copyPixels() or draw() outside the target bitmapData area, it won’t render anything. Having thousands of objects outside the rectangle area is absolutely meaningless, even if you apply a transformation matrix and draw.

I thought about the possibility of creating a camera object… suddenly this possibility became obviously closer since there will be no need to verify if an object is supposed to be rendered, Flash Player does that for me, I just have to pass the right rectangle… awesome! or at least I’m thinking it will be!

Filters

I really needed a rest a couple of nights ago… so nothing better than writing some new functionalities! My goal was to write filters to apply in layers. After noticing that most flash filters need a BlurFilter applied on top of it, I decided to make it simple and just work with one BlurFilter and one ColorTransform in each layer.

BlurFilter is a huge performance killer, so I played around with only applying the filter to whatever the area the filter needed to be applied to and it works great! The bigger the area, the bigger the performance impact that’s for sure!

ColorTransform seems to have no impact. I’m betting that the pixel color is calculated directly when drawing… if this is true… it’s quite smart!

All in all and since I didn’t want to use any other filters for performance issues, I noticed that with just a little tiny bit of patience, blur and color transform can do most of the cute effects we might need, from shadows to glows to motion blur.

Brain melting the possibilities

A camera with behaviors, like moving to an area with tweening. Flames coming out of a structure and then exploding in thousands of particles flying around with fire trails. Zillions of projectiles flying around in a huge map… wow… this weekend really caused a brain melt.

Need to finish the tutorials to Bold Pixel Engine v1 because v2 is already shaping.

Posted: February 16th, 2010
at 1:00pm by Vlad

Tagged with , , , , ,


Categories: The code of VGS

Comments: 2 comments


Encyclopedia of Players

Disclaimer: this post, unlike most of this blog, does not have the intention to present information or discuss any particular item. It is a fun motivated post, one that should be taken lightly, with a smile and nothing else.

Most if not all flash game developers have read comments about their games that triggered some feeling. Many times we fail to see the positive side and focus on the negative side. We are taking content to an audience and nowadays that means that either we like it or not, that audience will voice an opinion. Is is much easier to take the strong opinions with a smile and I hope this helps giving you that smile. :)

The 100m athlete

His only motivation is to be the first. He wants to, he has a lot of competition, but sooner or later he will be fast enough to be able to write:

FIRST!!!!111

and he won’t rest until he is banned! That’s his gold medal!

The obvious

It could be better.

O’rly? It could, I admit, but how? It’s like saying that it is a game, isn’t it?

The nonsense

This type of player is really unpredictable. We never know what’s his next comment. It can be something like:

LOL OMG it’s yeah!

to something really strange like:

Loved the game! 1/5 because I don’t like the name!

We never know what to expect… by the way, this last quote… true story. :)

The sober policeman

This player plays a lot of flash games. He knows the portals, he knows the developers, he knows if a game was uploaded by someone that is not the rightful owner. What can I say? The sober policeman is a real helpful player in many ways.

The drunk policeman

Ok… I only wrote the previous one so I could write this one. :) This player plays a lot of flash games but all games that look alike were stolen! What was the stolen game you may ask? Easy! The first game of the same genre he played. He also assumes that a sponsored game uploaded by the developer was, without a trace of doubt, stolen by the developer.

Games with stolen IPs are ok though, as long as he is a fan, like a Mario clone or something that remotely looks like Zelda… with Zelda graphics…

The analyst aka flash game journalist

This is a real, typical comment from this player type:

It feels… restricted. As far as I can tell, it is perfectly unclear as to how money is being earned. It just hands it to you at the end of the level. Similarly, there is almost no indication as to whether you are hitting something, unless it dies. Having scrollwheel weapon change is bit odd, considering that most people will be playing tihs in a browser.

I honestly love these guys (and gals)! They usualy know what they are saying, they write well, take the developer hardwork into consideration. They pinpoint problems the game has and they do so in an elegant way. Bottom line, they are really helpful.

The needy

Needs upgrades…

Needs badges…

Needs ketchup…

Needs more levels…

<insert your favorite need here>

Now that I think about it, usualy it’s not the game that needs it. It was designed like that so, that’s what it is for better or worse. Who needs something is the player.

The nice guy

I don’t like this game. It’s boring! I have better things to do than to waste 5 minutes of my life playing it. But since you used red in the logo and my dog is running after his tail, I’ll give it an 8.

Thanks mate, very helpful!

The complacent father of all developers

Really funny… he assumes that ALL developers are 13 years old. It’s really easy to spot! If you make one mistake, serious or not, he will say something like

The mute button is not working! I don’t expect that you 13 year olds can do a proper game.

or (and this is just hilarious) if you do something that he doesn’t like, it is not a mistake, bug or problem, he just doesn’t like that…

You 13 year olds still have a lot to learn. Ice towers also deal damage, not just slow down.

The uber game designer

This is probably the only type of player that I really don’t like and that annoys the hell out of me, but there are so few of them that their presence is rarely noted, thankfuly. This is someone that took a couple of hours to create something that remotely looks like a game and that from that moment on feels he has all the know-how to trash every single game that he doesn’t like.

He usualy shares pearls of wisdom such has:

This game sucks! Collision detection fails more than 50% of the time!

These pearls of wisdom usualy meet the following logic: the game in question does not have collisions, or even if it had, how does he know that it is more than 50% of the time? It’s funny because it’s true.

The spell checker

The typical spell checker is usually also a complacent father of all developers. But there’s a weird breed of spell checkers… I can’t really explain how they are, so here’s a comment…

LOL u dont now how 2 spel aphrodisiac

and last but not least… The follower

The follower is cute in a way. Followers simply follow an opinion that is from someone else. For instance if a uber game designer says that the game has a problem with collision detection, even if the game doesn’t have CD at all, he will just state that he also noticed that. A lot of followers follow spell checkers, I don’t know why. Followers are good if you have a good game and bad if you have a bad game.

Hope you like it!

Like I said, this post is for fun and kicks, don’t think too much about it. Many comments are really good and helpful and we have to look at pointless comments as part of it.

Posted: August 7th, 2009
at 12:00am by Vlad

Tagged with , , ,


Categories: Funny Facts

Comments: 21 comments


A flash game must have…

A lot of info spread through the web about what flash games must have or not. Here’s our take on it:

…a mute button

Although everyone will scream their hearts out that a mute button is a must have, I beg to differ. Since Atomik Kaos that we changed the mute button (or key) for an entry screen that asks if the player wants sound and music. We did it because it personally annoyed me to enter games with bad audio and music and have to wait until the place where the developer decided to put the damn mute button.

We received a lot of feedback praising such a decision and one rant about it because the sponsor intro sounds played because the decision screen was after the sponsor intro… that one negative feedback completely forgot that even with a mute button, it would hear the sound way before the usual mute button showed up.

…saved data

Some games need saved games, others don’t. But saving data is more important than just saving your game state. You can present the player with a lot more stuff if you get used to gather statistics.

I won’t go to long with this since it’s very game specific but you can do some very nice things, such as present end-level or game-over statistics that will keep the player going.

…right mouse button context menu

Someone mentioned this in the FGL chat. I personally only took it off twice, both times by request. I understand that it is something that I’ll probably address now that I’m conscious of it, but I never felt or received any feedback about it for our games.

…the right instructions

Don’t throw all the instructions at once at your player. As he progresses through the game, give him the info he needs for that task.

Often instructions are loads and loads of text that no one reads. Everyone did that mistake at least once.

…pause on lost focus

Some games have it, others don’t. For the download market it was a feature that every portal asks for, in the flash market I honestly prefer not to do it.

This is quite easy to explain. Most flash games take a small area of the whole web page where they are embedded. Usually and unless the mouse is the input of the game, the mouse is taken off the game because it’s pointless to be there and it is just covering something.

In my opinion, catch and pause the lost focus event only if your game is time dependant and the mouse is the player’s input to the game. Appart from that it can be pretty frustrating.

…user input customization

Some developers do it. Most don’t. Give the user the option to configure keyboard input that feels most natural to them. You can then leverage the ’save data’ feature to store those preferences locally. Thanks to Phil Peron for pointing it out.

Nothing else occurs right now, so feel free to pop up something I might have forgot and I’ll write it here! :)

Later folks,

Vlad!

Posted: July 7th, 2009
at 10:14pm by Vlad

Tagged with , , ,


Categories: The design of VGS

Comments: 6 comments


Thoughts on user interaction

hardcore-gamerDoesn’t matter how many games you’ve made or how many tests you’ll perform, you’ll always have a lot of doubts when it comes to how to put the interaction in your game feedback loop.

User interaction grows on me in a weird way. Experience should make it easier, but as time goes by I tend to put more and more variables to the design stage. I want the player experience to be flawless.

Flawless interaction

In my humble opinion for the interaction to be flawless, the following requirements must be met:

1. Minimal interaction

The player’s effort to get something done must be minimal, except if that effort is part of the game’s mechanic.

2. Perfect feedback

The player’s effort to get something done must have its counterpart in the game that must perform the player’s order but also inform the player that the order was received correctly. If the player’s order is not accepted by the core rules of the game design, the player must be undoubtedly informed that it was not possible to perform the action and why.

3. Seamless integration

Both interaction and feedback must be integrated in a way that is natural to the game. For instance, if you have a very simple mechanic and the player action is not allowed, you shouldn’t pause the game and give the player a huge chunk of text explaining why that is happening. A simple sound and some red markings on screen should make it obvious for the player.

Our rules

With all of the above in mind, I look at our current project and decided on the following…

1. Mouse Hover

Every time the player moves the mouse on top of some meaningful element (usually a game token) the game will always produce feedback about the element. The feedback will always be presented in the same screen space. Information formatting will be as similar as possible to all elements, respecting the smaller differences between each element type.

2. Mouse Click

GUI buttons were created to remove unnecessary effort. As an example, given a large playarea where you’d need to find a game token, click it and choose a task by another click would involve the player searching for the game token in the map, clicking it, analysing a set of options and clicking one. We created GUI buttons where the player simply has to click the option he wants.

From the feedback point of view, the button will only be available if all conditions are met to perform the action of the given button. More, if the player hovers the button, information will be given in the determined info space to why the player cannot perform that action.

The only elements that involve two clicks are elements that interact with other elements. In this case, we opted to make the first mouse click select the element and make the element information fixed and then the second click on the element to interact with will create a contextual decision.

Conclusions

What is described above is already implemented in our current project. I predict some tuning of some issues regarding user interaction with the game but the results make the game feel ridiculously simple to play. My biggest question is if this feeling is only ours or if the players will feel the same.

See you all soon,
Vlad

Posted: June 29th, 2009
at 12:00am by Vlad

Tagged with , , , ,


Categories: The design of VGS

Comments: No comments