Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
Gamesfreak13563
Jan 28, 2010

Get ready for a SHAQ DOWN!


Phantom Block is a greenlit, independently-developed platformer game for PC, currently in alpha release. Your objective is to guide Boomer, a little red square-guy, across different levels to recollect his scattered treasure. Using your mouse cursor, you can change the landscape around Boomer so that it's easier for him to progress, by making some tiles intangible to making some sticky to even creating magnets and reversing gravity. You can play a demo for free on the game's website.

I forgot to mention: I'm the game's lead developer, as well as composer.

But, before you start throwing full wine bottles at your computer screen accuse me of shilling, this let's play's a little different: It's a little more development log then actual Let's Play. You'll get a look at cool in-development stuff, see cut and redone levels, songs in progress, trivia, the inner workings and discussions of how some of the code works and more! Plus, possibly free Steam keys. Logs will be in a Q&A format. Feel free to ask your own questions about anything!

Logs:
Log 1 - Where to Start
Log 2 - On Algorithms
Log 3 - Springs and Themes
Log 4 - Dynamic Jumping
Log 5 - Inheritance
Log 6 - Flying Balls
Log 7 - A Collapsing Castle
Log 8 - Woods Fulla Ghosts
Log 9 - Invisible Blocks
Announcement - New Demo
Log 10 - All Together, Now
Log 11 - Arbitrary Moving Platforms
Log 12 - Speedy Sands
Log 13 - !#$@ing Magnets

Gamesfreak13563 fucked around with this message at 05:27 on Jan 27, 2016

Adbot
ADBOT LOVES YOU

Gamesfreak13563
Jan 28, 2010

Get ready for a SHAQ DOWN!
== Log 001: Where to Start ==


Gameplay Video

We'll start at the beginning, obviously! There's a lot to talk about in this first video, but I'll keep things a bit brief to start out with. For clarity, I left in the unsightly mouse cursor. In following videos, it'll be removed, but understand that it's still there. At some point, I'll replace it with a custom mouse cursor, but the asset hasn't been made yet - I've been bouncing around ideas to make the cursor a separate character as opposed to some abstract UI element, whom Boomer meets at the beginning of his quest. I'm not sure whether or not to finalize that design decision, though. I don't want unnecessary details to bog down the story, but at the same time I need to build something resembling a world.

• What engine is this programmed in?
The game is programmed in GMS - Game Maker: Studio. Although Game Maker might conjure up images of terribly produced baby's-first-game projects and Click the Clown clones, it's a decent tool in its own right. Lots of good games have come from it, too - Risk of Rain and Undertale come to mind. I honestly think it's the best starter's choice for 2D game development, as opposed to Unity or other more complex engines.

• What happens in the title screen?
Lots, actually. Before we even get to the title screen, we start in an initialization room that sets up the global variables and particle effects. This room is called rm_init in the IDE. There is nothing in that room except for this code:

code:
// Set up the display scaling.
display_set_gui_size(320, 240);
window_set_min_width(320);
window_set_min_height(240);

init_themes();
init_particles();
init_controls();
init_levels();
init_cheats();
init_steam();

room_goto(rm_title);
init_themes() is a function that initializes sets of resources for themes. In the editor, each level is functionally indistinguishable, but in the game are given a specific theme when loaded, which affects the background, the looks of some tiles, and the music playing. On the title screen, we loop through the themes, using surfaces to slowly fade between visual styles. init_particles() initializes the particles for the particle effects; every function after that is simple save and load stuff before we go to the title screen.

The title screen room, rm_title, is also actually the level select. Once we've determined the player's pressed enter, we deactivate the title object and load in the level select objects. Most of the animation is taken care of using Game Maker's timers and a draw function.

• What is the music made in?
The music is made in a program called OrgMaker 2. It's a free music-creation tool programmed by Studio Pixel; it's the same soundfont as used in Cave Story. A friend of mine is working in rearranging the music - he's also the guy who does the Cavern Kings soundtrack. Take a listen in the differences:

Boomer's Big Finale (Cloud Theme)
Boomer's Big Finale (Cloud Theme) Rearrangement

