What are you working on?

Everything not related to Prince of Persia should be discussed here.
David
The Prince of Persia
The Prince of Persia
Posts: 2846
Joined: December 11th, 2008, 9:48 pm
Location: Hungary

Re: What are you working on?

Post by David »

Norbert wrote:In theory, there is enough time for someone to figure out the compression algorithm.
I'm afraid I already did that in 2008...

(This should not be a big surprise after this, this, this, this, this, and this...)
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: What are you working on?

Post by Norbert »

David wrote:
Norbert wrote:In theory, there is enough time for someone to figure out the compression algorithm.
I'm afraid I already did that in 2008...
No need to be afraid. ;)
So, did you ever look into the Sega Genesis (Mega Drive) version?
David
The Prince of Persia
The Prince of Persia
Posts: 2846
Joined: December 11th, 2008, 9:48 pm
Location: Hungary

Re: What are you working on?

Post by David »

Norbert wrote:So, did you ever look into the Sega Genesis (Mega Drive) version?
I did, back in 2008.
The level format is quite different from DOS/SNES/NES/GBC:
The tile data is not split into rooms.
And the info about moving objects and guards is stored separately, spread into various parts of the ROM. (Each object has its own area.)
Data about levels' graphics is separate from the tile data, like in PoP1 SNES. But here there is only one layer. (Which is in turn split into front and back graphics.)

If you're interested, I will post some more details later.
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: What are you working on?

Post by Norbert »

David wrote:If you're interested, I will post some more details later.
Sure. Maybe put it in its own thread.
Some of us may want to look into it further still.
Falcury
Calif
Calif
Posts: 565
Joined: June 25th, 2009, 10:01 pm

Re: What are you working on?

Post by Falcury »

I'm working on a new version of my mod.

At long last, after >5 years I finally finished creating the remaining levels... Levels 10-13 are newly added, plus a 'bonus level' that you will only be able to reach as part of the secret/alternate ending. I am adding some new 'special events' to make both of the endings more interesting/rewarding.

The new version of the levelset will have 'infinite time', so there will be no time pressure to complete the levels.
(That means that the 'difficulty modes' of the current version of the mod will also go away... The "impossible" difficulty level - where you have only 20 minutes - will stay, but I'll instead call it "time attack mode" or something like that.)

I'm also adding a 'practice mode', which you can access by pressing Ctrl+P on the title screen (see attached image). The limitation is that you cannot progress to the next level (when you finish the level, the game restarts instead).
Attachments
practice_mode.png
practice_mode.png (18.95 KiB) Viewed 4119 times
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: What are you working on?

Post by Norbert »

Your mod sure is turning into something (even more) special, Falcury.

Unrelated:
Norbert wrote:[...] I will also explain why I picked the GBC port and which coding challenges I faced and how I tackled them.
I sort of made the above promise, but I don't feel like spending too much time and energy on this.
I'll just give rough summaries of things.

Why the GBC port? First of all, I wanted to use a port that doesn't require an additional ROM for the operating system to run. So, no Amiga, FM Towns, Mac, etc. I also didn't want to use a port that looks exactly like the DOS port. So, no Amiga, maybe Atari ST. I didn't want a black and white port, so no Game Boy. Nothing that already exists, so no DOS, SNES, NES. Nothing too modern, so no Wii, iPad/iPhone. Something somewhat well-known, not obscure like the PC-98 or SAM Coupé or Sharp X68000. In the end it was a tossup between something Sega (in particular Sega Genesis) or Game Boy Color. As you know, I picked the latter. Maybe one day I'll take on the Sega Genesis port.

Coding challenges? Well, the (de)compression. I was hoping the ROM contained non-compressed levels and started using some of the simple hex programs I had created (attached to this post). Since there was compression, I guessed it was likely something simple, like using the number of repeated characters - which it indeed uses. The SNES compression that David figured out is way more complicated. I also talked with Ed Magnin, the programmer of the GBC port, and he gave me some helpful suggestions. Allowing users to change the prince color, hit points and time left on the EXE screen was easy. (I still need to make sure the prince color changes on all levels. I can probably just search for the same string of five-bit colors in the ROM.) Allowing them to change the text on intro slides was quite a bit of work. The compression there is very easy, but making sure users can't mess things up with unusual input took a while. The compression marks end-of-slide, but it still requires each slide to have a specific size. Empty lines must contain a space, slides cannot end with a space, and so on.

This program has a normal ShowImage() function. It's about 100 lines of code, compared to apoplexy's 5900+ lines (yes, seriously...). I'm much happier with how legbop takes care of showing images. It's much more readable. InArea() still uses exact coordinates for the lower right though, I would've preferred to use image width/height instead, but it would've been too much work to modify this. The sizes of images are no longer hard-coded though - it gets them from the actual images, that is another improvement. The program still reuses a lot of apoplexy code, but I made sure that all code that's there is indeed required for this new program.

All in all, this project took longer than I expected. Everything added up it was a month of full-time work. Every small thing takes time to implement. On the other hand, a month isn't an overly long period of time either. I'm going back to working on my game, but if I ever feel like taking a break from that again, I might be up for spending another month in a similar fashion.
Attachments
hextools.zip
(25.47 KiB) Downloaded 91 times
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: What are you working on?

Post by Norbert »

By the way, related to this:
Norbert wrote:
David wrote:Why do you use int<->binary conversion instead of bit operations? Do you find them easier to understand?
I do. :)
I've been using right shift (>>), left shift (<<) and bitwise AND (&) for legbop.
They aren't difficult operations. Although I had to search on Stack Overflow for this one:

Code: Select all

      /*** Set direction bit. Again, thanks Stack Overflow. ***/
      arLevel[iByte]
        ^= (-iBit ^ arLevel[iByte]) & (1 << 7);
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: What are you working on?

Post by Norbert »

Norbert wrote:On the other hand, a month isn't an overly long period of time either. I'm going back to working on my game, but if I ever feel like taking a break from that again, I might be up for spending another month in a similar fashion.
Already happening.
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: What are you working on?

Post by Norbert »

Norbert wrote:
Norbert wrote:On the other hand, a month isn't an overly long period of time either. I'm going back to working on my game, but if I ever feel like taking a break from that again, I might be up for spending another month in a similar fashion.
Already happening.
...and more or less finished already, with the recent beta release.

I'm now working on an instructional video that explains how to use lemdop.
In my opinion, the program is not difficult to use, but it's definitely not as easy as apoplexy or legbop.
It has some small things that may not be immediately clear, especially when you first start using it.
For instance, that an object selection is deliberately being discarded if no graphics are selected.
And how the object limits work, that gate numbers and drop/raise buttons update when a gate is being removed/added.
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: What are you working on?

Post by Norbert »

Norbert wrote:I'm now working on an instructional video that explains how to use lemdop.
All right, published that.

I'm now going to work on popot.org, to make it possible for users to share and download SDLPoP replays.
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: What are you working on?

Post by Norbert »

Norbert wrote:I'm now going to work on popot.org, to make it possible for users to share and download SDLPoP replays.
Finished that a week ago.
Norbert wrote:I've temporarily stopped working on my Zeldaesque game [...]
I finally found (made) some time to work some more on my game. I've now finished most of its core functionality, including a main menu and the ability to save/load progress to 3 slots. The only 'big' thing that still needs implementation now is the functionality to use inventory items (that the player can already pick up, get an overview of, and even trade with NPCs) on things in the world. After that it's a matter of expanding and adding XML scripts that the engine then works with.
David
The Prince of Persia
The Prince of Persia
Posts: 2846
Joined: December 11th, 2008, 9:48 pm
Location: Hungary

Re: What are you working on?

Post by David »

Norbert wrote: I finally found (made) some time to work some more on my game.
How do you "make" time? With the "+" key in cheat mode? :)
Norbert wrote: I've temporarily stopped working on my Zeldaesque game [...]
I played the first Zelda game (for NES, from 1986), by the way.
But I stopped after a while. Maybe I found it too boring/hard/repetitive or something.
It seems to happen all too often with the various new games that I try...
("New", as in I haven't played it before. Otherwise it's hard to call a 30-year old game new...)
But every now and then, there is an exception and I complete some game.
Or at least play it for more than just a few hours.
Norbert wrote: I've now finished most of its core functionality, [...]
That's interesting... I'm looking forward to it!
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: What are you working on?

Post by Norbert »

David wrote:How do you "make" time? With the "+" key in cheat mode? :)
That sure would make certain things easier. :)
(In case you're not familiar with the expression, some pages: 1, 2, 3.)
David wrote:But every now and then, there is an exception and I complete some game.
You could give The Talos Principle a try.
Then again, you wrote you never buy games (online).
Falcury
Calif
Calif
Posts: 565
Joined: June 25th, 2009, 10:01 pm

Re: What are you working on?

Post by Falcury »

I have started following the Handmade Hero game programming streams. Just finished "Day 008 - Writing a Square Wave to DirectSound".
Norbert wrote:
David wrote:But every now and then, there is an exception and I complete some game.
You could give The Talos Principle a try.
Then again, you wrote you never buy games (online).
Hey, I'm looking to play that game some time.
I recently played The Witness. Very awesome. Still haven't found all the secrets.
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: What are you working on?

Post by Norbert »

The page about Casey Muratori includes: "I rewrote the movement system and helped extend the world editor for Jonathan Blow’s upcoming game The Witness." The link between the two things you mentioned. ;)
Post Reply