CusPop options in SDLPoP

Open-source port of PoP that runs natively on Windows, Linux, etc.

Moderator: English Moderator Team

Falcury
Wise Scribe
Wise Scribe
Posts: 283
Joined: June 25th, 2009, 10:01 pm

CusPop options in SDLPoP

Postby Falcury » October 15th, 2016, 11:14 am

Quite a few CusPop options are being added to SDLPoP in the new release.
However, the options that edit the special events of the game are still missing as of yet.

I have been wondering how we should handle these options...
Most special event options are tied to a particular level in the code using a comparison with the current_level variable, like so:

Code: Select all

// Special event: set checkpoint
if (current_level == 3 && Char.room == 7) {
   checkpoint = 1;
   hitp_beg_lev = hitp_max;
}

So, say that we want to allow using a checkpoint in another level than level 3, for instance:

The easiest option would be to allow current_level to be compared with other values, and add an option to the [CustomGameplay] section of SDLPoP.ini like this:

Code: Select all

checkpoint_level = 3

But, suppose we would like to use a checkpoint in more than one level. We could quite easily add this functionality. We could maybe create an SDLPoP.ini option like this:

Code: Select all

; If desired, you may enter multiple level numbers (separated by commas)
checkpoint_level = 3, 4, 7

One way to implement this would be to use a bitfield (with 1 bit for each level) to store the level information for a specific special event, write a small function to extract the information, and then use that like so:

Code: Select all

// Special event: set checkpoint
if (is_special_event_level(checkpoint_level) && Char.room == 7) {
   checkpoint = 1;
   hitp_beg_lev = hitp_max;
}

So, do we want this (multiple levels for each special event) to be possible? And if yes, would this be a good way to implement it?

User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 2855
Joined: April 9th, 2009, 10:58 pm
Contact:

Re: CusPop options in SDLPoP

Postby Norbert » October 16th, 2016, 1:52 am

Falcury wrote:So, do we want this (multiple levels for each special event) to be possible?


I think maybe it's useful to take a step back and look at the project more generally. Maybe "do we want this" can be answered by looking at what mod authors are doing and requesting. After more versatile INI options were introduced, a handful of mods have been created, but none used SDLPoP. Even though, perhaps with the exception of never giving the prince his sword at the start of levels, all core/most-used customizations are available.

If there would be mod authors interested in working with SDLPoP, feature requests would pop up. Such interest might emerge if the application's advantages are more clearly advertised. I've written previously that a starting screen could show important keyboard shortcuts, such as F6/F9 to quicksave/load. Also, I think very few people are aware that SDLPoP supports some additional, unique tiles. I personally barely even remember what the unique potions in your mod were; was there a blue potion that teleported the player? I'm serious, I don't remember, and I don't think these potion customizations ever made it into SDLPoP. I should've made it (even) easier to add custom tiles to apoplexy's SDLPoP tiles screen, but it is what it is.

Anyway, maybe the document that explains how to use SDLPoP (and MININIM) with apoplexy isn't enough, maybe there should be a video about modding with SDLPoP that also goes into the INI options. I also think most people are unaware of what's theoretically possible with SDLPoP. It needs some kind of killer feature to get modders interested. A potion that can display text, a potion that turns back time but leaves gates open, or something similar. A multiplayer option, to have one player touch a button while another walks through a gate.

You're basically missing input from (potential) modders. No doubt, for example, David can give useful feedback to your "do we want this" question, but his primary interest (too) is probably with developing and not modding itself. Maybe there should be a thread where people can (brainstorm about and) make feature requests. And maybe a new administrator should point to that thread on Twitter, Facebook, and the main Princed web page.

I think new custom tiles that can be used with a proper level editor (either external, such as apoplexy, or as part of SDLPoP itself) could breathe new life into the modding scene. We could move away from all the super hard mods and get back to easy but cleverly designed levels. New custom tiles could play a big role in this. Potions are probably key here. And maybe different kinds of swords, like a sword that can remove new custom, differently colored walls.

David
The Prince of Persia
The Prince of Persia
Posts: 1259
Joined: December 11th, 2008, 9:48 pm
Location: Hungary

Re: CusPop options in SDLPoP

Postby David » October 16th, 2016, 11:08 am

I have some similar feelings: Does anyone even use these new features?

Another thing is that I don't feel SDLPoP to be as exciting as I did when it was new.
If you look at my recent commits, most are just merges: https://github.com/NagyD/SDLPoP/commits/master

Maybe part of this is that I have a day-time job since 2015, and that takes much of my time.
Not to mention that, like any job, it's about doing things that others ask for.
I'm not sure if I want to do the same in my remaining free time. :|

And then of course I have some other hobbies...

Falcury
Wise Scribe
Wise Scribe
Posts: 283
Joined: June 25th, 2009, 10:01 pm

Re: CusPop options in SDLPoP

