New Game: Zooming Secretary

Use this forum to share and discuss Uzebox games and demos.
CunningFellow
Posts: 1445
Joined: Mon Feb 11, 2013 8:08 am
Location: Brisbane, Australia

Re: New Game: Zooming Secretary

Post by CunningFellow »

nice job.

Again - I am totally hopeless at it - so I had to watch the video to see what the higher levels are like.

Someone was on some good drugs when they did that dream/nightmare level.
User avatar
Artcfox
Posts: 1382
Joined: Thu Jun 04, 2015 5:35 pm
Contact:

Re: New Game: Zooming Secretary

Post by Artcfox »

I'm soooo close to beating Day 7... I just got a 36/40.
User avatar
L4rry
Posts: 242
Joined: Sun Dec 28, 2014 7:19 am
Location: Cape Town, South Africa

Re: New Game: Zooming Secretary

Post by L4rry »

Awesome game D3thAdd3r! It's fun and challenging. I find myself confusing the phones and cabinets often when things get hectic. My brain malfunctions when under gaming stress :mrgreen:

Some observations on potential improvements rather than bugs:
  • There seems to be no way to return to the splash screen once you start a game. Maybe a pause menu like block boy?
  • The "You're Fired!" screen is sticky with no indication that you need to press Start to get hired again. Maybe a piece of text saying something like "Start - Beg for a second chance" and "X - You can't fire me, I quit!"
  • And of course a demo mode would always be nice :)
Anyway, I'm sure these things aren't in the original game so it won't really be a pure port then.

This is the most original 8-bit game I've played in a while. Never seen anything like it. Definitely has that quirky Nintendo game design feel to it.
User avatar
D3thAdd3r
Posts: 3221
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: New Game: Zooming Secretary

Post by D3thAdd3r »

Thanks for the feedback guys!
CunningFellow wrote: Fri Oct 27, 2017 3:03 am Someone was on some good drugs when they did that dream/nightmare level.
It did seem random and weird as hell the first time I saw it :lol:
Artcfox wrote: Thu Oct 26, 2017 5:05 am Made it to Day 7!
This one can get tough pretty quickly. I think it basically comes down to finding the right moments when coffee'ed up to hit the guy and sweep the level besides the requisite efficient traveling.
ry755 wrote: Thu Oct 26, 2017 7:36 am How long did it take to port something open source like this?
It is hard to quantify because it got spread out into very short fragments of time over weeks due to work lately. I guess 20 hours focused thought/development did the majority of it, and 20 hours messing around as I got side tracked and ran into a lot of snags on graphics and especially sound/music. That sounds high maybe, but it is about as quick as I have ever *completed* any game, most probably longer if not a port. Something like a single sound effect, maybe 10 minutes but then it bugs you because you don't exactly like it. Later on at the end, 2 or 3 revisions later with testing, it can be an hour total just for that piece. Redesigning a tileset 3 or 4 times for new features and optimizations(de-palletization), redoing maps, that is several hours. Just have to keep this in check versus interest level, otherwise it is very easy to lose motivation and not complete something...after easily 100+ hours like a few of mine over the years. I have had just as much fun on those though, as the journey is the interesting part.
L4rry wrote: Fri Oct 27, 2017 7:29 am There seems to be no way to return to the splash screen once you start a game. Maybe a pause menu like block boy?
To me this seemed like the biggest omission in the original, but without a demo mode it sort of seems pointless(I guess if you miss the bonus). I knew I did not have enough interest to go crazy on it like Alter Ego with features over the top, as it would seem silly to use the SD for this one. There would be enough room for a demo mode, and I am unlikely to make more levels as I believe the existing ones basically exhaust the possibilities for the mechanics. It is in the back of my mind so it may or may not just randomly happen. I found a couple bugs with the new width, where I think some text and frames are off center so those will be fixed in a bit.
uze6666 wrote: Fri Oct 27, 2017 1:19 am Damn, the game was so hard at day 4...until i realized you can take the ladders to wrap up/down the screen!
Definitely makes it easier :P I can't see a reason why, but the gameplay on Uzebox seems a bit faster than the original and also overall slightly more challenging because of it. Vertically, there is slightly less ground to cover(a remnant from when I was thinking to blit lots of sprites with 15 color M13) so ladders up and down are slightly more effective than in the original. I actually don't need that short of a screen for M3 and it would be easy to more match the original.
User avatar
uze6666
Site Admin
Posts: 4801
Joined: Tue Aug 12, 2008 9:13 pm
Location: Montreal, Canada
Contact:

