Monday 23 December 2013

Onto the next

I guess that was a successful semester. The app was finished successfully within the time limit. Passed that annoying course without too much of an issue, and without much studying for the final. Although I do have to question the logic behind making a walkthrough like that worth 1/3 of the exam. Seriously. Arrays of all things. To test us on arrays on a final. Still a little bit surprised that GAM531's exam was a pass. Maybe I should head in and check it out... Curiosity just might get the better of me at this rate. GAM536 also apparently wasn't much of an issue. Which was nice. Now I just need to figure out how the hell I'm supposed to unwrap properly despite following the instructions. It's weird how the program was acting in the latter half of the semester... Got 2 weeks to figure it out.


Was going to keep working on that little bit that needs to get done, but all the ice managed to knock out the power for much of the day. By the time it came back on, I really had no motivation, was already halfway frozen, and pretty damn tired/hungry. Some areas are still without power though. Wonder when it'll come back online, and should probably check if the trees in the backyard still have branches left!

Monday 2 December 2013

FOV

So... I kinda got curious not too long ago in playing with my FOV. I had forgotten how bad FOV can be on a console FPS since it had been quite a while since I had played one. Although it was really only Borderlands (first played in 2009 on the X360). That game had a locked FOV of 70 on consoles. Since it had been quite a while since I had touched it on console, it was jarring playing it while also on splitscreen with a 16:9 ratio (this was on Halloween). It felt like I couldn't see a damn thing. Also didn't help that the splitscreen was vertical of all things. Horizontal would've worked a lot better.

So this is what FOV of 1 looks like:


And this is an FOV of 360 (which is capped at 180):


I normally play with an FOV of 110, which can be seen in all of the BL2 shots I've taken (you'll have to find me first!). I forget which FOV I used in Skyrim, but it was around there. Probably around 100. Now that the new generation has started, let's see if they include an FOV slider. There's really no reason why there shouldn't be one in the first place since a fair number should be playing on 16:9 screens.

As for what this actually means. It seems that whenever anyone talks about FOV, they're referring to the horizontal FOV. This makes sense since we're usually looking left-right, and around the peripheral. I don't remember what the vertical FOV is locked to, but that can be changed around as well, although I don't normally see options for that. Finding the FOV that works with the player is tricky though. How big is the screen? How far away is the player sitting? How much stuff do we need to display? Is it possible to display the stuff without it being distorted? At what point would a player not feel sick looking at the screen? This last point is something I'm pretty sure I've felt before, but long before I started getting comfortable with playing things in FP perspective.

With an FOV of 1, assuming that the player has a square screen, they're seeing 0.5 degrees left and 0.5 degrees right. FOV 360 is 180 left and 180 right, so you technically can see behind you if you move the camera just right. I tried... and kinda felt a little bit disoriented from just that, even though it was capped at 180 (as far as I can tell). Probably would've felt sick if I continued to move.


I don't feel like going into the math right now since it can be a little bit messy. Does involve tangents and the like, because how the angles are viewed.



By the way, I'm supposed to be studying for a test, but this was far more interesting. Priorities!



ETA:

Here's the calculation, also translated to radians because that's what the computer needs:

VerticalFOV = (180 ÷ π) × arctan(tan((π ÷ 180) × HorizontalFOV ÷ 2) ÷ (ScreenWidth ÷ ScreenHeight)) × 2
HorizontalFOV = (180 ÷ π) × arctan(tan((π ÷ 180) × VerticalFOV ÷ 2) × (ScreenWidth ÷ ScreenHeight)) × 2

(I grabbed it from here. Highly suggest going through some of the "Inside the Box" posts because they are quite interesting, even though practically all of them pertain to Borderlands 2. Spoilers may be present, so tread with caution.)

Kinda messy, huh?

Tuesday 8 October 2013

R0.1 finished, I think

Strangely enough, it went much more smoothly than last time, where the work was split up between 3 people. Ah well. Just waiting for the submission instructions. At least I didn't waste a bunch of paper trying to draw out what I was trying to do...

Thursday 19 September 2013

I should probably change the URL

Welp, moving along just fine in the online Python course I'm taking. Just realized that I had failed a test case in the first assignment because if it were perfect, it would've been 42/41 instead of 41/41. Strange, that. I checked the code and compared it against a few simple calc inputs, and nothing seems to be out of the ordinary. Might have been that one weird test case that if you got it, you'll get the mark. If you didn't, you won't be penalized for it. I do wonder what the actual answer was supposed to be though. Testing for a sufficiently large input. Apparently my function spit out a 9 instead of 105? Eh, no use worrying about it since it's not going to be affecting anything in the long run. Got 2 more coding courses that are starting up. One in C# and the other in Scala (whatever that is; sounded interesting though).

