YYYYYY

Started by Robson, February 02, 2010, 09:35:15 PM

Previous topic - Next topic

Robson

Quote from: ecsdaowzwpjlvn on March 29, 2010, 10:40:53 PM
Quote from: Robson on March 29, 2010, 08:35:24 PM
* The player character will be Yvette:
Now if you'd name one of the levels "Listen very carefully, I shall say this only wence" my life would be complete.
Consider it done :viridian:

Shasharala


nathanel

Quote from: Robson on March 29, 2010, 10:58:29 PM
Quote from: ecsdaowzwpjlvn on March 29, 2010, 10:40:53 PM
Quote from: Robson on March 29, 2010, 08:35:24 PM
* The player character will be Yvette:
Now if you'd name one of the levels "Listen very carefully, I shall say this only wence" my life would be complete.
Consider it done :viridian:

ROTFL! :D:D:D

Robson

#78
A new version is available in the first post :viridian: It include all the changes from this post and these changes:

* Made lots of changes to the controller code, which should avoid accidental repeated actions.
* The game remembers if you last used the keyboard or controller, then gives you appropriate messages. For example, if you obtain a souvenir and used the keyboard last it will say "Press space to continue". If you used the controller last it would say "Press A, B, X or Y to continue".
* The playing area is bigger when the game is in fullscreen mode. It doesn't scale appropriately to the full window, but it's better at least.
* Tweaked spike collision a little bit.
* Changed the dissolved tile symbol from % to /. This uses a lot less pixels, so I think it'll give the impression that the tile is less stable than the regular platforms.
* Changed the game timer from 75 milliseconds to 85. This will reduce the amount of accidental moves and the real levels will be less open than the test levels, so I think it will feel appropriate.

From this point the first campaign will be the main focus. I'll limit my programming to fixing bugs in the engine.

I've been reading lots of articles about level design and playing lots of games that I think have excellent level deign. I'm going to continue doing that for a bit longer, then write myself a list of guidelines for the rooms in YYYYYY. I'm also planning to write an article about REDDER. I think rambling on about that game will give me a better understanding of level design.

Shasharala

I like the improvments!
In fact, I can't think of anything to say for you to change.  :viridian:

Terry

Just tried out the new build!

I'm still having a lot of trouble with bumping into spikes while falling and moving right in "The Harsh Mistress" room, but I think this might be an unavoidable part of how the game works, and I don't know if I'd change the behaviour because it's logical and correct. Hmm. Instead, if it were me I think I might be inclined to just structure the levels to avoid that sort of thing in future...

I had a weird bug the second time I played with the sound effect repeating over and over again while I played! Dunno what that was about.

Speaking of sound effects! Here's the complete set of sound effects from VVVVVV in wav format - though you might find them useful! :viridian:

Robson

Quote from: Terry on April 03, 2010, 01:56:40 PM
Just tried out the new build!

I'm still having a lot of trouble with bumping into spikes while falling and moving right in "The Harsh Mistress" room, but I think this might be an unavoidable part of how the game works, and I don't know if I'd change the behaviour because it's logical and correct. Hmm. Instead, if it were me I think I might be inclined to just structure the levels to avoid that sort of thing in future...
That sounds like the best way - I'll do that. Tweaking the spike collision is really difficult, especially going from VVVVVV to YYYYYY. For example:

@#
#
Y


If the player holds right:
- In VVVVVV I completely agree that holding right shouldn't kill the player, because the spikes are small.
- In YYYYYY the spikes are as big as the player :vermillion: so I think it makes sense to kill the player.

I'll change the code so that this situation wouldn't kill the player:

@##
##
  Y


Quote from: Terry on April 03, 2010, 01:56:40 PM
I had a weird bug the second time I played with the sound effect repeating over and over again while I played! Dunno what that was about.
That must have been annoying! I'll read the fmod documentation and figure out the correct way to do things.

Quote from: Terry on April 03, 2010, 01:56:40 PM
Speaking of sound effects! Here's the complete set of sound effects from VVVVVV in wav format - though you might find them useful! :viridian:
Wow! Thanks Terry! That's awesome :viridian: I would love to use these in YYYYYY :-*

cymon

