Ferrous Moon
http://www.ferrousmoon.com:80/forums/

Onlink Progress (blog?) (Last updated 18 Feb - PM)
http://www.ferrousmoon.com:80/forums/viewtopic.php?f=55&t=1460
Page 7 of 18

Author:  ghost_sypher [Sun Jan 04, 2009 1:31 pm ]
Post subject:  Re: Onlink Progress (blog?) (Last updated 7 Nov)

I just know verry basic stuff about programming. Just had some q-basic, turbo pascal and assembler long time ago back in school. Never continued using it.
So let's say a know nothing about coding but can understand some of the principles.

Can't follow you what O(n) to O(log n) means. Something with a Landau notation and changing it from linear to logarithmic. Don't know what that exactly means, but i guess it's lightning fast with smaller numbers and slowing down with increasingly bigger numbers.
Linear doubles when the argument doubles, logarithmic increases konstantly when the argument doubles. So the logarithmic is generally faster with arguments smaller than 1.


Thanks for the insights. I'll brush up on my knowledge ;)

HAPPY BIRTHDAY TYCHO !!! :mrgreen:

Author:  Miah [Sun Jan 04, 2009 1:44 pm ]
Post subject:  Re: Onlink Progress (blog?) (Last updated 7 Nov)

I'll be happy to educate you.

Onlink uses a few data structs, and none of them are in the standard library. We made our own, and they are actually faster based on our latest data.

The first one I'll discuss is the linked list. Basically, this doesn't have a ton of applications, but it does have one for connections. The first item in the list is your first bounce point, the second item is the second bounce point, and so on. This means that in order to look for an item, it needs to go through each item one by one until it finds what it wants. LLists are slow.

Another structure used, this one extensively, is the red black tree. Basically, a balanced binary tree. When looking for a key, it starts at the root node and does a comparison. If the node equals the key, you have the value. If the value is less than the key, you check the left node and repeat; if greater than, check the right node and repeat.

There is only one root node. At the second level, there are 2 nodes. At the third, 4 and so on (4th: 8, 5th: 16, 6th: 32 etc).

That means that a RBTree with 2000 keys and values would only need to go through 11 keys before it found the one it wants as a worst case scenario. The worse case scenario with a LList is that it's the last item, meaning that it'll go through 1999 keys before it finds the one it was looking for.

That's only two of the structs we use. There are more, but that should help to explain what's going on with the speed.

Author:  ghost_sypher [Sun Jan 04, 2009 2:00 pm ]
Post subject:  Re: Onlink Progress (blog?) (Last updated 7 Nov)

Aha, verry nice.
Exponential to the power of two according to the binary system.

Don't understand how this exactly works with nodes and stuff, but no need to explain the details. Else I would have to pay you a teachers salary ;)

But I have another question, if me asking doesn't keep you from programming too much:
Whats the difference between this CrissCross and LanLade?

CrissCross is your own library, data structure and routines added to the game to increase work efficiency? And LanLade is? Options added to the game like new Storylines and extended Systems?

Author:  Miah [Sun Jan 04, 2009 2:09 pm ]
Post subject:  Re: Onlink Progress (blog?) (Last updated 7 Nov)

The basis of LanLade is to allow non-coders to change Onlink drastically. This will work in four phases:

1) Languages will be able to be dynamically loaded. Right now, there is a German version of Uplink, which requires that a new build be compiled for each language. This also means that in order to test language patches, you need the source code. With LanLade, you will be able to load languages from a file. Slated for 0.2.x (not 0.2.0, possibly 0.2.1)

2) The main graphical object in Onlink, the "EclButton," will be able to be changed. You will not only be able to use custom theme as before, but also be able to resize the objects and move them around the screen. If one was to put their mind to it, one would be able to entirely redo the interface and make it look like a new game. Slated for development between 0.2.1 and 0.3.x.

3) Custom programs. People will be able to develop their own programs within Onlink to do specific tasks. This is slated for 0.3.x and might end up as the ultimate goal of the C++ client. This will probably be a custom scripting language that I will make. I'll explain this when I start actively developing it. It's really quite complicated.

4) This one's a surprise, so I won't be detailing it until the internal engine for this piece is done. Suffice is to say that it will make something customizable.

There will be more phases, but I'm trying not to get ahead of myself. Make it more the community game than the game that the community requests and I make.

Author:  ghost_sypher [Sun Jan 04, 2009 2:36 pm ]
Post subject:  Re: Onlink Progress (blog?) (Last updated 7 Nov)

Great. No I can't wait for 0.4 anymore.
Well done Miah *grrrr* ;)

to 3.): I can imagine. It could knot your brain.
Develop programming for non-coders ... tssssss. Something like a LEGO-system of programming for dummies. Transfer it to the real world and it would be worth a nobelprize, if there would be one for infromatics ;)

