New project/what are you working on?


  • LDG

    Yay mockups! I don’t have a complete picture of the game in my head so my perspective will be skewed, but here are my thoughts:

    • Is this a local co-op game for four players?
    • Is the gameplay turn-based or realtime?
    • Agreed that it seems very busy so far. Could be overwhelming, especially to new players
    • So you’re already at N, but have you designed and do you fully understand 1? What I mean is: picture a single player with a single monster. That’s what this game seems to be built on. To make the best decisions at this stage it would be beneficial to have answered many questions at the 1 VS 1 stage
    • My gut feeling is that the purple reticles under the characters will be too subtle to communicate much to the player, given the bulk of the other UI
    • The pointing arrows are unconventional and don’t seem to be a good deviation from the norm – initially I would have thought arrows would be pretty intuitive but to me, the one on the far-left could be ambiguous, as it passes through another monster to point at its target. Also the far-right pointing at itself isn’t working great, IMO. I don’t have any suggestions off the top of my head but there are lots of party games to check out for examples, I bet Mario Party or Wario Ware has an RPG mini-game. You may be on the right track with each player having their own color, that would be helpful in-game

    Very cool! Tell us more about the project sometime :)



  • @richtaur said:

    • Is this a local co-op game for four players?
    • Is the gameplay turn-based or realtime?

    First single player, then local co-op for up-to four players. If I’m absolutely crazy, peer-to-peer co-op.
    The gameplay will be realtime, but borrows the look of a turn based rpg.

    • So you’re already at N, but have you designed and do you fully understand 1? What I mean is: picture a single player with a single monster. That’s what this game seems to be built on. To make the best decisions at this stage it would be beneficial to have answered many questions at the 1 VS 1 stage

    That’s a very good point. The idea I have in my head is that the gameplay needs to be fun and playable for 4 players, as well as 1 player, but I’ve been focussing mainly on how the 4 player aspect would be and only have vague ideas of the 1 player.

    • My gut feeling is that the purple reticles under the characters will be too subtle to communicate much to the player, given the bulk of the other UI

    Totally agree, I’m going to put some thought into how to better show which character is selected and what character is selecting that character.

    • The pointing arrows are unconventional and don’t seem to be a good deviation from the norm – initially I would have thought arrows would be pretty intuitive but to me, the one on the far-left could be ambiguous, as it passes through another monster to point at its target. Also the far-right pointing at itself isn’t working great, IMO. I don’t have any suggestions off the top of my head but there are lots of party games to check out for examples, I bet Mario Party or Wario Ware has an RPG mini-game. You may be on the right track with each player having their own color, that would be helpful in-game

    I’ll have to do some searching on that.

    Very cool! Tell us more about the project sometime :)

    I definitely will, I’m taking a nice full-week work break next week so expect something then :D.

    Right now my next step is to create the most insane GIMP project file ever, which I’ll use to create some gifs showing how different aspects of a full battle would work. This method might not work for everyone, but having an animated gif that I can mess with has already been extremely helpful.



  • @Faison said:

    I definitely will, I’m taking a nice full-week work break next week so expect something then :D.

    Hah, so I definitely did not work on it. Plans for work breaks, am I right? At least through some deep thinking here and there, I’ve concluded that I may have to shelf this idea. Wanted it to be fun in a certain way, but the more planning and image making that I do, the more it gets away from what I originally envisioned.

    But that’s how it goes, I guess. Just keep prototyping the best way you can until you find something you can see all the way through.

    And if anything, I’ve learned how to make gifs to show “gameplay” :)


  • LDG

    If you learned even one thing, it’s a win!



  • I just made a hotbar! I can use my number keys to switch the current selection, as well as use my scroll wheel. Also, added a way to hide the hotbar (and all UI in the future) by pressing F10:

    Note: White background currently shows which slot is selected. That is placeholder because I don’t know how to do it better :)
    hotbar

    Next step, making that hotbar selection actually do something.



  • Manually placing blocks with code, nearly ready to add code to place blocks with the mouse. The red border indicates a space station (which is built with several individual blocks).

    Code Placement



  • After a little break, I added a simple function for building space stations with code. FYI, l == light block, h == heavy block

    code



  • So, I decided to have some fun. I generated a station that is 30 x 30 blocks (900 blocks). I did this, because my code as it stood would draw each block, every tick, using context.drawImage(). Unsurprisingly, it didn’t perform very well…

    Not very well
    30% of the runtime (which was 30 seconds, according to my timer, but the profiler thinks it was 15.7 seconds O_o)

    So after doing some research and playing around, I decided to use hidden canvases as a cache for space stations. Draw the station once after it’s created, then use one call to context.drawImage() each tick to draw the station to the main and visible canvas. It was much better :)

    Better performance
    So the space station cache canvas will need to be updated any time the space station is modified, so I’ll need to come up with a good way to know when the cache becomes stale and needs to be regenerated, but it’s going to be needed like crazy for this project.

    Especially if you can create as many 2d space stations and space ships as you want :D.



  • You might be wondering to yourself, “but Faison, what if you increased to a 60 x 60 station. You know, 3,600 blocks?”

    Well I’m glad you asked :D

    Here’s the draw each block every tick method (~30 seconds):

    It's painful!
    Look at that idle time, makes me cringe >_<

    Here’s the hidden canvas method (~30 seconds):

    That's nicer
    I think you can see how better the off canvas approach is.

    Tomorrow, I test the performance with multiple space stations that are stupidly big ^_^


  • Tiger Hat

    @Faison But with the canvas method your idle time has increased to over 22 seconds - is that good?!



  • @cheersphilip said:

    But with the canvas method your idle time has increased to over 22 seconds - is that good?!

    It’s true, this “Idle” seems to eat up a lot of processing time. I ran a 100 x 100 test before going to bed and with the “every tile” method, I brought the idle time down to 15 ms, but the canvas method brought that up to something like 18 seconds :O

    </joke about misunderstanding idle time>



  • Hey @Faison if what you’re doing is small enough so far you may be able to take advantage of a knowledge share between you and @geoffb. The boilerplate you’ve got for this might give him a playground to test all his rendering knowledge on and he can pass back any extra milliseconds he can save to you, the prototypes are marching forward so he may not be messing with rendering any more, I think it was around two months ago he was looking at pixi, 2dcanvas, even a node-webkit SDL module etc.

    Actually on the subject, have you considered pixi? The earlier you gut the rendering system the better I guess.



  • @Affordable_Desk said:

    Hey @Faison if what you’re doing is small enough so far you may be able to take advantage of a knowledge share between you and @geoffb.

    He’s got his own prototypes to work on and I’m sure a hefty list of tasks assigned by @richtaur :P

    Plus, I get a lot of optimization tricks from the podcast. Also, I’m not to the point where I can call this gamedev stuff a hobby. It’s more like my relationship with biking/running: I know I should do it and I want to do it, but I’m really bad at making the time and effort to do it.

    Actually on the subject, have you considered pixi? The earlier you gut the rendering system the better I guess.

    Since rendering a bunch of “user placed” blocks is essential to what I’m trying to do, optimizing the drawing of boat loads of blocks is basically the first thing I need to have set and have looked at a little bit.

    So I took a gander at Pixijs, which has a sprite batch class for drawing thousands of sprites super fast to a webgl canvas (with fallback to 2d canvas). I spent an hour or so, but couldn’t figure out how to properly load in my own custom sprite sheet and sprite sheet data. From what I could find, I would need to use Texture Packer to generate my sprite sheets, and no thanks.

    It looks like EaselJS has some webgl stuff going on for drawing lots of stuff, and I’ve successfully used EaselJS (and other parts of CreateJS) in the past. So I might give that a shot too.

    Either way, I don’t think I’m going to get past having to make a large cached image of a space station/ship


  • Patron

    Count me in for testing that game!


  • Patron

    So, up until now, I’ve been using Ligthworks for doing masking/compositing on my flute videos.

    But I got infuriated at it yesterday, 'cause it just crashed every time I tried to export the video.

    So, I thought to myself: “Hey, maybe I can make a little app that takes a video file as input and outputs a sequence of png files with transparency”.

    It was mostly very fun working on this project, first of because it’s really tiny (I made it almost entirely in 5 hours) but also because I know the canvas API so well that I mostly knew exactly what I was doing.

    But then came actually exporting the .png files…

    I’m still working that out. Dealing with cross-origin and file system issues in HTML5 really isn’t that nice (seriously, isn’t there any way I can save multiple files at the same time?).

    Right now, I’m downloading NW so I can easily save the .png files using the FS module. But my connection is specially crappy today. Like, veeeery crappy.


Log in to reply