• How did you design the first level?
This is actually the third redesign of the first level. My original first level is ancient, representing my initial proof of concept. In retrospect, my own artwork looks like garbage there. The second iteration of the level required backtracking. I wasn't a big fan of it, so I redesigned it a second time.

I tried to not give the player too much information in text, outside of some basic control stuff. The first non-obvious thing occurs when the player falls into the pit with the Ghost Block powerup - I intentionally made it impossible to escape the pit without the Ghost Block being used, and I also made it impossible to progress due to the spikes. This forces the player to learn the main mechanic. If the player is observant enough, they can backtrack to get the three coins that they noticed they couldn't get to earlier, and use the Ghost Block to speed up the return trip.

I also intentionally didn't tell the player that they can ghost through nearly any block - this forces them to try out new stuff to get past the spikes, as before they were only forced to go through the yellow blocks. The gray blocks at the end of the level you can't change - so again, the player has to go under them instead of through them. I think this is an interesting way to impart knowledge onto the player without being too hand-holdy.

• What are the blue guys' names?
They're called Ballums.

• Ballums?
One day I hope to make an orange variant with black stripes, so I can call those guys Basketballums.

• Your question here:
Ask any question, and I'll answer! Don't expect me to share too much source code, though - gotta keep some of it secret, at least.

Geemer
Nov 4, 2010



The game looks like a fun little puzzle-platformer. I'll definitely follow this thread to see how it develops!
It's always neat to see a dev play and talk about their creation.

Gamesfreak13563
Jan 28, 2010

Get ready for a SHAQ DOWN!

Geemer posted:

The game looks like a fun little puzzle-platformer. I'll definitely follow this thread to see how it develops!
It's always neat to see a dev play and talk about their creation.

Yeah, it's a good motivator to get working on it again, too.

GenderSelectScreen
Mar 7, 2010

I DON'T KNOW EITHER DON'T ASK ME
College Slice
I got a real understanding of what you are trying to convey to the player in that first level. Good job on it. I take it there's a tutorial level for each ability?

Gamesfreak13563
Jan 28, 2010

Get ready for a SHAQ DOWN!

Hitlers Gay Secret posted:

I got a real understanding of what you are trying to convey to the player in that first level. Good job on it. I take it there's a tutorial level for each ability?

Yeah. Each ability gets a tutorial level. Some other gameplay mechanics get a tutorial level too; like scrolling levels and explosive boxes.

FractalSandwich
Apr 25, 2010

Gamesfreak13563 posted:

• What engine is this programmed in?
The game is programmed in GMS - Game Maker: Studio. Although Game Maker might conjure up images of terribly produced baby's-first-game projects and Click the Clown clones, it's a decent tool in its own right. Lots of good games have come from it, too - Risk of Rain and Undertale come to mind. I honestly think it's the best starter's choice for 2D game development, as opposed to Unity or other more complex engines.
Honestly, I think a lot of the ill will comes from people confusing it with RPG Maker, which is a completely different tool from a completely different company that is legitimately awful. Even then, I've seen people make good use of it - by cutting out all the RPG elements and making noncombat games.

Valgaav
Feb 21, 2012

FractalSandwich posted:

Honestly, I think a lot of the ill will comes from people confusing it with RPG Maker, which is a completely different tool from a completely different company that is legitimately awful. Even then, I've seen people make good use of it - by cutting out all the RPG elements and making noncombat games.

I'd be interested in hearing more about this, actually. A friend of mine is trying to make his own game, and he's been using RPGmaker so far.

Mraagvpeine
Nov 4, 2014

I won this avatar on a technicality this thick.
If you ghost all the blocks underneath you, would you fall off the screen? And can enemies follow you through ghost blocks?

Endorph
Jul 22, 2009

FractalSandwich posted:

Honestly, I think a lot of the ill will comes from people confusing it with RPG Maker, which is a completely different tool from a completely different company that is legitimately awful. Even then, I've seen people make good use of it - by cutting out all the RPG elements and making noncombat games.
there are good RPGmaker games that are just RPGs, like Exit Fate. That said you do have to pretty much cut out 90% of the base engine and make your own thing.

