Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1] 2 3 4

Author Topic: Making a DF clone prototype with multiplayer. What do you want/expect ?  (Read 6261 times)

Thorlak

  • Escaped Lunatic
    • View Profile

Hello guys,

I'm a professional software engineer working in the finance industry. I finished my last side project.
The next one is to do a small prototype of a DF (fortress mode) clone with multiplayer that will take roughly one to two month at most.
DF being my favorite game, I always wanted to play in multiplayer with friends.
So here I am to collect some data on what other DF player would want the game to be. Forget that this is a prototype, give me your DF multiplayer dream and I'll sort it out to implement what I can.

Here is a non exhaustive list :

What kind of multiplayer ?
  • Do you guys want to be able to share a fortress ?
  • Have your fortress in a shared world and have interaction with the others ?
  • Persistant world ? Lobby ? In a browser ? (wut ?)
  • all of them ?
  • Something else ?

Must have feature to be enjoyable ?
  • Better UI
  • World gen
  • Procedural generation (item, monster etc)
  • FUN
  • Moddable

Graphics ?
  • Ascii
  • 2D (like now)
  • 2D isometric
  • 3D (Only in 100years or with a couple of millions)

If the prototype is fun and do-able, I may make it as a long term project.
Thanks, Thorlak.

ps : There is also a reddit post but I post here in case people don't go to reddit (like me)
Logged

Nep Nep

  • Bay Watcher
  • Master of Za Warudo
    • View Profile
Re: Making a DF clone prototype with multiplayer. What do you want/expect ?
« Reply #1 on: November 02, 2015, 08:17:01 pm »

While I am intrigued by clones and such, I wouldn't recommend posting it in this very forum, where it's discussing about the game's fortress mode, and not fangames.
Logged
Waluigi rushes to aid him, but not before warning Bowser, "Don't expect mouth-to-mouth!"

Thorlak

  • Escaped Lunatic
    • View Profile
Re: Making a DF clone prototype with multiplayer. What do you want/expect ?
« Reply #2 on: November 02, 2015, 08:40:59 pm »

I though the same and wasn't very sure where to put this topic. But on the other hand, this is the place where the people I want an opinion from hang around.
But right now I am just gathering data on other players visions on Fortress Mode and how they would imagine their multiplayer DF fortress mode.
Maybe even the prototype won't never happen.

Cheers,
Thorlak
Logged

Dozebôm Lolumzalěs

  • Bay Watcher
  • what even is truth
    • View Profile
    • test
Re: Making a DF clone prototype with multiplayer. What do you want/expect ?
« Reply #3 on: November 02, 2015, 10:12:21 pm »

Arrgh.  Wouldn't recommend.  Remember Khazad, guys?  Yeah, I really wouldn't put it on this forum.
Logged
Quote from: King James Programming
...Simplification leaves us with the black extra-cosmic gulfs it throws open before our frenzied eyes...
Quote from: Salvané Descocrates
The only difference between me and a fool is that I know that I know only that I think, therefore I am.
Sigtext!

Javarock

  • Bay Watcher
    • View Profile
Re: Making a DF clone prototype with multiplayer. What do you want/expect ?
« Reply #4 on: November 02, 2015, 11:22:49 pm »

Your best bet would be to post in it creative projects/other games. You'd probably be able to get a lot of constructive advice from creative projects because occasionally someone making a game posts a topic there, and they usually drum up alot of interest. Although I won't lie, the comments will come in at a slower pace since there's less people who frequent that sub-forum.
Logged
“When you cut pieces out of the truth to avoid looking like a fool you end up looking like a moron instead.”
― Robin Hobb, Assassin's Apprentice

Flying Dice

  • Bay Watcher
  • inveterate shitposter
    • View Profile
Re: Making a DF clone prototype with multiplayer. What do you want/expect ?
« Reply #5 on: November 03, 2015, 01:36:23 am »

Rather than retreading much of the same ground again, see here as to why coming here saying "I want to make a DF clone" is not a particularly good idea.

