Page 1 of 4

New Game: Zooming Secretary

Posted: Wed Oct 25, 2017 6:39 am
by D3thAdd3r
Zooming Secretary is an Action Platform, arcade style game, which puts you in the role of an overworked secretary. The protagonist really has her work cut out for her, as she battles to answer phones while encountering a blabbing boss, a gossiping coworker, careless movers, and the pre-requesite office romances. All this before the callers hang up, to avoid getting fired!

The general mechanic of the game revolves around phones randomly ringing, of which each will display a specific topic. Each filing cabinet has a topic, and when the secretary passes over it, she will then have the information for that topic and can answer any phone with the same topic. Deceptively simple, this game can get very fast paced as you need to quickly plan routes, and change them along the way to optimize and avoid back tracking for topic changes. In later levels, it is sometimes necessary to rapidly choose which phone to sacrifice while avoiding dropping multiple calls. Try to score on the bonus level, to get 2 extra missed calls before you are fired(this helps quite a bit at the end!).

This is based on the game of the same name by Shiru, with Pinwizz contributing to graphics and sound for the original NES version. I am a fan of his work. Eh, all the same complications here that were there in Alter Ego...actually the source and style was much like AE overall, and the same rather large architecture differences for how things are done on the NES(globs of free ram, no direct vram access, different pointer stuff..people use ALL globals for the CC65 compiler..etc.) had to be taken care, and I feel the code is significantly easier to understand from an Uzebox perspective now.This is basically done as I have less than 1K flash left, which I would like to leave in case future gcc versions generate larger code or someone wants to make a few extra levels(level data is very small). I had to make some tradeoffs and design choices in graphics, and especially sacrifices in sound and music to get it to fit, but overall it is about to the point I am happy with. I am aware of one current gameplay bug, which was present in the original as well: relating to getting "wisdom" on the last level without previously having a topic(and also wisdom displays not the phones topic, but the players, when answered).

Anyways I hope you guys enjoy it, and please do let me know if you find any bugs! Current source code is up on my github, which I will clean up a bit as I fix the last known bug.

Re: New Game: Zooming Secretary

Posted: Wed Oct 25, 2017 3:13 pm
by nicksen782
Direct game link for the Online Player:
https://nicksen782.net/a_demos/Emscript ... gameid=221

Lee, awesome! Mode 3, lots of ram tiles. I'll be digging around in your code to see if I can learn something!

This appears to be a flash-only game. Great!

What were some of the problems that you had to overcome with making this game?

Re: New Game: Zooming Secretary

Posted: Wed Oct 25, 2017 6:01 pm
by Jubatian
I gave it a go, nice! Finally I got to the dream level and could complete it, although no more yet.

I see you used the extended resolution Mode 3 here, guess first game then to adapt it! :) This is a great little game, a truly worthy port for the open source original, fitting well the idea of Uzebox!

Re: New Game: Zooming Secretary

Posted: Wed Oct 25, 2017 7:18 pm
by nicksen782
I am using the extended resolution Mode 3 flag too. My game doesn't scroll. What the flag does in my case is that it fixes the size of the game screen. On my TVs the first and last column isn't visible. The flag makes it all fit.

I'm going to play through this tonight. Thanks Lee!

Re: New Game: Zooming Secretary

Posted: Thu Oct 26, 2017 12:55 am
by D3thAdd3r
nicksen782 wrote: Wed Oct 25, 2017 3:13 pm Mode 3, lots of ram tiles...This appears to be a flash-only game.
Indeed, If someone ever called me out and quoted me, I think I have said something like "I will only make games requiring SPI Ram and ESP8266 now! :twisted: "...but most games I start has to randomly strike me at the right moment and also seem like a good final product versus time investment. Of course being able to play Shiru's original makes porting his C source tempting(Shiru also did the NES port of Alter Ego, based on the ZX Spectrum version by Denis Grachev, which ultimately I ported the Uzebox version from), since at the end it is already known the gameplay will actually be fun and work. There is definitely no technical requirements that could justify the SPI Ram or even the SD card(I could easily fit 20 levels in flash for this game) for this one. Also, there is no possible way I could have designed the original concept, all the graphics, music, and gameplay, then balancing and fine tuning like that in so little time as it took to port it. Indeed that does show off the power of open source, as this game would not be on Uzebox without it.