Aerdan
Apr 14, 2012

Not Dennis NEDry
I think this first stage captures the same basic nudge that the Super Mario franchise tries to go for in their first stages. What was your inspiration for getting started on this project in the first place?

FractalSandwich
Apr 25, 2010

Valgaav posted:

I'd be interested in hearing more about this, actually. A friend of mine is trying to make his own game, and he's been using RPGmaker so far.
They just came out with a new version of RPG Maker that might be better, but after my experience with the previous version, I'm not interested dropping $80 on it to find out.

The way it's designed, it very strongly encourages you to make a very particular kind of game. More than just providing a framework to make it easier to implement an RPG, it really oversteps its bounds and comes with a lot of design decisions made for you, such that if you want to innovate or push the genre forward in any way in terms of systems and mechanics (or really even bring it up to 2015's baseline standards) you have to redo everything yourself anyway - and making any changes in code is completely undocumented and unsupported, if I'm not mistaken.

If you're a hobbyist with no programming background and all you want to do is make a lovely imitation of Final Fantasy 6, RPG Maker will probably do what you want. But if you're a hobbyist with no programming background and you want to make a game that's actually good, you're much better off using Game Maker and implementing everything the way you want it to begin with. It won't be any more work in the long run. If you want to make your own games, you need to learn to program sooner or later, and GML is real easy to work with, even for a beginner.

LaCelestina
Sep 28, 2015

Grimey Drawer
I kind of like the idea of making the cursor be a Guest/assistant to Boomer. That can only lead to good things in my opinion. What if Guest gets kidnapped? :ohdear: Or it gets sick and you can only erase X amount of blocks? Speaking of, is the number of phantom-able blocks unlimited? Ok, enough of my curiosity. I really enjoyed this beginning and am looking forward to more. Good work!

Gamesfreak13563
Jan 28, 2010

Get ready for a SHAQ DOWN!

Mraagvpeine posted:

If you ghost all the blocks underneath you, would you fall off the screen? And can enemies follow you through ghost blocks?

Yes to both. Falling off the screen is an instant death.

Aerdan posted:

I think this first stage captures the same basic nudge that the Super Mario franchise tries to go for in their first stages. What was your inspiration for getting started on this project in the first place?

Actually I don't remember now. I think it was Terraria or something to that effect, where the player had a real control over the environment.

LaCelestina posted:

I kind of like the idea of making the cursor be a Guest/assistant to Boomer. That can only lead to good things in my opinion. What if Guest gets kidnapped? :ohdear: Or it gets sick and you can only erase X amount of blocks? Speaking of, is the number of phantom-able blocks unlimited? Ok, enough of my curiosity. I really enjoyed this beginning and am looking forward to more. Good work!

The amount of changeable blocks is unlimited for most types. For the Platform and Gravity blocks, you're limited to six at a time, and for the Box Block, you're limited to one at a time.

Blastinus
Feb 28, 2010

Time to try my luck
:rolldice:
Crap.
I love the idea of using collectibles as a way to teach players how the features work. I caught on to the solution for those last two coins just as you solved it.

Obviously, falling off the stage is instant death, but what about if you un-ghost a block while Boomer's standing in it? Does that also kill him?

Obligatum VII
May 5, 2014

Haunting you until no 8 arrives.
I like the concept behind the gameplay; I'll certainly be watching this thread with interest. I always wanted to see a platformer with lots of environment manipulation (independent of the character) as its thing.

klafbang
Nov 18, 2009
Clapping Larry
This looks a bit more polished than some of the marvelous Game Maker titles Lowtax played thru...

This game makes me think of Lemmings. A cool thing from Lemmings you might be able to incorporate is doing the same level with different tools. It starts out giving you plenty of the exact tool you need to complete a level (tools are limited in Lemmings). Once you've got a feeling for the tools, the difficulty is increased by giving you plenty of all tools – you have to learn to pick which tool to use yourself. Finally, it gives you just enough of the tool you need, and finally not enough of the tool you need, so you have to find an alternative solution. Not all levels come in all versions, but I find the mechanic of having to rethink how to solve a level with different tools interesting.