That said, at least you're actually a programmer and have realistic design goals.

I'll reiterate what I said last time, though: Don't make a DF clone. Read that thread, take the advice from everyone that contributed it (in cases where it applies), and then set out to make your own game. That thread already covers why Rimworld works and has a following here. Ultima Ratio Regum is another game which took some of the underlying draws of DF (Adventure Mode, in its case) and intermingled them with good themes from other games, and now has a substantial following here despite barely scraping at the beginnings of actual gameplay after years of development. Instead of a DF clone, make a game that learns from the lessons of DF's success and creates the same intrinsic appeal to people who enjoy this niche.
Logged


Aurora on small monitors:
1. Game Parameters -> Reduced Height Windows.
2. Lock taskbar to the right side of your desktop.
3. Run Resize Enable

Skullsploder

  • Bay Watcher
    • View Profile
Re: Making a DF clone prototype with multiplayer. What do you want/expect ?
« Reply #6 on: November 03, 2015, 02:41:01 am »

If you want to make a DF clone, I'd have to agree entirely with what others have said, here and in that other thread.

HOWEVER, a lot of my friends feel like they'd be a lot more interested in DF if it was multiplayer in a more traditional snse than succession forts and the like. So perhaps a better route to take would be to try modding the game. That way instead of having to write a game from the ground up that does exactly what DF does, you can just take DF and change it to be something slightly different. I have a few ideas for multiplayer mods for DF that you could be interested in.

You could try to have multiple player fortresses active in the same persistent world. I feel like that is fairly possible, but very difficult. You would also have to make meaningful inter-fortress diplomacy and trading happen for it to be worthwhile, and that would be very difficult. Perhaps waiting for the army and caravan arcs would be a better idea for a mod like that.

A lot more realistic and probably not too difficult at all is if you could allow multiple players control over the same fortress. That would definitely be fun and a good way to introduce new players to the game.

Something that would be very cool, a sort of extension of the above idea, is if you could work out a way to have two separate players controlling two separate civilisation entities on the same game map. I would not play a DF clone, but I would definitely play a DF overhaul mod that allows that. It would require a very serious rework of a fairly large part of the engine, but having two competing fortresses on the same map would definitely be fun. The tricky parts would involve making it so that one player's commands are not carried out by the other player's civilians, and that the players cannot see each others' revealed tiles. It would be a game of mining and counter mining and epic defenses. And it would not be a DF clone, but a DF mod, which would mean a lot easier support around here and a lot less time in the making. It took Toady years to get DF where it is today and I'd recommend against trying to recreate that labour.
Logged
"is it harmful for my dwarves ? I bet it is"
Always a safe default assumption in this game 

Zealord

  • Bay Watcher
  • [BIOME_SUPPORT:SUBURBS]
    • View Profile
Re: Making a DF clone prototype with multiplayer. What do you want/expect ?
« Reply #7 on: November 03, 2015, 03:19:02 am »

Please don't, especially regarding what everyone else has sad in this thread. What was your last project? What engine do you plan to create this cone with?
Logged
This is great.

Bumber

  • Bay Watcher
  • REMOVE KOBOLD
    • View Profile
Re: Making a DF clone prototype with multiplayer. What do you want/expect ?
« Reply #8 on: November 03, 2015, 04:42:42 am »

Rather than retreading much of the same ground again, see here as to why coming here saying "I want to make a DF clone" is not a particularly good idea.
DF clone prototype.

The intent is completely different here, from what I can tell. Thorlak stated in the OP that it's going to be a small scale project that he's only willing to put a couple of months into (unless all goes really well.) Basically a proof of concept for DF with multiplayer. He's not stealing DF's internal secrets to do so. He's not trying to convince people to stop supporting Toady. It might even benefit DF in the long run if the multiplayer model is shown workable. If Thorlak wants to differentiate it from DF later he can.