The main issues with development are probably more than is immediately obvious, because the NES hardware is way different. The CC65 compiler used for the original, is also way different because there is so much register pressure on 6502, absolutely everything in the original was global variables! Best I can say is take a gander at the original source and compare, will probably be shocking, but basically everything has been went through and it is my hope(without the requirement of all global variables the NES version was forced to) that this game is easy to understand and learn from and *thoroughly* ported to Uzebox with this in mind. All NES games I have looked into, tightly tie game logic around a vram update list(they can't just modify vram in place, only at certain times) and also specific tile numbers. There is not nearly enough ram to have ram tiles and all this(very similar in AE), so a whole bunch of core stuff needs to be redesigned which breaks others things, ad infinitum. The palettes for NES also make it difficult, as with M3 you need to use totally different graphics which of course breaks all maps and all that. I manually recreated those things in a cut down manner, because there was not enough space to pull off an exact replica. I converted to M13 half way through(this is the reason sprites are different colors than the NES version), then optimized some stuff and found M3 would just barely fit....so went back M3->M13-M3(trying to design the palette stuff to replicate the original is non-trivial, NES really has powerful palette capabilities which games utilize heavily). I had attempted some direct translation from the sound data, and also Famitracker->NSF2MIDI->Uzebox...this did not work very well at all for this(just like AE actually). I ended up manually creating cut down versions of the songs to save space, and either made up or heavily modified sounds from other places. Lots of little stuff I could rant about, but that is the nature of code that must be close to the hardware, going to another machine where it also must be close to the hardware. Man I am probably sounding negative there or like I am trying to make it seem more mystical than it is...just trying to sum up as much dev info in a small space, and of course the problems to solve are actually the fun part :)
Jubatian wrote: Wed Oct 25, 2017 6:01 pm I see you used the extended resolution Mode 3 here, guess first game then to adapt it!
Yes! This is absolutely awesome...man I screwed with a lot of stuff fitting this all into the 30 tiles wide mode, and ultimately rolled all that back to take advantage of this. Having the 32 tiles available made a large difference, and simply it is a better port because of it. I very much like the fact that the 32 tiles actually fit in the width of a CRT screen, instead of just 30 tiles which don't even. I actually consider it a gain of about 4 tiles in some ways, since 32 are usable for important stuff instead of about 28+1/2+1/2..where you cannot put something important in 1/2 tile. This is one of the bigger advances for better games IMO, and yeah, I can almost guarantee you wont see any 30 tile wide games from me where I am able to use 32!

Re: New Game: Zooming Secretary

Posted: Thu Oct 26, 2017 1:13 am
by D3thAdd3r
It would probably be Best if I mentioned there is A Button sequence thAt sets the game into test mode. I LEFT that for the player to discover how to actually do it. With the source code UP on github, it would probably be easy to find in the .C file, and figure out where that sequence is. But sometimes there is not enough time for All that, and we must rely on awkwardly written paragraphs with cheesy clues :lol:

Re: New Game: Zooming Secretary

Posted: Thu Oct 26, 2017 5:05 am
by Artcfox
Woah! This is awesome. I love the graphics and music!

Watching the YouTube video I thought it might be easy, but it's definitely tricky.

Great job! :)

Edit: Made it to Day 7!

Re: New Game: Zooming Secretary

Posted: Thu Oct 26, 2017 7:36 am
by ry755
This looks great! Haven't had time to test it, but in the video it looks hard. How long did it take to port something open source like this?

Re: New Game: Zooming Secretary

Posted: Thu Oct 26, 2017 8:50 am
by L4rry
D3thAdd3r wrote: Thu Oct 26, 2017 1:13 am It would probably be Best if I mentioned there is A Button sequence thAt sets the game into test mode. I LEFT that for the player to discover how to actually do it. With the source code UP on github, it would probably be easy to find in the .C file, and figure out where that sequence is. But sometimes there is not enough time for All that, and we must rely on awkwardly written paragraphs with cheesy clues :lol:
I see what you did there :D Looking forward to give this a play. I'm not familiar with the original version, but the concept certainly sounds like fun.

Re: New Game: Zooming Secretary

Posted: Fri Oct 27, 2017 1:19 am
by uze6666
Hey Lee, another top notch production! I recall seeing this game a while ago and it didn't catch my eye. But once you play it, its very fun. Everything plays so well and the graphics, animations, music and sounds effect are all excellent. Ah and another sweet Uzebox intro. What else to ask? :D

Edit: Damn, the game was so hard at day 4...until i realized you can take the ladders to wrap up/down the screen! :oops: