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 - zilpin

Pages: 1 ... 22 23 [24] 25 26 ... 40
346
DF Gameplay Questions / Re: Airstrike trap
« on: March 10, 2011, 03:35:35 pm »
I typically keep many war animals in a cage linked to a lever AND a pressure plate, after my primary defenses.
If the defenses fail, the 30 or so war dogs are automatically released by the Goblins who have managed to get into my main hall.
Gives me some time to respond, and try to find out how I screwed up so badly that the Goblins got that far.

347
DF Gameplay Questions / Re: Archer armor
« on: March 10, 2011, 03:30:59 pm »
No, the leather is just a historical entry.  Go full steel with leather cloaks.  Don't forget to use bucklers instead of shields.  Dwarves are very bad at the "I am out of arrows so I will run away" action.  They will more likely shoot all their bolts and then charge straight in.

Why bucklers?  I thought that DF requires a free hand to use a Buckler?  I never even make them.

I always keep my marksdwarves safe behind fortifications, or on high walls.  This keeps the suicide charges to a minimum, keeps them out of melee, since they can't path to the enemy.
Also a big fan of giving everyone Leather Robes for a little extra protection.
When I need to attack, Axe Dwarves in full steel bring the battle to the enemy.

Always use a danger room (preferably with level 4 water in it) for all your military.  Dodge is more valuable than armor, and armor is only useful if they have armor using skills.

For dorfs with low levels of Armour User it might be beneficial to give them lighter armours for more manuverability.  If you're confident your stockpiles will mean your marksdwarves have enough ammo always then it might be ok to use leather.  Enemy archers and marksman are likely the main cause of concern for your archers and typically even steel armour isn't THAT effective at stopping bolts and arrows too well.  If you're not short of metal, however, then there is no reason to hinder them thusly.
I agree.


Aside from that, I like to mod in full coverage platemail armour (only until DF reliably lets dwarves wear armor realistically, in layers), mod in crossbows with an Axe attack (they really existed in history!), and mod in a harmless Noodle Trap for use in the danger room (my danger rooms are safe for babies and puppies).

348
General Discussion / Re: The Dissolution of Michigan
« on: March 10, 2011, 03:15:08 pm »
...Michigan is taking clearest step ever to the literal definition of corporatocracy, authorizing private financial agencies virtually unlimited power to unmake democratically-constructed local governments at their leisure. ...

Reminds me of this quote:
Quote
"Fascism should more properly be called Corporatism because it is the merger of state and corporate power." -- attributed to Benito Mussolini

No verified evidence exists that he actually said it.
Still, it follows his idea of the all powerful Corporate State, government and business hand-in-hand.

This kind of folly always emerges during hard times.
The Republic is easily lost when neglected.

349
DF General Discussion / Re: Users could help Toady debug, with the PDB
« on: March 10, 2011, 02:33:48 pm »
*zilpin reads linked posts*

So somebody tried to make a DF clone using DF debug symbols as a reference?  That is just plain stupid.  Even from a purely self-absorbed unethical perspective, it's a stupid waste of time.  It is more work than writing your own project from scratch.
I can see how the symbols would be useful for peterix's DFHack library, but that is an auxiliary tool in no way detrimental to Toady's interests.  No ethics problems involved there.  Things like DwarfTherapist, Stonesense, and LazyNewb increase the value of the DF franchise, benefiting Toady.

*zilpin searches for information on Khazad*

That 3D view engine had promise.  There was talent there.  Shame he chose the behavior he did.

Unscrupulous types trying to reverse-engineer DF can not get the source code via PDB symbols.  Typical PDB files give function names and line number hints, but that is all.
Seems to me that excluding debugging symbols is a wee bit paranoid, but at least the paranoia is not arbitrary.  It had cause.  Once burned, all fires make one wary.

Oh well, my offer to assist in debugging is still open, if Toady wants it.
If not, that's fine too.

Cheers.

350
DF General Discussion / Users could help Toady debug, with the PDB
« on: March 08, 2011, 04:22:33 pm »
It occurred to me that there are quite a few programmers in these forums.
If we had the PDB file for Dwarf Fortress, we could go through the Mantis bugs and get more detailed debugging information to present Toady, saving him the time from trying to re-create the bug in question and track down it's source.

This kind of debugging grunt work is usually the most boring part of debugging, so distributing the effort across the community would certainly benefit Dwarf Fortress stability and bug-fix turnaround time.