HOWEVER, a lot of my friends feel like they'd be a lot more interested in DF if it was multiplayer in a more traditional snse than succession forts and the like. So perhaps a better route to take would be to try modding the game. That way instead of having to write a game from the ground up that does exactly what DF does, you can just take DF and change it to be something slightly different. I have a few ideas for multiplayer mods for DF that you could be interested in.
DF isn't mod friendly for anything that doesn't exist in the raws. It's actually easier to write a game from the ground up than to attempt to reverse engineer multiplayer into a closed-source game. DFHack's been developed for years, and only recently have we gotten the ability to pull off stuff like TWBT. That alone is a small miracle.
« Last Edit: November 03, 2015, 04:48:05 am by Bumber »
Logged
Reading his name would trigger it. Thinking of him would trigger it. No other circumstances would trigger it- it was strictly related to the concept of Bill Clinton entering the conscious mind.

THE xTROLL FUR SOCKx RUSE WAS A........... DISTACTION        the carp HAVE the wagon

A wizard has turned you into a wagon. This was inevitable (Y/y)?

Purple Gorilla

  • Bay Watcher
    • View Profile
Re: Making a DF clone prototype with multiplayer. What do you want/expect ?
« Reply #9 on: November 03, 2015, 05:06:36 pm »

*Make it translatable. The best way would be open-source. While most people confuse open-source with freeware, you can actually release proprietary open-source programes. If you really don't want that, you can put the engine into a DLL, and make the EXE file with the high-level stuff open source. In this scenario, you could even sell the DLL without loosing translatability. Please don't bother with text in XML or that, because you can't translate blobs of text, without knowing context like gender and case.

*Make it actually work. Seriously. Use defenesive programming. Put hard limits on everything, especially dwarves, objects and contaminants. Put all (yes ALL) data in arrays of fixed size, only call alloc() while embarking or loading. Write functions, to verify if pointers what are suposed to point into an array of a type actually point to the array, and intercept dangling pointers. Don't use object-oriented programming, to ensure memory allocation, and function pointers exist only in places, you definitly want them and took measures to do it safe. Don't be creative, stay at fixed features that definitly will be in the game, and don't add new stuff. Judging the code from LCS, DF's code is probably [beyond quality], so it is about time, that somebody with formal programming education helps to make it actually work.

Thorlak

  • Escaped Lunatic
    • View Profile
Re: Making a DF clone prototype with multiplayer. What do you want/expect ?
« Reply #10 on: November 03, 2015, 05:52:56 pm »

Rather than retreading much of the same ground again, see here as to why coming here saying "I want to make a DF clone" is not a particularly good idea.
DF clone prototype.

The intent is completely different here, from what I can tell. Thorlak stated in the OP that it's going to be a small scale project that he's only willing to put a couple of months into (unless all goes really well.) Basically a proof of concept for DF with multiplayer. He's not stealing DF's internal secrets to do so. He's not trying to convince people to stop supporting Toady. It might even benefit DF in the long run if the multiplayer model is shown workable. If Thorlak wants to differentiate it from DF later he can.

Thank you Bumber, you totally understand my intention.
To be fair, I may have not choose the correct words, also I know there was already some "DF CLONE COMING" topic before.

Anyway, for the prototype I just wanted to be open-minded about it and see what others think. Because I have my vision of a multiplayer DF but I already see that this is not the same as others.
I know that sometimes our own idea can be crap. :)

Please don't, especially regarding what everyone else has sad in this thread. What was your last project? What engine do you plan to create this cone with?

My last project was inspired from Aurora. It was to simulated human colonies accross the galaxy using the actual market data and events from earth. You can also add random event to see what can happen.
Really simple example :
We have a colony on mars and the moon. Some of the earth food is exported to Mars.
Big storm ruin tons of wheat on earth, exporting food to mars colony isn't enough. So people die of hunger on mars and they start to move around to the moon. Mars become poor and neutral faction take over the planet and create the martian federation and ask for independance. 
No graphics was juste numbers in spread sheet and some description texts.
Might not be a "proper game", but I've done lots of other small prototype.

