PDA

View Full Version : memset 0x801


ThemsAllTook
2006.10.31, 05:52 PM
A preliminary version of this game was entered into the Carlosvision contest earlier this year. I've been polishing it up since then, and it's getting pretty close to a final releasable state. I'm looking for some playtesting.

memset 0x801 is a game inspired by Micro Fun's Miner 2049er, a game released in 1982 for the Apple II (and various other systems). It takes place on a microscopic level inside a computer. You are a being of pure electricity, whose job is to zero bytes in memory. This is accomplished by simply walking over each byte in the level (arrow keys). Once you have zeroed all the memory in the level, you can proceed to the next.

Here are a few screenshots:

http://www.sacredsoftware.net/software/memset0x801/Screenshot1Thumbnail.jpg (http://www.sacredsoftware.net/software/memset0x801/Screenshot1.jpg) http://www.sacredsoftware.net/software/memset0x801/Screenshot2Thumbnail.jpg (http://www.sacredsoftware.net/software/memset0x801/Screenshot2.jpg) http://www.sacredsoftware.net/software/memset0x801/Screenshot3Thumbnail.jpg (http://www.sacredsoftware.net/software/memset0x801/Screenshot3.jpg)

Since everyone asks about it, I might as well mention it here: The way jumping works is intentional. Game mechanics are finished and won't be changing unless there are bugs.

Here's the download link: http://www.sacredsoftware.net/software/memset0x801/archives/memset0x801.2006111301.dmg

Any testing/feedback is appreciated!

maximile
2006.10.31, 06:31 PM
That's great fun! I especially love what happens at game over time - that was pretty scary the first time I saw it!

Does that global high score system really work? Cause it claimed that I was the only one to have submitted a score. If so, awesome! For one brief moment I was the best in the world at memset 0x801.

I'll play it for a while longer and see if I can find any (real) bugs.

EDIT: Well, it looks like the global highscore list works fine. (Do you use any sort of encryption for that? I'd be interested to know what anti-cheating measures you've used.)

It hasn't crashed once yet. I had no real issues apart from the ones you've mentioned. I know you say the mechanics are finished, but one thing did bother me - it's difficult to tell when you're at the top of a string, so it can look like you're at the top but pressing left or right doesn't do anything.

It's very cool. Do the numbers in the 'bytes' mean anything?

ThemsAllTook
2006.10.31, 06:57 PM
Yay, feedback!

The global high score system is indeed working - I emptied the database right before I posted that build, and it looks like you're the first one to get to it. Congratulations! :)

On that note, the game record database will be wiped again once I release this, so don't get too attached to your records yet. :)

maximile
2006.10.31, 10:07 PM
The behaviour for the Music / Sound checkboxes in the preferences is messed up - turning off sound disables the music checkbox, but if it it was highlighted before then it doesn't turn off.

Steven
2006.11.01, 01:42 AM
I stole your record :-p

sealfin
2006.11.01, 05:12 AM
Nice, it's playable even on a 400MHz G3 iMac :) (although with corrupted visuals; rectangular textures, or too little VRAM to fit the textures in?)

/me only just realised the relevance of 0x801 :blush:

OneSadCookie
2006.11.01, 06:37 AM
heh, I'd assumed it was random ^_^

ThemsAllTook
2006.11.01, 10:09 AM
The behaviour for the Music / Sound checkboxes in the preferences is messed up - turning off sound disables the music checkbox, but if it it was highlighted before then it doesn't turn off.
Great catch, thanks. Fixed for the next version.

Nice, it's playable even on a 400MHz G3 iMac (although with corrupted visuals; rectangular textures, or too little VRAM to fit the textures in?)
Interesting... I don't use any rectangular textures, so it must be something else. Screenshot (and OS version)?

Glad the performance is OK, though.

sealfin
2006.11.01, 02:43 PM
Interesting... I don't use any rectangular textures, so it must be something else. Screenshot (and OS version)?

