MegaBomber

Use this forum to share and discuss Uzebox games and demos.
User avatar
danboid
Posts: 1935
Joined: Sun Jun 14, 2020 12:14 am

Re: MegaBomber

Post by danboid »

It all seems to be coming together quite nicely as well rounded Uzebox tech demo, the concept at least.

"I have the old Uzem ESP8266 code compiling in CUzeBox now,"

Is that a typo or did you actually say you have some kind of (C?) compiler running on the (C)Uzebox? Nah! Surely you'd have said a bit more about that if we can build C on the Uzebox(sloooowly).

A Uzebox TCC port would be immensely cool

https://bellard.org/tcc/
User avatar
D3thAdd3r
Posts: 3221
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: MegaBomber

Post by D3thAdd3r »

I mean my second attempt at integrating ESP8266 CUzebox emulator. I can build it, but it does nothing currently.

TCC is cool, though I don't know how practical it would be on Uzebox. Maybe there is some use, but I have no clue how to port that to AVR and 128K RAM. Maybe an Uzebox OS, that can compile its own kernel in TCC? With keyboard support though, this is random but semi-related, you could absolutely modify the Chip8 emulator to make games directly on Uzebox! Stock form even. Recently played some Chip8/Super games which surprised me on quality.

Interpretted scripting(like Chip8 level) I'm still considering as viable in a game. It would need to have opcodes that can achieve large tasks/function calls(like drawing a tilemap) or getting input in 1 emulated cycle. Mostly I think an RPG needs that, but it's not out of the question to think if MB might benefit.

I see such things as useful for menus. Another crazy thing if it had some UART ability, would be to offload the relatively heavy load of a full blown chat system. Designed properly, perhaps that would allow "any" game to have both Uzenet and in game chat, or even better, a standardized offloaded full room join system so you needn't leave the game you want to play.
User avatar
danboid
Posts: 1935
Joined: Sun Jun 14, 2020 12:14 am

Re: MegaBomber

Post by danboid »

D3thAdd3r wrote: Sun Mar 26, 2023 3:58 am TCC is cool, though I don't know how practical it would be on Uzebox. Maybe there is some use, but I have no clue how to port that to AVR and 128K RAM. Maybe an Uzebox OS, that can compile its own kernel in TCC?
It should be easier to port TCC or what-have-you from Linux to nuttx AVR, if someone ported it to the Uzebox. It claims to support POSIX.

viewtopic.php?t=11208

128 KB RAM may still be insufficient to run TCC? I've never tried nuttx on any platform.
User avatar
D3thAdd3r
Posts: 3221
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: MegaBomber

Post by D3thAdd3r »

I'm not sure, but such things could be possible. It would need a solid use case though. I imagine it would take a lot of work, so someone would need to be very amused with some aspect of it to drive it to the end.

Another weird angle on scripting could be more like Remote Procedure Calls. Send a command to a server like "input xyz...render next Doom frame in ASCII and send it back". Could probably do ridiculous stuff with RPC like that..ASCII Quake?
User avatar
D3thAdd3r
Posts: 3221
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: MegaBomber

Post by D3thAdd3r »

https://github.com/weber21w/cuzebox-keyboard-mouse
Ok keyboard is done for CUzeBox and I intend to allow the user to use it as the ultimate gamepad in MegaBomber. This will be ideal since the user could then seamlessly transfer between playing, and typing(trash talking).

I didn't manage to complete mouse support yet, but my thought is that if you click within a 2x2 tile area it's easy to find the path and move the bomber there. The buttons are sufficient for gameplay, left click to drop a bomb, or pick it up, or throw it. Pause is either right click, or click the timer maybe. Not coming back to mouse for a while, but I am interested in that feature.

Multitap, I don't know. I really despise the manual switches on multitaps. I'd rather have an autosensing one the user can leave in place for nornal games. Reason I care is that it might be easier to offer that, as opposed to an optimized LAN play(Internet play is planned 100%, but it uses server features not available on LAN). Not sure, more on that later.

