Day 111: Today, I feel like I’ve done enough to call it a productive day. And yet when I look at the trello, not much got done. That might because I spent half a day on stuff that wasn’t related to code. But I still think it was a day well spent.
Daily interesting stuff:
Git lab lost 300gb of data. Apparently, a sysadmin did a wrong rm -rf and none of their recovery tools worked… I can’t imagine the poor person realizing that the command is taking too much time. Or the frantic panic when discovering that the last recovery option also failed…
Reddit post, open source art being wrongfully sold. A person found out that some freelancer was selling its open source content to clients. It’s really ugly, first to make money on some free assets, second to not credit the original owner…
Reddit post, what do professional think about Game Maker. Basically if a tool enables you to make the job, use it. But if you want to be hireable, don’t tie yourself to an engine.
Oculus was fined 500 millions $ because of NDAs breach and other stuff. This was the outcome of the Zenimax - Oculus lawsuit regarding stolen VR R&D data.
Tasks done:
Asked what a “finished” game is. I was re-reading the “finish your game” articles I go for when I‘m down. It’s always refreshing and make me want to see thing through. But as I quickly looked at all the “finishing is a skill, work on it” and “only real dev finish things”, I realized no one actually says what a “finished game is”. So after a bit of self reflection, I asked twitter. Then I got one answer from a friend. Then I posted it on reddit. There was a few responses. It was very interesting to see that everyone had a different idea. Some thought it was when it’s released, some that it was when you accomplished the goals you set. I like the ideas of the goals. But I still think “finished” is not a good word for it.
Set up a slack chat room. I’m amazed how easy it is. They really made the process totally painless. I sent the invites to the graphists. Only one signed up. I’m waiting for everyone before launching the work splitting, and the art direction.
Identified the origin of a the mini map exit bug. The problem is that sometime, an exit appears on the mini-map, while the exit is actually blocked. Exits can be blocked, it’s not a problem. It becomes one when the exit is still shown on the map. So I did some checks. I showed the whole dungeon, and the whole mini map. Then I searched to reproduce the bug. It happens because to see if an exit is blocked or not, I checked to see if the room at the exit position is connected to the current room. So if a room has two exits leading to the same room then if the room are connected through one exit, both are considered not blocked. To fix this I would have to model the connections based on map “squares” and not rooms. The ratio work / result is really weak.
Fixed the room exit automation bug. Well fixed. I just rewrote the whole behaviour to be sure. Before, I used the wall colliders (that i also automated) to find the exits. The problem was edge cases. I had to iterate on the colliders and try to find “gaps” but it had a lot of problem with complex walls. So I decided to try another approach. Now I use the vertices of the wall layer. I already use the vertices to generate the colliders. It was pretty easy to find the horizontal exits. I just have to iterate on the vertices on the first line and check to see if the previous vertex had a x coordinate inferior to 6 (size of the exit). But for the vertical exits it was much harder. The vertex are in a linear array. They are ordered from left to right, line by line (one line = one tile height). So to check vertically I just have to iterate with a step of the width of the lines right? Well the lines don’t have a fixed width. It depends on the number of wall tiles on the line. So I had to iterate over all the vertices (which I already do for the colliders so I just plugged here). Then when there’s a line break (vertex x is smaller than previous), I check to see if the y coordinate has a gap. I also need to save a previous line y for each border (left and right), and make sure the y is the lowest of the triangle. Then once I identified all the gaps, I had to transform that in exit coordinates. All exit have the coordinates of the where they end up (relative to the room coordinate). So for a 1*1 room, the top exit is (0;1).
0 comments