10.3.9; title screenshot (http://blog.sealfin.com/_temporaryImages/0x801_title.jpg), play screenshot (http://blog.sealfin.com/_temporaryImages/0x801_play.jpg); if you don't use rectangular textures, then it must be too little VRAM; the 8Mb Rage 128 rocks! :p

ThemsAllTook
2006.11.01, 03:07 PM
Must be a texture size issue. The ones that are corrupted are all 1024 pixels in one or both dimensions. Interesting that the text is messed up, too...

I'll keep in mind that the Rage 128 is apparently below minimum system requirements. :)

Edit: No, only the block number texture is 1024 pixels wide (completely unnecessarily; I'll resize it); the others are only 512 pixels wide. Strange.

akb825
2006.11.02, 12:57 AM
Heh, pretty fun. Does have a limited audience, though. ;)

A few suggestions: I found it kind of annoying that you can't adjust your jump once you start it. (also related is if you walk off an edge, you just fall straight down; I'm not sure if that's a gameplay feature or an oversight) Also, the jumping seems a little jerky: perhaps you could add a little acceleration in there? I also felt that the collisions were a little loose.

Overall, I'd have to say it's quite fun. Good job with it. :)

Edit: BTW, shouldn't the memory be set to 01 instead of 00? ;) (since it's 0x801, and the 8 would be truncated off :p)

Skorche
2006.11.02, 02:05 AM
Edit: BTW, shouldn't the memory be set to 01 instead of 00? ;) (since it's 0x801, and the 8 would be truncated off :p)

Or you could expand it to 32bits and use 0xdeadbeef!

ThemsAllTook
2006.11.06, 01:38 AM
New version posted. The read me has been replaced by a shiny new instructions screen. I've also made a few miscellaneous bugfixes, and changed the appearance of the buttons. The game also ends after level 15 rather than wrapping around to level 1... Although only one other person so far has completed level 15, so most of you wouldn't have noticed this. :)

http://www.sacredsoftware.net/software/memset0x801/archives/memset0x801.2006110502.tgz

theSnof
2006.11.08, 08:42 AM
I've really been enjoying this game. The jumping control can be quite frustrating to players who are used to being able to adjust their speed in the air. But since the existing jumping behavior is such a key assumption in many of the levels it can't be changed. The level design is really good, especially in some of the later levels. Several of them definitely took some planning to figure out how to get through them within the time limit (or just get through them at all).

I'm on level 15 right now. I've figured out how to do get through all the different areas of the level. But I still haven't managed to do them all on the same attempt. 14 took me quite a while also, I had a bunch of times where I just barely ran out of time or botched a jump with a couple blocks left to get.

The graphics and sound are both great. The one change I think would be nice is a small change in the controls. I would like it if the character wouldn't jump repeatedly when I hold down space. I've had a problem with accidentally doing a second jump (often to my death) without intending to. Requiring the player to release and hit the key again would prevent accidental jumps. If the player intends to jump immediately when they land they could release and then hold the spacebar while in mid air. Other than that I love it (even though it gets insanely difficult toward the end).

