Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Robson

Pages: 1 ... 3 4 [5] 6 7 8
« on: April 19, 2010, 12:26:43 am »
Wow! I wasn't expecting anyone to make a whole campaign so soon - this is awesome :-*

I would love to play this, but unfortunately I have to go to sleep, so I can be up for work tomorrow :victoria: I'm going to play this as soon as I get home! :viridian:

I had a quick look at the layout file - if you convert all the letters to lowercase, it will work:


You probably want the warp in room c to be

#WARP=3 1 2 18

This would take you to room D, near the terminal. The 3 is the layout column (it begins with 0, rather than 1) and the 1 is the layout row (also starts at 0) Then the 2 and 18 are the X and Y within the room. I don't have warps written into the settings window of the level editor yet. Sorry about that, I'll make sure it gets added.

I can't believe I have to go to sleep - I want to play this!!!

« on: April 17, 2010, 11:11:37 pm »
Hi, I gave it a try, keep it up :) .. and:
- idea: how about changing the player char @ to pqdb for left/right and upside-down clarity?
- crash: Subscript out of range error if you flick back and forth between Test levels rooms 1 and "Spikes"
- bug: if a white deadly tile (spike, word, ..) kills you, it stays red when you're respawned
Thanks for your feedback Mika!

- idea - Cool idea! In the official campaign I'm avoiding any one-height corridors, but I think this would be useful anyway. I'll add it into the settings.ini file, so people can use pqdb if they'd like to.
- crash - Whoops! Well spotted. I'll make sure that's fixed for the next version.
- bug - That's a feature :viridian: I thought it would be nice to paint the spikes red, so the player can see where they've died. In a future version it'll be possible to export a full map of the campaign when you complete it, so you can look back and see all the places where you died. Here's an example.

« on: April 17, 2010, 09:33:07 pm »
Thanks reDo - I hope you like the finished game :viridian:

I've made lots of progress on the first campaign and the engine. A new development version has been released, which has:


A video is automatically saved when you win/quit/lose a campaign. Video files are very tiny, so don't worry about them taking up lots of space. Here's a "how to" guide:

Play a video - Select the campaign from the menu, then select the "Play Video" menu item. All the videos for that campaign will be displayed, with details (i.e. win/quit/lose, turns, deaths, souvenirs, etc).
Play faster or slower - Press left to play the video slower. Press right to play the video faster. Press your invert gravity key to return to normal speed.
Share a video - Go to the campaign folder and open the video file, which will end with y6r. Copy the contents of the file and then paste it into an e-mail/forum/etc. For example:

y6r:Video 2 levels::
Win, Grade A, 0/0 souvenirs, 1 deaths, 537 turns:

Play a video from an e-mail/forum/etc - Copy the video data, then open YYYYYY and press V. The video will be saved to a file, so you can replay it as much as you like. To replay it, go to the campaign menu, then select the "Play Video" menu item. The video will be in the list, with "(pasted)" after the name.
Disable recording - If you don't want to save videos of your games, open the settings.ini file and change the videos>record setting to false.
Delete a video - Open the campaign folder and delete the video file, which will end with y6r.

With future updates I'll make some of these things more user-friendly.

Super Cellulatron

It's the YYYYYY demake of the Super Gravitron! I've tried to make it very different to the super gravitron, whilst still maintaining the same fast-pace. Currently it doesn't have a quick way to restart, but I'll sort that in a future version.

Campaign Unlocks

After completing a campaign, you can now play it in permadeath mode and/or vertically flipped mode.

Smaller stuff

- I've split the pause screen into a pause screen and a quit screen. Press escape to go to the quit screen. Press enter/m/p to access the pause screen. This should avoid accidental quitting. Pressing the X button on the window now takes you to the quit screen, instead of immediately closing with no warning.

- Outside of the playing area is now dark grey, to make it easier to see the boundaries of the playing area.

- If you hold left/right, then dismiss the map or souvenir/terminal messages, you'll immediately move left/right.

- Room warps no longer work as checkpoints.

- Warp characters are now static.

