00:00
00:00
MakeGamesHappen
IS OUR INBOX FULL !?!?!?! Leaving feedback in comments: 1. Helps me save memory in my inbox. 2. Helps us get new testers interested in testing for us.

Programmer

Joined on 10/28/13

Level:
5
Exp Points:
240 / 280
Exp Rank:
> 100,000
Vote Power:
4.37 votes
Rank:
Civilian
Global Rank:
> 100,000
Blams:
1
Saves:
10
B/P Bonus:
0%
Whistle:
Normal
Trophies:
2
Medals:
263

Lighting And Some Small Fixes

Posted by MakeGamesHappen - February 28th, 2014


4835246_139364246963_ProposedModes_2014.02.25.png

Additions: 1: The lighting has been enhanced. There may be some lag issues that happen during the breaking of light fixtures. Depends on how fast your computer is. I will be working on fixing this. There are, in general, just a lot of optimizations I need to make. 2: Lights have been added to a majority of JoshicusLD's levels to show off the changes to the lighting. There is nothing new about the levels besides this. 3: "FlatFoot" from TylerWood's discography added. We are still trying to find musical direction. Let us know what you think about this song.

Fixes: 1. Pause during other menus works. 2. Flares do not come out of bricks when bashing them. 3. Do not go back to starting menu when dying on level#1 4. Weird Focus Glitch on start of game fixed. You will need to enter the password: NewGroundsBeta In order to access the update. If the lighting does not look like this, you will have to clear your internet history, or delete your cache. For whatever reason, F5 refresh does not work for me. I mainly use firefox. Though I think this is true of chrome as well. Maybe because flash is somehow connected to Internet Explorer on windows. (Even if you don't use internet explorer)

 

My current rough TODO: 1. Fix lighting up more. The lighting is clearer. But still a bit busy. Also my level designer (artist at zombie for 3 years) is not a fan of the lighting. I think the colors could be pulled together better... It looks shiny and cool. But still a bit unprofessional. 2. Make optimizations to the game. Right now we have to major sources of optimization that need to be addressed: A. Chaining explosions. SFX & Rendering. B. Breaking Light Fixtures. AKA: Lighting Map Re-Rendering. 3. Make randomly generated backgrounds to give the game a bit more visual interest. 4. Stop the bunny hopping down the platforms.

5. Think about how story will be implemented in the engine. 6. Re-do credits UI and add all tester user names to credits UI.

7. One of my testers mentioned wanting WASD support because their keyboard was broken. Still wondering if I should symultaniously support WASD and ARROW-KEYS, or if their should be a remapping ui. A:Supporting both at same time: There will be a lower cost of entry to game. Which will effect it going viral. However, it will involve a refactor of code that will take some time. B:Have remap ui: Will not involve refactor of how the keyboard input works. However will require coding another ui. I hate coding UIs... Juding on this... I think the best way to go for keyboard support is to support both Arrow Keys and WASD. My only concern is WASD is very close to "R" for "RESTART". Visual issues will take first priority. As we want something nice looking for the kickstarter. We will not be launching a kickstarter until we a have 1000+ testers, and all of the tile art finished. Also, before launching a kickstarter, we will be asking our testers (that's you) for feedback on the video.

 

I shall now be taking the next.... 12 hours to read through my inbox and reply to everyone I have ignored over the past week. Sorry. I really wanted to get this change in before started replying!

-MakeGamesHappen (-John Mark)


Comments

Honestly, the new art style for graphics was unexpected, but I'm pleasantly surprised. I'll have to see it in action to think about how "business" can be reduced. One of any number of ideas is similar to sound suggestions - the "current" event is the "loudest" or busiest visually. I honestly think that's more difficult to do with visuals than sounds, though.

The top and middle screen shots... say light and dark levels, anyone? It looks like an arcade. One is the full arcade, the other is the set of darker, 'broken' levels that are only beatable by meeting specific requirements. (Super Meat Boy kind of did that.) Just my imagination running wild :)

Music? Honestly... I need to check out any changes you guys make down the line, but does this game really need music right now? What's it like without it? Some of the music I heard was cool, but none of it really matched the game, and definitely not the art style I'm seeing in this blog post... The creator of Fez let his game go in silence for a while and eventually found a musician who was able to "create the songs [he'd been] hearing in [his] head the whole time".

"However, it will involve a refactor of code that will take some time." - To add support for WASD? Oh my goodness.

