![]() |
|
Mah Sekrit Projact |
Tobias Dammers
Member #2,604
August 2002
![]() |
Neil Black said: It would be nice to get a time estimate on how long a project has until it is complete. Once you've started there doesn't seem to be any way to see how long you have until you're done. I've been thinking about this, but it's harder than you think, mainly because projects can have a random duration deviation; if you know from the beginning how long exactly it is going to take, then you'd just create a bunch of identical projects and finish the shortest one. So the "estimated time left" needs to be the project's nominal duration when you start, and then slowly approach zero until you're finished, which means the duration the engine uses to calculate depends on the progress you've already made: at 0%, the nominal duration is calculated, at 100%, the actual duration is used, at 50%, the average of both (or maybe I should use a nonlinear mapping, to avoid giving away the actual time too early). --- |
Michael Jensen
Member #2,870
October 2002
![]() |
bamccaig said: I suppose a Firefox extension isn't going to care what interface it's listening to, but it was apparently designed with unsecured wireless networks in mind (albeit, I suppose broken wired networks fall under the same category).
Thomas Fjellstrom said: If you have a wired lan, and use a switch, most network traffic is not visible to you at all.
Jonatan Hedborg said: Not sure how this is now-a-days, but it used to be quite possible to spoof enough MAC-addresses to force the switches on a network into hub-mode. Keep in mind, unmanaged routers and switches don't route traffic for security, they do it for network optimization... meaning that IF the unmanaged router/switch knows where to send the data, it only sends it there -- if it doesn't know where to send the data it sends it on all ports -- this isn't "broken", it's the desired behavior (and the only way for the device to learn). Any big network with unmanaged smart devices (ex: switches instead of hubs) will behave this way (and with limited memory, the devices can only "learn" so much before they have to forget something to learn something new.) It's my understanding that firesheep was written to help motivate big sites like facebook into using proper HTTPS security for the entire session. Sorry to derail the thread so much. Carry on.
|
bamccaig
Member #7,536
July 2006
![]() |
Michael Jensen said: Keep in mind, unmanaged routers and switches don't route traffic for security, they do it for network optimization... meaning that IF the unmanaged router/switch knows where to send the data, it only sends it there -- if it doesn't know where to send the data it sends it on all ports -- this isn't "broken", it's the desired behavior (and the only way for the device to learn). Any big network with unmanaged smart devices (ex: switches instead of hubs) will behave this way (and with limited memory, the devices can only "learn" so much before they have to forget something to learn something new.) I still consider it broken to have devices in the network that under normal operating conditions don't know where to send packets. That's just going to slow down the network due to unnecessary collisions (i.e., only one person talking at a time). I don't consider the devices broken, but the configuration of the network. Whoever sets it up should make sure to use the right devices in the right places to keep everything organized so that the network does know where to send packets (or at the very least, limits the broadcast as much as possible). Both resident and persistent storage are cheap these days so I don't really buy the whole "only so much they can remember" bit. It shouldn't be hard to remember the nodes directly connected to you and know which nodes are communication devices (i.e., other switches or routers) and which ones are clients. Again, I'm not an expert. I just think that it's wasteful and poor etiquette to allow a network to yell out everybody's requests unnecessary. I'm sure it's possible to configure a network of any size not to. Whether or not the networking personnel have the knowledge and funding to do so is another question. -- acc.js | al4anim - Allegro 4 Animation library | Allegro 5 VS/NuGet Guide | Allegro.cc Mockup | Allegro.cc <code> Tag | Allegro 4 Timer Example (w/ Semaphores) | Allegro 5 "Winpkg" (MSVC readme) | Bambot | Blog | C++ STL Container Flowchart | Castopulence Software | Check Return Values | Derail? | Is This A Discussion? Flow Chart | Filesystem Hierarchy Standard | Clean Code Talks - Global State and Singletons | How To Use Header Files | GNU/Linux (Debian, Fedora, Gentoo) | rot (rot13, rot47, rotN) | Streaming |
BAF
Member #2,981
December 2002
![]() |
bamccaig said: I still consider it broken to have devices in the network that under normal operating conditions don't know where to send packets. The device doesn't know where to send it if it hasn't sent it there before. That's hardly broken. It isn't efficient or practical to micro-manage the network to the extent you're suggesting. Please, learn a bit about how networks work before you criticize them. |
Thomas Fjellstrom
Member #476
June 2000
![]() |
I somewhat agree with bamccaig, but the problem isn't that the device doesn't know where to send packets because of the network config. Its more like someone has maliciously spoofed a bunch of mac addresses, causing the switch's routing table to have nonsense data in them, so it doesn't know where any of the devices connected to it are. At that point all a dumb switch can do (ie: not a fancy router) is send at least one packet from each device to all ports, and then notice which mac the reply comes back on. But if that malicious user is still spoofing, the switch isn't going to be able to keep up. -- |
bamccaig
Member #7,536
July 2006
![]() |
BAF said: The device doesn't know where to send it if it hasn't sent it there before.
If you're continuing a Web session then more often than not the device has seen you before. The only exception might be when the network is micromanaging which routes to take. -- acc.js | al4anim - Allegro 4 Animation library | Allegro 5 VS/NuGet Guide | Allegro.cc Mockup | Allegro.cc <code> Tag | Allegro 4 Timer Example (w/ Semaphores) | Allegro 5 "Winpkg" (MSVC readme) | Bambot | Blog | C++ STL Container Flowchart | Castopulence Software | Check Return Values | Derail? | Is This A Discussion? Flow Chart | Filesystem Hierarchy Standard | Clean Code Talks - Global State and Singletons | How To Use Header Files | GNU/Linux (Debian, Fedora, Gentoo) | rot (rot13, rot47, rotN) | Streaming |
Timorg
Member #2,028
March 2002
|
Happy New Year, it is no longer year 1. ____________________________________________________________________________________________ |
BAF
Member #2,981
December 2002
![]() |
bamccaig said: If you're continuing a Web session then more often than not the device has seen you before. The only exception might be when the network is micromanaging which routes to take. Okay, and when you're continuing a session, the packets shouldn't be flooded out every switchport. This thread is boring, so I've only read the last several posts, so maybe I'm missing something from this whole story. |
Michael Jensen
Member #2,870
October 2002
![]() |
Fuck, really? Seriously? I only even commented to say: 1.) Use HTTPS, 2.) Use RSS + HTTP Authentication... bamccaig said: I don't consider the devices broken, but the configuration of the network. By definition you can't configure an unmanageable device. Further, you shouldn't be configuring your managed devices at a micro level, as said above, it's just not practical. To reiterate: any security you get by using smart devices (switches/routers) instead of dumb devices (hubs) is completely by accident; the smart device's primary function is to optimize for SPEED, NOT SECURITY, and most devices in real world scenarios are going to have lots of misses no matter how well you configure them. Even if you had your managed router/switch micro managed down to the last detail*, as was noted above, anyone can spoof what port an address is on, and confuse it into sending data down those ports or even put the thing into full broadcast mode. (*I am aware of some high end Cisco routers that require you to associate a mac address with a specific port, but they're VERY expensive, and even then it's only to prevent you from plugging in an unauthorized device, not to securely direct traffic... if the router can't figure out where to send it, it will still broadcast on all ports -- consider the scenario where multiple routers are chained together, the maintained address list gets exponentially big... and it's not just a memory issue -- it comes down to speed -- is it faster to broadcast on all ports and let the child routers sort it out, or to do a crazy expensive lookup to figure out which port to send the data too... -- and then what if the next router/switch in line decides to do a broadcast anyway...?) Another point entirely: Even if you had a "security optimized" router no matter how few people on your local net see your cookie packet, if you're connected to the internet SOMEONE is upstream from you, be it your ISP, third parties between you and your ISP or third parties between your ISP and the internet... (where the third parties may or may not be authorized to be there...) all of those entities have complete access to your unsecured session cookies and can do whatever they please with the data (ex: find out your private facebook information and sell it to telemarketers...) If you want to discuss this further, PM me, I feel really horrible about derailing this game's thread. My sincere apologies, Tobias.
|
bamccaig
Member #7,536
July 2006
![]() |
Touché. I suppose I naively thought that wired networks were more reliably managed (networking class was pretty confusing...). That wouldn't excuse the lack of encryption for truly sensitive data, such as bank credentials, but it certainly would make a wired attacker far less effective than an unsecured wireless attacker. Derailing threads is how we learn stuff. -- acc.js | al4anim - Allegro 4 Animation library | Allegro 5 VS/NuGet Guide | Allegro.cc Mockup | Allegro.cc <code> Tag | Allegro 4 Timer Example (w/ Semaphores) | Allegro 5 "Winpkg" (MSVC readme) | Bambot | Blog | C++ STL Container Flowchart | Castopulence Software | Check Return Values | Derail? | Is This A Discussion? Flow Chart | Filesystem Hierarchy Standard | Clean Code Talks - Global State and Singletons | How To Use Header Files | GNU/Linux (Debian, Fedora, Gentoo) | rot (rot13, rot47, rotN) | Streaming |
Tobias Dammers
Member #2,604
August 2002
![]() |
bamccaig said: Besides, in the interim between updates and feature requests, we're just keeping this thread alive. I guess I should, uh, thank you? Anyway, I've rolled out a quick update that fixes a few minor bugs. Having these out of my system, I'll see if I can give you a few more features soon. Here's a list of things I'm considering: #5 - allow players to change their own characters' names #6 - display remaining time for a project (see an earlier post for the problems) #7 - allow removing inactive projects (getting you back a part of the used resources, though with a penalty) #8 - a more fine-grained way of adding resources to a project #9 - giving items to other characters #10 - notes #11 - automatic items and projects encyclopedia (based on actual game logic data) #12 - add a message when you receive an item #13 - limit a machine usage to a maximum number of projects per machine (need to find a better word than "machine", because things like wheat fields, apple trees, beehives, etc. also belong in this category) #15 - implement optional tools, and efficiency advantages for some tools on the same project; for example, you can harvest potatoes with your bare hands, but if you have a suitable tool, you will harvest more in one hour Any favourites among these? --- |
Trezker
Member #1,739
December 2001
![]() |
Heh, feels a little like choosing what tech to research next in Civilization. I have two favourites. I thought it was strange 9 and 12 was two different entries... |
Tobias Dammers
Member #2,604
August 2002
![]() |
#12 is also aimed at items you receive because a project you own has been finished or dissolved. But you're right, when I implement #9, #12 is pretty much a must-have. I'm just trying to figure out which feature would produce the most payoff in playabilty. And I forgot: Rest of this post is blabbing about these three, skip it if you're not interested. Regarding skills: I'm thinking a two-level structure, with base stats (motor and sensor skills) at the bottom, and individual skills (cooking, hunting, tool-making, gathering, beating people to a pulp, etc.) on top of that. A "genetic" base for each of them, and then the following factors to influence it:
Regarding food: Characters should auto-eat like in CantrII so you can leave them alone for a few days without them starving on you. However, I always found it annoying that you didn't get to choose what they ate, so I want to have a "meal list" where you can move items from your inventory. When auto-eating, the character would first pick things from that list (sorted by tastiness, not efficiency like in cantrII) and eat until they're "full" (determined by "fillingness", not "calories" like in cantrII). Only when the meal list is depleted, the character would continue through the regular inventory, again starting with the tastiest items. Also, I want some basic food properties, roughly reflecting properties of real food, such as:
I will not have the silly healing food thing cantrII has; rather, wounds should heal on their own, but better so if provided enough proteines. Regarding wounds: Instead of just an overall hit-points counter, I want a list of wounds. When you stab someone, their description will show a stabwound, and depending on where you land it and how deep it is, the consequences can be instant death, severe bleeding (eventually causing death), less severe bleeding (causing temporary nausea or similar disadvantages), and maybe even infections. Non-fatal wounds would heal over time; if the healing takes too long, you bleed to death. This way, several small wounds, none of which is fatal by itself, would still cause death over time, especially when you're low on proteine food. Since there can be different types of wounds, there can also be different effects (reduced strength, agility, dexterity; inability to move/travel/attack; inability to speak/hear/see; unconsciousness; increased or reduced appetite), and different treatments, and it would allow for modelling all sorts of interesting diseases. --- |
bamccaig
Member #7,536
July 2006
![]() |
Tobias Dammers said: I guess I should, uh, thank you?
Who said we were doing it for you? -- acc.js | al4anim - Allegro 4 Animation library | Allegro 5 VS/NuGet Guide | Allegro.cc Mockup | Allegro.cc <code> Tag | Allegro 4 Timer Example (w/ Semaphores) | Allegro 5 "Winpkg" (MSVC readme) | Bambot | Blog | C++ STL Container Flowchart | Castopulence Software | Check Return Values | Derail? | Is This A Discussion? Flow Chart | Filesystem Hierarchy Standard | Clean Code Talks - Global State and Singletons | How To Use Header Files | GNU/Linux (Debian, Fedora, Gentoo) | rot (rot13, rot47, rotN) | Streaming |
Trezker
Member #1,739
December 2001
![]() |
Sounds like you've got a pretty advanced nutrition program planned. Anyway I just caused a need for #7, because of a bug. Then I found the finished paper press EDIT: Same thing happened with stone cleaver. So it's not just the paper press. Except the stone cleaver is in my inventory. |
Tobias Dammers
Member #2,604
August 2002
![]() |
Whee, update! I implemented (rudimentary) notes functionality! --- |
Trezker
Member #1,739
December 2001
![]() |
I saw it. So you create a note like that. But can it be edited later? |
Tobias Dammers
Member #2,604
August 2002
![]() |
You can't edit for now, but you will be able to. I just need to figure out two things; first, how do I fit editing (or rather, expanding) a note into the whole project model, and how will signatures fit in the picture. Ideally, want I want to make possible is that each note can be signed while created, and each subsequent edit appends to the end, optionally adding another signature. So you could have: text text text --- signature --- text text text text text --- signature --- ...and you'd know that the second block of text was appended after the first signature was made. But this would mean I either have to hack the signature into the note text itself (which would require a fair amount of cryptography to prevent forgery), or I'd have to make the project data model more complex than it is already. --- |
Jonatan Hedborg
Member #4,886
July 2004
![]() |
Now, I haven't tried your game, but in a game where a user does not really have a name - what is the signature? Can you just sign with any string? What would then prevent forgery in the sense of "this isn't my signature" (since a string is always going to be trivial to copy, unlike a real-life signature)?
|
Vanneto
Member #8,643
May 2007
|
Tobias, currently, projects are listed in a drop-down box. This is all nice and dandy now that there are relatively few projects to add... But what about later when there will be tons of stuff to do? A drop-down menu that spans several screen would not be an ideal solution IMHO. But I honestly forgot how Cantr did it. Maybe a categorized list? Housing Weapons ... And, for example, if you would click on Housing, it would open up new links below: Housing + Stone room + Stone house + Mud house ... Weapons Or maybe even sort them based on material? Housing + Stone + Stone house + Stone room + Stone door + Wood + ... Just a suggestion. In capitalist America bank robs you. |
bamccaig
Member #7,536
July 2006
![]() |
Jonatan Hedborg said: Now, I haven't tried your game, but in a game where a user does not really have a name - what is the signature? Can you just sign with any string? What would then prevent forgery in the sense of "this isn't my signature" (since a string is always going to be trivial to copy, unlike a real-life signature)?
He already answered this earlier. Vanneto said: Tobias, currently, projects are listed in a drop-down box. This is all nice and dandy now that there are relatively few projects to add... But what about later when there will be tons of stuff to do? I believe he already addressed this as well. IIRC, he said that the drop down was just to get the system working and eventually it will be updated with more advanced functionality. -- acc.js | al4anim - Allegro 4 Animation library | Allegro 5 VS/NuGet Guide | Allegro.cc Mockup | Allegro.cc <code> Tag | Allegro 4 Timer Example (w/ Semaphores) | Allegro 5 "Winpkg" (MSVC readme) | Bambot | Blog | C++ STL Container Flowchart | Castopulence Software | Check Return Values | Derail? | Is This A Discussion? Flow Chart | Filesystem Hierarchy Standard | Clean Code Talks - Global State and Singletons | How To Use Header Files | GNU/Linux (Debian, Fedora, Gentoo) | rot (rot13, rot47, rotN) | Streaming |
Vanneto
Member #8,643
May 2007
|
Oh sorry, must have missed that post, this thread is just getting so much attention. Well, back to making notes. In capitalist America bank robs you. |
Tobias Dammers
Member #2,604
August 2002
![]() |
bamccaig said: I believe he already addressed this as well. IIRC, he said that the drop down was just to get the system working and eventually it will be updated with more advanced functionality. Indeed. I'm currently leaning toward expanding the wiki to include item and project types, based on in-game data; with a few extra tricks here and there, the wiki can then be used as a comfortable search function - just search for the item you want to make, and click your way through the wiki until you find the project you need. --- |
Trezker
Member #1,739
December 2001
![]() |
I just started a mashing project with two repetitions. But it only added wood for one repetition from checking the option to add materials. So I had to press add from inventory to add the rest after creating. EDIT: Now I made a 3 repetition project. I had to add stuff form inventory for every repetition. This really sucks if you want to do lots of repetitions. |
Tobias Dammers
Member #2,604
August 2002
![]() |
@Trezker: Solved in my test version. The bugfix is going to be in the next update, which will also feature a completely rewritten "writing" part (the first attempt turned out to be horribly inflexible and also plain wrong in terms of data structures). You'll be able to write notes, and add more text to existing notes (but not change or erase previously written text). I feel that this is closest to how real paper and real ink behave. Also, the more text you write, the longer it takes, and enabling other objects to be written on is going to be relatively trivial (as in, a data-only thing). I just have to add a little indicator that tells you how much more text you can fit on the note. So, a little more jquery trickery and I'll have a nice new feature. --- |
|
|