What tech should I learn about next?

October 27, 2014 at 9:39 pm (Computer Science, Programming, Thinking) ()

I wouldn’t mind some public opinion on my next project. I’ve been trying to build a list of key technology to master. At my day job, I’m a software engineer, but I typically just do web-related stuff. I work with MVC, ASP.NET, JavaScript, etc. As an example, JavaScript was the first tech I had to pick up from scratch at this job. I’ve spent a considerable amount of time trying to learn it inside and out; I’ve read up on everything from language features to how the specific JavaScript engines work. Essentially, when I learn something, I like to know lots about it.

Getting back to the point, I’d like to pick a few new techs to know everything about. I’m looking for something that’s important to know or that’s a new technology trend. Any ideas what I should pick up?

Permalink Leave a Comment

Markov Chains for Procedurally Generated Textures

October 22, 2014 at 5:48 pm (Computer Science, Game Development, Graphics, Processing, Programming) (, , , , , )

As anybody who’s spent time on this blog knows….well, anyway, I’ve spent a while working on my game on and off. One of the time consuming processes of this was to build textures and level details. All of the art from the screenshots was created by hand using classic MS Paint (not the new-fangled one that comes with Windows 7). One particularly tedious aspect was making bookshelf textures. I had to manual rearrange books and come up with different combinations of books that I thought would be “believable” by the player and not repetitive.

Well, here’s where my new project comes in! Last weekend I spent a few hours writing an algorithm that would generate shelves of books for me. Why is this interesting though? Couldn’t I have just randomized the books and called it a day? Well, the problem with strict randomization is that it looks ugly. It would just be a mish-mash of different coloured books, which is fine for a modern bookstore but as my game takes place in the 1920’s-1940’s, it felt more appropriate to have a bit more organization. Essentially, in older libraries you would be more likely to find books that looked similar because of binding techniques of the days. You’d also find more books that were series of something that would have the same style of cover instead of just a colourful, different cover.

The goal for this project was to generate shelves that had clusters of books. To achieve this, I used a Markov Chain algorithm that would place each book on the shelf one at a time. Depending on the book it would place, it would favour specific types of books for the next book. There is still a randomized aspect to the algorithm, but it is more constrained depending on the state.

Below is a screenshot comparing some of the results of the algorithm to a strictly randomized approach. As you can see, both are somewhat random, but the shelf on the left shows more groupings of similar books.

Procedurally generated texture comparison

Procedurally generated texture comparison



Permalink Leave a Comment

Update on schemes

October 9, 2014 at 4:40 pm (Rant, Thinking) (, , , , , , , , )

I’ve realized that it’s been a while since I’ve posted an update here. I’ve been a little pre-occupied with my schemes and efforts at my day job, and that’s been affecting my home-time effort to do things for the most part. I’ve had to put my game development on hold for a while due to lack of time and lack of motivation when I see my backlog of items, levels, and bugs. A bit hit on my motivation has also been trying to decide on story elements and other basic game design aspects. It’s a little weird that this is my problem since I’ve been trying to design games for probably two decades; my blockage has traditionally been that I don’t have the tech to build what I want to build.

In the spare time I DO have, I’ve been taking online courses as well. One of the courses I’ve spent a lot of clock cycles on is a course (and book) by Dr. Barbara Oakley on learning how to learn. It’s one of the better sources for improving ones’ mind that I’ve seen in a very long time and it is highly applicable. I’ve also read up on some of her research and I’ve found it to be similar in theme to some of the concepts I was dealing with during my undergrad (I wrote my undergrad thesis on a closely related topic).

In addition to that, I’ve also taken up the Dungeon Master role for a group of D&D players including my wife. Putting together adventures and campaigns has been a big drain on time, but has also been somewhat fulfilling. It’s a good exercise in designing levels and storylines for videogames, so I’ve been enjoying the challenges of coming up with the content and having players essentially “break” my plans. It’s also giving me some practice on working with difficult personalities; some players are really into the game and roleplaying, but others just want it to be Skyrim. This mentality kind of defeats the purpose of the whole game and sometimes ruins things for other players.

One of the main things that has been tiring me up and dominating my clock cycles is something I can’t really discuss here in full. I’ve been networking at work and trying to make connections, generate new ideas, and other fun schemes. There’s been some major steps forward and some really good connections, but there has also been some big setbacks as well. Essentially, I am trying to create my own opportunities and improve on the job I have. I’m working towards creating the demand for what I want to do and getting the connections to put myself in that area. It’s a little time consuming and frustrating sometimes, but I’m hoping it pays off in the end.

Permalink Leave a Comment