Last visit was: It is currently Tue Nov 12, 2024 5:08 am


All times are UTC-05:00




Post new topic This topic is locked, you cannot edit posts or make further replies.  [4 posts ] 
    Author Message
     Post subject:Onward to 0.3.0
    PostPosted:Sun Apr 14, 2013 2:08 am 
    Literally Nine
    User avatar
     

    Joined:Tue Mar 01, 2005 9:00 am
    Posts:1263
    I've forked a branch off 0.2.5 while bugfixing continues and labeled it 0.3.0. In this branch, I'm adding new features and mechanics. I think you'll enjoy what's in store.

    Unless otherwise specified, what is said in this thread is not "something I'm working on" but instead something that's done and I've moved on to the next thing, whatever that is.

    So enjoy a few teasers while we continue pounding out Fun™.


    Top
    Offline  
     
     Post subject:Bandwidth and You: A Primer
    PostPosted:Sun Apr 14, 2013 2:23 am 
    Literally Nine
    User avatar
     

    Joined:Tue Mar 01, 2005 9:00 am
    Posts:1263
    The first thing I want to discuss is bandwidth.

    Stats in Uplink are pretty homogenous. Frankly, this is silly. Not everyone rocks a 40Gq/second modem, so you shouldn't get the benefit of one no matter where you connect. Additionally, bandwidth doesn't seem to do much of anything at the moment.

    I've fixed that first problem though. Based on company size and a few various factors, your link speed will now be limited not only based on who you're connected to, but also any parties your bounce off of.

    As a newer player, this won't affect you at all. Your 1Gq/sec modem will be maxed out on nearly everything. Nearly. Basically phones are the only things slower (and a few machines owned by very small companies) than this starter modem.

    So when you bounce around, making a maxed connection is a breeze.

    Image

    The world is your oyster, despite your limits, and you won't have to go shopping around a ton to get a connection suitable for your next hack.

    As time goes on however, you'll need to upgrade your connection to defeat certain things with a reasonable speed (such as the cyphers).

    You get your first 10 Gq modem. And the world starts to look a little bleaker.

    Image

    You begin to realize that your meticulously crafted bounce route isn't delivering the bandwidth you require. So you start trimming out the slower nodes, because you need that extra kick. But there's a lot of stuff that can carry you. You just need to trim the fat that can't.

    Then you get the 40Gq modem. And you start to see the limits of what you can do with a ton of jumps.

    Image

    You find the slower systems easy to crack the cyphers on, but the high bandwidth ones actually need high bandwidth in order to crack a system. Killer programs and disablers go at a snail's pace because they need the bandwidth to function. Bypassers begin to flicker in and out of function in severe cases.

    And that goddamn sysadmin is tracing you without breaking a sweat.

    In 0.3.0, it will no longer be beneficial to have a ton of nodes in between you and your target, but instead carefully crafted routes.

    And while lag will not be featured in 0.3.0, you can be sure it's penciled in somewhere. More jumps means more risk. Higher bandwidth on the target end means the sysadmin will trace you faster, but slow nodes in between mean that he's slowed down for only that node while you're slowed down for all of them.

    Plan accordingly.

    P.S.: Guess what end of the spectrum InterNIC lies?


    Top
    Offline  
     
     Post subject:Keymapper improvements
    PostPosted:Thu Apr 18, 2013 12:36 am 
    Literally Nine
    User avatar
     

    Joined:Tue Mar 01, 2005 9:00 am
    Posts:1263
    Let's talk about the keymapper for a bit.

    Image
    Pictured: sentinel's only friend through
    countless bugstomps and recreated profiles


    The interface itself hasn't received a lot of love since I haphazardly slapped it together. But as you can see already, there are some improvements here.

    The first is that there's nothing "reserved" any longer. This was originally the product of (a) a terrible keyboard interpreter in Uplink that still isn't much better and (b) personal laziness. I honestly didn't think it would get much love outside of testing and figured this was the case up to this weekend when sentinel mentioned it was one of his favourite components. So if you like this interface, thank him for the coming changes, because I was originally going to leave it alone entirely.

    As you can see, you're also able to map a whole lot more now. No longer confined to ctrl-key combinations, you can now map to ctrl, ctrl-alt, ctrl-shift, alt, alt-shift and ctrl-alt-shift, if you're feeling frisky.

    This much is done. The rest depends on you.

    There aren't a lot of functions that you can map presently, just HUD launch, program launch and link quick connections. Do you have a feature you want to invoke with a keyboard shortcut? By god, tell me about it so I can add it.

    Oh, and this more polished interface will be debuting in 0.2.5b6 rather than 0.3.0, since it's not exactly an addition.


    Top
    Offline  
     
     Post subject:Tetra
    PostPosted:Mon Apr 29, 2013 1:10 pm 
    Literally Nine
    User avatar
     

    Joined:Tue Mar 01, 2005 9:00 am
    Posts:1263
    The importance of Mc2m to the project is difficult if not impossible to overstate. What he did was entirely unglamorous but utterly necessary for development to continue.

    Rewriting core sections to any codebase is generally a suicide watch position. It was bad enough that I didn't want to touch it, and indeed for a quite a while I simply hadn't. Mc2m was however completely undeterred and armed only with a promise that I would actually do something with the game if the savefiles started working again, he set off.

    Four betas went by with content nearly exclusively being adds or changes to the new save/load code. Sometimes seemingly basic things take forever to fix, but for the most part, you wouldn't know it.

    Another problem child of the game has been identified and is in, more or less, the same process of purging. This time, the rendering code, or perhaps the lack of it depending on how you choose to view it, is the issue at hand.

    For ages, we've been using an immediate rendering mode with no central authority. Nearly every source file had some part of the rendering code in it. This leads to issues; "code bloat" and "ball of mud" come to mind. A lot of this sort of crap:
    Code:
    if (fileindex % 2 == 0) { glBegin(GL_QUADS); glColor3ub(8, 20, 80); glVertex2i(button->x, button->y); glColor3ub(8, 20, 0); glVertex2i(button->x + button->width, button->y); glColor3ub(8, 20, 80); glVertex2i(button->x + button->width, button->y + button->height); glColor3ub(8, 20, 0); glVertex2i(button->x, button->y + button->height); glEnd(); } else { glBegin(GL_QUADS); glColor3ub(8, 20, 0); glVertex2i(button->x, button->y); glColor3ub(8, 20, 80); glVertex2i(button->x + button->width, button->y); glColor3ub(8, 20, 0); glVertex2i(button->x + button->width, button->y + button->height); glColor3ub(8, 20, 80); glVertex2i(button->x, button->y + button->height); glEnd(); }
    This is actual code from the file server interface. There's a whole bunch like it, but instead of in one easy to maintain area, it's simply replicated all over the place.

    This is not great. Looking at the potential of other platforms or other rendering options such as DirectX, presently we'd have to jump all over the place to add the needed code to handle it.

    So I've been simplifying it:
    Code:
    if (fileindex % 2 == 0) g_renderer->RectFill(button, "DarkPanelB", "DarkPanelA"); else g_renderer->RectFill(button, "DarkPanelA", "DarkPanelB");
    Two things are corrected here. The first is the mess from before. But also is the fact that it wasn't ever using theme file settings.

    I've gone through a lot of code thus far and have found that a quite a number of systems are not in fact customizable despite being in the themes table.

    This has led to some... growth of the themes table. You can now change a lot more than you used to:
    Code:
    NAME: Uplink Blue AUTHOR: Chris Delay COMMENT: The standard blue Uplink theme ; COLOURNAME RED GREEN BLUE ALPHA ; ======================================================= Background 0 0 0 255 DefaultText 255 255 255 255 DimmedText 153 153 153 255 MenuText 255 255 255 255 TitleText 255 255 255 255 TextBorder 255 255 255 255 ButtonNormalA 0 0 179 255 ButtonNormalB 0 0 102 255 ButtonHighlightedA 128 128 255 255 ButtonHighlightedB 51 51 230 255 ButtonClickedA 179 179 255 255 ButtonClickedB 128 128 255 255 PanelBackgroundA 8 20 0 255 PanelBackgroundB 8 20 124 255 PanelBorder 79 138 214 255 PanelHighlightA 18 41 41 255 PanelHighlightB 18 41 163 255 PanelHighlightBorder 255 255 255 255 InterfaceSeperator 255 255 255 255 InterfaceObjectBoxA 153 153 153 255 InterfaceObjectBoxB 102 102 102 255 DarkPanelA 8 20 0 255 DarkPanelB 8 20 80 255 SecurityButton 51 51 179 255 SecurityButtonDisabled 0 0 77 255 WorldMapNode 255 255 255 255 WorldMapTraceActive 255 0 0 255 DataData 26 204 26 217 DataProgram 204 26 26 217 DataLibrary 204 102 26 217 DataLibrarySource 51 204 204 217 DataSource 26 26 204 217 DataProject 102 26 204 217 DataSession 204 26 204 217 DataUnknown 102 102 102 217 DataOpenSlot 77 77 128 217 DataHighlight 153 153 204 217 DataFadeTo 77 77 204 217 TaskBackgroundA 153 153 153 255 TaskBackgroundB 102 102 102 255 TaskTitleA 51 51 102 217 TaskTitleB 77 77 128 217 TaskNormalA 128 128 153 217 TaskNormalB 179 179 153 217 TaskHighlightA 51 51 128 217 TaskHighlightB 128 128 153 217 TaskClickedA 51 51 102 217 TaskClickedB 77 77 128 217 DictionaryA 0 14 59 255 DictionaryB 36 72 146 255 DictionaryC 82 134 206 255 DictionaryD 73 122 194 255 MotionNone 51 51 51 255 MotionFew 230 230 51 255 MotionMany 255 77 77 255 PasswordBoxBackground 33 179 212 255 LanBackground 0 0 0 255 LanLink 0 128 153 255 LockdownBackground 102 0 0 255 GraphAxis 255 255 255 255 GraphLine 51 51 255 255
    As you can see, alpha is now supported, as well as a number of interface elements historically unsupported.

    This is, I should note, scratching the surface of something else we're planning to allow more customization of you game experience.

    We'll have something more fun and friendlier to use to report on the lines of customization later.


    Top
    Offline  
     
    Display posts from previous: Sort by 
    Post new topic This topic is locked, you cannot edit posts or make further replies.

      All times are UTC-05:00


      Who is online

      Users browsing this forum: No registered users and 6 guests


      You cannot post new topics in this forum
      You cannot reply to topics in this forum
      You cannot edit your posts in this forum
      You cannot delete your posts in this forum
      You cannot post attachments in this forum

      Search for:
      Jump to:  
      cron
      Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
      Theme created by Miah with assistance from hyprnova