*Make it translatable. The best way would be open-source. While most people confuse open-source with freeware, you can actually release proprietary open-source programes. If you really don't want that, you can put the engine into a DLL, and make the EXE file with the high-level stuff open source. In this scenario, you could even sell the DLL without loosing translatability. Please don't bother with text in XML or that, because you can't translate blobs of text, without knowing context like gender and case.

*Make it actually work. Seriously. Use defenesive programming. Put hard limits on everything, especially dwarves, objects and contaminants. Put all (yes ALL) data in arrays of fixed size, only call alloc() while embarking or loading. Write functions, to verify if pointers what are suposed to point into an array of a type actually point to the array, and intercept dangling pointers. Don't use object-oriented programming, to ensure memory allocation, and function pointers exist only in places, you definitly want them and took measures to do it safe. Don't be creative, stay at fixed features that definitly will be in the game, and don't add new stuff. Judging the code from LCS, DF's code is probably [beyond quality], so it is about time, that somebody with formal programming education helps to make it actually work.
I would love to talk technical (even if premature optimization is the root of all evil), but this is not the topic for it.



Anyway, I hope that more of you will give me your vision.

By the way, I love the Adams brothers for what they have done with DF and admire them as a gamer and as a programmer. I meant not harm.

Thorlak
Logged

miauw62

  • Bay Watcher
  • Every time you get ahead / it's just another hit
    • View Profile
Re: Making a DF clone prototype with multiplayer. What do you want/expect ?
« Reply #11 on: November 03, 2015, 05:54:44 pm »

Hard-coded "you can't have more than X creatures" on the map is awful and an antithesis to DFs goal of being a full sandbox.

Also, for MAXIMUM PERFORMANCE, SPEED AND POWEEEEERRRRRR you should write it entirely in assembly and micro-optimize everything by hand. This is only slightly more ridiculous than writing something on the scale of DF in what amounts to 1980s C, IN 2015.

You seem to have misidentified DFs performance issues. How the fuck are you going to write something future-proof without OO? Also, vectors and reserve() are a thing. Verifying that pointers exist is something DF indubitably does, because accessing a dangling pointer generally results in a segfault. Also, apparently being completely uncreative and making a 1:1 clone is the way to make a good, efficient game?

You just need to keep in mind what you want to implement, and that every system will have to be rewritten eventually. Optimize as needed, not in advance.


E:
@Thorlak I don't really see what you want to achieve with this, but if you do it, I'll follow it with some interest.
« Last Edit: November 03, 2015, 05:56:30 pm by miauw62 »
Logged

Quote from: NW_Kohaku
they wouldn't be able to tell the difference between the raving confessions of a mass murdering cannibal from a recipe to bake a pie.
Knowing Belgium, everyone will vote for themselves out of mistrust for anyone else, and some kind of weird direct democracy coalition will need to be formed from 11 million or so individuals.

omega_dwarf

  • Bay Watcher
  • Adequate Architect, Dabbling Modder
    • View Profile
Re: Making a DF clone prototype with multiplayer. What do you want/expect ?
« Reply #12 on: November 03, 2015, 07:46:27 pm »

If you just want to do *something* with DF, and aren't necessarily set on the clone-that's-multiplayer idea, you could make a visualizer with integrated user interface (either similar to Armok Vision or helping the guy who's making Armok Vision.)

With regards to multiplayer, I believe there was a very outdated mod that made it possible in some capacity. You might want to contact the authors (if possible) and see if you can use that as a starting point for your project.

The ideal thing would be a DF mod that allowed multiplayer on the same map (or at least in the same world.) Either collaborative (two simultaneous overseers sounds !!fun!!) or against each other would work. I know it's near-impossible, but like I said, I *think* it's been done to some extent before. Heck, even if you could only get it working on a previous version of DF, I'd still play it.

With an external program...I feel like there should be a way to have two simultaneous overseers, with both their UIs separate from DF's. Visual output could be something like stonesense (maybe literally stonesense), and input could be through a system like quickfort (I think that's the program?); the DF window is just sitting around awaiting commands, and the commands are sent from the external programs; they get queued up and the DF window is tricked to think it's all keypresses...something of that nature, I think, would be very well-received, since your program would complement DF, and maybe be forward-compatible with future versions, rather than replace it.

