Jump to content

MLP Forums Pony Dev Jam [Game Programming Competition] (Completed)


Splashee

Recommended Posts

19 minutes ago, Rainboomer Zap said:

@Splashee I had too much fun crashing my browser, would love to see more on this!

Better start working on my project~

You're lucky if you have fun crashing your browser tabs. But my computer only works when it wants to, freezes or crashes randomly, and sometimes gives me a BSOD, or even worse, shuts itself down and plays an infinite beeping sound.

Have fun crashing your browser tabs. I just wish my computer wasn't so... broken! Lol!

Link to comment
Share on other sites

8 hours ago, Rainboomer Zap said:

I had too much fun crashing my browser, would love to see more on this!

My latest update stops this behavior, kinda...

All the windows and their expensive "browser" drawing operations are done on windows that are covered by other windows. Because windows are drawn back to front (painter's algorithm) to allow for complex window shapes (like the balloon tip), a window that has been drawn and isn't visible because another window has drawn over it, has already spent valuable drawing time. Too late to stop drawing when all the drawing was already done.

How to solve this?
I can't solve it the real Windows' way, because complex regions take forever to implement. So I made a crude coverage test now, similar to a Z buffer in a 3D engine, where if an area is obscured by a window in front of it, it is considered "not visible" and is being skipped from drawing. This extra overhead is only done if there are more than 20 windows on screen at once, but it only really works for top level windows (child windows aren't supposed to overlap, but they are in my test).

The update will now allow you to create almost infinite number of top level windows without any browser slow down. You can notice this by the shadow of the window that has been just been created hasn't become any darker, but also if you move the window slowly, a window will pop out of nowhere from behind. The non-visible windows are still there, if clicked on, they will become visible. The crude coverage solution lowers the revolution for testing areas, to save memory, but that will make the hidden windows more noticeably visible as they show up while moving a window in front of them of greater or equal size.

There are also the problem of making a game that draws to the screen, but won't be visible, since JavaScript animation depends on time, and that time is being skipped. So the hiding of windows also include a way to pause the time for whatever game is being run in that particular window. This has eaten up a lot of my brain power for today.

 

You can still slow down/crash your browser if you create too many child windows... Their shadow will become darker as they stack on top of each other, wasting drawing calls.

 

8 hours ago, Rainboomer Zap said:

Better start working on my project~

Yay!

8 hours ago, LCpony417 said:

and sometimes gives me a BSOD

You have a hardware fault somewhere. The only solution is to remove devices physically, replace them ant try if it works better. Sadly this is advanced and takes forever, and sometimes yields no results.
My Equality XP system will not do too many BSoD since they are off-putting. Instead, other glitches in the games will be more prominent.

 

8 hours ago, LCpony417 said:

Have fun crashing your browser tabs.

And while glitches are part of this competition, destruction like that must be avoided. That's why I made my update just now, to try to limit the browser from getting too slow.

Link to comment
Share on other sites

3 minutes ago, Splashee said:

You have a hardware fault somewhere. The only solution is to remove devices physically, replace them ant try if it works better. Sadly this is advanced and takes forever, and sometimes yields no results.
My Equality XP system will not do too many BSoD since they are off-putting. Instead, other glitches in the games will be more prominent.

Thank you for the advice! But by devices, do you mean the mouse, keyboard, monitor, headphones etc that are connected to my computer?

If yes, then I think I know what causes the problem: I might have problems with my headphones. This might be because I tried to install Realtek on my computer recently, but I failed and couldn't fix the problem, leading me into temporary headphone issues.

I'll do my best to see if I can fix anything.

6 minutes ago, Splashee said:

And while glitches are part of this competition, destruction like that must be avoided. That's why I made my update just now, to try to limit the browser from getting too slow.

That's right! Glitches should only happen inside the game. Any harmful glitches like freezing or crashing the PC must be avoided. Luckily for me, SB3 files are usually harmless and cannot do any destructive damage other than freezing the browser tab a little bit. Still, I will do my best to avoid any dangerous setups and try to only keep a few glitches inside the game.

  • Brohoof 1
Link to comment
Share on other sites

Would I be allowed to submit a ROM hack of Super Mario World here? It would be written in 65C816 Assembly like all Super Nintendo games and would be distributed in the form of a patch that you would apply to an American Super Mario World ROM which I can not provide here which would then be played in a Super Nintendo emulator such as SNES9X.

  • Brohoof 1

Visit my Discord server to discuss and play and look at and get updates and sneak peeks of the My Little Pony video games and other stuff I'm making.

Link to comment
Share on other sites

4 hours ago, DPBOX said:

Would I be allowed to submit a ROM hack of Super Mario World here? It would be written in 65C816 Assembly like all Super Nintendo games and would be distributed in the form of a patch that you would apply to an American Super Mario World ROM which I can not provide here which would then be played in a Super Nintendo emulator such as SNES9X.

@DPBOX Yes! ROM hacks will do fine!
Hopefully you have time to complete it. Approximately 12 days left until deadline.

 

Any programming language and no need to release the source. The original Super Mario World + SNES acts like a library or in my case, the web browser, or like an operating system running your code. So it is perfectly fine.

Once you have made your entry post here, I will add you to the first post.

  • Brohoof 1
Link to comment
Share on other sites

Here's my entry, My Little Pony: Super Luna Game DX Demo 1.3. https://cdn.discordapp.com/attachments/655981087650086943/1017712317380689931/smwOrig.bps

This is a ROM hack of Super Mario World for the Super Nintendo. It was written in 65C816 Assembly like all Super Nintendo games. To play, you need an American Super Mario World ROM, you need to patch that .bps patch to the ROM using this, https://www.smwcentral.net/?p=onlinetools&tool=flips and play it in a Super Nintendo emulator such as SNES9X or BSNES, NOT ZSNES. Press Start during the level to see what moves you can do.

I think it definitely adheres to the glitchy theme, but it's a little rough around the edges. First off, the Tantabus Mk 2 companion is bugged. It's supposed to animate with a flying animation, but, for some reason, sometimes it doesn't and I have no idea why this occurs. Last time it happened, the issue just magically fixed itself when I edited the ROM one time. If you pause the game, it REALLY glitches out. Perhaps Luna hasn't perfected it yet or the chaotic nature of the dream she goes to messes with it.

Do I need to include credits? Some of the art assets are not mine.

lunagame1.png

lunagame2.png

lunagame3.png

lunagame4.png

Edited by DPBOX
  • Brohoof 1

Visit my Discord server to discuss and play and look at and get updates and sneak peeks of the My Little Pony video games and other stuff I'm making.

Link to comment
Share on other sites

3 hours ago, DPBOX said:

Do I need to include credits? Some of the art assets are not mine.

It is nice to include credits. It is not necessary though.

 

Less than 7 days until the deadline. The thread has been set to auto lock on the deadline date.

Link to comment
Share on other sites

4 hours ago, DPBOX said:

the issue just magically fixed itself when I edited the ROM one time

Don't you just hate it when glitches magically fix themselves?

This happened to me several times, but now I know that glitches are always caused by something, and every glitch can be fixed in one way or another. So yeah, it is very relatable.

Link to comment
Share on other sites

6 hours ago, DPBOX said:

SNES9X or BSNES

I got it to run on BSNES, but not in SNES9X (it complaining about checksum at start up).

 

Teleporting into walls are deadly :awwthanks:

 

6 hours ago, DPBOX said:

If you pause the game, it REALLY glitches out

I did everything I could to find out what is causing this glitch, but I just couldn't find it. Once you pause the game, the tile art is different, but the OAM entries are pointing to the right art.

 

@DPBOX I looked at some of the registers and it seems the pause screen's settings are not being changed back when exiting the pause screen (it could be related to the glitch):
screens.png.f506ca6f54f96c1a132b2061dadab89a.png

 

I have added you as a participant.

 

1 hour ago, LCpony417 said:

Don't you just hate it when glitches magically fix themselves?

This is why it is important to always remember to initialize your data (even when you think you don't need to). Any uninitialized data will pick up random garbage that were there before.

My C++ allocator for my entry adds a pattern (like 0xBAADF00D to the newly allocated data area (which is slow, that's why C++ don't initialize anything, it is up to the programmer), so it can be seen as non-zero so I will detect when I forgot to clear a variable to 0 or the some default value. JavaScript always zeroes out memory for you (it is the slow approach, but without it, all webpages depending on laziness would crash), and my C++ code is running inside a web browser with JavaScript memory rules. Porting my C++ to anything else (like the Nintendo DS) and depending on memory to always be 0 is a huge mistake.

When it comes to consoles, like the Super Nintendo, there are memory back-switching and stuff. One uninitialized bit in a register can toggle something differently.

 

I am currently not getting audio to work, having Chrome and touch screen devices failing my sound tests. It is really difficult to find what is wrong. I have a working situation for my other projects, but I can't find where I am making a mistake in my current code.

Link to comment
Share on other sites

1 hour ago, Splashee said:

This is why it is important to always remember to initialize your data (even when you think you don't need to). Any uninitialized data will pick up random garbage that were there before.

That's right! This is exactly what I always do whenever I make a Scratch project. In Scratch, variables are never set to a specific value when a new project is loaded. Their initial value is the value they had when the project was previdiously downloaded. When I found out about this fact years ago, I learned my lesson to always initialize my variables whenever I make a Scratch project. Basically, set all of the variables to a specific value right after the green flag is clicked, and this will make the project always run the same exact way whenever you start it.

So yeah, I see how important it is to initialize variables.

  • Brohoof 1
Link to comment
Share on other sites

On 2022-09-09 at 5:57 PM, DPBOX said:

@Splashee, do you have experience programing the Super Nintendo? You seem to know about SNES registers and such.

I have programmed mostly for Sega Genesis. Worked a lot with Nintendo GBA and DS. So Super Nintendo isn't that big of a difference, except the assembly language that I don't know much about.
I do know quite a lot about how Super Mario World works as well.

 

-----

 

I finally got by the sound bugs. Now sound works on all devices (iPad, Android, PC). I added a nice "Welcome" in Starlight's voice when booting up. Also the start menu and task bar, and volume icon are now implemented (possible to mute sound pressing the icon). This ends my "Windows" programming as I now start working on the actual games....... :awwthanks:

http://logotypes.se/jam/entry

One4.png.680bc63abd2106c0c40a8bc2c934d7fd.png

 

Continuation...

 

Link to comment
Share on other sites

17 minutes ago, Splashee said:

This ends my "Windows" programming as I now start working on the actual games....... :awwthanks:

I wish you good luck programming all of the games in about 5 days... Lol!

My game only needs two more levels and one special thing at the end. After that, I am done.

Link to comment
Share on other sites

5 hours ago, Splashee said:

Absolute pain of trying to program Pac-Man for the first time. 3 days and I got this far:

http://logotypes.se/jam/entry

One5.png.d6ac466af63926483cbf9125d2e28341.png

The Mane 6 (4) can't hurt you, yet. They are also not accurate because I failed their AI implementation (they are still quite scary). Best controls so far lol?

Great going!

 

Y'know, I'm not really sure if I'll be able to make it till the deadline. School week's pretty hectic cause exams are up in three weeks and we're nowhere near ready. I don't even get time to touch my laptop.

If I'm not able to make it and the thread gets auto locked, what should I do?

Link to comment
Share on other sites

3 hours ago, Rainboomer Zap said:

If I'm not able to make it and the thread gets auto locked, what should I do?

How much more time do you think you need? I am getting the same kind of stress from @LCpony417 about the auto lock being too soon.
However, this is what deadlines are about. It is a challenge for me to see how far I can reach under a very tight time table.

If you both need the deadline to be moved to a later date, I will allow for it since you are a big part of this dev jam. Question then is, when should the deadline be?

Link to comment
Share on other sites

I have completed the first game in the Equality eXperience Pack:

Pac-Pone:

PacPone.gif.847877dfbc9f56d509c97d2a3e4b6007.gif

You are Starlight, avoiding the Mane/Mean 4. You win if you eat everything. You will eventually find some glitch, and if not, just open up enough game windows to make things challenging. Intuitive controls are just one feature of Equality eXPerience!

One6.png.c87dec91fd6185f83f0a6e5f40b3ce39.png

 

Play it here:
http://logotypes.se/jam/entry

 

Continuation...

 

Link to comment
Share on other sites

Drawing and pushing the code to the limit today to make a Pony Tetris. It will be absolute perfect to fit all the pieces together..... And the good controls are back :ButtercupLaugh:

One7.png.a1b03fbffea0c3d8b14fe84314e55d1c.png

 

The two poines seen are two different things: Starlight is a "sprite", and Fluttershy is made up of background stack blocks. That means that it will be possible to clear lines and cut ponies in half.... :awwthanks:

  • Brohoof 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Join the herd!

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...