I dare say you've written a more robust engine for this than I did for ASCIIpOrtal... an oversight I will remedy. Possibly even a more robust engine than the original game you're mimicking. This is a really great game.

My one complaint is the same complaint I had on YouTube: the rotation effect is "faked". Oh, I'm not saying it's not real rotation, I mean the rotation betrays the fact that you're not really using text here. I mean at least now the text characters don't rotate, but their position moves freely on the screen. If this were a text console then that wouldn't be possible and you'd have to move them on the grid available. Now this is just my personal opinion, but if you're doing text everything you're doing should be completely renderable in a traditional text console, so even if you're not really doing a text console you should never do anything to betray that illusion. Otherwise people will ask why you don't drop the charade and just use graphics. Again, that's just my 2 cents, tho.

Robson

Quote from: cymon on April 03, 2010, 03:14:15 PM
I dare say you've written a more robust engine for this than I did for ASCIIpOrtal... an oversight I will remedy. Possibly even a more robust engine than the original game you're mimicking. This is a really great game.
Thanks Cymon! Portal is one of my favourite commercial games and I really liked your version of it. Back in November I completed all fifty of the normal levels :viridian:

Quote from: cymon on April 03, 2010, 03:14:15 PM
My one complaint is the same complaint I had on YouTube: the rotation effect is "faked". Oh, I'm not saying it's not real rotation, I mean the rotation betrays the fact that you're not really using text here. I mean at least now the text characters don't rotate, but their position moves freely on the screen. If this were a text console then that wouldn't be possible and you'd have to move them on the grid available. Now this is just my personal opinion, but if you're doing text everything you're doing should be completely renderable in a traditional text console, so even if you're not really doing a text console you should never do anything to betray that illusion. Otherwise people will ask why you don't drop the charade and just use graphics. Again, that's just my 2 cents, tho.
I definitely get where you're coming from. The more I think about this, the more sense it makes.

I've modified the rotation code so that objects are moved to the nearest location on the grid. New version is in the first post. If people prefer the old style rotating, they can enable it in the settings.ini file.

I like using text because it gives a lot of precision. If I press left, I know exactly where I'll go. I also find it easier to judge distances, because I can think "that's seven squares away" rather than "that's about a quarter of the screen away". Using text allows me to show more information and be more readable (example). Roguelikes were my first experience with indie games, so they've been a big influence on me.

cymon

Wow, that new rotation is gloriously ugly. Good job.

I agree with you about the precision/distance thing with text, tho the same could apply to an tile based game. I just think folks are more apt to forgive a text based game than a tile based game when it comes to action.

Funny thing is your example, to me, is a bad one. I look at the tile based game on the left and feel like I'm taking the data in better than the text based one on the right. Now, granted you can fit more on the screen with text unless you really crank up the resolution, I tend to think that icons are more readable than abstract text characters.

So give me some insight to your moving platforms and how I could do them myself? That's on thing that I've been bugging on with ASCIIpOrtal.

Josiah Tobin

Oh wow, I just saw this-- looks fantastic! I haven't played it yet but I just watched the videos. Definitely has the VVVVVV feel, etc., but it really seems like its own thing too. Nicely done! :)

~Josiah

Robson

#86
I've been busy writing more stuff into YYYYYY! New version is in the first post

* Sounds - Massive thank you to Terry for these! They make a big difference to the game :viridian:
  * Sound effects are written in for death, souvenirs, bouncing wires, checkpoints and terminals.
  * All the sound code has been rewritten and I've upgraded to the latest version of fmod.
  * All the code to play music is written in, but there's no music yet.
  * The settings.ini file allows for volume changes and enabling/disabling of music and sound effects.

* Made some small tweaks to the level editor and added an 'undo' function. From now on the level editor and YYYYYY will be one download.

* Wrote a guide to creating campaigns.

* Previously each campaign could have a target time in seconds and the game length was measured in seconds. However, this could be problematic, because computers might run the game at slightly slower or faster speeds. So instead I'm now measuring the game length in turns. A turn is every time you have the chance to move, which is roughly every 85 milliseconds. This only affects the game if you want to speedrun the levels and you'd still do that in the exact same way as before, but now there's no disadvantage for people with older computers.

* Changes dissolved tiles to +, because / was getting confusing with the rotation tiles.

* Bounce wires and rotation tiles are now orange, so that everything white in the game is lethal.