Well, I would want WASD and Arrow keys to be mapped to the same actions.
Right now the mapping is pretty flexible. But only allows for 1 to 1 mapping.

Example:
variable jump:String = "J";

In code I can reference:
If justPressed(jump){ do jumpyStuff();}

However: Variable jump cannot be simultaneously equal to say... "J" and the up arrow.
It can be one or the other. This can be fixed with an array sort of... But it also leads to performance issues and I want the controls fast... I am thinking of doing a lookup table that involves some complex bit-shifting to get this to work correctly....

maybe...

var jumpHash:uint = 0x000000;

I could treat this as a binary value and use bitwise operators on it.
This would allow up to six keys to be mapped to identical actions..

This idea is a bit half baked... Now I will think about it here...

Each key is assigned to write to a hash in a given position...
maybe: key[j] = {hashValue:0x000001, writeToHash:jumpHash}
while
key[upArrow] = {hashValue:0x000010, writeToHash:jumpHash}

Both keys write to different positions of the jump hash.
And as long as the jumpHash evaluates to non-zero, we assume the jump key is
pressed.

Musical Direction:
Tyler will be working on 10 songs for us.
He gave me his entire discography. 2007 - 2013 on DVD. I am now listening to it every day.
From this, we will come up with a musical direction.

-MakeGamesHappen
(-John Mark)

Well here's a reply:
1. If WASD being close to R is your only concern then I suggest you pay no mind to it. A TON of game have WASD controls with R being restart and there's no problem.
It would ONLY be a problem if the player would need to press something different than WASD which he so far doesn't. There isn't really a need for re-mapping the controls. MAYBE adding 2 buttons in a "Choose your controls" screen where they either click a picture of function keys with WASD or the Arrows. Then they could change it in the options menu under controls if they wanted.

2. From the 3 visuals screenshots I think the first one works best but I since the game seems rather futuristic I'd erase all the brown (earthy) parts and replace them with metal like parts. So it fits with the theme more.

2.1 You COULD also add a version of 3 where you'd have enough light sources to light the entire room nicely but they would all be breakable so if you break them it's your fault. Since I KNOW someone would cry about the game being too dark.

3. Keep in mind that it's Visuals < Playability. If you introduce new visuals which would make the game lag in response then I suggest not adding it. A fully responsive game with a little worse graphics is far better in my book than a game with tons of eye candy that needs half a second to respond to my button press. Especially in Twitch hard and so on where your survival relies on quick movement at times.

I'll get back to you on the music after I play the game again.

-Numeris1672

Excellent advice. I especially like the "pick your own control scheme toggle button on a UI" idea.
Though after what you said, I am leaning towards just supporting both WASD and ARROW keys
at game startup.

hmm.. What else?

Visuals:
Yes, if the game lags... This is no good.
I have many optimizations I plan on making to make it run faster still. :) :)

Also:
This will sound a bit cruel and... un-intuitive...
But I might have my game calculate a "computer performance tests" at the beginning of the
game. Maybe in the pre-loader. If your computer fails this test, the game will lock, you will be notified why you cannot play.

There will be a "re-test" button on the screen. You can close some windows on the computer and see if you can speed up your computer's performance.

But if your computer does not pass, you don't play.

Reasoning being:
I would rather have you NOT PLAY at all than to play a laggy piece of crap.
Playing a laggy piece of crap is not the intended gaming experience.

Ideally though the game will run smoothly on everyone's computers. :)

Much to do. We shall see!

Thanks for the feedback!

-MakeGamesHappen
(-John Mark)

Is that kind of microoptimization really necessary? I can almost guarantee that if you profiled your app, checking one or two-length strings wouldn't be the bottleneck for responsiveness :)

Constant-length arrays or objects shouldn't be a problem, if there's any way to get those optimized.

How often are you getting input? Is it an event-based handler, or are you checking key presses at the beginning of each frame?

Either way, it should be possible for you to do something like the following (Pseudocode):

// Event handler for key presses
handle_key_press_event( e ) {

// Set this or next frame's global values for whether or not jumping is pressed
if( e.keyValue == Jump1 || e.keyValue == Jump2 )
global.isJumpPressed = true;

// Set this or next frame's global values for whether or not moving left is pressed
if( e.keyValue == Left2 || e.keyValue == Left2 )
global.isLeftPressed = true;

// etc.

}

// Process the current frame based on previously populated key values
process_frame( timeStep ) {

// Better start jumpin'!
if( global.isJumpPressed )
....

}