So from there the jump to a reall hacking tool running behind the game as a reall hacking interface for dummies is only just a small step further *g*

Nice, nice, nice. Nice in deed. Well done... or well doing, as I should say.

Author:  TaO92 [Sun Jan 04, 2009 4:53 pm ]
Post subject:  Re: Onlink Progress (blog?) (Last updated 7 Nov)

i can translate the english Onlink to german language

to point 4 Yeah own chip making :D
^^ but i dont think this will be the suprise

Author:  Vaius [Sun Jan 04, 2009 5:11 pm ]
Post subject:  Re: Onlink Progress (blog?) (Last updated 7 Nov)

Quote:
Great. No I can't wait for 0.4 anymore.
Well done Miah *grrrr* ;)

to 3.): I can imagine. It could knot your brain.
Develop programming for non-coders ... tssssss. Something like a LEGO-system of programming for dummies. Transfer it to the real world and it would be worth a nobelprize, if there would be one for infromatics ;)


So from there the jump to a reall hacking tool running behind the game as a reall hacking interface for dummies is only just a small step further *g*

Nice, nice, nice. Nice in deed. Well done... or well doing, as I should say.
There is a form of programming for non-coders (GUI Based) in the Warcraft III: The Frozen Throne World Editor. The coding is called "Triggers," and there is a large list of preset codes with pieces that can be modified, such as "If [a] = , then do action [c]" where a and b are variables and c can be a variety of actions such as "Set unit [x] health to [y] percent of total health. And then there's a command "Custom Script" which allows people to code more into the triggers. Done for coding software in onlink, and we could end up with some seriously awesome programs.

Author:  FinalWarrior [Sun Jan 04, 2009 7:07 pm ]
Post subject:  Re: Onlink Progress (blog?) (Last updated 7 Nov)

Quote:
O(n) to O(log n).
Y'know, I don't actually get how algorithms equate to big-O equations. I mean, I get that O(n) is hellass slower than O(log n), but I don't get how one set of code can be said to be O(n), or a different set to be O(log n). (My teacher explained, briefly, as she was in the midst of teaching Programming 2 [I'm in 3... one of four who are, sadly], what O(n) meant, so I sorta get that.)

-- Griffinhart

Author:  Miah [Sun Jan 04, 2009 11:06 pm ]
Post subject:  Re: Onlink Progress (blog?) (Last updated 7 Nov)

It's really quite easy.

n refers to the number of elements in your data structure.
O is the worst case scenario for how many keys you'll need to go through in order to get the one you want (round up to the nearest integer)

Also note that log is not log. It is log-base-2, since it is a binary tree. Therefore,
[O(log2 n) | n = 2000] ≈ 10.9657843 (round up to 11).

Therefore, it is said that with 2000 elements in the red black tree, the most steps it's going to ever make in the tree before it finds the desired node is 11.

Isn't that easy? :3

Author:  FinalWarrior [Sun Jan 11, 2009 11:34 pm ]
Post subject:  Re: Onlink Progress (blog?) (Last updated 7 Nov)

You know what?

That was easy. Thanks, Miah!

/me stores this away for AP exam time

Only, I still don't get how to determine the actual big-O of a given segment of code.

-- Griffinhart

Author:  Soldier of Light [Mon Jan 12, 2009 8:32 am ]
Post subject:  Re: Onlink Progress (blog?) (Last updated 7 Nov)

The easiest way is to count the # of loops.
Each for loop multiplies the O notation by n (provided it goes to n of course).

I still don't know how to determine the O notation for things that end up being log. I know that binary searches are log, and certain sorts are nlog, but I don't really know how to calculate those.

Author:  SiN [Sat Jan 31, 2009 11:30 pm ]
Post subject:  Re: Onlink Progress (blog?) (Last updated 7 Nov)

I realize this isn't a greetings topic, and that I'm new to the forum, but to elaborate...is there at least a month to aim the 0.2.0 release for?

I am NOT asking for a release day.


...just a month.

Author:  Rickton [Sun Feb 01, 2009 1:05 am ]
Post subject:  Re: Onlink Progress (blog?) (Last updated 7 Nov)

If there was, it would have been said. :wink:

Author:  rookie10276 [Sun Feb 01, 2009 11:19 pm ]
Post subject:  Re: Onlink Progress (blog?) (Last updated 7 Nov)

Imo, I'd shoot for the calculated release date. Because I know Miah is probably very busy, or burnt out from the daily grind, or even just in need of positive encouragement (which is never a bad thing). : )

Author:  UNATCOPres [Fri Feb 06, 2009 11:59 am ]
Post subject:  Re: Onlink Progress (blog?) (Last updated 7 Nov)

And what about a release year? Hope this one

Page 7 of 18 All times are UTC-05:00
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/