Introduction
I'm sorry before if I made a lot of grammatical error, I'm not from English speaking country.
It's tentative title for the project I'm working right now. And to be honest before, I haven't written a development blog for years and I think I should start, well having people know what are you doing is good for a lot of reason. One of the reason is not be alone in this project, i meant it's actually a solo project and I decided it to be solo for some reason, but being alone here is like no one notice you and you don't get feedback at all.
I'm 27 years old developer from Indonesia, I made flash games before and I think I should do try something else, so one year has passed and I was doing a lot of research, making a lot of prototypes and I decided to try Construct 2. I got my license when my friend won 2nd place in a construct 2 jam for our entry http://jams.gamejolt.io/construct2coin-op/games/the-magnificent-exorcist/62832 I was the helping the game by composing the song and when the result was announced, my friend gave the license to me so I could try construct
I'm a programmer, a pixel artist and can do music a bit, so I started to do a construct 2 project by learning the example, I was curious how does it work and why this engine says no programming knowledge is needed. My friend said to me that if it's me It will take less than a week to understand how it works and he is right, it's easy to learn construct 2, so I decided to make a prototype game with it but It happened that my game idea was too big, imagine binding of isaac with snake movement mechanism, roguelike but full of action.. It was bad idea to start a project, one month just able to do random map generation, snake movement, 3 different AIs and It will take a lot of time to finish it
I realized that project is a mistake. It's too big for a guy, so i split that game into smaller pieces to work and I decided to make smaller project from it. I had experience with web games before so I think I could get some money by getting it sponsored as webgl games and use the money for living expenses during developing this game further into steam. I emailed one of the flash web portal who sponsored one of my game in the past and it seems webgl game is fine. Honestly I have no idea about the monetization of webgl game (except put ads and .. basically doing game in Flash game era)
Week 1
Task:
- learning pixel
- pixel..
- and moar pixel
I hadn't done any pixel art for a year, so I start doing one by learning GraphicsGale. It wasn't hard to learn it, and it's actually fun. I know photoshop before and tried to rebind keys some of photoshop shortcut to gale
that was for the previous game I mentioned before, binding of isaac inspired game with snake movement. I started making a lot of assets for the it until at some point I found what kind of gameplay can I do and reuse the assets that I did on this week
Week 2
Task:
- tileset
- robots (assets+code)
- weapon
- enemy + AIs
- lighting
those are some preview of assets done this week. I decided to make a game using the robot parts I draw before and for a week I was busy doing mockup. So with the robot parts and anything I could "scavenge" from the previous project I decided to make exploration/mining game. I had no idea that construct 2 have a mining themed jam. I really don't know.. what a bad timing
the wall are made from 15 parts of sprite, I don't think tile could do it, I realized the sprite performance was not going to be very good but I'm sure I could optimize the performance later, When a cliff is destroyed it's neighbour will be changed
there are actually 15 images to make the wall seemless, I like the result and I think i should add indestructible wall too, and I also managed to draw and put one first enemy for the game
Week 3
On week 3 I started to find how the game should feel like, so I draw a lot of particles and reuse anything from past project. here was the game on the end of 3rd week.
I had the idea to put sudden death mechanism into the game, I was inspired by bomberman SNES. In PvP mode there is sudden death mechanism, that's is falling block. I think it's nice to put some tension into the gameplay. Until this week I still haven't worked much on mining part, I already draw the equipment and a lot of objects but I haven't implemented it yet
The performance was pretty bad, it was 40 FPS, I did a lot of optimization after that. from the Enemy AI part I remove LineOfSight and reduced number of path finding. I also found something interesting while optimizing my game, that either LOS or PathFInding somehow really really slow on big layout, there was not much object, basically I just resize the layout and the FPS hit 20
I have no idea how to really optimize thing so I decide to make the game layout smaller and make the game room based, my idea before was it's huge area and will have things loaded partially. The problem with it was I have no control over pathfinding component and I don't want to do it with JS, the reason I come with construct 2 is not to do too much programming (I have to work smart -- I'm on my own) so I have to make peace with the situation and change the game design.
if at least we can control offset of pathfinding that will be helpful, but I don't think we can..
later, I emailed my previous flash game sponsor, I know it's too early but I need to know whether he is interested with webgl games. as I mentioned earlier I need cash to survive while making this game, he answered me on the next day and he is OK with html5 based game. I was worried a lot, because If he isn't interested I have no idea how to monetize this game, it's not for mobile and I'm not gonna do mobile game with construct 2. I used phaser,io before and doing with something in JS and nah.. for me html5 mobile game isn't my thing, no matter how good it was it doesn't satisfy me.. I found my call later, I should make pc game
Week 4:
I tweeted about my game performance on firefox, I only got around 40-50 FPS, Put #html5 on my post and someone reply and told me to use developer version of firefox.. I tested it and it runs very smooth!
I do a lot of optimization and in the end I removed z-sorter, the plugin I used before. I didn't planned to do a lot of optimization this week as there are a lot more important things to do, but I can't ignore the fact that my game wasn't running smoothly. I still don't know what happened but I tested it with only sort y on "gameplay" layer and it was messy. some object was disappear into.. I really don't know. I tested it with debug option and the object should be there but it wasn't rendered. So I decided to use https://www.scirra.com/forum/y-based-z-order-request_t103914 solution. I didn't really like this approach as I don't really use Y but in the end I use it and had to add one more variable : YSort.
thanks to lennaert 's answer
one thing for sure, the performance that the solution is actually much better than my previous solution using Array, sorting manually and move z-order from z-sorter plugin, I could have like 200-1000 objects on screen, it could be bullet flying, impact, bloods and alot of things and the whole optimization thing I did was useless, simple approach from that link is actually works very well, you might want to add isOnScreen on it
Week 5
It's been five weeks since the first day I started on this project. Overall, things are good, I think this project is getting slower this week because I had to decide which base story should I use and prioritized character's equipment/ effects over other aspect of the game.
I think we will have permanent title later as the core gameplay and base story of the game has been decided. The background story is pretty much solid now and has a lot of things that player can explore. I have to admit I'm not good at story telling and to make it works I'm gonna need help from people who are good on story. The story part is going to be important on this game, because people need reason. I need reason why I should be doing this, digging this, killing monsters and moving.
I'll update this thread every weekend