Sunday, February 3, 2013

Game Dev II and starting a Tech Demo

Its been a while since I lasted posted, but I have now gone into the full swing of things here in the Spring Semester. This semester, all of my classes are CS (except Game Dev II, but I program in it). Since the beginning of January to now, I just got put into a team of 8 to create an alternative game. We talk it over, and we decided to make a Dating Sim to help people with the social constructs of asking people out. This game will avoid all the cliches of Dating Sims you may have played online. For the first part, the game will not end in sex or anything related to sex. You have the internet for that.

Like last semester, I am the only programmer on my team. There is one other person who does know how to program and will help out where he can, but I have to do the heavy lifting. Normally I would be nervous, but a Dating Sim isn't too hard to program. Plus if I do get overwhelmed, then I do have someone to help me out too. There are somethings that I do want to do in order to make this game more than just your standard Dating Sim. Everyone on my team is researching topics on dating and that includes personality types. What I would like to do is establish a probability tree to the likelihood of a person of a certain personality reacting to questions of another personality. This in itself is complex and 3 months is hardly enough time to get the data to even start on a probability tree. However, I would like to get the ground work started, even if the numbers are a bit crooked, it would be interesting to have probability to your advances even if you are asking the same question that would work on another person. This add a bit of realism to the game and gives me something to do. With this, there isn't a certain path that you can take to get the girl, sometimes a certain girl just isn't that into you and I want this game to show it. What will probably really happen is a really simplistic version of my model. The challenge would be fun though.

With that in mind, I couldn't start the whole Bayesian probability just yet. I had to work on getting the basics of Dating Sim to work. This includes going from place to place (different locations), being able to initiate conversation and have the person ask you a question and having x choices to make on what to say back. These are all button actions and aren't that hard. However I am using Unity which is a lot nicer than Gamemaker. For one Unity is in C# which is one of my favorite languages to use. With that in mind, I am using the free version which is limited with what you can do (a license costs about $1,200). What I needed to do was to make a nice button class that was generic. Unity does have a good button tool that allows great customisation  so I decided to create a wrapper class that would add on to the button to modify it how I needed it to modify based on what it is suppose to do. Then comes the problem with passing in variables. Unity classes are really more scripts in that it adds on to a pre-existing class when you create an object or prefab. So if you need to pass in a value you just create the variable as a global variable and in the editor, you can type in what value you want and experiment with it (even when the game is running which is nice). The problem lies when you want to pass in a variable or another object. The public variables recognize primitives and certain objects (such as GUI, GameObject, etc), but if you created a Linked_List, then it won't recognize that and won't let you pass anything in. Then if you do want to pass something in that is recognized, like an int, then you have to pass in an actual value. For example, I wanted to pass in an x based on the width on the screen which is (Screen.Width), but the editor only accepts certain letters and numbers, so I couldn't even pass in the variable. With that in mind I am searching for a way to pass in variables that way so I can position my buttons in a more precise way than "top-left", "bottom-right", etc.

Since I wanted to get something done, I was able to get buttons that would transport you from place to place with limited precision to where you can place the button. I was listening to some Lord of the Rings music (mostly the theme for the Shire and Rohan) and I decided instead the original placeholders (crappy anime backgrounds), I would have a Lord of the Rings theme and place in locations from that mythology. I then decided to place in what people you would try to hook up with. Since Lord of the Rings isn't known for its diversity, I decided to have the player hit on the Mouth of Sauron, Lord Denethor song of Ecthelion, King Theoden son of Thengel, Bilbo Baggins, and Elrond of Rivendell. Also the locations their from are the background. I just went from there adding in background music that the film had for their area. I wanted to add in dialogue and conversation buttons, but I decided to stop there for the night and carry on. I really want to carry on with this, but my team probably won't let me (I can't blame them either). But at least I'm closer to finishing a tech demo that can be used to showcase what game should be about.

Imagine the calm music of the shire playing in the background

Once you get past the madness, he's really a nice guy

He's single ladies.