Pages

Showing posts with label General. Show all posts
Showing posts with label General. Show all posts

Tuesday, April 10, 2012

End of Semester

     This is the last blog entry I will post for the spring semester. I mentioned back in February that I had created this blog for a technical writing course that I have been taking at university. The goal was to write 26 blog entries by April 11th, and surprising I have achieved the goal. Over the past four months I have posted articles about my projects and topics that interest me related to graphics and games. There were many times during the semester where I was either busy with other courses or simply had trouble thinking up interesting topics to write about. However, I was eventually able to find a good routine and managed to get all of my blog entries written and posted.

     I had several goals that I established when I started writing this blog. The most fundamental goal was obviously to get a mark in a course. However, I tried to think of this assignment more as a way of improving my writing and experiencing what it would be like to write regular blog entries. I have yet to go back and read some of my first entries to see I have improved but I definitely found myself proofreading each blog entry several times before I posted it, keeping in mind the rules of clear writing that I learned in the course.

     Another goal that I had with this blog was to practice documenting some of my interesting programming projects. At the beginning of the semester I wrote blog entries about my game projects and more recently I have been explaining some of the interesting features I have been adding to my most recent game project during the semester. I find this a good thing to practice because while I have a good understanding of the projects that I have worked on it is important that I can clearly describe these projects to other people. I still feel that I have some trouble in this area but practicing through blogging is definitely helping.

     During the semester I also tried to use this blog as a way of putting some of my thoughts into writing, such as when I tried to write about what I did and didn't like in a particular game or algorithm. I find this was helpful because while I have often thought about this it does not become as solid in my mind until I put it into words. My hope is that if I continue to do this I will find it easier to answer these kinds of questions during future job interviews.

     While this blog project may be over, I still have exams before my semester officially ends. After my exams are over I will have a couple weeks vacation and then I am right back to school for the summer. Since this blog will probably be checked for marking over the next couple weeks I wont post any more blog entries for a while. However I have found this blog very useful and I hope to continue this blog over the summer with the commitment to at least 1 blog entry a week and no more than 1 a day.

     I hope you have enjoyed reading my blog as much as I have enjoyed writing it! Have a good Summer!

I created this beach scene back in 2010 using the 3D modeling program Blender

Monday, April 9, 2012

Long Weekend History Project

     I had originally planned on posting a blog entry about my game engine however I have simply been too busy working on my other homework projects this weekend. Instead I think I will talk a bit about that homework project, which I am writing for a non-computer science course.

     This semester at university I have been taking Artificial Intelligence, Software Engineering, Technical Writing and History of England. The first three courses are computer science courses and the third is a History course I am taking to complete my last humanities credit for graduation.

     I decided that taking a history course would be a fun way to get this last credit. I had taken a previous history course, history of modern Europe, a couple of semesters ago which I also really enjoyed. The history course I am currently taking covers the History of England starting from prehistory all the way up to the year 2000. Covering such a long time period over the course of 13 weeks has meant the course covers only a brief overview, but it has given me exposure to a wide range of topics. I am partly interested in English history because I have hopes of one day traveling to England, and by learning more about the past I will appreciate it more when I finally do travel.

A map I created for the project
     This weekend I have spent most of my time working on my end of term project which is an analysis of history books written for children. I had to select two children's history books and compare them with two contemporary scholarly sources. As well as comparing them I also had to use what I learned from the sources to write my own version for children. For my topic I choose King Alfred the Great, who was King of Wessex from 871-899 during the Viking invasion. Specifically I have been comparing how the children's histories and the scholarly sources write about Alfred's early battles with the Vikings.

     Along with History I have also taken a few other courses unrelated to my Major. In my first year I took an English course, that focused on studying fiction, and took both a micro and macro economics course. I have even taken two introductory Japanese courses.

     I have talked with a few other computer science students who I have listened to complain about how they were forced to take courses unrelated to their Major. However, I have really enjoyed taking these courses and I feel they have expanded my knowledge beyond the scope of my Major. The way I see it, I probably wont have the opportunity to take these kinds of courses again so I should take advantage of it while I am still at university, especially considering I will probably be graduating by the end of the year.

     I should probably get back to working on my history project, since it is still far from finished. I am getting really tired though, especially since I have spent the majority of my long weekend in my room working on homework. However, the end is almost in sight, one more week of intensive studying and then I finally get a break.

Sunday, April 1, 2012

April Fools Day

     Today is one of my favorite holidays, its right up there with international talk like a pirate day. Every year look forward to April Fools Day. I especially enjoy how in recent years the internet has played a large role in the celebrations. Every year you can be sure that the big websites will pull some big prank. Unfortunately, many people forget about April Fools Day and miss out on the fun. So to make sure that you don't miss out I will tell you some of the funniest jokes I saw this year, and remember some of my favorites from the last couple of years.

     The biggest player in April Fools Day on the internet is undoubtedly Google. Every year they advertise new joke products, and usually multiple jokes for each of there popular sites like Gmail and YouTube.

     This year Gmail announced a new feature for those users that have trouble with all of the tiny buttons on a mobile qwerty keyboard, its their new Morse code keyboard with only two buttons.

     YouTube also released an exciting new product that lets you watch videos without the use of the internet, its the YouTube complete DVD collection. I really liked this one and the best part of the YouTube complete collection is how you can sign up an unsuspecting relative for no extra charge.

     Google maps announced that they had ported their map viewing program to one of the most overlooked platforms, the NES. You can now view Google maps in stunning retro 8-bit quality.

     Aside from Google there are some other sites that usually get involved. However, this year it seemed like many of the other jokes weren't as good as they had been in the past.

     XKCD usually as a pretty good joke, this year it was something to do with a different comic based on your web-browser, but I couldn't get it to work that well. Last year their joke was much better, they released all of their comics in 3D. The year before that they converted there entire site into a UNIX console. These features became so popular that they are still available today with a simple URL hack.

     Although April Fools Day is now dominated by the internet, traditional forms of media like newspapers, radio and television often try to have some fun also. One of my favorite TV pranks from a couple years ago was an ad run by the BBC about the discovery of flying penguins. I also liked a joke I saw run in several local newspaper about the city planning to build a bike tunnel under false creek to supplement its recently added bike lanes. Unfortunately I do not use these forms of media as much anymore and as a result don't notice them as much as the internet jokes.

     I have seen many jokes over the years and I have identified certain qualities that I like to see in a good April Fools Joke. The most important quality is that it should look convincing. The Gmail Morse code joke did this especially well this year, the actors in the video sound as though they are talking about a real product and the style of the video is similar to recent tech videos like those announcing real new Google or Apple products.

     I believe the second important quality it that the joke needs to follow a specific progression. When the viewer start seeing the joke they should see nothing that makes them believe it is a joke. This part of the joke establishes the shared context and grounds the joke in the real world. Once this as been done the joke should start to introduce small things that catch the users attention. Then suddenly the main punchline of the joke hits and catches the viewer completely off guard. However, it should not catch them so off guard yet that they immediately know it is a joke. This is the most difficult part, at this point the viewer should be at a perfect balance between believing the lie and being able to commit to the belief that it is false. Once the joke has reach this point the anticipation is gone so any final parts need to be completely ridiculous. A common feature at the end of April Fools Day videos is to satirize the shared context introduced at the beginning, in the case of the Google videos they do this by making the characters, that were established to be typical at the beginning, say something either out of character or fitting with the stereotypical character in an extreme way.

     April fools day is pretty much over now, I hope you didn't miss it and enjoyed the entertaining online humor. Hopefully, next years April Fools Day will be just as great, especially since we will be able to view twice as many at once with this new chrome add-on.

Wednesday, March 21, 2012