Another thing you may or may not already have, is an auto-runner component. In addition to automatically scrolling, Boomer also runs automatically, so you have to ensure there's safe passage. You might not even be under time pressure if you can block off Boomer early on, prepare the path and then ghost block him out.

You should probably prepare for the future with an iOS version ample with in-app purchases :)

Captain Bravo
Feb 16, 2011

An Emergency Shitpost
has been deployed...

...but experts warn it is
just a drop in the ocean.
I think he's probably already got something like that:

Gamesfreak13563 posted:

Some other gameplay mechanics get a tutorial level too; like scrolling levels and explosive boxes.

Gamesfreak13563
Jan 28, 2010

Get ready for a SHAQ DOWN!
== Log 002: On Algorithms ==


Gameplay Video

Today, we take a look at the second level, which introduces crates to the player. You can push or place boxes onto switches to make lockblocks intangible, but only if all switches of the same color are pushed down. The game supports 16,777,216 different colors of switches in the same level.

• How do the lockblocks work?
I have a main object obj_game that runs most of the game logic. obj_game holds a dictionary - a mapping of colors to arrays of switches. In other words, I can 'look up' and get a list of all of the switches that have color color. Finding all of the switches is not computationally difficult. The problem comes with the lockblock objects: Game Maker has what's called a 'step event.' You can have objects run code every frame -- step -- of the game. My way of checking if the lockblocks are intangible is for each obj_lockblock to run through the list of switches and stop if it finds a switch that isn't activated. Here's the relevant code in the step event:

code:
var activated = true;
for (var j = 0; j < array_length_1d(switch_list) && activated; j++) {
    activated = switch_list[j].activated;
}
Programmers do something called asymptotic run time analysis to find the run-time of a certain algorithm. Essentially, we find how fast the algorithm will run as a function of the size of the inputs. We notate that using what's called big-O notation. For example, say you wanted to find how many instances of the number '0' are in a list. If you wanted to do that, you would necessarily have to check every number in the list - so the big-O runtime of finding that is O(n), where n is the size of the list. This is called a linear-time algorithm.

Let's apply asymptotic run time analysis to the algorithm of finding if all the switches of a color are depressed. Let's call the number of lockblocks of a color l and the number of switches of a color s. In my algorithm, each lockblock goes through the list of switches. In the worst-case scenario, where all the switches are depressed, each lockblock will go through the entire list of switches. The runtime is O(ls). This is a polynomial-time algorithm. Can we do better? Can we knock it down to linear time?

The answer is yes. Instead of having each lockblock compute if all the switches are depressed, let's have obj_game do it once, and then store the result in another dictionary. Then, each lockblock can simply look up whether or not it should be intangible. We'll define another dictionary, switch_truth, in obj_game for this purpose.

In obj_game, Begin Step:
code:
var size = ds_map_size(switches) ;			// Find how many different colors of switches there are.
var color = ds_map_find_first(switches);		// Start by picking a switch color.
for (var i = 0; i < size; i++;) {
    var value = ds_map_find_value(switches, color)	// Get a list of all of the switches of that color.
    var activated = true;
    for (var j = 0; j < array_length_1d(value) && activated; j++) {
        activated = value[j].activated;			// Check to see if all of the switches are activated.
    }
    ds_map_replace(switch_truth, color, activated);	// Write down the answer in switch_truth.
    color = ds_map_find_next(switches, color)		// Go to the next switch color.
}
In obj_lockblock, Step:
code:
var activated = ds_map_find_value(obj_game.switch_truth, col);	// Read the value.
Now we'll see if we've made a difference. We go through the list of all switches and write down, for each color, the activated status. Then, we take that status and apply it for each lockblock. But since we're not redoing the check on switches for each lockblock anymore, our running time is much better: it is O(l + s), a linear-time algorithm.

• Why do you teach the player to trap the Ballums on the switch?
This comes up later in the game, when you have more tools to control the movement of the Ballums. Lots of puzzles will revolve around trapping Ballums on switches so that you can proceed, and since they move independent of the player character, it's a time-based way to make switch-puzzles.


Blastinus posted:

I love the idea of using collectibles as a way to teach players how the features work. I caught on to the solution for those last two coins just as you solved it.

