This week is going to be a write-off as I pack up everything/clean everything in preparation for my return to Australia. That said, I did get a chance to review my two bugs from last week, and solutions are being considered.
1 – Actor getting stuck on some collisions;
This occurs due to the way I’m comparing collisions vs the ground – I’m not properly evaluating if a given point of the actor is actually inside a valid triangle or not. I can probably deal with this given some time.
2 – Quaternions not working on stairs;
The geometry is working, the rendering is not. I found that I’m using cardinal axis instead of quaternions for the rendering – this, also, is manageable when I have some time to deal with it.
I’ve also spent some time looking at the Python scripting language. I’ve been asked to write a 5000 word submission for an e-book explaining how to use Python. I’ve never coded Python before, but it’s for a beginners, so I can get by with explaining common programming concepts that I already know, plus explain the core Python grammar (which, from my quick review while riding to Kobe today, looks basic enough).
Finally, I’ve been given a quite positive feeling interview last week. I asked if there are any areas I should improve on to help future work with that company, and they’ve suggested I cut my teeth on C#. I have a number of C# books already available. That’ll make the flight home all the more interesting, and I’ll hopefully be able to throw some C# demo’s up on this site in the future, too.
Next week I’ll have more time available. The main work must be done this week, as on Friday, the delivery crew come to take all my things away. I still need to secure more boxes to be able to do this, as well as figure out how I’m supposed to take the katana I was gifted back to Australia.
I also read an interesting article by Brianna Code over on their blog about women in gaming. I think having more women in gaming – computer, tabletop, or anything else – is a great thing. Brianna talks about a lack of representation for female players because most game characters are male. This is not a new thing but it was the first time I saw statistics to back it up. I have personally experienced criticism from other gamers for playing games that had a female protagonist (Touhou Project, specifically), being asked “Why are you playing a girl’s game?” The response at the time was, “Because it’s fun”, and I think that probably is still the case.
It didn’t occur to me at the time to challenge that with “Why is it a girl’s game?” or even “What’s wrong with playing a game, even if it’s for girls?” Plenty of women play games with male characters, after all.
However, I was troubled that I was being asked this question, especially by somebody who was my friend. The underlying subtext was that he disapproved of me playing this game because it had many female characters in it. That, somehow, it must not be interesting or fun if there are no male characters involved.
It’s an issue I’ve wanted to tackle when I do get to the point of having stories and characters in my games.
The actor ‘getting stuck’ bug has been resolved.
It was being caused when the actor was interacting with inclines that were tipping in to the actor, but weren’t tall enough to trigger the edge collisions with the top of the actor.
I resolved this by removing the friction = 0 (for very steep inclines) command and all is well.
While testing on the stairs, I also found another bug – when multiple polygons are being detected, the actor will occasionally move at a hyper-accelerated speed to the edge of one polygon.
The naive solution would be to simply resolve the first collision per scene, but this would potentially skip over another, more important collision. A better approach might be to sum up all the incoming collision orders, and work out the ultimate ‘net resolution’ vector.
At the moment, I’m resolving every collision and updating the actor hitbox whenever a collision is resolved (so potentially, more than once per physics step, if the actor is breaching multiple polygons). Summing the net collisions per physics step, then applying the move and recalculating the actor hitbox for the next physics step, may also be a more efficient option.
The house move is not yet complete – we’ve done a small amount of packing, and a large amount of cleaning. The lion’s share of the cleaning work is now down, and we mainly have to clean skirting boards/dust/sweep/mop the inside of the house. This weekend is reasonably busy though with farewell parties.
On an unrelated note, I earlier commented about women and games. My mother’s comment to this post disappointed me, that the staff member couldn’t recommend a good game for a woman to play. I asked my wife what kind of games she liked, and she gave examples such as Lemmings, Roller-coaster Tycoon, and Gazillionaire – one thing all these games have in common is that there is no player character, you are represented by the mouse cursor or joystick and you are ‘you’, so to speak. You take on a job or a position, you do not adopt another persona and ‘become’ somebody else.
I’d like to be able to make games my mother could enjoy playing.
Now that I think about it, some of my fondest childhood memories were when the whole family was playing board games together. I wonder if it’s possible to recreate that experience – probably not with desktop PC’s, but I could see large screened tablets performing the role of proxy game board and dice roller. When augmented reality goggles become more popular, this would also be a good avenue to explore. Traditional games like Monopoly, Trouble, that are playable by a family, could become quite viable, as well as card games. Merge these with modern computer technology and games and there are a lot of interesting options. Even better, you don’t need to dedicate real space to the physical components for either storage or playing.
This week was very light on programming but big on thinking. Next week will probably be similar as I’m packing to move to Australia, but I think there might be a few hours here and there that I’ll get free.