Game Developers Club

     Back in January I wrote a blog entry about how I volunteered at clubs week to promote the game developers club. Since then we have held several meetings and had some interesting discussions. Since I have been a member for a while I am also looking for ways to get more involved.

     One of the things that I really enjoy about the game developers club is learning about all kinds of different technology that I might not otherwise have heard about. Usually when I am working independently on my own game projects I am so focused on the way that I am currently doing things that I do not stop to consider new or alternative technologies. By discussing ideas with other people I feel that I can learn more than I can individually.

     For example last week at the game developers club we discussed game engine called Unity. Some of the other members have used Unity to create very interesting games. Unity developers also have the choice of embedding there game in a web browser or deploying it to a mobile device. At one of our upcoming meetings one of the members might give a brief tutorial on how to use Unity because many people seem interested.


     I have really enjoyed being a part of the game developers club and often try to find ways to get more involved. As I already mentioned I volunteered at clubs week but I have also been looking for ways to help organize the meetings and other club activities. Over the past couple semesters some of the prominent founding members of the club graduated and there has been a gap in leadership. Last week one of the former club presidents drop by during the Burnaby meeting and we talked about some of the things we could do to try to improve the club. One of the problems is a lack of focus that we have had at our meetings lately, to fix this I will try to spend some time during the week before the meetings coming up with some more topics for discussion.

     Another thing that needed fixing up was the club website. Many of the pages were out of date, especially the projects page. I started by talking to some of the executives and gathered a list of the projects that they had worked on. I will also need to find out this week if any of the other members have projects they want to post on the website. The project page on the club website is a valuable feature for promotion of the club and its members. The former club president I was talking to was saying game development companies often visit the website and one of the first pages that they want to look at is the projects page.

Saturday, March 17, 2012

Summer in Innovation

     I mentioned I have already mentioned that since the courses offered at my university are very sparse I have been looking for alternatives. Initially I thought I should try to find another co-op job, however I have already done 4 semester of co-op and would really like to concentrate on graduating so that I can get a full time position.

     Then I heard about a program that my university is offering called the Summer in Innovation. The program is targeted at upper division computer science, business and interactive arts and technology (IAT) students. Twenty-four students, eight students from each of those three disciplines, will be chosen and the program will have a focus toward working with and learning cross disciplinary concepts to develop software applications.

     The theme for the summer is all about designing mobile applications. From what I understand the course will involve several mobile applications developed as part of smaller groups and a couple developed as a large group. There will also be several industry experts that will come to discuss innovative ideas in mobile applications to share their thoughts and get feedback from the students.

     This program would count toward my graduation as a 15 credit course which would fulfill the 14 credits that I still need to graduate. I would also fulfill the honours research credit and if I decided to I could take 4 more courses in the fall to graduate with honours. So in terms of program requirements this seems to meet my need perfectly.

     Considering that this is a 15 credit course I assume that it will be very intensive. It will be the only course I will be taking and will probably take at least as much time as working on co-op. I do not believe this will be a problem, since I have done co-op and have worked on intensive group projects like my animation project.

     I am also very interested in working with mobile application and feel that this would be valuable experience to have given their growing popularity. It would also give me more opportunities for possible careers after graduation at are not directly related to games.

     Since I found this program interesting I decided to apply. They liked my application and I was accepted into the program. So this is what I will be doing this summer I am very excited.

Sunday, March 11, 2012

Interview Feedback

     This semester I have been trying to figure out what I will do during the summer. Unfortunately the course offerings for the summer are very sparse and I have already taken most that are offered. Since I would rather wait till the fall to take more courses I have been trying to find alternatives such as another co-op job.

     Two weeks ago I had an interview downtown at a video company. I have not had an interview in a while and I ended up doing rather poorly. A couple days later I received an email from the co-op coordinator saying the company decided not to hire me. Along with the email they had sent some feedback about what I could do to improve. I spent some time reflecting on this feedback last week, since my midterms were finished and I had a bit of free time.

     The things they told me were not overly surprising since I had already identified them as things I had struggled with during the interview. The first was that I needed to improve my C++ programming knowledge. During the interview they asked me to write a simple C++ program on a white board but I had trouble coming up with an answer.

     I have become very proficient in languages like Java and C# by using them for my hobby programming projects. I have only used C++ for smaller school projects and a couple times during co-op. Since I do not practice C++ very often I often struggle with it.

     For practice I decided to try writing a game in C++. I have never written a game in C++ before and wanted to find out what libraries are available for making games. I though there must be some popular libraries since game development companies use C++ almost exclusively. C++ is the language of choice since modern games are always trying to push the limits of the current hardware's performance.

     One popular graphics library I have heard about is called Simple DirectMedia Layer (SDL). SDL is one of the most fundamental graphics libraries and many higher level libraries, for example a python library called pygame, are written as extensions or wrappers of SDL.

     Another library that I have been interested in trying, not related to games, is QT. It is a user interface library that people have been talking about recently and which is used by applications like Google Earth and Autodesk Maya.

     In my next blog entries I will talk about the game that I made in SDL and a bit more about the interview feedback.

Saturday, February 25, 2012

Thoughts on Blogging

     Over the last couple of weeks I have been having some trouble coming up with ideas for blog entries, but I have also spent some time thinking about blogging in general. So today I will talk about the ideas I have contemplated related to blogging. I guess you could say today that I am, blogging about blogging or, meta-blogging.

     In the past I have tried to start a blog but I had trouble getting into the habit of posting regularly. Then I started this blog, at the beginning of this semester, as part of a technical writing course. The instructor requires that I write a 26 blog entries before, April 11th, the end of the semester. The blogging component only makes up a small percentage of the course mark, but the goal is that I practice writing on a regular basis.

     Blogging is an activity that I never used to find interesting. However, since I have gotten in the habit of writing regular posts I have started to enjoy blogging. Based on this experience I could definitely see myself continuing blogging after I have finished this course.

     Starting a blog is simple, but generating ideas and getting people to read the blog are very difficult. In this blog I have talked mostly about some my of the games and graphics projects, but I doubt that I could sustain a blog on those topics alone. Secondly, the audience for this topic is also very small. I have had some success with one of my videos on YouTube which has currently reach close to 7000 hits, however my other videos have not been nearly as successful.

     This then got me to thinking about the kinds of blogs that I am most interested in reading. A common thing that I search for and read are tutorials. In order to write a successful tutorial I would need to write it on a topic that I am very skilled at. The two skills that immediately come to mind are game programming and making computer graphics. I am both very skilled at these and people are constantly asking me to teach them. For example, just this week at the first game developers meeting when were suggesting topics for meetings several of the members were interested in learning more about these two skills. As a result I have volunteered to give a couple tutorials.

     During the rest of the semester I will probably try creating a few video tutorials on YouTube and see how many views that I can generate. If any of these turn out to be particularly successful I will let you know in another blog entry.

Wednesday, February 1, 2012

Last Summer at SIGGRAPH

    Last summer I heard from my computer animation instructor that SIGGRAPH was coming to Vancouver. SIGGRAPH is the largest computer graphics conference in north America and this is the first time that it was being held outside of the US.

    Since I am really interested in computer graphics I thought it would be interesting to go. However, tickets to the conference are very expensive. Luckily, through my connections with the Game Developers Club I was able to get a ticket to the exhibition part of the conference.

    So that morning I took the train downtown to the convention center, not knowing what to expect since I had never been to anything like this before. At the exhibition all of the well known companies that had anything to do with computer graphics were there. There were large booths with people giving demos of their products and computer monitors everywhere playing videos. Its hard to put into words just how exciting it was for me. Basically, everything that I am interested in under one roof.

There were a few technologies that seemed to be a focal point. 3D printing was a big one, and there were several different companies showing off things they had printed in their 3D printers. Motion capture was also big, there were several booths with break dancers and ballet dancers controlling characters on a screen simply by dancing.

The biggest booths were those of the big name 3D modeling programs and pretty much all day they had guys giving demos where they would making some really cool 3D model using their program. They made it look so easy, and I spent hours mezmerized by their skills,  its a shame the software is more then I will ever be able to afford. Speaking of which, Blender also had a booth there, it was more modest though and there was not much to see.

    My favourite thing I got to try at SIGGRAPH though was a virtual reality demo. I got to put on this head set that had screens for each eye, so the image that you were looking at was in stereoscopic 3D. It also had four cameras mounted on poles in a square that you stood inside and when you moved the cameras tracked your movement and you would appear to move in the simulation you were viewing. The scene I got to try looked like the interior of an apartment. It was the most realistic simulation I have ever experienced, because of the 3D effect everything looked so real, and when I moved or turned my head the same thing happened in the simulation, and there was no noticeable delay.

    SIGGRAPH was really interesting and I am glad I was able to go. Part of the reason I am writing this blog entry now is that I recently heard SIGGRAPH will be coming back to Vancouver in 2014.

Friday, January 20, 2012

Clubs Week: Game Developers Club

For the last two days I have been helping promote the Game Developers Club at my university's clubs week. I have been a member of the Game Developers Club for about a year and a half, but this is the first time I have helped at clubs week.