Postby Falcury » October 16th, 2016, 12:13 pm

Thanks for your comments, Norbert and David. You bring up good points.

On the topic of SDLPoP's new features and whether they actually get used:
Perhaps I myself have been too hasteful in my own drive to implement new stuff, losing sight of the users? That's quite possible...

I do believe that "zero PR" can be "enough" if the product is simply very very good (as I believe SDLPoP has been from the start!)
I love Tesla's strategy for instance (as described in posts like this one: http://www.referralcandy.com/blog/tesla/)

But yeah, it may be good to get more modders involved.

I have been hoping to be able to port all of the existing mods to SDLPoP - to do a sort of SDLPoP-based Total Pack alternative. For this to be possible, of course all existing mod features need to be fully implemented...

Then after that, the "killer feature" could become the SDLPoP ecosystem as a whole. If we provide the tools for modders to exchange new mods (perhaps... based around popot.org...?), with automatically updated high-scores, etc. all in ways that are way more user-friendly than what we have now, then I think our platform could certainly take off.

But in the short term we could simply work towards the 1.17 release, then take a short break (or a long break)... I agree, it won't do us much good if we plough on even though our hearts are not in this... I know I certainly won't be able to do it myself without you guys.
I am sorry to hear that you are starting to think of SDLPoP as a burden, David. :(

User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 2855
Joined: April 9th, 2009, 10:58 pm
Contact:

Re: CusPop options in SDLPoP

Postby Norbert » October 16th, 2016, 4:01 pm

Migrating existing mods to SDLPoP or complementing them with additional SDLPoP ZIP packages sounds like a lot of work. There are 165 PoP1 for DOS mods on popot.org, plus whatever may be created in the future. Manually, for instance by running diffpop on executables and then assembling INI files, this could take days. Creating a program to take care of the job might be even more work.

I do like the idea of doing something with (high)scores. If instances could be launched on the server-side, as the Internet Archive is doing with PoP1 for DOS using DOSBox here, it might be possible to attach (e.g. popot.org) user accounts to instances/progress. This might prevent tampering and could allow official mod winners to show off trophies and whatnot. But this also sounds like a lot of work. I know GTK+ applications can run in a web browser using the GDK Broadway backend. No idea if SDL has something similar; maybe Emscripten could do this.

David
The Prince of Persia
The Prince of Persia
Posts: 1259
Joined: December 11th, 2008, 9:48 pm
Location: Hungary

Re: CusPop options in SDLPoP

Postby David » October 22nd, 2016, 12:16 pm

Norbert wrote:If instances could be launched on the server-side, as the Internet Archive is doing with PoP1 for DOS using DOSBox here,

It seems to me that the linked page runs the game in the browser (using a JS port of DOSBox), not on the server.
They say "Stream Only" and "Free Streaming", though.

(After the game has started, just pull your LAN cable and see what happens. Or rather, doesn't happen.)

Falcury
Wise Scribe
Wise Scribe
Posts: 283
Joined: June 25th, 2009, 10:01 pm

Re: CusPop options in SDLPoP

Postby Falcury » October 22nd, 2016, 1:30 pm

David wrote:
Norbert wrote:If instances could be launched on the server-side, as the Internet Archive is doing with PoP1 for DOS using DOSBox here,

It seems to me that the linked page runs the game in the browser (using a JS port of DOSBox), not on the server.
They say "Stream Only" and "Free Streaming", though.

(After the game has started, just pull your LAN cable and see what happens. Or rather, doesn't happen.)


I just noticed on that DOSBox emulator page, if you press Ctrl+Q, you back to DOS and this message appears: "Hope you enjoyed it - R. Bubba Magilicutty/THG". (This is someone who made one of the copy protection cracks, right?)
And after you quit the game, it seems you can do just about anything you want in DOSBox, including relaunching the game with cheats enabled :P
So yeah, it does seem like everything runs locally in the browser...

I suppose if we want to verify high scores, one way to do it would be to upload not only the final time to a server, but the entire replay of the playthrough - that could then be played back faster than real-time on a server that runs a stripped version of SDLPoP (which doesn't even render anything to the screen, but just steps through the gameplay frames).

Norbert wrote:Maybe there should be a thread where people can (brainstorm about and) make feature requests. And maybe a new administrator should point to that thread on Twitter, Facebook, and the main Princed web page.


I thought about this for a bit. If we do want some publicity, we could probably even try to contact some gaming or technology-oriented news websites and ask them if they would like to write a post about SDLPoP. I guess there would definitely be some interest in this. What do you think about this?

(Hm, I'm realizing this goes completely against what I said in my earlier post about "zero PR" and what Tesla is doing :| I suppose maybe the comparison with Tesla is not a good one, because Tesla is so well-known anyway that they don't need to tell people where to find them...)


Return to “SDLPoP”

Who is online

Users browsing this forum: Yahoo [Bot] and 1 guest