5,206 reputation
11125
bio website vyznev.net
location Helsinki, Finland
age
visits member for 2 years, 11 months
seen 22 hours ago

I'm a PhD student in biomathematics, working on stochastic individual-based models of evolution in spatially structured populations. My other interests include cryptography, programming games and puzzles, photography and graphic design.

I started programming (in AmigaBASIC) when I was 10 years old. Nowadays, I'm most comfortable using Perl, C and JavaScript. I know Java and PHP too, but I can't really say I like them. I also know some Python, but not as much as I'd like.


CC-Zero Please consider any (original) code I post to Stack Overflow and other Stack Exchange sites to be released under CC-Zero unless stated otherwise. You may do whatever you want with it and don't have to credit me in any way, although of course that would be nice.


I'm the main author and maintainer of the Stack Overflow Unofficial Patch (SOUP), a user script for browsers with GreaseMonkey-compatible user script support (Firefox, Chrome, Opera, possibly Safari) that fixes or works around a number of outstanding issues with the Stack Exchange user interface.

I tend to answer a lot more questions than I ask. Some answers I'm rather proud of:


Jul
2
answered Does allocating and freeing a huge chunk of memory at startup “clean up memory”?
Jun
18
answered How can the lategame in a 4X game be made more exciting?
Jun
5
reviewed Approve suggested edit on What software can I use to animate my character in Unity3D?
Jun
5
reviewed Edit suggested edit on How to pause and unpause the Particular action of a sprite?
Jun
5
revised How to pause and unpause the Particular action of a sprite?
Improved formatting
Jun
4
answered Technical differences between square and hexagon for a grid?
May
25
comment Visual effect with dark overlay gradient surrounding the center of the screen
+1. In the second screenshot, it might also just be a non-uniform lighting effect. Hard to tell with a still image and the cartoonish shading, though.
May
21
comment Networking for Real Time Strategy games
@MooingDuck: Good point. In fact, I'd suggest transmitting the current RNG seed at every turn, so that RNG desynchronization is immediately detected. Also, if your UI code needs any randomness, don't pull it from the same RNG instance as used for the game logic.
May
21
answered Networking for Real Time Strategy games
Apr
25
comment Can I prevent diagonal movement from exploring more of the map?
@supercat: True, but that would leave the E, NE, E, NE, ... sequence noticeably less efficient for exploring than straight orthogonal / diagonal movement, which might not be desirable either.
Apr
25
awarded  Nice Answer
Apr
23
answered Can I prevent diagonal movement from exploring more of the map?
Mar
20
answered Midpoint Displacement 1D - How to properly reduce my random number range?
Mar
11
reviewed Approve suggested edit on How do you prevent AABBs from passing through each other?
Mar
11
awarded  Custodian
Feb
22
comment Demo (and real game) Protection
One more trick would be to hardcode the MD5 / SHA hashes of each individual demo level file into the demo version. This has the advantage that, whereas just changing a single hash / signature key is fairly easy with a hex editor, increasing the number of hashes (to increase the number of playable levels) is somewhat trickier, at least if there's lots of other data following them.
Feb
2
awarded  Good Answer
Jan
24
awarded  Revival
Jan
21
awarded  Nice Answer
Jan
7
comment How does A* pathfinding work?
This answer could use a mention of what makes a heuristic admissible, in the sense of guaranteeing that A* will find the shortest path. (Briefly: To be admissible, the heuristic must never overestimate the actual distance to the target. Non-admissible heuristics may sometimes be useful, but they can cause A* to return suboptimal paths.)