Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

  • Days Won


Julie.chan last won the day on June 4

Julie.chan had the most liked content!

Community Reputation

382 Neutral


About Julie.chan

  • Rank

Personal Information


  • Github

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Julie.chan

    Save-scamming in turnbased game?

    For what it's worth, I used to play Freeciv quite a lot and it never even occurred to me to do that even though it's possible. And even now that you've mentioned it, I still wouldn't do it. On the other hand, Gish annoyed me so much by constantly sending me back to previous levels that I literally went into its source code to add infinite lives. Point being, players only cheat when they find playing the game properly to be more tedious than going out of their way to cheat. So if a lot of players are getting through the (single-player) game by cheating, what you should look into isn't trying to prevent that cheating, it's fixing the gameplay so that you stop encouraging it. And here's another way of putting it: if someone finds playing a game tedious enough to cheat, and you stop the cheating, what that's going to do is encourage the player to just stop playing the game. Fix the gameplay so that they don't want to cheat anymore, though, and you'll both keep them playing the game and discourage cheating. FWIW I always leave cheats available in the games I develop. Usually these are put in for testing purposes and hidden away behind some sort of special key combination or command-line argument (or both). In fact my current (albeit still-on-hiatus) project literally lets you teleport all around the map if you want to with a very simple cheat code and some knowledge of file names. I don't know for sure because none of these games are super popular, but I don't believe the people who play them have a tendency to cheat much if at all.
  2. Julie.chan

    Game engine for a 10 years old

    FWIW I tend to agree with Richard Stallman on this one point: the best way to learn programming is by making small changes to large programs. This is how I learned C; I just made small changes to The Ur-Quan Masters, Naev, and Project: Starfighter, then bigger and bigger changes, until eventually I became a regular contributor to Naev and the active maintainer of Project: Starfighter. So from that perspective, I actually tend to think making a new board game is a poor choice for learning. Much better would be to modify an existing open source game that he likes. But ultimately, not everyone develops a passion for programming, and that's okay. So if a kid just wants to make some board games, I tend to think it's best to give them an open source board game engine like VASSEL; if it works, it works, and if it doesn't, they can open up the source code and tinker with it while learning stuff along the way. Or, the route of making physical board games is possible too. I went that route recently with a card game I designed. Not everything has to be on a computer.
  3. Julie.chan

    Game engine for a 10 years old

    Mostly because the first post is talking about what the poster wants, not what the kid wants: And the only thing mentioned that the kid wants to do is make a board game. It looks to me like the kid just wants to make a board game (or perhaps multiple board games) and the poster is using this as an opportunity to introduce him to programming.
  4. Julie.chan

    Game engine for a 10 years old

    Godot Engine is usually what I suggest for serious developers. It sounds to me like your kid isn't too terribly serious about this, so I'd recommend something simple like GDevelop. One more possibility I just thought of: Game Editor. Not the best engine in the world by a longshot, but I've used it before and it's pretty decent for a beginner.
  5. Julie.chan

    Game engine for a 10 years old

    Guys, let's remember he asked for a game engine. C#, Python, JavaScript, etc aren't game engines; they're programming languages. As regards board games, there are actually engines designed specifically for board games. I found this, for instance: http://www.vassalengine.org/ I would definitely recommend using a dedicated engine; it will lead to less "reinventing the wheel", probably a higher-quality and more featureful result, and will take a lot less time. For a kid, as a general rule, I'd honestly recommend GDevelop. Never used it, but it seems like a simple one. Construct Classic might be another decent option. Love2d also looks like a nice one to me. I know that Lua is nice to work with in the right contexts, albeit a bit unintuitive at first if you're used to other programming languages. For Python, there's Cocos2d, for instance. Lots of people will point to Pygame, but I would recommend against that because it's quite involved, almost as much as SDL itself. It's not really a game engine so much as a graphics library. Again, though, I'd recommend giving Vassal a try first. If it fits your use-case, it'll most likely be the path of least resistance.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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).
  12. 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).
  13. 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.
  14. 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. :)
  15. 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.
  • 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!