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.
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
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...
@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++.
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.
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.
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.
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.
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.
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.
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.
@OmnipotentEntity I feel that using templates for that matter is an overkill how long does it take to compile the Starbound codebase?
> 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.
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.
not 100% sure if serious, but if so, that'd be really awesome! 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