The use of short-circuit evaluation (and the fact that these types of comparisons are fast anyways) should mean this takes a very, very short amount of time per frame.

Your method is quick and dirty. I actually have a "jump2" variable for SPACE.
Maybe I will do it your way. It would be efficient that way. Maybe a bit... messy for my tastes.
But it would work and let me spend time on other things.

-MakeGamesHappen
(-John Mark)

An alternative:

foreach( var keyValue in jumpButtons ) {
// Same as previous example, except with an early-exit case handler if jump is already registered
}

foreach( var keyValue in leftButtons ) {
// etc. of course, a foreach isn't your only option here...
}

This makes it easy to map multiple keys to the same behavior, and if it's only a few, it should be fast.

Even more alternatives:

Map a hashtable to closures/functions/methods and have those set the global key values. So the event handler wouldn't even have to check all possible combinations:

Initialization:

keyHandler[ Constants.JUMP_BUTTON ] = handleJumpButtonPressed;
keyHandler[ Constants.LEFT_BUTTON ] = handleLeftButtonPressed;

Event handler:

handleKeyPressEvent( e ) {

// May throw an exception in practice, so keyHandler.Contains( e.keyValue ) may need to be called first...
object targetHandler = keyHandler( e.keyValue );

if( targetHandler != null ) targetHandler(); // or targetHander.invoke();
}

And please excuse the comment-spam, but if ActionScript handles objects the same way JavaScript/ECMAScript does, then objects are already hash tables.

http://stackoverflow.com/questions/2370123/is-actionscript-3-dictionary-a-hashmap

Anyways, I'm sure you'll figure it out :)

I appreciate people who are knowledgeable!
Sorry I didn't respond to this. I wasn't ignoring you.
I noticed I missed a lot of comments on this thread!

-MakeGamesHappen
(-John Mark)

I like the change in the gfx as well, although the original "monochromatic" color tone was interesting to me. I just felt the environment lacked dynamic and life (small animated sparkles, glittering, stuff like that).

Personally, what I find problematic with the the new look of the game, which was present in the original too, is the overuse of lighting effects. I find them distracting and deconcetrating, especially combined with zooming effects when dying. I just feel the gameplay could be enjoyed much more if the action was more graphically coherent and "clean". If you insist on your gfx style and find it difficult to change, at least add an option do disable zoom when dying, because with that zoom it's often too difficult for me to see what I did wrong, to evaluate the sizes of hit boxes and similar.

Also, and this is my personal taste completely, I would appreciate if the main character had more life, interacted with the player on some way (with sounds, waving, or just contain more wacky animation), and for the whole gameplay to be supported with some interesting and motivating story.

I do hope you plan to change the look of the game as the player progresses, as well.

Regarding gameplay, I don't have much to contribute. I think level design and difficulty is well balanced. Perhaps the very game physics could use some tuning. It all feels a bit "stiff"

Hey there!
We have more graphics changes to do with the lighting.
Right now the lighting is still a bit too intense. We want it to have that sparkly shiny factor that attracts people with short attention spans. But we also want a level of clarity that allows focused players to maintain their concentration.

Sorry I did not reply sooner. I somehow missed a huge chunk of posts on this old thread.

We are working on a story! My level designer has 3 years experience at Zombie studios in Seattle. And he is working on storyboards for our story now!! He is taking a break on level design till I finalize all of the features being added to the game.

I'll be sending you a PM to let you know I responded to this.

-MakeGamesHappen
(-John Mark)

LachieD voiced what I couldn't, about the lighting. There was something
off-putting about the darker lighting, but also in the lighter one, but I did
not know what exactly. Also, about WASD - as people already told, both
is fine, no need to over-complicate. Lots of games have WASD and R for
restart, I did not see a problem there.

-swooboo

*read*
Sorry I missed this post. I noticed I have a lot of posts on this thread that I did not reply to.
Pretty sure I did read this when you wrote it though. But I want to make sure you know your feedback is being taken into consideration.

If you have any questions/comments, feel free to PM me.

-MakeGamesHappen
(-John Mark)

Looking pretty good. I like how the graphics are more colorful now, the darkness in the original scheme was a bit annoying to look at after a while.

Sorry. I usually respond to everything. But noticed I did not respond to this.
Not sure how I missed so many replies to my news post.

How goes life?

-MakeGamesHappen
(-John Mark)