Clubs week happens at the beginning of each semester where all of the clubs setup tables and promote their club. I took a quick walk around, as I do every year, to see what kinds of clubs there are, and as usual most of the clubs are faculty/student association clubs, ethnic/religious clubs or political/protest clubs, not that there is anything wrong with most of these clubs but they are not particularly interesting to me. I am always looking for more of an activity based club, something fun and social to do while at university. There were a couple more this year than I have seen in previous years, like two or three board game clubs, the outdoor club, the photography club, one or two dance clubs, and three or four athletic clubs, but these kinds of clubs are still few and far between. This is one of the reasons I decided to join the Game Developers Club, the other being that I enjoy Game Development as a hobby and like discussing my ideas with other people.

When I got to our table I noticed the other guys did not have very much setup, a medium sized sign, a couple of game related decorations and some hand outs. And after a few minutes it seemed like not very many people were coming by. So I suggested that we put on a youtube video of one of my games I made a couple of years ago. As soon as we put this on I started to notice most of the people walking by looking at the video and some of them starting to walk over to the table to ask about it and the club. I thought this was awesome, and we got lots of people to sign up, hopefully some of them come to the meetings.

What the Game Developers Club does is support those interested in developing games either as a hobby or as a potential career. We have members from all different backgrounds with a range of technical and non-technical skills. Some are programmers but many have very little technical skill and are interested in art or design. We have meetings twice a week, one technical and the other design related. In the technical discussion we usually discuss techniques used for developing games, such as handling collisions and physics or analyzing an interesting technique in a game we recently played. In the design discussions we usually try to design a game, starting with an idea or an experience we want to give the player and expanding on it until we have a complete game idea. Many of the members of the club are also working on hobby game projects and are often looking for people to help them out. We have also had some club projects we have started such as a collectible card game. Lastly, we have a mailing list that we send out announcements about local events, like game development competitions or conferences like SIGGRAPH, or sometimes even about game companies that are hiring.

In conclusion, the game developers club is a something I really enjoy and I also really enjoyed promoting it at clubs day.

Sunday, January 15, 2012

Co-op Work Term: SAP

During my time at university I have had the chance to do a couple of Co-op work terms. Last year, for my second and third work terms, I worked at SAP for eight months. I worked as a software test automation developer. SAP is the worlds largest developer of enterprise software, and one of their more well known products is Crystal Reports.

My job started with me running manual tests of the companies installers on a daily basis. Testing that each product installed correctly on each supported operating system. Gradually I started the process of automating these manual tests. It became more interesting when I became responsible for talking with developers and trying to develop more comprehensive test cases. I was basically working on my own small team project, with one other co-op student, and as a result I was able to experience a complete development cycle. The cycle started with me gathering requirements from the other developers. Next I designed test cases to meet these requirements. Then I implemented the test automation for each test case. Lastly, I was responsible for maintaining the test cases and fixing them when the broke.

I found this to be an interesting experience. The most challenging part was the amount of multi-tasking that was required, and more importantly, discovering that I am not very good at multitasking. Everyday I would have about 50-80 tasks that I had to run, each one ran for about an hour, then I had to check the results and start another task running on that machine, and finally check the result when it finished. At the same time I had a long list of improvements that I was making to the system. So I would constantly be switching from one task to another, and occasionally when I found a bug I had to report it. Then about an hour or two later someone would come by and ask about the bug, and I would have to sit there for a minute and try to remember which task they were talking about. That was a stressful experience.

Despite the difficulty I did enjoy some things about my co-op term. The office was right downtown, which was an interesting experience for me since I do not often go downtown. Also, some of the people I was working with were really fun. Occasionally we would play a game of Pool or Foosball when working was getting particularly stressful. I remember often going out for lunch with one or two of the other co-ops I was working with. There are a lot of great places to go for lunch downtown, that is something I really miss, especially the butter chicken place across the street. But maybe I am getting a bit off topic.

The work I was doing might have been a bit boring, and not really what I had expected, but I think I learned a lot from the experience, like improving some of my non-technical skills. I had a chance to practice my public speaking when I gave tutorials for other testers on how to create automated test cases using the new software. It also gave me a perspective of what it is like to work at a big company, and particularly a company that does something that I do not know a lot about. I also was able to get a glimpse of other peoples jobs to give me some idea of what I can work towards after I finish university.