Open GoodSign2017 opened 7 years ago
@AXDOOMER already listed quite a bunch of the things that could be added to this.
And you're right about the options part, I never liked the command line options. Why not make that graphical on startup and have it save selected options, so you can just click start or choose to enable extra features?
It can be done as a separate configuring utility. But the main executable itself should not, by default (without cfg tweaks, or arguments), expose anything non-vanilla to user at the maximum possible extent.
Also, even if the external utility will be present to configure these settings, the command-line arguments should be still available because for the external multiplayer connection utility it would be easier to interact with main executable by command-line arguments, then by configuration utility.
If you do not want to add command-line arguments yourself, I can add them for your options, after they are implemented somehow.
Commandline can always be used. as for multiplayer, why not create a launcher like they're doing on Doomsday at the moment? (still my favourite port to-date)
As I've never seen Doomsday's launcher, you will need to clarify this for me :-)
Fast picture from their site
basicly gives you the opportunity to do all configs/play all games/see all multiplayer games.
Basicly anything you can think of
Is their launcher compatible with other source ports? Is it free, libre and open source?
https://github.com/skyjake/Doomsday-Engine
I haven't checked on that tbh. but the link above might help, it sure is opensource
Is it called Snowberry launcher? If so, it would be probably better to use it or adapt slightly (either pull-requesting to their project or forking, does not matter too much) to use with Mocha Doom once we will have everything set up for it, than reinventing a wheel (and even that shiny and complex wheel, surely made using gold and diamonds)
When it comes to creating a launcher, I'm pretty sure I could handle that. It's not that much work in java
And snowberry is the old launcher
Where is the new one's source then?
should be inthere aswell, I know it's the latest build
It is not guarranteed. They may have used free, libre and opensource project as base for their old launcher, yet developed new, without obligation to share source.
When I looked for it, I didn't find metions of their new launcher's source. If you find it somewhere, please give me a link.
looking at classnames I'm pretty sure this must be it: https://github.com/skyjake/Doomsday-Engine/tree/master/doomsday/apps/libdoomsday/src
Yeah, it is GPLv2+. Good. Maybe it is a bit too monolithic, it terms that it is not just launcher, but something bigger. I should look at it closer in future.
I'll write a fast implementation on the achievements and such just as proof of concept and share the results here if you want :-)
won't be writing an actual server implementation yet, just hardcoding some stuff inthere that emulates the same process
It is up to you if you want to write them. For me there is only question of accepting the code.
True, but in order to accept code you'll need proof of it actually working and not interfering with vanilla
If I understand the code, I can determine whether it is compatible. So you can just write clean, self-explanatory, well-styled code.
Either, if Alexandre-Xavier Labonté-Lamoureux would think the code is compatible, I will accept it too.
If you want to know if I'd accept your feature requests as vanilla compatible or if it fits in the project, then it's better to do an exact description of what you want to do for me. This way you wouldn't waste any time coding things for Mocha that wouldn't be accepted.
Achievements, level system, tracking of progress
Explain how it works. What stats do you want Mocha to record? Make a complete list. You can hardly make an achievements, level system and progress tracking system with the statistic that I named in the other thread. Doom could only record a few different statistics. See Statistics driver.
Please create a different issue for the launcher, it's a different issue. The launcher will never be merge into Mocha's repo because it's a separate project. It's yours, you can do whatever you want with it. When it will be fully mature, we can advertise it as Mocha's official launcher and include it with our releases.
Concerning vanilla compatibility and the philosophy of the project, here's a few examples of things that I wouldn't like:
Feel free to ask questions.
@AXDOOMER to do this compatible and fitting, one need to think a little more creative, not so straight-forward, as you have imagined that far. Instead of writing menus, it is possible to add some graphics at the level of window system, like we add window controls for alt-enter and mouse grabbing which do not exist in vanilla, outside of the DoomLoop. Leveling system should be done totally outside of the port source, and it is definitely possible with statdump statistics. I cannot say much about progress tracking, though, but we should see that, not stop an attempt to do.
Anything related to network connections wouldn't be done until the net driver for Mocha Doom is written. However, if that would happen, I do not see why wouldn't be possible for net driver for Mocha Doom to accept a little customization without harm.
Launcher, of course, must be developed outside of our repos.
Overall, my position is "vanilla is the default option", not "vanilla is the only option"
@AXDOOMER: I have to follow @GoodSign2017 on this matter.
A list of stuff to record for single player:
Stuff to record in co-op:
Stuff to record in Deathmatch:
As for achievements, you can add anything a person can think of to this:
As for hosting a database/server and such for the statistics, I'm willing to fund that when the time comes, I remember you asking who'd pay for it.
Slight alterations to the actual source can enable hell alot of new possibilities, I like the idea of a vanilla doom, but it just won't do it. You'll have to come out with new stuff that add onto the actual gaming experience, without changing the actual game but all the stuff around it, that's something that doesn't really matter to people.
@Fabrice-leterme you can start with stuff that doesn't need any new features from the port, and when such features will be available, you better to expect these would be Boom features. We plan to add Boom compatibility in a meanwhile.
Instead of writing menus, it is possible to add some graphics at the level of window system, like we add window controls for alt-enter and mouse grabbing which do not exist in vanilla, outside of the DoomLoop.
What would you do in those new menus? Do you mean a window that would popup before the game starts, kind of like Doom95?
In the case of statistics, it would be up to the launcher to interpret them. The launcher would have to run in the background while the game in running. Once the player quits, then it would have to read the statistics file and write them to its database. It's easy though for a user to manipulate the data and put fake information in there in a way to obtain every achievement, the maximum level, etc. It can't be reliably used to compare players and see "who's the best".
Leveling system should be done totally outside of the port source, and it is definitely possible with statdump statistics.
It's fine with me if it's outside of the port and uses the statdump format. Same for the Achievements and progress tracking.
@Fabrice-leterme: You mentioned you wanted stats for "Mobs fragged (in total & by mob)", I believe the statdump format only provides a percentage and you can't get a count for the number of monsters killed by type. Also, if the users plays a mod, you can't guarantee that a Imp is still a Imp or if the Spider Demon didn't become another monster like a Chaingun dude. In the case of things like ratios, they don't have to be saved because they can be calculated from existing data.
It's easy though for a user to manipulate the data and put fake information in there in a way to obtain every achievement
I agree it an be easily forged. Still, if the game is modified to send this information, its requests can be forged as well. So, if to implement something like this, an approach must be taken when the game is hosted somewhere out of the client control, and only output of that instance is counted.
It is not a question of how the information was captured, only on which authority.
What would you do in those new menus? Do you mean a window that would popup before the game starts, kind of like Doom95?
I do not know. Possibilities include something like that, but I don't see what could be displayed in such window. I've even thought about notifications in Windows 10 and how they can be spawned, again, as a possibility. Honestly, I do not mind including that myself, only thinking about what's possible using window system's source.
Another crazy idea: Mocha Doom's live tile in Win10's Start
@Fabrice-leterme you are welcome to discuss your ideas about these enhancements.