I've also started my rambling about the level design in REDDER, so that should be ready later this week.

Quote from: Josiah Tobin on April 05, 2010, 08:05:25 PM
Oh wow, I just saw this-- looks fantastic! I haven't played it yet but I just watched the videos. Definitely has the VVVVVV feel, etc., but it really seems like its own thing too. Nicely done! :)

~Josiah
Thanks Josiah, glad you like it! I'm currently enjoying your music :viridian:

Quote from: cymon on April 05, 2010, 06:45:37 PM
Wow, that new rotation is gloriously ugly. Good job.
Thanks! ...I think :verdigris:

Quote from: cymon on April 05, 2010, 06:45:37 PM
I agree with you about the precision/distance thing with text, tho the same could apply to an tile based game. I just think folks are more apt to forgive a text based game than a tile based game when it comes to action.

Funny thing is your example, to me, is a bad one. I look at the tile based game on the left and feel like I'm taking the data in better than the text based one on the right. Now, granted you can fit more on the screen with text unless you really crank up the resolution, I tend to think that icons are more readable than abstract text characters.
Ah sorry, I should have explained that part. With roguelikes the text mode is super-confusing to begin with, but after a while it's faster to process than the tiles-mode. It helps that many roguelikes share the same symbols for items.

I'm happy to play games with text or graphics, but I've never had any interest in making graphics. So I tend to write games that are either text-based, use very simple graphics or I use someone else's tileset.

Quote from: cymon on April 05, 2010, 06:45:37 PM
So give me some insight to your moving platforms and how I could do them myself? That's on thing that I've been bugging on with ASCIIpOrtal.
Wouldn't it be brilliant if platforms could go into portals and out of another portal? :viridian:

Here's how I do the platforms in YYYYYY:

When the room is loaded:
1. In the room files the platforms are stored as lines of Ys or ys in the starting location for that platform. Ys go right or down. ys go left or up.
2. The game reads the room files and stops when it finds a Y or y. This is designated as the starting tile for that platform. The game then checks to the left and down, to see if this platform is horizontal or vertical. The game then finds all the other tiles for that platform and gives that entire platform a unique number. It then continues checking for platforms from the next tile (ignoring any tiles that are already used to make platforms).

When the room is being played:
1. The game loops through each platform and checks if it's horizontal/vertical and which direction it's going in. If the player is in the position that the platform will move to, the game checks to see if they can be moved to the next free space. If yes, they are moved. If no, they are crushed.
2. If the tile to move into is not free (for example, there's a wall in the way or another platform), the direction of the platform changes from left to right, up to down, etc. If the direction changes we go back to step 1 and look for the next platform.
3. The game loops through each tile of the platform and moves it left/right/down/up as appropriate. With each movement the game checks to see if the player is on that tile. If yes, the player is moved one space as well. Potentially this could move the player into a spike, so they would be killed.

That's the simple version! There's a bunch of other stuff going, like the word enemies use all the same code as the platforms, except touching them results in immediate death. Platforms can go off one side of the screen and reappear on the other side, which is a bit tricky, because half the platform is on the left side of the screen and half is on the right. Word enemies have letters coloured in red if they are responsible for a player death. By far the most complicated feature is rotating rooms with platforms. That was super-difficult!!

All the code for handling platforms and word enemies is located in the modWords.bas file. Hopefully my explanation makes sense, but you're very welcome to ask any questions.

Shasharala

If it was possible to make that guide for writing campaigns a PDF and put it in with the zipped game folder it would be awesome.  Maybe not a PDF but something where we can still see the images and all that such.

Robson

#88
Quote from: Shasharala on April 08, 2010, 04:33:16 AM
If it was possible to make that guide for writing campaigns a PDF and put it in with the zipped game folder it would be awesome.  Maybe not a PDF but something where we can still see the images and all that such.
Sure, that would be okay! I've made a few improvements to the level editor, so I'll update the guide and upload the new level editor soon. Probably that will be Friday evening (GMT).

Edit on Friday evening: Had a whole bunch of computer problems :victoria: but luckily they are all sorted now. Yay for backups! Unfortunately this means the update will be a bit late, but I'll most likely get it done on Saturday.

Shasharala

Boo for computer problems!  :victoria: