May 22 - Omni update

Discussion in 'Dev Blog' started by OmnipotentEntity, May 22, 2014.

  1. Carryall

    Carryall Big Damn Hero

    It's just a few lines.

    If you can write an entire game's coding in a simple if/else logic statement, you're doing it either impossibly right or very likely wrong. I guess people want to feel like programming is a community effort.
     
  2. Lintton

    Lintton Guest

    A few Switches and Prompts and you have a Choose Your Own Adventure Game.
     
  3. IvoryOwl

    IvoryOwl Pangalactic Porcupine

    Community effort? Yea right, more like an illusion of that. A few lines of coding written by a professional who knows his thing ins't going to have a colossal mistake unless the programmer was completely drunk or distracted - its just very unlikely, like failing to know what 2+2 is. I understand what people are doing here, I just find it a waste of time. Its nice of Omni to give us a chance though, but I highly doubt we are going to come up with or notice anything he hasn't himself. People are just basically showing off that they know a thing or two of programming :p
     
    Last edited: May 23, 2014
  4. Exon

    Exon Subatomic Cosmonaut

    Pretty sure Omni isn't the only professional coder in the world. Also "mere players / fans"? People have a job too you know, and that job might just be dealing with C++ / Game Developement...
     
    Shock, Piccolo, Hazmat and 1 other person like this.
  5. Shock

    Shock Spaceman Spiff

    I don't understand any of that code but anyway, good work, Omni!
     
  6. blootiger27

    blootiger27 Scruffy Nerf-Herder

    Wow. All these new posts are really getting me excited! Great work everyone.!
     
  7. Doctor Devil

    Doctor Devil Big Damn Hero

    @OmnipotentEntity I'm looking at this code for a day now, and I still got no idea, so I guess asking directly is the best solution... While of course over- and under- flows are a pain, why not - istead of writing a template function for a basic operation like this - use some bigNum library? While the current solution seems good, it still limits the amount of pixels, and that's - while sane to admit noone will probably reach that amount - a bit unthoughtful.

    + there are plenty of free, easy and good bigNum libraries out there, since it's one of the most needed things in C++.
     
    Last edited: May 23, 2014
  8. LongChan

    LongChan Cosmic Narwhal

    Some people like to challenge themselves, that is not a bad thing and if they can find mistakes and help the team to fix them, I'll be very glad about it ;P. Also, showing off is not a bad thing and that comes from someone who doesn't have too much stuff to show off.
     
  9. Piccolo

    Piccolo Guest

    Professionals make mistakes, and just because Omni is a professional does not make them the almighty master of code, someone might see something that Omni missed. And as someone else said, there are other professionals too, including ones that play Starbound. Moreover, it doesn't have to be a colossal mistake, it could be something minimal that would have a minute effect on the way the game runs, it's always better to do what you can to improve things no matter how minimal. By your logic, there's no point in beta testing a game because none of the professionals working on it could make a mistake big enough to affect the game.
     
    pumapardo likes this.
  10. Rereto

    Rereto Scruffy Nerf-Herder

    Great work guys :)
     
  11. IvoryOwl

    IvoryOwl Pangalactic Porcupine

    My point is, how many people in here are actually qualified to know what they're doing or even talking about? I'm not saying there's no one in here who has never dabbled in coding and neither am I saying that Omni is perfect - nobody is perfect - but I have to ask if I would really take some random Joe's word over the one I KNOW is a developer - just because some people made a few mods, doesn't instantly make them masters at cracking the code. Its not impossible for someone to notice a mistake in coding, I just said its improbable in this particular case. If you're actually a programmer yourself and you know what you're doing and talking about then more power to you. If you're just throwing guesses into the air, then "ok", I guess?

    Piccolo, if you actually know a thing about game development, which I believe you do, you should know that there's different forms of tests and stages your game goes through, some of which requires professionals and others which are more "user-friendly". Testing and correcting lines of code, verifying parameters, clean unnecessary code, etc, these are things that are more complex by nature and as such require professionals to handle them, you don't invite your wife and children to help you with these, but you do invite them to help find bugs in-game and other more "simplistic" stuff that normal people can actually do. SB is technically undergoing "beta-testing", but its the kind that is easily accessible by the likes of us.
     
    Last edited: May 23, 2014
  12. Piccolo

    Piccolo Guest

    It doesn't matter how many people there are that are qualified. Omni simply said that if anyone could find s flaw to let them know. So if someone can, random Joe or not. They'll let Omni know and Omni will be the judge of how legitimate that person's findings are. If a random Joe has no idea what's anything Omni says means, then they wouldn't even be able to pretend they've found a problem and Omni would pick up on that quickly. Anyone that does understand could offer their two sense and either it helps Omni or wastes ten seconds of their tine. If someone does actually find a problem then it's helpful. There are no negatives to doing this, but there are potential positives and that's what matters.

    That's not really how beta testing works. The code figuring is not part of beta testing, but my point was that by your logic of no one but the developers understand how to make a game and coukd not benefit from the input of others would make all testing of games obsolete.
     
    pumapardo likes this.
  13. IvoryOwl

    IvoryOwl Pangalactic Porcupine

    Care to elucidate me on what beta-testing is then? Here's my analogy on it:
    Normal Player: Play game > Found bug > Report said bug
    Professional / Developer: Receive report of bug > Identify nature of bug (graphical, audio, bad scripts, etc) > Notify the corresponding development team > Development team attempts to fix said problem​

    Since a game is basically a huge amount of code put together, everything you do or change in it is reduced down to it. Bugs are caused by faulty lines of codes and as such, requires an expert to deal with it. Beta-testing has EVERYTHING to do with code-figuring, code-correction, code cleaning, etc. You just don't see or / don't have anything to do with it because you're a mere player, but internally

    Your understanding of my logic is faulty, but not far from the issue. I do believe that no one knows the game better than those who created it, even if you do know C++ and bits of game developing.
    But even the developers themselves need help from time to time, both from other professionals AND regular players, but the functions and capabilities of each vary greatly.

     
    Last edited: May 23, 2014
  14. Piccolo

    Piccolo Guest

    Beta testing is the act of testing (playing the game), not correcting the code. That's working on the game (in response to the testing). So the testing itself is not tinkering with the code, so Beta testing itself has nothing to do with asking someone without experience to tinker with the code. Which is the comparison you'd made before editing one of your earlier responses. Anyway, the point that you are ignoring is that there are still no negatives in asking the people of this forum to look for mistakes that Omni made, as literally anyone could be here and any of them could have enough knowledge to help and if they don't have that knowledge, then they won't help but nothing is lost. This is like peer editing a story in school. You may know the story best and have a superb grasp on the English language, but allowing someone else to review it might help catch something you over looked, and at the worst nothing changes and nothing is lost, but at least you checked.
     
    martyr2012 likes this.
  15. martyr2012

    martyr2012 Subatomic Cosmonaut

    Just because someone is not working on a project, does not mean that they can't provide a set of fresh eyes to track down missing edge cases.

    I know from experience that when writing code, one can get tunnel vision after working on a specific code block for too long and miss something.

    A fresh set of eyes, whether the original author a day or so later or those of someone that does not handle the code frequently can prove a valuable way of dealing with an oversight.
     
    pumapardo, Pontiac and Piccolo like this.
  16. IvoryOwl

    IvoryOwl Pangalactic Porcupine

    Alright, I see your point now.
     
    Piccolo likes this.
  17. tecnofauno

    tecnofauno Void-Bound Voyager

    @OmnipotentEntity
    I feel that using templates for that matter is an overkill :) how long does it take to compile the Starbound codebase?
     
  18. OmnipotentEntity

    OmnipotentEntity Code Monkey Forum Administrator

    > While the current solution seems good, it still limits the amount of pixels, and that's - while sane to admit noone will probably reach that amount - a bit unthoughtful.

    There was already a limit. And it was different between 32 and 64 bit platforms, and if you surpassed the limit it rolled over to 0. That's way more unthoughtful, imo. We're just making the limit explicit and handling it. Beyond that, there's a practical limit of the number of digits that can actually fit in the pixel counting area.

    I'd love to move to a library like GMP. I've had a lot of experience with it. However, including a library, especially one that's LGPL and we have to do special building and shipping to comply with licenses, is something that we'd need to have serious discussion about. I'd have to confer with kyren and Tiy. I'd have to work out a solid justification for it, and we'd have to do work to integrate it. We'd have to change our internal build requirements, we'd need to update all our builder virtual machines, etc. And it's very late in the development cycle to make a change of that nature.

    This stuff is just one more reason why we're moving to Haskell for the next game...

    We have around 123-125k source lines of code according to sloccount.

    It takes my laptop (laptop core i7) around 10-11 minutes for a full recompile.
     
    LCinn, Lintton and Kawa like this.
  19. Doctor Devil

    Doctor Devil Big Damn Hero

    I made a simple game engine for my masters degree, which was about 80k lines of source code, distributed over ~240 files (both headers and implementations), and one thing`s sure after that experience - it's never too late to make something in a way, it should be done. While the pixel holding area maybe limited, you can still translate larger numbers to 'k' and 'm' (like Master Of Orion II did with the in-gam currency, I think).

    While using a bigInt library for just pixels doesn't seem to justify itself, bigNum could be potentially used for world and seed generation too. And that's something really worth in the case of Starbound IMHO :) I'm not a part of the project team tho, so you guys know better what you want and/or like. Just giving some tips here and there.
     
  20. LCinn

    LCinn Void-Bound Voyager

    not 100% sure if serious, but if so, that'd be really awesome! <3 Haskell (/functional programming), it just clicks with how my brain thinks about code. If you were being serious, I'm looking forward to those hypothetical far-future code snippets :D
     
    OmnipotentEntity likes this.

Share This Page