codemattic
2006.11.09, 01:52 AM
Ahh Minor 2049er, my Apple ][+ days fondly remembered. Your game looks awesome I cant wait to play it. However when I try and start a game it immediately says Ive solved the level with a time of 0 (I guess I could start submitting my 'high' scores to the server...)
I have a Rage128 and it seemed to run fine btw. Cant wait to try it for reals.

ThemsAllTook
2006.11.09, 10:24 AM
Great feedback, thanks!

The one change I think would be nice is a small change in the controls. I would like it if the character wouldn't jump repeatedly when I hold down space. I've had a problem with accidentally doing a second jump (often to my death) without intending to. Requiring the player to release and hit the key again would prevent accidental jumps. If the player intends to jump immediately when they land they could release and then hold the spacebar while in mid air. Other than that I love it (even though it gets insanely difficult toward the end).
I didn't even realize it continued jumping if you hold space. I'll fix it for the next version. Glad to hear you're enjoying it!

Ahh Minor 2049er, my Apple ][+ days fondly remembered. Your game looks awesome I cant wait to play it. However when I try and start a game it immediately says Ive solved the level with a time of 0 (I guess I could start submitting my 'high' scores to the server...)
I have a Rage128 and it seemed to run fine btw. Cant wait to try it for reals.
Hmm, this is somewhat worrying. I've seen something similar happen before, which has been caused by corrupted/misplaced level files. A few questions:
What version of Mac OS X are you running?
What did you use to uncompress the tgz?
If you look in memset 0x801.app/Contents/Resources, do the files "Level0.m801" through "Level14.m801" exist?

I'll be distributing the final version on a DMG. Since this problem has come up a few times in the past, I might as well start doing that right now. I'll also add some more rigorous checks for missing or corrupted level files. Hopefully this will fix the problem!

theSnof
2006.11.11, 08:22 AM
I tried to post a while ago, but I don't think I managed to submit the post. I got logged out while typing and don't think it worked when I logged back in.

I finally beat level 15. I played it in optimize mode over and over until I got it. When I finally beat it the time didn't show up on the global fastest times list. My time was about 3:03, good for 5th on the list (since there are only 4 so far. Also, the total score from all my attempts seems to have been added to the top of my local high score list ("Snof 2736 0:31:08.49 15-15 2006-11-11 3:09 AM"). Scores from optimize mode shouldn't count on the high score list like that.

When you play in Optimize mode the level time doesn't qualify for the high score list if it's not the first attempt at the level from when you start the game. I think it's counting the total time of all attempts, therefore a fast time when you do finally beat it won't make the list. I got a time that should have made the list after dying a few times, and it didn't show up. I went back and got another qualifying time on my first attempt and it showed up. Now that I think about it, this is probably related to why my time for level 15 didn't count... it probably submitted a time of 30 minutes, which is longer than the level allows.

While playing in optimize mode I decided I wanted to end the current game. My natural reaction is to hit escape. After that didn't work I tried pausing, hoping for a pause menu with an end game option. Finally I thought to check the menu bar and found it there. I think a pause menu might be nice. Also ending the game or bringing up the pause menu with escape would be good. I also noticed that if I select End Game while the game is paused it plays the dying man noise, but doesn't actually end the game until I unpause. I recommend having End Game automatically unpause so when the player selects end game it doesn't leave them still starting at the pause screen.

Keep up the great work. I really love the game!

codemattic
2006.11.11, 07:35 PM
yeah I used stuffit. When I used console.app it expanded ok. The game is as much great fun as I expected!

ThemsAllTook
2006.11.11, 08:41 PM
I finally beat level 15. I played it in optimize mode over and over until I got it. When I finally beat it the time didn't show up on the global fastest times list. My time was about 3:03, good for 5th on the list (since there are only 4 so far. Also, the total score from all my attempts seems to have been added to the top of my local high score list ("Snof 2736 0:31:08.49 15-15 2006-11-11 3:09 AM"). Scores from optimize mode shouldn't count on the high score list like that.
Congrats on beating the level. I'm not sure what's going on with the records, though... There was a bug in the 2006103102 build that caused records for level 15 to sometimes not get submitted, but I thought I'd fixed it in 2006110501. Mind checking which version you're running? The build number can be found in the about box or on the lower left corner of the splash screen. I'll look into the the bug of being able to get a game record in optimize mode; that certainly shouldn't be happening!

While playing in optimize mode I decided I wanted to end the current game. My natural reaction is to hit escape. After that didn't work I tried pausing, hoping for a pause menu with an end game option. Finally I thought to check the menu bar and found it there. I think a pause menu might be nice. Also ending the game or bringing up the pause menu with escape would be good. I also noticed that if I select End Game while the game is paused it plays the dying man noise, but doesn't actually end the game until I unpause. I recommend having End Game automatically unpause so when the player selects end game it doesn't leave them still starting at the pause screen.
The very next thing on my to-do list is to implement a proper pause menu accessible via escape. It'll have options for resuming the game, ending the game, and restarting the level. The End Game menu item will, conveniently, be unnecessary once that's done.

I'll have a new build out sometime tomorrow, if not tonight. Glad you guys are enjoying it! Great feedback so far!

theSnof
2006.11.12, 02:13 AM
Mind checking which version you're running? The build number can be found in the about box or on the lower left corner of the splash screen.

memset 0x801 0.5.0 (2006110502)

theSnof
2006.11.12, 02:46 AM
One other thing I noticed:
It feels like the collision detection between the player and enemies is done with a bounding rectangle. When jumping over I often die when I'm not quite touching them. I've got the timing down now, but for a novice it can be quite frustrating to jump over the enemies. Either more precise collision detection or a smaller box on the enemies would make this better.

ThemsAllTook
2006.11.13, 01:37 AM
Here's a new version. If no bugs are found, I think it's complete!

http://www.sacredsoftware.net/software/memset0x801/archives/memset0x801.2006111202.dmg

New stuff in this version: Keyboard control on all menus, in-game pause menu accessible via esc/P, an end screen and a bonus for completing level 15, and a bunch of small bugfixes and tweaks.

It seems that game records were indeed being submitted in Optimize mode. I'm fairly certain that this is the reason that the level records sometimes didn't go through - my server-side security measures check for physical possiblity of a score upon submission, and if it's deemed impossible, the entire submission is rejected. I played level 15 in optimize mode a few times, racked up a bunch of points, died a lot, and finally completed it and successfully submitted a score. So, I think that bug is squashed.

One other thing I noticed:
It feels like the collision detection between the player and enemies is done with a bounding rectangle. When jumping over I often die when I'm not quite touching them. I've got the timing down now, but for a novice it can be quite frustrating to jump over the enemies. Either more precise collision detection or a smaller box on the enemies would make this better.
This would be nice to change, but I'm afraid it's not going to happen. Enemy jumping has already been made a bit more forgiving than it originally was; it's meant to be a challenge! Thanks for the suggestion anyway, though.

So, I'll leave this version up for a day or two for you guys to test. If no more bugs are found, I'll release this version to the general public. Thanks for all the help!

theSnof
2006.11.13, 05:36 AM
Here's a new version. If no bugs are found, I think it's complete!

http://www.sacredsoftware.net/software/memset0x801/archives/memset0x801.2006111202.dmg

The menu control and pause menus are nice.

There's one minor issue that still exists that I forgot to mention before. At the end of a game if you haven't gotten a high score it displays the name entry screen very briefly before continuing to the high score list.

I haven't gotten to see the end screen yet, maybe I'll play through the whole thing tomorrow.

One quick question:
What's faster, running or jumping? Or is the horizontal velocity the same for both?

ThemsAllTook
2006.11.13, 10:26 AM
There's one minor issue that still exists that I forgot to mention before. At the end of a game if you haven't gotten a high score it displays the name entry screen very briefly before continuing to the high score list.
Oh yes, I almost forgot about this... Unfortunately, it's a pretty sticky problem to solve. If online record submission is enabled, the server is queried to see where the new record(s) would place. If they don't place globally and there are no local records, there's nothing left to do on that screen, so it just continues.

I'll see if I can mask it a bit by delaying the fade-in until either a (rather short) time period elapses or the server replies.

One quick question:
What's faster, running or jumping? Or is the horizontal velocity the same for both?
Both are exactly the same speed.

theSnof
2006.11.13, 09:19 PM
Wow, that bonus for beating level 15... it's hard! But I'm having a lot of fun with it.

ThemsAllTook
2006.11.13, 09:57 PM
Ah, you got the bonus. :) I figured it'd be a nice reward.