I know you just said you didn't want to get technical, but I feel like there are some ways to mod (ish) that don't actually involve you touching too much of DF's code - and if you're a professional, you might be able to figure it out in more articulate terms than a (at the moment, very sleepy) hobbyist like me.

Hope that inspiration helps!

Bumber

  • Bay Watcher
  • REMOVE KOBOLD
    • View Profile
Re: Making a DF clone prototype with multiplayer. What do you want/expect ?
« Reply #13 on: November 04, 2015, 12:07:41 am »

Hard-coded "you can't have more than X creatures" on the map is awful and an antithesis to DFs goal of being a full sandbox.
*cough* Species cap 50 *cough*

It's good enough for a prototype, although I'm not aware of any significant gains of static arrays versus fixed sized arrays on the heap (so you can set the size in an ini.)

With regards to multiplayer, I believe there was a very outdated mod that made it possible in some capacity. You might want to contact the authors (if possible) and see if you can use that as a starting point for your project.

The ideal thing would be a DF mod that allowed multiplayer on the same map (or at least in the same world.) Either collaborative (two simultaneous overseers sounds !!fun!!) or against each other would work. I know it's near-impossible, but like I said, I *think* it's been done to some extent before. Heck, even if you could only get it working on a previous version of DF, I'd still play it.
The only thing that would exist to date would have multiple users fighting over the same screen, or merely watching. It's now at least somewhat more doable with recent DFHack stuff. You could queue up commands and ensure atomic transactions. There'd be issues if there are menus where DF doesn't calculate the info until you're on the screen, then it gets outdated when you leave.

They're not really 'mods', they're 3rd party utilities and hacks. Long term projects working around the system. A prototype is better for a few month's time, then you figure out how to hack it in.
« Last Edit: November 04, 2015, 12:26:44 am by Bumber »
Logged
Reading his name would trigger it. Thinking of him would trigger it. No other circumstances would trigger it- it was strictly related to the concept of Bill Clinton entering the conscious mind.

THE xTROLL FUR SOCKx RUSE WAS A........... DISTACTION        the carp HAVE the wagon

A wizard has turned you into a wagon. This was inevitable (Y/y)?

omega_dwarf

  • Bay Watcher
  • Adequate Architect, Dabbling Modder
    • View Profile
Re: Making a DF clone prototype with multiplayer. What do you want/expect ?
« Reply #14 on: November 04, 2015, 12:43:32 am »

@Bumber, fair enough. Although getting even the basics of DF working reliably, on top of a day job, in 1-2 months, with reasonable FPS, also seems difficult. OP would have to implement pathfinding, terrain gen, jobs & job priorities & everything associated with them, terrain display, multiplayer itself, temperature/fluids if they're included, other AI things (invaders, etc.), and combat, minimally.

Also, I found two three mods/utilities/etc. that seem to match what I thought already existed:

dfterm3
dfmp
dfeverywhere

Dfterm, it's definitely people fighting over screen time - and probably the others, too. (But my idea was to mitigate that by not using the actual screen; make a 3rd party application that displays its own version of the menus, etc., and transfers the info to some kind of queue which is then transferred to DF, like you were talking about. Menus about specific items could be generalized to "items of price ___ - ___" or whatever, and the queue program could figure it out once it gets there. Levels of the fort can be scanned and stored for display (hotkey over for one step) as needed. But there would definitely be some challenges, esp. with tracking items and dwarves, etc. in some meaningful way.)

Anyway, could be cool!
Pages: [1] 2 3 4