Jump to content
  • Advertisement

Julie.chan

Member
  • Content Count

    175
  • Joined

  • Last visited

Everything posted by Julie.chan

  1. Julie.chan

    Open Source Licenses

    If you're referring to when a company takes a permissively licensed program and derives a proprietary version, that's what copyleft is for. Use the GNU GPL, GNU AGPL, or GNU LGPL depending on your needs. This has nothing whatsoever to do with commercial exploitation. Take a look at Linux. Companies that use Linux contribute to its development all the time, because the copyleft license it's under (the GNU GPL) doesn't allow them to release proprietary versions. So their best bet is to just contribute back, and that's what they do. If you're running a server, charge for the use of it. Simple as that. As for "monitoring any code commits", if that's such a burden for you, just ignore them. You can't eat your cake and have it too; if you want others to contribute, you have to pull those contributions. You can't just expect to gain something for nothing. And yet, thanks to Git, it's not even that hard. It sure sounds greedy to me, but I have nothing against greed. By all means, turn a profit. But it's hypocritical to write Communist software for a profit. If you want to forbid commercial exploitation, don't commercially exploit it. You keep appealing to your personal needs, as if that was an argument for hypocrisy. I don't see how it is. And what's more, it's not going to work how you are imagining. What you are proposing is a proprietary program, and you will almost certainly develop it entirely on your own, just like any other proprietary program. Companies certainly aren't going to contribute to software they have to pay for, so you're not going to get any contributions from them. And everyday hackers like me? We're completely turned off by restrictive licenses such as what you propose, so you'll get nothing from us. Except for the Communists, but Communists will be turned off by the fact that you're turning a profit. Overall, what you're proposing is a total lose-lose situation on all fronts. If you want to make money from developing libre software, you need to either join an established business (that's the easy route), or set up your own business, work very smart and very hard, and hope it works out (because, yeah, starting a business is a highly risky endeavor). There is no license that can magically give you a profitable business doing exactly what you want to do.
  2. Julie.chan

    Open Source Licenses

    Well, of course, because that's part of the definition of both libre software and open source. They're not exactly going to recommend licenses that don't fit their respective definitions. If I may be frank, a Communist software license probably wouldn't attract many contributors. I can't say I understand your goal; you want to suppress commercial contributions because you don't want to deal with pull requests? Why not just ignore the forks if you can't be bothered with them? No one is forcing you to pull in external changes.
  3. Julie.chan

    Pygame - alternatives?

    That's not going to tell you anything useful whatsoever. Of course the game loop takes "very little time". All game loops do. But you've completely missed the point that running such a short test is completely useless because all your results are getting rounded, and as a result you have zero information about when the slower parts are, which is the meaningful result. Getting multiple results with this pointless single-loop test you have is never going to get you any closer to understanding what's going on because of this. Yes, I know what you're talking about. You're worried that a 0.2% difference of timing, which is perfectly normal, must somehow be the cause of all your problems. But if you want to actually solve the real problem, that being the thing you describe as "jittering" (which is quite vague, and you haven't clarified what you mean by it), you need to drop the pretentiousness and think outside this box you have constructed. Otherwise, feel free to just drop all your work and start over with C if that's really what you want to do.
  4. Julie.chan

    Pygame - alternatives?

    That test seems much too short and limited to gleam any useful information out of. What did you test, exactly? I usually prefer to test the entire main loop, for at least a minute or two.
  5. Julie.chan

    Hidden information in local card game

    I don't really see wanting to learn programming as a particularly good reason to make a card game into a video game. Do you care more about the game, or more about learning software development? I propose the following: * If you care more about the game, then making it an early video game project (and only making it in that form) will just make developing the game needlessly difficult and stall your ability to actually play it (and most importantly, playtest it; a lot of the time what sounds good on paper isn't really so good in practice). * If you care more about learning software development, there are more efficient ways than developing a whole new game from the ground up with multiplayer network play. You could contribute to an existing project, for instance, like Argentum Age.
  6. Julie.chan

    Pygame - alternatives?

    180 FPS? Have you considered reverse delta timing, then (slowing things down to run at a higher FPS)? That would surely help. I have my games configured with a "delta max" (as it's called in the SGE) of 4 times the target rate, and a "delta min" of half the target rate. It would avoid noticeable "jittering" and make the controls smoother at the same time, plus this is much easier for the computer to do than keeping the FPS at a precise rate (which, like I said, isn't 100% reliable anyway since some refresh rates can differ from 60 Hz). Of course, you'll need to start using floats if you do this, so you'll want to store the "real" position separately from the displayed position. I just use floor() on the "real" position (and I'm not using Pygame's sprite system, so it's just a matter of calling floor() any time I blit a surface).
  7. Julie.chan

    Pygame - alternatives?

    In the few years or so I've spent optimizing the SGE Game Engine, I've found that the typical dogma regarding performance with Pygame is inaccurate. In particular, "dirty" sprites make almost no difference (and often none at all) in real-world applications; the real choke point is looping for things like collision detection, which is why the most important optimization I made with the SGE Game Engine was the "object areas" system, which groups all objects by general position so that looping is minimized. What framerate the machine can handle depends on the game. Have you verified the actual framerate the game is running at? You may be surprised if you haven't. I have this one game I developed (actually the first one I made with the SGE Game Engine) that's much, much slower than the rest, probably because I used scaling too much (though it's an unimportant game so I haven't investigated much).
  8. Julie.chan

    Hidden information in local card game

    My thought is, if you're requiring use of mobile phones anyway, why not just do the entire thing in the phones? Either way, you're still using networking, so I don't see how tying the game to a third screen is helpful to anyone. Actually, the most elegant solution I can think of is much simpler: just don't make it a video game, make it a physical card game instead. You can get cards printed quite cheaply at BoardGamesMaker.com (that's the service I use for a card game I designed, Keeper of the Cards), and then you don't need to worry about any technical concerns at all. The only reason I can think of to make a card game into a video game is so you can play it either over a network or against an A.I.
  9. Julie.chan

    Options/Advice for Selling Mod on Open-Source Game?

    I doubt anyone would undercut you unless you were incredibly successful, in which case you probably wouldn't have to worry about it anymore, and if nothing else it would make dealing with the competition quite a bit easier. That momentum you mentioned is quite valuable on its own. :)
  10. Julie.chan

    Pygame - alternatives?

    You mention vsync, which would suggest you're talking about tearing. But the problem you describe sounds more like the problem of using float positions, which is a different issue. That would be avoided by using only integer positions. If you're talking about actual tearing though (when the top and bottom halves of the screen are in different positions), apparently Pyglet is better for preventing that. It's true that mimicking the refresh display can minimize tearing, but it's not possible to time everything exactly as you propose. Plus, it's very possible for someone to have a different refresh rate, e.g. 59 Hz is one I've seen in some computers I've used, so it's not a 100% reliable solution anyway.
  11. Julie.chan

    Options/Advice for Selling Mod on Open-Source Game?

    I haven't tried it, but I think that already exists: https://colobot.info/ It seems to just be single-player, but adding multi-player to Colobot might be easier than making a whole new programming RTS. In the case of a multiplayer game, you can make money by hosting a server and charging for access to it. Yeah, that sounds like a nice idea. Actually, I wish more people would do this kind of thing. You'd just need to modify the game so you can run a premium server of sorts. Just one modification/clarification: anyone who receives a copy of a program under the GPL has to be given access to the corresponding source code, so while you don't need to advertise it, you still need to include either the source code or access to the source code for everyone who gets a copy of the binary from you (I usually just give everyone source code directly because that's simpler, but it depends how big the source tree is I figure). And one little suggestion/idea: make it so that people who haven't paid for access can still watch games on your server. That can help entice them to want access.
  12. Julie.chan

    Pygame - alternatives?

    PySDL2 seems like a good thing to use in my opinion. It's made using ctypes, which is nice. As for whether it's actively developed still, the latest commit on GitHub was in May 2018, so I'd say it's a bit stalled at the moment. Nevertheless, it's libre, so anyone can take up the project and continue updating it if they wish to do so. For what it's worth, by the way, Pygame is still being updated; the latest commit on the Pygame Git repo is from a couple days ago. I don't think there's an immediate issue of Pygame dying off, and it's been used so much that it's supported pretty much anywhere. For that reason my plans to make SGE implementations based on PySDL2 and Pyglet are actually on the backburner right now, and the main motivations would be to diversify and to have a version that works with PyPy (for a potential performance enhancement). I'll still be keeping the Pygame version as the main, reference implementation. Actually, maybe I should have asked this earlier: what do you mean by "rock-solid frame rates"? Are you talking precision or speed?
  13. Julie.chan

    Pygame - alternatives?

    A bit of shameless self-promotion: http://stellarengine.nongnu.org The SGE Game Engine is designed to be re-implemented in other backends. Future-proofing was one reason I designed it that way, though another reason is so (eventually) you can just choose what backend you want to use with no change in code. Currently I only have a Pygame version (though it also supports Pygame-SDL2), but I do intend to make a version based on PySDL2 or Pyglet at some point. On that note, Pyglet is another option you didn't mention. It uses OpenGL.
  14. Julie.chan

    Can I use these names and abbreviations?

    That depends on how you're using them. If you're referring to the actual respective standards, then that shouldn't be a problem. If you're using the names to represent something they're not supposed to, though, that could cause a problem. For example, there could be trouble if you refer to an optical disc as a "USB CD", since there is no such thing and it misrepresents what USB is all about. So in short, just call things what they actually are and you should be fine. Of course, I do have to mention that I'm not a lawyer and none of this is legal advice, just my personal understanding of how trademarks work.
  15. Julie.chan

    License for a Game Engine?

    Right, but I got the impression that he was concerned about people competing unfairly with forks he can't benefit from (i.e. proprietary forks). Copyleft protects against that quite well. It's the whole reason Linus Torvalds used the GPL for Linux (he doesn't care about the FSF's philosophy at all).
  16. Julie.chan

    License for a Game Engine?

    Where do you get that impression? It seems to me he just wants the benefits of copyleft: to give users the freedom to use and extend the engine, but make sure they don't keep the changes to themselves in a proprietary fork. For that goal, my recommendation is pretty simple: the GNU LGPL for the engine, and the GNU GPL for the editor. Of course the LGPL requires dynamic linking for proprietary programs (instead of static linking), but there's a good reason for that requirement: it makes it possible to modify the library in isolation and then run the proprietary program with the modified library. I think in this case, a lawyer is unnecessary. These are quite simple documents and getting help is quite easy The Free Software Foundation (authors of the GNU GPL, GNU LGPL, GNU AGPL, and the definition of libre software itself) actually has a whole page dedicated to helping libre software developers out on this issue, for example.
  17. Just to clarify, that wasn't the disclaimer I was recommending. I was recommending something more like this: "The car models in this game are not intended to resemble or portray any real-life car models. Any resemblance to real-life cars is purely coincidental." I don't know, it seems like an unrealistic standard to me. You can't design a car without referencing cars; first of all, you've already seen the cars, so you'll end up getting ideas from them subconsciously anyway, and second of all, all work is derivative; no one just comes up with 100% original art. This may seem like a nitpick, but I find your language here to be rather sloppy, and it stems from your insistence on the term "IP". A car design is not "an IP". It's a combination of various engineering choices (most of which are probably not patented), aesthetic choices (most of which are probably not copyrighted), and distinctive looks (some of which may be considered trademarks). Of course a lawyer should be consulted on stuff like this, but in this case, I don't see copyright as being a real issue. Trademarks seem to be the most important issue. And since, as you yourself said, trademarks are about preventing confusion, you don't need to start in a vacuum to avoid trademark infringement. In Canada, yes, but the U.S. has quite strong, flexible fair use protection.
  18. Julie.chan

    License for a Game Engine?

    I used the GNU LGPL for mine, plus GPL extensions. No, because that's not how copyleft works. Copyleft doesn't require anyone to contribute to anything; it just requires derivative works to include source code under the same license (the MPL in this case). No, not that either. Under copyleft licenses, as long as recipients of the binary also get source code at no additional cost, the requirement is satisfied. They could even choose to charge $500 for binary copies, as long as anyone who buys those binaries gets source code too. No. No libre license has such a requirement. It would go against the four freedoms of libre software. It depends on what the terms of the license are. Copyleft licenses generally prohibit this; that's the point of copyleft. But exceptions are common. Since you're talking about the MPL, that license permits relicensing to the GNU GPL, GNU LGPL, or GNU AGPL. In the case of an Expat-style license, combining with code under other licenses is permissible, so e.g. if you add GNU GPL code, you get a GNU GPL program with an Expat-licensed portion. Full details are a bit more complicated than that, but that's the run-down. As for you, if you own the full copyright to the work, you can relicense it however you want, albeit you can't take away these licenses from people who already got copies under them (these are perpetual grants of permission). But if you accept outside contributions, those contributions will be covered by copyright owned by the respective contributors and you will have the same requirements regarding those portions as anyone else. In the case of those two licenses, yes. Yes, absolutely. I don't know about that. Firstly because the MPL is such a weak copyleft license, and secondly because I'm not so sure that copyleft drives people away. For an Expat-style license, no one at all is required to publish or give away source code to anybody. In any case, if you are the full copyright owner of a program, its license doesn't apply to you because you are not restricted by your own copyrights. Yes.
  19. Half of the sentence you were quoting was missing from what you quoted, which makes it look as if Ripples was only planning on using a disclaimer. But he also said he would change the designs and names to distinguish the cars. I don't see how "going 5 over the posted speed limit" is a parallel. Aside from the fact that there's no such thing as not having a gray area when it comes to trademarks (meaning that you can't really compare the issue to something as well-defined as a speed limit), changing the car designs to prevent them from resembling the originals too much, changing the names entirely, and adding a disclaimer for good measure seems to me like a very responsibly cautious thing to do. There are some things that are not aesthetic choices, but engineering choices, so I don't see how you can go further than that without making cars that look nothing like cars and wouldn't function in the real world. Also, I find it regrettable that copyright has been brought up. Copyright can potentially be an issue in certain aspects of a car's design, but realistically, most aesthetic designs on a car are so trivial, they probably aren't even covered by copyright. This seems to me like worrying about the "copyright" to the design of an ice cube tray, a shoe, a hairdryer, etc.
  20. Note that the key here is to prevent confusion (prevent the possibility of someone getting the false impression that the game is endorsed by the owner of the trademark or connected to the actual trademarked product). So as jbadams intimated, even having cars that look too similar may be a problem; some cars have distinctive visual features that help customers identify them. Of course, to what extent would be up for a court to decide, and only a lawyer could tell you what your chances are (and I too am not a lawyer). If I was in your position, I would change the cars' designs and names sufficiently so that there's no possibility of confusion. This may require either extensive research or good knowledge of car models, so that you can identify what features are common engineering choices and what features are used to help customers distinguish models. And just to be on the absolute safest possible side, I would include a disclaimer as well stating that the cars in the game are not intended to represent any real-life cars and that the game has no connection to any car manufacturer. You may be able to get away with less, but if you intend to do so, definitely get some legal advice first.
  21. If you want a source for art assets that you're allowed to use, check OpenGameArt.org: https://opengameart.org/ Of course, a lot of stuff there is copylefted (but not most of it; it seems about 90% of the assets there are under a non-copyleft license). If copylefted assets won't do for you, be sure to filter by license.
  22. Julie.chan

    Better Coding Practises

    I don't have any specific advice on your code, but one suggestion I do have is to contribute to other people's libre open source projects. This is helpful because it puts you in the position where bad code gets in your way, and after you do it a lot, you will get much better at recognizing what kinds of code are clear and unclear. And you help out a project (hopefully one you like) to boot. :)
  23. Julie.chan

    About Copying Game Mechanic...

    Please be careful citing any patents. Knowing about a patent makes you liable for triple damages should you violate it, so by citing patents you could be putting software developers in jeopardy. The only examples you should ever cite are expired patents, like the patent on natural order recalculation (i.e. permission to make a spreadsheet program that functions correctly). There is nothing a software developer can realistically do to avoid infringing patents. There are too many, and it's too hard to tell what patents could possibly apply (e.g. that natural order recalculation patent was on the face of it about compilers, and yet it was used against a spreadsheet developer). All we can do is close our eyes, never look up patent information, and hope we don't get sued by patent trolls. And in the long-term, software patents need to be abolished.
  24. Julie.chan

    About Copying Game Mechanic...

    I'm not a lawyer, but you can't copyright ideas or mechanics, only specific expressions. So unless you're literally copying the code that does what you want to do, you should be in the clear. I copy mechanics from other games all the time, as do AAA game developers. After all Nintendo didn't sue SEGA for controlling Sonic's jump height by how long you hold the button.
  25. No, no announcements of any kind are necessary; the only requirement is that the source code needs to be from the same place as the binary. Just include it in a subdirectory with the binary and you'll be good. Or if you want to separate it (maybe because the source code is too large), just put a "source code" link next to the binary download (exact details will depend on how your customers pay for the game). Of course, I'm still not a lawyer, and this is still not legal advice, just my understanding of the license.
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!