Here's release candidate 2: http://www.sacredsoftware.net/software/memset0x801/archives/memset0x801.2006111301.dmg

Changes since 2006111201: Added delay (maximum 2 seconds) on name entry screen fade-in when not locally ranked; fixed some minor cosmetic bugs related to the logo animation; added window resize lines when running in window mode.

Releasing this tonight or tomorrow if no problems are found.

theSnof
2006.11.14, 05:47 AM
Ah, you got the bonus. :) I figured it'd be a nice reward.

Here's release candidate 2: http://www.sacredsoftware.net/software/memset0x801/archives/memset0x801.2006111301.dmg

Changes since 2006111201: Added delay (maximum 2 seconds) on name entry screen fade-in when not locally ranked; fixed some minor cosmetic bugs related to the logo animation; added window resize lines when running in window mode.

Releasing this tonight or tomorrow if no problems are found.

I'm still seeing the name entry, even with the delay. The server response has been slow the last half hour, timing out sometimes. One thing that would solve the issue most of the time would be to store a local cache of the most recent global list to compare against before trying to submit. Of course, this could be a problem for the Global (recent) list since the times/scores on that list could get worse since the last check of the global list.

I beat the first 13 levels in the bonus mode, some of those are really difficult. Getting on and off of fast moving platforms is especially challenging. Don't think I'm going to get the last 2 levels.

ThemsAllTook
2006.11.14, 01:02 PM
I'm still seeing the name entry, even with the delay. The server response has been slow the last half hour, timing out sometimes. One thing that would solve the issue most of the time would be to store a local cache of the most recent global list to compare against before trying to submit. Of course, this could be a problem for the Global (recent) list since the times/scores on that list could get worse since the last check of the global list.
Yeah, there's really no perfect solution here. I've been back and forth on it a lot, and what I have now is the most ideal compromise I've been able to find. If your connection is fast, and my server doesn't take too long to respond, you probably won't see the screen unnecessarily; but you also won't be left on a blank screen wondering what's happening.

Everything is in place to do a full public release this evening. Huge thanks to Snof, Seth, and others for testing and feedback! I'm really excited to finally be getting this project out the door.