- Minimum room size reduced from 14x14 to 2x2 (because 1x1 wouldn't make sense).

- Room filenames can now be anything, so there's no longer a maximum of ~75 rooms per campaign. You could have hundreds, if you wanted to.

« on: April 12, 2010, 11:17:49 pm »
My Redder Rambling is done!

Thanks for your comments guys. I'm glad you like the teleporters :viridian:

I've been separating my time between the engine and writing the first campaign. I originally planned to have dissolving tiles as the main theme for the campaign, then use all the other game features on one or two rooms with the dissolving tiles. However, after reading loads of design guidelines, I've decided not to do that. This is because the constant introduction of new game features would make the entire campaign feel like a tutorial. I want to introduce a very small number of game features to the player, then explore those throughout the entire campaign. This should also give it more of a VVVVVV feel.

So I've decided to have a major theme of dissolving tiles and a minor theme of word enemies. The campaign will be 16 rooms in a 4x4 square.

Most of my engine time has been devoted to videos. A video is saved when you complete or quit a campaign, which you can replay and share with people. Video files are tiny, because I only record the keystrokes and they are compressed. For example, here's a one-minute video:

The compression is going to vary per video, but this was 156 bytes. I'll probably include the campaign name at the start of the video, which would allow people to post the contents of a video file into a forum/e-mail/etc. Someone else could come along, copy the video string, open the game, then press a key to play the video (if they have the campaign).

I've also added a permadeath mode and a vertically-flipped mode, which are unlocked when a campaign is completed. I'll release a new version of the game when the videos are done.

Teleporters work fine. I don't see a reason for their letters changing; the teleporters never change gameplay-wise, and the changing gives an impression of non-staticness. I also don't think the short-distance ones should be checkpoints - that could disrupt more complex puzzles, or make them too easy.

The new dissolvers are definitely an improvement.

Also, could you make it so that when you are holding a direction button in a terminal/souvenir prompt and press space, you start moving? In the current version, you have to start holding the move key after exiting the terminal, which is bothersome when going for speed.
Thanks for your feedback! I'll get all these things sorted. I'll probably have slightly different symbols for each colour of teleports, so that text screenshots are understandable.

The teleporters work just fine.

Good job.  You've put a lot of work into this game!
What's left to do?
It feels like YYYYYY is all I do nowadays! I'm really happy with the progress though and I'd do it all again :viridian: Over the weekend I hit 4040 lines of code, which makes this my biggest game.

It's difficult to know what's left. At the beginning I had my big list of essential things todo, but now I mostly write things when they randomly pop into my head. I'd very roughly say the stuff left to do is:

- Finish videos Done
- Do The Brass's suggestions Done
- When the player finishes a campaign, give an option to save a map of the explored areas. Like this Done
- Investigate horizontally flipping maps
- Have a separate pause screen and quit screen Done
- Expand the number of possible rooms per campaign from 61 to infinity Done
- Possibly add a save function Done

- Finish the first campaign
- Write the second campaign

« on: April 10, 2010, 08:31:05 pm »
New stuff :viridian: Updated version is in the first post.

For the game:

- Warping! There's two types:
  - 1. The VVVVVV-type, which is a one-way warp to a set place within the campaign.
  - 2. A new type, which is a two-way warp that sends you somewhere within the same room.  These warp tokens are in sets of two, which are colour-coded, so you know where you will end up.
  Both types also work as checkpoints. I've created a very short test campaign, so you guys can play with the warping. I've made a video demo of me playing the warp campaign.

- When the player steps on a dissolvable tile, all connected tiles turn from + to รท. Tiles that are about to vanish are shown as -. This should hopefully make it easier to process all the stuff going on. I've also made all the types of dissolving tiles a bit lighter.

- Written the credits, although I haven't included them in the development version. I'll put them in when I release the game properly.

For the editor:

 - Added a settings window, where you can specify the room name, if it's one-switch, terminal messages, teleport locations, etc, etc
 - The overly complicated saving system has gone! Saving is just one-click now.
 - You can now open multiple files at once, by dragging them all from explorer to the editor window.
 - Added a "Do you want to save?" prompt when closing, to make sure changes aren't accidentally lost.

I've updated the editor guide and the video demonstration.

« on: April 08, 2010, 12:59:37 pm »
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.

« on: April 06, 2010, 10:22:09 pm »
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.

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! :)

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

Wow, that new rotation is gloriously ugly. Good job.
Thanks! ...I think :verdigris:

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.

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.

« on: April 03, 2010, 11:04: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:

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.

« on: April 03, 2010, 03:05:08 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:


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:


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.

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 :-*

« on: April 02, 2010, 07:26:19 pm »
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.

« on: April 01, 2010, 11:53:56 pm »
Thanks for your comments guys!

At first I was like "Hey, that's Terry's codeblock ray tracer." It's even got the curving problem. I thought "How poetic." Then I looked at the code and realized it was not Terry's code. This was written in VB. The heck? You write that all by hand and it has the same bugs? Amazing.
It is the same!! :viridian:

In 2008 I stumbled upon this raycasting article and converted the code into Visual Basic 6. I got "textures" ::) working and made it output the graphics using DirectX, but I didn't release any games with the code. It was just a fun toy to play around with. I showed it to a friend at work, who suggested it "needed more David Beckham".

I forgot about it for a while, then Terry and Increpare made this TigSource raycasting topic, which made me all interested again. I got even more interested when Judith came out, because I like that game a lot.