Obviously, falling off the stage is instant death, but what about if you un-ghost a block while Boomer's standing in it? Does that also kill him?
It is impossible to revert a transparent block Boomer is standing in; the game just doesn't allow you to do it. Likewise, if you're inside a lockblock and a switch is deactivated, the block remains intangible until Boomer moves out of the space. This is also true for Ballums or any other solid object.

Gamesfreak13563 fucked around with this message at 18:34 on Nov 1, 2015

GenderSelectScreen
Mar 7, 2010

I DON'T KNOW EITHER DON'T ASK ME
College Slice
I'm really enjoying this. You're skills at teaching both gameplay and game-making mechanics are spot on.

Blastinus
Feb 28, 2010

Time to try my luck
:rolldice:
Crap.
I look forward to seeing what kinds of puzzles you make out of Boomer's ability to hold crates on his head. Can he jump while holding a crate?

Carbon dioxide
Oct 9, 2012

Very interesting. I'm learning programming and your example code and explanations are actually quite helpful.

Gamesfreak13563 posted:

It is impossible to revert a transparent block Boomer is standing in; the game just doesn't allow you to do it. Likewise, if you're inside a lockblock and a switch is deactivated, the block remains intangible until Boomer moves out of the space. This is also true for Ballums or any other solid object.
If he's in the middle of a big square of lockblocks and the switch gets deactivated, will the blocks around him become solid, trapping Boomer forever?

Big Scary Owl
Oct 1, 2014

by Fluffdaddy
The feel of the game kinda reminds me of Eversion a bit, the cute characters and colors and the physics.

Hitlers Gay Secret posted:

I'm really enjoying this. You're skills at teaching both gameplay and game-making mechanics are spot on.

Yeah this is a really cool idea for a thread. It's kinda like a making-of video that you would get in some games, but way more in depth. Also, you get to learn new things and as someone who is interested in game design this is a great thread.

Gamesfreak do you have experience with other engines? Like, say, Construct? I've tried to use Game Maker before but I find its "flow" a bit strange to get used to, as I first started dabbling with programs like The Games Factory and Multimedia Fusion.

Speaking of game engines, if there's anyone here interested in one, I really recommend you check out GDevelop. It's an open-source program with an interface similar to Construct 2 and The Games Factory. You can export native games to Windows and Linux, as well as make HTML5 games and export them to iOS or Android.

Gamesfreak13563
Jan 28, 2010

Get ready for a SHAQ DOWN!

Blastinus posted:

I look forward to seeing what kinds of puzzles you make out of Boomer's ability to hold crates on his head. Can he jump while holding a crate?
Boomer can jump with crates, yes, but this wasn't always the case.

Carbon dioxide posted:

If he's in the middle of a big square of lockblocks and the switch gets deactivated, will the blocks around him become solid, trapping Boomer forever?
Yes, which is why I generally keep lockblocks only two wide.

FractalSandwich
Apr 25, 2010
I see you're an actual computer scientist. I come from the Tom Francis school of game programmers, where I have no actual training and write all my code the quick and dirty way and just go with the first thing that works, rather than do it the technically correct way.

Coolguye
Jul 6, 2011

Required by his programming!

Gamesfreak13563 posted:

But, before you start throwing full wine bottles at your computer screen accuse me of shilling,
if it is ever a thing where people here actively dislike a game's developer showing off their heart's work of hundreds of hours, i am burning this place to the ground.

godspeed.

Gamesfreak13563
Jan 28, 2010

Get ready for a SHAQ DOWN!

FractalSandwich posted:

I see you're an actual computer scientist. I come from the Tom Francis school of game programmers, where I have no actual training and write all my code the quick and dirty way and just go with the first thing that works, rather than do it the technically correct way.

Premature optimization is the death of projects. Write things quick and dirty, then go back and fix it: that's how I did it with the switches.

Sally
Jan 9, 2007


Don't post Small Dash!
Playing the demo--noticed that jumping up underneath spikes in Boomer's Beginning kills you. Is that going to be patched, considering the bottom of spikes aren't spikes?

Also, noticed that you don't lose coins if you die. That's awesome and saves on back-tracking for poorly timed jumps.

Regarding Crate Hill: props to the respawning block in the second level. I tried throwing it off the cliff just to see if I could get myself stuck.

EDIT: for spelling and grammar

Sally fucked around with this message at 05:17 on Nov 2, 2015

Araxxor
Oct 20, 2012

My disdain for you all knows no bounds.
I tried out the demo, and yeah. I really like how you've handled the level design. Reading about how you've handled things within the code is interesting as well. I had a few issues with some of the mechanics in later levels, but I might have been doing things wrong there. I'll wait until logs for those levels to come out to talk about them.

How did you decide what the physics for the game were gonna be like? Did you just adjust things until they felt good, or what?

Gamesfreak13563
Jan 28, 2010

Get ready for a SHAQ DOWN!
== Log 003: Springs and Themes ==


Gameplay Video

Let's look at the third level, Spring Meadows. This aptly-named level introduces springs and the Spring Block powerup to the player. We can see now that there's more to changing blocks then just making them intangible. In the interest of keeping things simple for the tutorial, we only have the Spring Block in this level - we don't start combining different powerups until around level seven.

• How do the themes work?
Themes are simple: at the beginning of the level, I store the current theme in a global variable called THEME. This lets me access the theme in constant time from any object by simply referencing it. Each theme is just a number, really; but since keeping track of magic numbers is difficult, I've implemented a few of what's called macros.

People familiar with macros in other language might better recognize them as the #define directive:
code:
#define STAIRS 5

int main() {
	printf("%i", STAIRS+STAIRS) // "10"
	return 0;
}
In my code, we use these constants:
code:
THEME_MOUNTAIN = 5
THEME_CLOUD    = 4
THEME_CASTLE   = 3
THEME_DESERT   = 2
THEME_FOREST   = 1
THEME_GRASS    = 0
So if I wanted to set the theme to be the forest theme, instead of doing THEME = 1, I can instead do THEME = THEME_FOREST, which makes more sense and is easier to read. What do we do with this number, now that it's in memory?

Sprites in GM:S can have animation frames: I have animation frames for the ground, yellow blocks, and gray blocks. But you'll notice they're not switching constantly; that's because I have their image_speed, or framerate, set to 0. When I display the tile, I simply add on a multiplier based on the current theme to the frame - that way, we can easily change the theme and the rest of the game will switch with it. See here:



• The music is different.
Yes, the music is different! Each theme has its own...theme. This music was actually meant to be the first level for a shmup type of game I was thinking about making for a game jam, but I repurposed it for the forest theme.

Gamesfreak13563 fucked around with this message at 17:05 on Nov 2, 2015

Aerdan
Apr 14, 2012