Ok ESP8266 emulation, AKA "The Big One". Still screwing with sockets, because I really don't want to redo it later. Also don't want to release embarassingly messy code, but that's almost guaranteed to happen. In particular Emscripten(completely untested) needs to use websockets. These essentially require a handshake and certificate prior to transferring encrypted data :shock: This is way different than normal sockets, however they can achieve the same thing. If anyone has experience with this chime in, I know only what I'm writing, which is likely wrong.

This presents an unexpected issue for the server. Research so far says that "websockify" can transparently proxy websockets to normal Linux sockets for a given program. It can use self signed certificates, but that might pop a warning window on the browser? Then certificates can be verified utilizing free "Let's Encrypt" authority. This entails you couldn't have a server that supports Emscripten clients, without a DNS entry pointing to your IP. Not that hard though. Perhaps @Nicksen782 knows more about this?

I wont stall too long on Emscripten. It's just going to have to be it's own code block. I will have to release native version and come back later when I have more time to mess with all that stuff.
User avatar
danboid
Posts: 1935
Joined: Sun Jun 14, 2020 12:14 am

Re: MegaBomber

Post by danboid »

From the post you made last Saturday it sounded like you'd convinced yourself to switch MB to using M74? Did/will that happen or will it remain M3?
User avatar
D3thAdd3r
Posts: 3221
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: MegaBomber

Post by D3thAdd3r »

No code yet, but I have some proof of concepts which are fairly passable. Top is the original, bottom is a 16 uzebox color version:
mb16c-0.png
mb16c-0.png (432.35 KiB) Viewed 1445 times
mb16c-1.png
mb16c-1.png (394.02 KiB) Viewed 1445 times
mb16c-2.png
mb16c-2.png (423.87 KiB) Viewed 1445 times
mb16c-3.png
mb16c-3.png (395.08 KiB) Viewed 1445 times
mb16c-4.png
mb16c-4.png (377.96 KiB) Viewed 1445 times
I don't think it looks bad at all, but it's definitely a noticeable downgrade on colors. I do think it could be a bit better by combing over each graphics set in depth, or modifying the bombers somewhat. I'm just letting it bounce around in the back of the brain. It would take reasonable time investment to totally optimize it for M74, man....I'm probably going to work on other features and see how tight flash is. I may also be forced by RAM due to PCM. Lot's of trade offs, but with more sprites I could make gameplay funner so that may win out. I really love the full colors haha, it's hard unless something technically forces M74.
User avatar
D3thAdd3r
Posts: 3221
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: MegaBomber

Post by D3thAdd3r »

Looking at the above, it's even too optimistic. The powerups and fire also claim some colors:
mb16c-5.png
mb16c-5.png (434.28 KiB) Viewed 1442 times
Would almost think about giving up PCM instead that. I suppose I could have 2 versions...who knows :geek:
User avatar
danboid
Posts: 1935
Joined: Sun Jun 14, 2020 12:14 am

Re: MegaBomber

Post by danboid »

I think you should retain the extra colours M3 offers. Its because of that & the animated sprites it looks almost like a PC Engine or SNES game.
User avatar
D3thAdd3r
Posts: 3221
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: MegaBomber

Post by D3thAdd3r »

I randomly had an idea on this. Black bomber is my favorite, and also different shades of black is most important for bombs. White bomber is good for some shades of white as well. Making the bombers all have the same face, shoe, and helmet "pom pom" would save maybe 2 colors from above.

I'm thinking about trying no dedicated red or green bomber at all. Because only a ROM flash can support multiple tilesets, and obviously each tileset should have it's own pallete, I wonder if the other 2 bombers simply adopt colors from the level graphics. Sometimes a blue, purple, brown, or whatever colors the level already has. By the same idea, the powerups being recolored per level. I suspect an orange bomber would be a re-occuring theme then, to make best use of fire colors.

Will have to try this in Gimp and see. I think it might be enough.
Post Reply