Even without source code, PDB debugging information in skilled hands is useful at finding what lead up to a bug, using freely available tools from Microsoft and elsewhere.
Is there any reason why Toady doesn't make the PDB file available?


351
DF Gameplay Questions / Re: Current Bugs & Workarounds
« on: March 08, 2011, 03:14:53 pm »
Maltay, please update first post.
Thanks.

352
DF Suggestions / Re: Improving Pathfinding. (Computer sciency)
« on: March 07, 2011, 11:47:50 am »
...
I think node-based pathfinding is a great way to make pathfinding as a whole work better, but either make the computer figure out where the nodes are by itself, or by giving the player an ability to designate, in some hybrid of burrow and traffic-zone-style, the nodes themselves. 
Constructs that are physically built for physical purposes should not have meta-game exploit purposes.

I agree with your point, overall.
I would further propose that, instead of making the user designate "nodes", the algorithm simply use defined Rooms as the node, and remember paths between them.  After all, you already had to make that bed a Bedroom, that chair an Office, that table a Dining Room.
Hallways are already designated with high-traffic, though I wish there were a few more options for traffic (High, Medium, Normal, Low, Restricted, Forbidden).
Designating one-way tiles would also help, but that's just dreaming.  Right now I create one-way paths using hacked ramps.

Still, I would prefer Toady spent his time on bug fixes than re-writing or adding anything.



353
Life Advice / Re: C++ Program issue
« on: March 07, 2011, 11:27:58 am »


Question is already answered, but from a broader program design pattern standpoint I will suggest only using != and == when that is the exact value you want.
If you know that all values below 0 are the 'kicker', use a  >=0.
Also, in C and C++ it is usually better to put the constant on the left.  For example  while( 0<=x )   This prevents accidental assignments.


354
Life Advice / Re: Getting Into Coding
« on: March 04, 2011, 02:23:18 pm »
...For example, Python could be used for scripting...
Python is very heavy weight.  Scripting is usually best handled in a domain specific manner.
...modding (easy to learn!)...
See Lua.  Most of the benefits, few of the drawbacks, easy to learn, read, write, and (most importantly) integrate with a larger project.
...or high-level logic where ease of programming matters more then the speed of your code.
  Again, Lua.  You can have high-level ease of programming and performance.  Lua has better meta-programming than Python.
If after evaluating your project goals you find using python makes no sense, then don't use it. But I'd at least take the option into account.
Fair statement.  Always evaluate all options.
I say «never look back» because people who learn Python often are too scared to consider any other option.  After all, Python can do [insert project here].  At some point it is time to leave the cradle.


If anything, C (and its mentally defective cousin) should be consigned to the trash can as quickly as reasonably possible. Computer science isn't about masturbating to auto_ptr.
C is worth learning, for the lessons it teaches about language design.
But given your strong stance, perhaps you would consider Walter Bright's D?
Here's a good read about its potential, though I have my doubts it will gain favor.


I am wondering though, if it might not be a better idea to learn manual memory management on Pascal instead of C, due to Pascal's more rigid structure which reduce the chance of generating weird, untraceable bugs.
I can't agree more.  Pascal is a wonderful teaching language, and a capable practical language.  Unfortunately, it has fallen out of use.


Cheers.

355
DF Gameplay Questions / Re: How do I get HFS to show on embark?
« on: March 03, 2011, 04:32:48 pm »

