roracle's Forum Posts

  • (opinion)

    I remember I had to get a game out in a month. That was last November, and I'm still working on it. I wasn't contracted or anything, but a one man team means a many moons project. Had I asked for help from friends to do graphics and sound, I could have done it in that month, but I'm not rich and cannot pay them what they were asking.

    If you figure out how to make an original game in 3 days, let me know. Not trying to burst your bubble or anything, but I've been a self taught programmer, never have had official training in software design or development, but I've learned a lot (and forget a lot, too, which is why documentation exists) and it wasn't until Construct 2 came along that I actually have a way of getting my product to a mass audience. The PC market was impossible to get into for indies like myself, but because of HTML5 and Scirra's C2, the flood gates are open. Patience is the most important thing. The devil hurries the mind.

    Always remember: you can't do a fast job good, and you can't do a good job fast.

  • VarPoints=3 (divisible by 3)

    VarScore = VarPoints/3

    VarScore would equal 1 in this case

    Player only sees "I have five points" but the variable will read 15. This way the single digits can be put in the proper category? I recommend this way because you don't have to work with decimals. From here you can say "one point to this category, two points to that one. Just a suggestion.

  • I would have an invisible spawner wherever you want to put it (in Ultima Online for instance, the monster spawners are little stone graphics with properties telling it what to spawn and how many, which is where I got the idea from). For a platformer it's no different. Just have a spawner sprite, and if it's spawned an enemy, have a variable or boolean switch on so it won't spawn any more, and if the enemy spawned is dead, switch the var back off so it can spawn another enemy.

  • I had an issue where Chrome can't load a project's "F5" runtime. It never updates the code for some reason, but it works fine in IE and Node-webkit. I think something broke at some point and no one really has encountered the issue but you and I apparently. (At least it seems to be same issue I had). It kept treating a boolean as if it were true when it was false, didn't make sense, so I ended up just starting over...then again there wasn't much to the project when this happened to me, so rewriting it wasn't a big deal.

  • I mean how you have the box for the player, then the player's sprite? Add another box that's attached to an image point where it's always in front of the player. This makes it SO much easier for detecting direction.

    As for animations, you need to make sure the event "animation idle is NOT playing" etc to ensure your animations are in tact. Idle should be the lower most point of animations. Imagine the "idle" animation as if it were a rubber band. any new animation playing is like popping that rubber band, but it HAS to be back in place when it's over. Computers don't know to put things the way they were, just the last way you told them. So if you tell it "it should be this way" then you have it do something else, make sure "that way" isn't active, and when the new way is done, ensure the old way is back in place.

    It's so hard to explain, which is why I'm not a teacher, but it works in my mind to think of animation and game states as rubber bands that get popped here and there, but after the popping is done it goes back to a general state (ie: idle, health restoration, enemies walking, etc). The state the game is in with ZERO input from the user is the default state you want, and any other state must be told "idle state is not playing" (and idle state should have "walking is not playing, attacking is not playing, jumping is not playing" etc.

    I think comprehending the theory of game design is far more important than the code (with Construct 2 at least) but at the same time there are good practices no matter how one codes it. Just remember the computer isn't smart, you are.

  • For collisions, you can do what I do and add another invisible box that floats out in front of the character AND another one for the enemies so when they overlap and you hit attack, it knows to do the attacking routine. This might help with the other issue, gets rid of the need for collision boxes. Sure it's more stuff loaded, but platformers are picky by nature.

  • mariogamer

    nimos100 has the right idea. I'm writing a shooter and doing it exactly as he mentioned. I keep ONE frame for ALL my levels and change my levels with global variables, this way I can use the code to tell it how to progress the level instead of setting up sprites all over the board.

    I'm writing each enemy it's own routines, and when in the level code I tell it to turn a switch on to activate whichever enemy, and give it the speed and other variables necessary, and have it spawn outside the frame on the right side of the screen (or top or bottom or left however you do it or however the enemies attack). Once it's in frame, I tell the enemy sprite to switch it's "on screen" variable (call it what you like) to let it know it's on the screen, so when it flies off the other end it can be destroyed (if the player didn't destroy it while it was in the play field).

    The point is the play field stays still, and the SPRITES move to give the illusion of "flying through space". That video you posted was for a platformer game, which is COMPLETELY different because everything DOES need to be in the proper place for world exploration. But space games are different in that they are much easier to set up.

    If you're going to have your level planned out, do so on paper, and use the event editor to tell it at what TIME the things should spawn. Use a global variable that counts the timer up. I suggest 2 to 4 minutes per area, and spread your enemies out through there (at 10, spawn this many of this enemy) etc. After the total area (say level 1-1) is over, reset the timer, switch the area/level to the next one on the list, repeat the process but now for 1-2, changing the times and enemies and what not. You can also use timers in this way to spawn on a higher layer maybe a sprite of the inside of a ship that you end up flying through, so it's not just for spawning enemies, you see.

    Don't think too hard about it or you will burn yourself out. If you need help, just PM me and I'll do what I can.

  • I have a boolean set to false by default. On the new version, when the game loads, the boolean is acting like it's "true". I have it set to "false" where it should and "true" where it should. I've checked all my code. I re-downloaded an old, knowing working version and it's not working either. Is there something I need to do or change?

    EDITED:

    I thought it was an old version issue, but it's not. Everything runs fine in Internet Explorer. I never use IE personally so the entire IE experience was like a fresh new boot of Windows. No cache or anything. But in Chrome, it doesn't seem to be updating when I click "run", OR it is setting a boolean to true when it should be false.

    Does anyone know the reason this might be happening to me?

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Running an exported C2 program in Linux:

    Run in a terminal the program you exported, look for the error message, install the required package (not all distros, even Ubuntu, come with the right libs) and the game will work. I do run tests in Linux but I can't think of the library you need off the top of my head.

  • Using open libraries would make it easier to port from Win to Lin. It's not about "omgomg linux support" it's about a people's platform. We're spending thousands on computers, more on software, so it's nice to know there is a free operating system that allows people who can't afford Windows (or simply don't want to use it, or can't use it, etc) to be able to get work done. It's everywhere. It's already in most consumer electronics for its ease of use for developers (and extremely low cost of $0.00, that's USD) and it's what powers Android.

    C2 may be the best software out there for designing HTML5 games, but all the others (except Game Maker) have a Linux version.

  • A Linux editor would be amazing. I know before they had mentioned having to rewrite it, but as you posted links to this DX to OGL thing, it should make things easier on that end!

    Linux is becoming the primary gaming platform. As a matter of fact, if we are talking casual games (where the market currently sits nice and cozy) then Linux is already the primary platform for gaming. It only makes sense to have a Linux editor. Microsoft will likely retire as the business platform, the true successor to IBM. This makes it an inconsistent system with the direction of gaming. Luckily we have Linux these days, and it's not going to be a recurrence of the dark ages (the 1980's that is, too many platforms, no standard).

  • For every action taken, post a new line to a log "text" plugin maybe? You just have to add a new action for every thing you want logged. "User hits space", "sprite attacks" "add text 'user attacks'" for example.

  • Yeah, 16x16 is like a SNES sprite, and on today's monitors that's SUPER small. So when you zoom in, it will become blurry. Now, if you want to do Minecraft like pixel graphics, they still need to be large resolution, as a low res image will just stretch and look strange.

    For other reference, a GameBoy (original b/w style) sprite max size is 8x16. Gameboy resolution is 160x144. So think about that before you use such small sprites on high resolution displays. So if Mario on Gameboy is about 1/4th the size of the screen, then on your computer monitor he should be about 1/100th the size or so. (seemingly super small)

  • GIMP (take the time to learn it, it's totally worth it)

    Paint.NET

    Inkscape

    Paint.NET should be used for basic stuff, GIMP for your real editing, and Inkscape for quick character design.

  • I would like an array editor (and dictionary editor).