Not Dennis NEDry
I notice the flag is on a three-tile platform; it's kind of weird that our hero doesn't fall off when he walks off stage (since there isn't a fourth block on the platform that would support him as he walks out of the level).

Does GML not support enums?

Blastinus
Feb 28, 2010

Time to try my luck
:rolldice:
Crap.

Aerdan posted:

I notice the flag is on a three-tile platform; it's kind of weird that our hero doesn't fall off when he walks off stage (since there isn't a fourth block on the platform that would support him as he walks out of the level).

I'm sure there's a platform for him to land on just out of frame.

I like how quite a few of the puzzles we've seen so far have involved manipulating Ballums somehow. They're less enemies and more brainless helpers that you have to escort to their destination.

berryjon
May 30, 2011

I have an invasion to go to.

Blastinus posted:

I'm sure there's a platform for him to land on just out of frame.

Or once the Flag is gotten, the game moves to the end-of-level routines, and stops checking for such pesky things as "Has this thing left the level space?"

Gamesfreak13563
Jan 28, 2010

Get ready for a SHAQ DOWN!

Aerdan posted:

I notice the flag is on a three-tile platform; it's kind of weird that our hero doesn't fall off when he walks off stage (since there isn't a fourth block on the platform that would support him as he walks out of the level).

Does GML not support enums?
I think it does, but I don't use it. I suppose it's more technically correct to use an enum in this case.


berryjon posted:

Or once the Flag is gotten, the game moves to the end-of-level routines, and stops checking for such pesky things as "Has this thing left the level space?"
This is the truth! No Kaizo Traps, the game stops checking for death after a victory.

Gamesfreak13563 fucked around with this message at 20:12 on Nov 2, 2015

senrath
Nov 4, 2009

Look Professor, a destruct switch!


I can confirm that GML has supported enums since sometime last year, although I think their performance is pretty much identical to macros.

Unreal_One
Aug 18, 2010

Now you know how I don't like to use the sit-down gun, but this morning we just don't have time for mucking about.

Blastinus posted:

I like how quite a few of the puzzles we've seen so far have involved manipulating Ballums somehow. They're less enemies and more brainless helpers that you have to escort to their destination.

How heavily was this bit inspired by Braid, or is it more of a case of drawing from the same reference pools of earlier puzzle platformers?

Choco1980
Feb 22, 2013

I fell in love with a Video Nasty
Oh cool, the thread went live this weekend. I'm definitely bookmarking this, as it looks like a super fun game. I'm a huge fan of retro-style platformers and the like. I know nothing about code, so I just skim past the programming talk, but I've done enough time studying 8- and 16-bit era games to realize that what separates a good platformer from a great platformer is the way it teaches you mechanics.

Super Mario Bros 1 is probably the ultimate in elegance for this, with World 1-1 holding your hand without feeling like it is the whole time, It encourages you to jump, hit bricks, explore the Y axis of the level, find hidden passages, learn how goombas and koopas and all the powerups work, and it does it all with zero difficulty. Show, don't tell is the name of the game. With Super Mario World, things had gotten sophisticated enough that they couldn't get away with that for everything. They still teach you right off the bat a lot of things by dropping you in an easy to experiment area to play with stuff, but they had to also add the occasional signposts, which are smartly ignorable, along the way.

I really think why this game is shining so far is that you do such a good job of that concept. You really nail the hybrid of easily ignored quick text for mechanical instructions, instead then leaving the level to follow a structure of "introduce new tool, make small illustrative puzzle to show full potential of tool, end with semi-optional puzzle that requires realizing exactly what the tool does". It's simple, and it's complete, and you know everything you need to by the end of each level.

Also, I'm going to nth the idea of doing something fun and possibly diegetic with the cursor. Making it a sidekick or like, a little sister or brother is all you really need to do, this is a game light on story, so you don't need to worry too much about the design.

I can't wait to see where this goes!

GenderSelectScreen
Mar 7, 2010

I DON'T KNOW EITHER DON'T ASK ME
College Slice
It doesn't have to be a character per say, but giving the cursor its own sprite will help with noticing it when you need to start using your abilities.

Think about how everyone complains about Armagrog (?)in the fact that it uses the default cursor. yes I know the game has more problems than just that, we're not here to discuss that.

Geemer
Nov 4, 2010



I'll chime in again and repeat what others have said: I love games that teach mechanics by showing them instead of putting a dialog box in your face.

The prime example of this for me is Super Metroid's Shine Spark and Wall Jump. You just end up trapped in a place with a bunch of animals showing off how to do it and you gotta figure it out yourself.
You force players to use the new tools to progress in an easy to understand exemplary puzzle.

I'm really interested in seeing what you will do with later puzzles, when tools start to be combined.

On another note: This game looks like it'd be a great candidate for having a level editor where people can make (and share) their own levels. Do you have any plans for such a feature?

Adbot
ADBOT LOVES YOU

GenderSelectScreen
Mar 7, 2010

I DON'T KNOW EITHER DON'T ASK ME
College Slice

Geemer posted:

The prime example of this for me is Super Metroid's Wall Jump. You just end up trapped in a place with a bunch of animals showing off how to do it and you gotta figure it out yourself.

Or, you quit the game and make note to never go in that direction. Wall Jumping in Super Metroid still makes no sense to me and that was not a good way to teach a mechanic. Mostly because that has portions of the mechanic that can't be explained by showing (in order to actually wall jump, you need to first press against the wall and then hold the opposite direction and press jump again).

  • Locked thread