Re: New Game: Zooming Secretary

Post by uze6666 »

Btw, wthat`s the green person giving you trouble in level 4? It scrambles the file I'm holding but even at a distance?
User avatar
D3thAdd3r
Posts: 3221
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: New Game: Zooming Secretary

Post by D3thAdd3r »

That is "the chatter", so is supposed to confuse the subject at hand I guess. Colors got a bit weird which is still a remnant from the 15 color setup it was for a while. If the range the subject changes is fairly short, then it is working as original. That sfx was particularly a challenge to try and convey what is happening. Also a slight gameplay deviation, she can change to any of the 4 subjects, instead of the original 3 active topics for the level. Might recolor that some, as the outfit ends up looking a bit weird.
User avatar
uze6666
Site Admin
Posts: 4801
Joined: Tue Aug 12, 2008 9:13 pm
Location: Montreal, Canada
Contact:

Re: New Game: Zooming Secretary

Post by uze6666 »

I found a bug that causes the game to always have the 'earth' subject and the same phone sequence. Happened twice already and after I reset the game. From what i can see you are using the true random generator...wondering if there's not a bug with it. In fact it could if it happens that the initial seed results in zero. Seems highly unlikely that it would happens twice to me but then again I recall I used a simplified version of the algorithm. In any case there is no check to detect a zero seed and redo the randomizing thing if that happens. Anyone else had this issue?
User avatar
D3thAdd3r
Posts: 3221
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: New Game: Zooming Secretary

Post by D3thAdd3r »

I can try to build some test to detect that, but I wonder if there is a different cause in the pseudo-random generator? Did you mean you got "earth" like 10 times in a row or something? I guess the only possible way is with a seed of 0, and then the PRG cannot generate a sequence. In TitleScreen() with any valid seed, it should still be "random" based on how long it takes to press the start button:

Code: Select all

void TitleScreen(){

//return;
//	for(i16=0;i16<(30*64);i16++)
//		ram_tiles[i16] = pgm_read_byte(&titleTiles[i16]);////////pgm_read_byte(&PaletteStandardToExtendedTable[pgm_read_byte(&titleTiles[i16+(0*32)])]);

//	i16 = 2;
//	for(uint8_t y=0+2;y<14+2;y++)
//		for(uint8_t x=0+3;x<24+3;x++)
//			vram[(y*VRAM_TILES_H)+x] = pgm_read_byte(&titleMap[i16++]);//vram[((y>>3)*256)+(8*x)+(y&7)] = pgm_read_byte(&titleMap[i16++]);
	DrawMap(4,1,titleMap);
	Print(7,14,PSTR("ZOOMING   SECRETARY"));
	for(uint8_t x=7;x<7+19;x++){
		uint8_t t = vram[(14*VRAM_TILES_H)+x]-RAM_TILES_COUNT;
		for(uint8_t r=0;r<64;r++){
			uint8_t t2 = pgm_read_byte(&gameTiles[(t*64)+r]);
			if(t2 == 0x00)
				t2 = 0xD8;
			else if(t2 == 0xFF){
				if(x < 14)
					t2 = 0b00111000;
				else
					t2 = 0b00000111;
			}
			ram_tiles[((x-7)*64)+r] = t2;		
		}
		vram[(14*VRAM_TILES_H)+x] = x-7;
	}

	frame_cnt = 0;
	uint8_t t = 0;

	while(1){/////////////////////////////////////////////////////////////////////////////////////////
		WaitVsync(1);/////////////////////////////////////////////////////////////////////////
		GetPrngNumber(0);/////////////////////////////////////////////////////////////////
		frame_cnt++;

		if((frame_cnt & 63) < 32)//flash "PRESS  START"
			Print(10,21-1,PSTR("PRESS  START"));
		else
			Print(10,21-1,PSTR("            "));


		if(padState && !oldPadState && t < 255){
			if(padState == pgm_read_word(&testCode[t])){
				t++;

				if(!pgm_read_word(&testCode[t])){//code entered correctly
					t = 0;
					ZSTriggerFx(SFX_BLA1);
					test_mode = !test_mode;
				}
			}else
				t = 0;
		}

		if((padState&BTN_START) && !(oldPadState & BTN_START))
			break;
	}

	ZSTriggerFx(SFX_START);
	frame_cnt = 4;

	for(uint8_t i=0;i<72;i++){//rapid flash "PRESS  START"
		if((frame_cnt & 7) < 4)
			Print(10,21-1,PSTR("PRESS  START"));
		else
			Print(10,21-1,PSTR("            "));

		frame_cnt++;
		WaitVsync(1);
	}




	if(test_mode){//sound test
		Print(10,21-1,PSTR(" SOUND TEST "));
		uint8_t t2,t3;
		t = t2 = t3 = 0;


		while(1){
			WaitVsync(1);

			frame_cnt++;

			PrintByte(14,23-1,t2,1);
			PrintByte(22,23-1,t3,1);
			Print(9,23-1,PSTR("SFX:"));
			Print(17,23-1,PSTR("BGM:"));


			if((frame_cnt & 7) < 4)	
					Print((t==0)?13:21,23-1,PSTR("  "));


			if((padState & BTN_START) && !(oldPadState & BTN_START))
				break;

			if((padState & BTN_LEFT) && !(oldPadState & BTN_LEFT))
				t = 0;
			if((padState & BTN_RIGHT) && !(oldPadState & BTN_RIGHT))
				t = 1;

			if((padState & BTN_UP) && !(oldPadState & BTN_UP)){
				if(!t){
					if(t2 < SFX_ALL-1)
						t2++;
				}else{
					if(t3 < MUS_ALL-1)
						t3++;
				}
			}

			if((padState & BTN_DOWN) && !(oldPadState & BTN_DOWN)){
				if(!t){
					if(t2)
						t2--;
				}else if(t3)
					t3--;
			}

			if((padState & BTN_A) && !(oldPadState & BTN_A))
				StopSong();

			if((padState & BTN_B) && !(oldPadState & BTN_B)){
				if(!t)
					ZSTriggerFx(t2);
				else
					StartSong((const char *)pgm_read_word(&musicData[t3]));
			}
		}
	}

	ChangeScreen();
}
User avatar
uze6666
Site Admin
Posts: 4801
Joined: Tue Aug 12, 2008 9:13 pm
Location: Montreal, Canada
Contact:

Re: New Game: Zooming Secretary

Post by uze6666 »

Well, I got earth 100% of the time until the ghost bonus level which crashed. Moreover it was always the same sequence for the phones. So if you used the entropy generator only a zero could lock the prng generator.

But you say that you already used the counter method in the main loop to initialize the random sequence? I'm confused then to why it happens! ?
User avatar
D3thAdd3r
Posts: 3221
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: New Game: Zooming Secretary

Post by D3thAdd3r »

I do seed the PRNG with the true random entropy right away in main, but I do not check if it is 0 currently (or even, are there non-zero values that generate bad sequences too?). Then I call the PRNG at 60hz until the user presses start at the title. I will check, but I think a 0 seeded PRNG in the current code will continually output 0, I think you just confirmed that in your post,...but even that makes no sense why the bonus crashes. I will artificially set to 0 and see if I can reproduce it. BTW is this on hardware or emulator too? I could probably live with backing off RAM_TILES_COUNT by 1 also.
Post Reply