I messed around with the code su'm'ore and then wanted to make a raytracer for Klik of the Month #33. However, my raytracer was loaded up with all sorts of stupid things. So I found Terry's raycaster game, which packed a massive amount of stuff into a very small amount of code. I converted the code over to VB, added in floors/roofs, did a bunch of other stuff and released follow the yellow brick road. (i went over the time limit by twenty minutes, but shhhhh....)

On Tuesday night I suddenly had an idea to combine the image rotating code from YYYYYY with 'follow the yellow brick road', to create a kinda three-dimensional VVVVVV. Probably I was subconsciously influenced by CooL's game. However, I didn't want to turn it into a big project, because I'm very focussed on YYYYYY right now and I'm excited about the progress I'm making on that. Plus, a lot of this raytracer stuff goes way over my head!

So I decided to release it as an April Fool's joke. Especially with the irony of using Terry's code to create a demake of his game! :viridian:

Whooops. I've written a lot there! Sorry, I get really talkative sometimes!

I feel as though this is an April fools' joke.
But this game looks like it MIGHT have some potential. I mean, a 3D game where you can flip!
Why hasn't anyone TRIED that?
CooL is :viridian:

Cymon: My guess is that Robson learned about raycasters from the same place I did: Joe King's QBasic Tutorials! They have exactly that problem.
I completely missed that tutorial! Whoops, that would have been very useful :victoria: I'll check that out. Thanks Terry.

Implement feet and shadows.

-Rainbow rooms need diagonal rainbows. If you hug the wall, it's all green like the other walls.
Sorry about the green from the rainbows conflicting with the green from the walls. I've written a letter to Newton, to ask if he'd consider lime instead. Should get a response any day now...

Shadows? Excellent idea! That should be relatively easy to code in. I just need to recalculate the uniform height trajectory of the reversed vision plane algorithm, then approximately convert the return vector against the refracted original array of the colour spectrum spheres, before transl-l-l-l-lll

*brain explodes*

« on: March 31, 2010, 11:38:40 pm »
Good news, everyone! :viridian: :viridian: :viridian:

I've had a big moment of clarity and realised that my demake, YYYYYY, is completely stupid. Ascii graphics.? Grid based..?? Two dimensions...??! I don't know what I was thinking.

I'm sorry I've wasted everyone's time on that idea. You've all been really nice to me and I'm very grateful for the feedback you wrote. You all showed amazing kindness and restraint, because no-one yelled at me and said "Robson?! What are you doing?!? You're crazy!!!"

So I've abandoned the YYYYYY game, printed all the code, burnt the code, then deleted all the files.

Now, the good news: I'm very proud to announce my new demake of VVVVVV, which is called AFAFAFAFAFAF! The AF stands for Astronomy Freedom. This game fixes all the problems of YYYYYY.

Here's a video of the first level of AFAFAFAFAFAF.

Here's the first build of the game, which is very buggy and only guarnteed to work on 2% of all computers.

And finally a screenshot:

« on: March 29, 2010, 10:58:29 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:

« on: March 29, 2010, 08:35:24 pm »
Thanks for the feedback, The Brass! The infinite terminal death is okay - I'll take a lot more care when I make the real levels. That sort of things won't exist then :viridian:

Souvenir bug - well spotted! I had trouble replicating that, even though I knew what to do.

I've made changes based on feedback from yourself and Shasharala:

* Fixed continuous falling past souvenirs.
* Fixed bug with the final message not appearing.
* It's no longer possible to bypass rotation squares by moving towards them, potentially trapping you inside diamond rotation shapes.
* Changed the souvenir colours into a rainbow. I realise that wasn't a suggestion, but it just felt right!

Added some features to help with debugging:

* Left-clicking the screen will move the character to that position. Middle-clicking will create a spike. Right-clicking will create a wall.
* Pressing Shift+F2 will make a massive (in dimensions and file size) map of the current campaign. (example re-saved as a 90kb png file)

Decided a few things:

* Got a bit closer to deciding the track for the game. Need to narrow it down to one of:
  * Chipped Face
  * Mr Gamer (would be about 35 times bigger than the game!)
  * Nomajej (the mood of the song at the beginning wouldn't fit the game, but the rest is perfect)
  * Mystery Option D
   I'd probably start the music when a campaign starts and when the player collects a souvenir, rather than looping it.
* The player character will be Yvette:
* I'm going to make lots of small campaigns, rather than one big campaign.
* Each campaign will have a theme, to give the game variety and make it memorable.
* Dissolving tiles will be the theme of the first campaign.

No new version just yet, because I've thought of a new way to do the rotation. Fingers crossed that it'll be less processor intensive.

Edit (a couple of hours later): Yes!! It works :viridian: The screen is now rotated with no noticeable difference to the processor usage. It also looks better. :viridian: I need to do a bit more testing, so I'll release a new version tomorrow/wednesday.

« on: March 29, 2010, 07:03:50 pm »
Very cool! Looking forward to seeing more from this :viridian:

Pages: 1 ... 3 4 [5] 6 7 8