Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Andir

Pages: 1 ... 191 192 [193] 194 195 ... 210
2881
I gotta say I agree with Tamren, however that is not important now. I have a suggestion..move this thread to the suggestions subforum, and perhaps rename the thread title to: Third party interfaces. [[However as I see, everything has been said already [pros and cons] at least 5 times but ah well..]] ::)
I don't know how anyone can really tell if all the pros and cons HAVE been stated.  They'd somehow have to wade through 13 pages of people bickering that the presentation arc isn't finished yet and that somehow, before it's implemented, talking about it is off limits.

2882
I think the flat top-down version can get away with it, though. The problem with an isometric view is it is a more realistic angle and the suspension of disbelief is harder to maintain.
Not really, just make the dragon take up every bit of real estate in the square and make kittens really small.

2883
Quote from: readme
[HOW TO USE]
[snip]
3.)  Run map_extract.bat

     It will ask you for:
     a) Confirmation that it has identified the version of DF correctly.
        NOTE: At this point it may try to connect to the internet if it does
        not recognize your version.
Permit it in your firewall if you want it
        to update from Jifodus' website.
When I get home, I'll post you what my Readme has in it.  It's basically, just version information, it's a changelog.  I grabbed it from one of the links in this thread, so if it wasn't updated, then that's why.  Unless of course someone decided to defy conventional wisdom and place the instructions below all the change information... which is just odd.

2884
Here's the Proof-Of-Concept access & render of Dwarf Fortress's internal screen buffer.

http://www.geocities.com/jifodus/console.zip
What I like about this is that it's the raw characters, 80x25, and easy to do what you would want with. ;)  It doesn't include the OpenGL tile information:
Spoiler (click to show/hide)

I don't have time to do it right now, but I wonder what would happen if I used the logic from the map_extract and this...  so much to do.  How long do you think it would take ReadProcessMemory() to grab all the map data? :P

2885
I don't understand the constant negativity.  If you don't like discussing the issue, why read the thread and comment that it should be closed?

2886
I suggest you read the readme file. :)
Also: If the internet check just plain doesn't work out, try downloading the files from http://www.geocities.com/jifodus/tables/dwarvis/ manually and put them in your conf folder.
The "readme" has no information about the updating.  I was more curious, than anything, about where the update check was being run.

2887
Here's the Proof-Of-Concept access & render of Dwarf Fortress's internal screen buffer.

http://www.geocities.com/jifodus/console.zip

And a quick screen cap:
Spoiler (click to show/hide)
Source and all... You my friend, are a hero.  Excellent example.  This could easily be turned into many things...

2888
Boost does WAY more than that:
http://www.boost.org/doc/libs/1_35_0/libs/libraries.htm

Everything from I/O to threading to cross language stuff you mentioned.

2889
And Andir, you're overgeneralizing your speciality into a field that doesn't make any sense. Request-based client/server models are used in the web and on disparate hosts because they have to be. Doing it locally would be stupid (in addition to requiring a massive restructure that wouldn't benefit Toady).

Multithreading will be helpful, but synchronization primitives are costly and I strongly doubt that reworking the entire logic end of the game to make a library, just in order to appease a few people, makes any sense.
When you deal with threads, other than shared memory models, the easiest way to communicate is via client/server like methods.  Unless you're gunning for race condition bugs?  I was clarifying how it could be done.  Not how it should be done.  (Although, like the interface, if it's not decided up front it's not likely to ever get done.)

2890
You're confusing the interface with something that would have direct access to the game's logic. A third party interface would have no more capability than the official interface. Do you currently have the ability to delete a merchant in the interface as it stands now? Of course not. The interface would have two roles. Sending requests and outputting the current state of the game.

Let's start with sending requests. Say the player wants to build a construction at a specific location. Say a wall. Well the player clicks/types whatever has to be to select a wall and the location for it. The interface then sends a request to the game that a wall be placed at that location. The game then responds whether or not such a request was successful. Thus you've either placed a wall or the game responds back that it couldn't be done and the interface either refuses to place it or tells you that the attempt failed.

Now for output. The interface has decided it is time to render a portion of the game to the screen. The interface sends a request to the game. This request would amount to returning information on a visible tile/object at a certain location. The game would comply sending the data for that location. If the interface is set to render at a higher rate than the game currently updates then the interface could choose to cache the results it gets and keep using them over and over until a new game cycle occurs at which point the cached copies are labeled "dirty" and a fresh copy has to be requested.

As for threading, well threading the graphics wouldn't be too difficult at all. Simply have a thread that sits around doing nothing until receiving a command from the interface to render the current contents of the cache to the screen. The thread then immediately springs into action trying to render as fast as it possibly can. With hardware acceleration such a render shouldn't take very long at all. In fact in most cases the interface should be able to render fast than the game updates.

When it comes to threading I honestly have about as much experience as Toady does (though I do have some knowledge I picked up at college it isn't anywhere near as useful as experience). Perhaps even less. Thus I would probably avoid threading more than what can be easily threaded (like video, audio, events, etc). And you are right, syncing stuff can be slow. However the thread I mentioned above for graphics wouldn't have need of syncing beyond detecting if the cache has become "dirty" and possibly halting the current render if so.

Edit: I should mention that shortly after my last programming course ended (Java and it was last since I had run out of funds) I had started development of a text adventure game engine that involved a server/client like system using an API to communicate. It basically consisted of two commands. One fetched output and the other sent input. Not anywhere near as flexible as the interface for DF would have to be, but at least I can say I've tried it myself.
As a full time programmer who does multithreaded SQL injection and eLearning courses, interactions and material: I have to say you pretty much nailed it.

No synchronizing threads would need to be done.  The world would likely sit off in a class of it's own, the rest of the game would send a request to this "world object" for access to specific tiles.  Upon getting the request, a check is made to determine if those tiles are in use, stalling the waiting process for a few ticks for the other process to release.  If they are not in use, the process is a minor addition to the current methodology's CPU usage and thousands of times more scalable.  Worst case scenario, you go to build a workshop and a few dwarfs have to move out of the spot you are trying to place the shop before the "shop placing thread" has access to specify the build order.  If any other dwarfs are trying to gain access to those same tiles, they wait in line like everything else.  In a way, this emulates/replaces the current collision detection methods that slow dwarfs down now when they are all trying to cram down a narrow hallway.

Edit: I should clarify.  It wouldn't replace collision detection.  It would give a similar "hiccup" to the movement of dwarfs colliding like they do now.

2891
Also, why can't you people whom are so eager to make a new interface project just wait for Toady to remake it on his own? It's not that far off in the future, maybe a year or so off.
So, would you rather wait for the bakery to make you a cake, then go back in and try to make it a chocolate cake by melting Nestle bars over the icing?  Or would you request that they make you a chocolate cake to begin with?

2892
View the game in Isometric, 3D, first person, or flat 2D tiles depending on what you prefer
Please tell me that was a joke.
In what way?  If the interface client was split form the engine server then it's totally possible for someone to create any or all of those interface types.

2893
It is his fey mood.
So when he doesn't have the resources to complete the project, will he run around attempting to kill us all?  Is this a prophecy in the game itself?

2894
DF Gameplay Questions / Re: Mayday DFG9.zip question(not working)
« on: July 28, 2008, 11:04:14 pm »
One more question. I don't get any sound in the game with Mayday's version. Is this a known issue? All I change in the init file is the resolution. There is sound in the intro but not the game and the sound works just fine in other versions. This is the init file.
Pretty sure Mike stripped out the sounds.  (They get pretty annoying anyway)

Pages: 1 ... 191 192 [193] 194 195 ... 210