356
Life Advice / Re: Getting Into Coding
« on: March 03, 2011, 04:17:25 pm »
Er...no. Much the opposite - Python's libraries, which are packaged with almost any distribution of Python you'll find, essentially _do_ do everything for you, once you know the magic words to say to them. They're just vastly less discoverable than their equivalents in .NET and Java, which fuels the appearance that they don't exist.
Much of the Java and .NET library bulk is in the forms of "things Python does as part of the core language". (Often poorly, but that's a different topic.) Yes, there are libraries in Java/.NET for fairly esoteric stuff that you need to track down Python extensions for, but you aren't exactly writing web services as part of "hello world."

I know very well that Python has huge libraries.  I didn't say they didn't exist.  What I said was...
...Python gives you access to high level concepts, but you still have to do your own problem solving.  Training wheels included.
Python, by it's nature, encourages you to figure it out, and introduce libraries later after you understand the concept.
Java/DotNet have a culture of library use.  Solving your own problem is discouraged.  Library re-use is encouraged.  Good for professional work, bad for learning.
Put briefly, Python has the natural feel of incremental learning, whereas Java/DotNet have a feel (and culture) of re-implementing without understanding.



You do make a point.But I think the point that I am making is that C++ can cover more of the ground that you need to cover than just about any other language.
This is valid.  C++ should, in my opinion, be in every college CS curriculum.
But it is a very poor place to begin, due to it's legendary complexity.
And, Python as a learning language covers more ground, and lets you grow into it.

I'm only speaking about Blank Expression's first language here.
Python classes should only be Freshman level.  After that, move on and don't look back.

Cheers.

357
DF Gameplay Questions / Re: Current Bugs & Workarounds
« on: March 02, 2011, 12:58:15 pm »
I atom smashed my DF install, instead.
To manny bugz.  Noting werk rite.

358
Life Advice / Re: Getting Into Coding
« on: March 02, 2011, 12:51:02 pm »
@ Virex
True, Python is removed from hardware.  But my primary complaint about Java/.NET is that they reinforce implementing someone else's solution instead of creating your own.  Python gives you access to high level concepts, but you still have to do your own problem solving.  Training wheels included.  Libraries exist, but are mostly external to the base language.
Learning the hardware comes later, it's why C is where it is on the list.
[tongue-in-cheek]
Of course, the best learning language of all is MMIX, but the course books are as yet incomplete.
[/tongue-in-cheek]


@ Nadaka
Hanging themselves is precisely what first-time programmers beginning on C++ often feel compelled towards.  It is good at convincing most people that programming is always miserable.

If assembly is like jumping off a cliff, then C++ is like Flugtag.
Sure, you have an impressive looking heavy complicated machine, the landing is softer, and the drop is shorter... but wouldn't you rather be flying?



359
Life Advice / Re: Getting Into Coding
« on: February 26, 2011, 04:45:40 pm »
Aren't pointers just a way to pass by reference?
I think so, essentially. Pointer syntax confuses the heck out of me, though (the inconsistent use of asterisks depending on context).

More like "references are just safe pointers with abstraction overhead".

A pointer is an integer value which stores a memory address. That's it.
C/C++ let you have typed pointers, which conveniently know what data type they are pointing to.
C's grandparent language, BCPL, did not (nor real pointers, only integers, which it got creative with).

A reference is a unique identifier into a map of objects that the runtime library is tracking and managing for you, keeping track of how often and where it is used, re-using it's memory when nothing is using it any more.  When you get the value in a string object, for example, you go ask the runtime to look up the ID, then it goes to the correct place in memory, and it might increment a counter saying how many places the reference is being used, might copy the value to a new place, might do a lot of things, before returning the value (or, another reference).  And then some.

Core Difference:
Pointers are much faster, efficient, and dangerous than OO references, because...
1) References are managed by a pile of invisible overhead to access, and their allocation/deallocation are handled by the garbage collector.
2) Pointers are directly dereferenced by the CPU and their allocation/deallocation are handled by YOU.

They are also the primary point of angst for C programmers trying to find a difficult to isolate bug, not to mention buffer overrun/underrun security problems.

There is good a reason why automatic memory management & garbage collection has become so popular in modern applications, especially in the business community.
There is also a good reason that most graphics intensive games are still written in C/C++.



The problem I have with people starting with languages like Java and C# is how far removed they are from computing, due to the huge standard libraries that get students fixed on just one way of addressing problems.  In those languages you don't solve problems, you merely implement other peoples' solutions.  This is fine after you deeply understand the concepts, but undermines learning if you do not.

I usually suggest Python to start because it keeps it's concepts fairly base-level (even though it's a scripting language), and the libraries are largely third-party and have full source code to analyze.  It teaches core concepts, and teaches best practices, but leaves you to climb the mountain yourself.  Yet, still wears kid gloves.
But I only suggest it for introductory programming.


You can never achieve your potential if you don't grok how the CPU functions, or don't understand all the invisible OO magic that happens when you say:
Code: [Select]
foo.property = bar.method( parameter );

360
DF Gameplay Questions / Re: Stone weapons
« on: February 21, 2011, 08:43:15 pm »
Only using mods.
I've never understood this oversight.

Pages: 1 ... 22 23 [24] 25 26 ... 40