Not much to say on OOP. Both GAM courses are proving to be difficult for different reasons. Kinda wishing I had a larger screen since I'm using my own laptop. It's either that, or using glasses with the "right" prescription (the ones that use the actual prescription are sharp as all hell, and it's kinda annoying; hence only wearing them while shooting (not that anyone at Seneca would know that)). Definitely feels like getting a massive crash course on how to use and read templates. Maps are still a little bit out there for the time being, but hopefully I'll get it before too much time has passed. The next lab doesn't look any easier, and there's also a quiz to contend with. Vectors shouldn't be too bad. Feels like review, but I haven't done any practice in quite some time. About 10 years...? Has it really been that long? Certainly doesn't feel like it, although I don't think I can go bother my AlGeo teacher anymore for notes (might have retired to Greece, heh). Shouldn't be too bad, I hope. Miss math... Wanted to major in math...

One interesting thing I ran into while attempting to get Lab 1 done: the fork from Bitbucket compiles, for some reason doesn't like it when I don't have the dGPU running it. If I try to use the iGPU (Intel 3000, default, only up to DX10.1), it spits a fatal exception at me because of not being able to initialize DX11. "Wonderful" was about all I could really say on the matter. Thought something was seriously wrong when I tried to run the tester a little while ago, along with keeping the cloned repo when it was up on GitHub. That one compiles just fine even without setting the .exe to run on the dGPU. Now that that's solved, time to play catch up over the weekend with all my courses (except Python, funny enough) while picking up an item and potentially placing an order with a shop to establish connections.



By the way, I'm getting closer and closer to wanting to murder anyone that touches my laptop screen. I can see where you're pointing, no need for actual physical contact. As much as I like cleaning my tools and, well, tools, I'd like to keep maintenance to a minimum. And speaking of maintenance... Still need to make a new string for my bow for tuning and whatnot. And measurements for a rebuild. Crap. It's only September and I already want to collapse in a puddle of misery. And maybe some hay. Guess I'll murder some paper targets instead.

Probably write too much for blog posts, if my other blog(s) is(are) any indication. Haven't updated the other in a while. Should probably do that because of an outing about 1/2 a month ago.

Sunday 8 September 2013

Because I feel this is relevant here

If you're in a group and need to drop the course, please have the courtesy to alert the other group members ahead of time. Else you might be walking around with an effective target on your head.


By the way. I can shoot somewhat effectively.

Tuesday 23 July 2013

Not a code exercise for this week

"No code exercise this week... INSTEAD: Blog about how you feel about the world of programming, where you want to go with your career, what professional options you are considering, etc!"

So. The above sentence is the "assignment" for the week. Fun.

How I feel about the world of programming? Not really sure what I feel on the matter, really. It's certainly more fun and interesting than trying to figure out Fourier transforms and weird crystal structures. Still enjoy certain sciences a little bit more though, since I do have a bunch of bio-related blogs on my feed. Fun reads, including a time-lapse vid of a zebra fish embryo bursting. Anyways. Much like the sciences, it's always changing. Unlike the sciences, it's probably changing a lot faster than any of the big 3 fields.

Career path is still rather mixed. Would love to go into game programming since that's something that's always been on the radar, as bad as I am with the actual coding. But I already have a background in nutrition and biochemistry, so I could always end up going back to those sciences and possibly build models that way. Because data always needs to be modelled somehow. There's also the fact that I hate stats, so anything that doesn't involve p-/z-/t-values and the like, the better. Not sure how practical either career paths are, but we'll see. But really, it's because I have practically no artistic skill (doodles don't count, I excelled at musical theory/can barely play any high level music to save my life), so technical skill is the one thing to build. Not that they're mutually exclusive.

As for professional options... Mainly looking towards anything game-oriented. Games were, and still are, the driving force behind wanting to learn how to program. I don't care about net programming (which I suppose is ironic since I enjoy editing wikis), don't really care about OSes, or a lot of other things. Just that one little obsession that began almost 20 years ago, much to my mother's annoyance (she was of the opinion that little girls shouldn't touch games; she's loosened up since then). Might also take some logic related courses as those are always interesting. I wonder if "Alice in Wonderland" is going to be incorporated into the courses? I remember having to deal with that when I took a first-year logic course for the hell of it during my last year of university and then having to live through that little nightmare. Already had to deal with it during high school for English. But the book is an interesting study in how words work.

I've always loved figuring out how games worked. While I do obsess over characters, settings and stories, it's always the mechanics that draw me back. There haven't been that many games that I've obsessively played. They could probably be counted on 1 hand, really. I also like my games difficult, but fair. Demon's Souls is probably one of the better examples this generation, save for one of the areas. If you died, it was your fault (says the one that has vaulted off ledges at least 100 times).

Anyways, going back to that recipe wiki. Way too many pages need to be cleaned up. Then there's the issue of having to finish up a long to-do list for another wiki I'm admin at. Recently regained motivation to play through the game again, and hopefully will complete that challenge along with whatever else I "need" to get done. Seriously, no one really needs to know how long that to-do list, and it's only going to get longer if other players keep coming up with things to test.

I'll probably continue adding little bits and pieces along the way... If I don't get distracted by other things first.

Sunday 12 May 2013

Hello World

Boo.

int main() {
std::cout << "Hello world!" << endl;
return 0;
}