Allegro.cc - Online Community

Allegro.cc Forums » Off-Topic Ordeals » Mah Sekrit Projact

This thread is locked; no one can reply to it. rss feed Print
Mah Sekrit Projact
Tobias Dammers
Member #2,604
August 2002
avatar

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).

---
Me make music: Triofobie
---
"We need Tobias and his awesome trombone, too." - Johan Halmén

Michael Jensen
Member #2,870
October 2002
avatar

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).

If you have a wired lan, and use a switch, most network traffic is not visible to you at all.

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. ::)
{"name":"duty_calls.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/6\/8\/686d0d2d97cf2974b81c039d17539908.png","w":300,"h":330,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/6\/8\/686d0d2d97cf2974b81c039d17539908"}duty_calls.png

bamccaig
Member #7,536
July 2006
avatar

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.

BAF
Member #2,981
December 2002
avatar

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
avatar

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.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

bamccaig
Member #7,536
July 2006
avatar

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. :P

Timorg
Member #2,028
March 2002

Happy New Year, it is no longer year 1.

____________________________________________________________________________________________
"c is much better than c++ if you don't need OOP simply because it's smaller and requires less load time." - alethiophile
OMG my sides are hurting from laughing so hard... :D

BAF
Member #2,981
December 2002
avatar

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
avatar

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
avatar

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. :) Besides, in the interim between updates and feature requests, we're just keeping this thread alive. :-X

Tobias Dammers
Member #2,604
August 2002
avatar

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?

---
Me make music: Triofobie
---
"We need Tobias and his awesome trombone, too." - Johan Halmén

Trezker
Member #1,739
December 2001
avatar

Heh, feels a little like choosing what tech to research next in Civilization.

I have two favourites.
#10 - notes
#9, #12 - giving items to other characters, and message for receiving.

I thought it was strange 9 and 12 was two different entries...
9 would of course work without 12, but it would be greatly missed.

Tobias Dammers
Member #2,604
August 2002
avatar

#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:
#16 - Skills
#17 - Food and Eating
#18 - Wounds and injuries

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:

  • food

  • long-term effects of training (small increase, slow decrease)

  • short-term effects of training (larger increase, rapid decrease)

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:

  • tastiness (higher value makes characters prefer this food)

  • fillingness (higher values mean the characters eats less of this)

  • calories (too many calories cause obesity, too few cause undernourishment and eventually death)

  • carbs (good for agility and endurance)

  • fats (good for dexterity and sensor skills)

  • proteines (good for strength, necessary for wounds to heal)

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.

---
Me make music: Triofobie
---
"We need Tobias and his awesome trombone, too." - Johan Halmén

bamccaig
Member #7,536
July 2006
avatar

Trezker
Member #1,739
December 2001
avatar

Sounds like you've got a pretty advanced nutrition program planned.

Anyway I just caused a need for #7, because of a bug.
I started making a paper press. Then I clicked the project again, and it disappeared along with my wood. In my confusion I created another paper press project...

Then I found the finished paper press in my inventory on the ground. It seems two days went by in a few seconds...

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
avatar

Whee, update! I implemented (rudimentary) notes functionality!

---
Me make music: Triofobie
---
"We need Tobias and his awesome trombone, too." - Johan Halmén

Trezker
Member #1,739
December 2001
avatar

I saw it. So you create a note like that. But can it be edited later?
I working on the grinding stone now so we can soon make some paper.

Tobias Dammers
Member #2,604
August 2002
avatar

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.

---
Me make music: Triofobie
---
"We need Tobias and his awesome trombone, too." - Johan Halmén

Jonatan Hedborg
Member #4,886
July 2004
avatar

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
avatar

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.

Vanneto
Member #8,643
May 2007

Oh sorry, must have missed that post, this thread is just getting so much attention. :D

Well, back to making notes. ;D

In capitalist America bank robs you.

Tobias Dammers
Member #2,604
August 2002
avatar

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.

---
Me make music: Triofobie
---
"We need Tobias and his awesome trombone, too." - Johan Halmén

Trezker
Member #1,739
December 2001
avatar

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
avatar

@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.

---
Me make music: Triofobie
---
"We need Tobias and his awesome trombone, too." - Johan Halmén



Go to: