10 Ways to Improve Your Game Cameras

Game cameras can be some of the most tricky coding you do. That’s why when John Nesky’s 50 Common Game Camera Mistakes from GDC 2014 went live on youtube (The talk is embedded below), I immediately watched it! We can all benefit from these lessons from Nesky for refining our cameras!

When I first started watching Nesky’s talk I didn’t think he actually had 50 mistakes nor that he could actually get to all of them in an hour talk! But not only did he do both, I also realized that he was also right about these only being some of the issues we face. Which means we should keep the conversation going!

So here are my 10 Ways to Improve Your Game Cameras as takeaways from Nesky’s talk:

  1. Use a bigger FOV for heaven’s sake! 🙂
  2. If you can use a simple camera, do it!
  3. Player’s intent should supersede camera scripts
  4. Use the camera to give the player subtle hints, but don’t be overbearing.
  5. Don’t use quick camera transitions in place of cuts. Either cut, slow down the transition, or find an in-between.
  6. If rotating, camera shouldn’t rotate in place (on its own axes). Should rotate around avatar.
  7. WATCH FOR SIMULATION SICKNESS (SS). It’s a disconnect between movement you see and movement you feel. Any movement seen and not felt can cause SS. Have options to turn off extra movement if you want to leave it in the game.
  8. Avoid jerky camera movements and constant camera angle changes, especially during combat! It not only leads to SS, but can also be disorienting to players as controlling movement changes with camera angles. It also doesn’t look as pretty, ahem, as aesthetically pleasing.
  9. Allow players to invert controls. It’s a significant portion of players that want to invert (like me!). You’ll lose players otherwise.
  10. Implement, test, iterate, test, test, test! Repeat.
  11. Re-Watch John Nesky’s talk as needed. 😉

I just love GDC talks. There’s always so many of them at the event that you literally cannot attend all of them. So thanks to GDC for posting this treasure to the public. Thanks to John Nesky for being willing to share his own mistakes so the rest of us don’t have to suffer… as much! And for the rest of us I wish a big: Good luck!

Advertisements

Game Projects I: Week 11 — Game Developer Conference (GDC)

GDC was amazing. This was my first time going and I’m so glad I went! I would have loved to be there for more of it, but family business took me away for two days in the middle of it. However I got to listen to some amazing talks. The Friday before GDC I actually pulled out my Mathematics for 3D game programming and Computer Graphics by Eric Lengyel and read throught chapter 2. I’d been avoiding linear algebra stuff since most of it didn’t fall into my area of math expertise and I remember some parts of the class being very overwhelming even though I did get an “A.” However, when I got to the part in chapter 2 about Vector Spaces I knew I wasn’t in the same place I was as a freshman in college. Vector Spaces are just special groups. It was group theory! I’d taken Modern Algebra my senior year (study of groups) and I’d never had a reason to look up my linear algebra theory until then. It made so much more sense. It’s funny what sometimes how new knowledge makes once difficult things simple. After taking modern algebra and lots of time for my to think on the idea, Vector Spaces got a new slot in my brain.

Well Monday morning of GDC I was looking forward to a day of math tutorials. I knew my friend Skip would be there. While I was riding the escalator up to the room I took a look at the day’s speakers. First up, Eric Lengyel on grassman algebra. No way! I was just reading his book! It was so cool to get to hear a talk by someone who’s book I was readig. Eric’s talk was by far my favorite and I can’t wait to implement the grassman algebra he showed us into my game engine.

There was one other talk during GDC that I loved. It was the post-mortem on the Human AI for The Last of Us. It made me feel so much better about all the crazy meshes and ray casts I was doing and thinking about doing for the projections (previously known as ghosts) in Ragwheel. It made me feel like it was doable as well and that I was on the right track, so to speak, to making the projections a reality.

I had a hard time at the career fair my first day there. I ended up just going to a couple talks instead. Then I went to my school’s booth. I’m so glad I volunteered to work there! It helped me break out of my shell and start talking to people. It was fun being on the other side of it and I understood both sides. It got me really excited to go to the career fair the next day and talk to some people!

The career fair was awesome in that I wasn’t looking for a job from there, just feedback on my resume. After breaking myself to talking to people again the day before, I was able to get some excellent advice on my resume.

Advice for people going to GDC: take some printed copies of your resume and ask people to give you feedback. The very least you’ll get some good advice on what to make better, the most they may LOVE your resume and you could get an interview! I didn’t stop by anywhere that I was sold on working for, and most places weren’t looking for interns or weren’t taking resumes, but I got what I wanted. It gave me what I needed to improve myself as well as a game engineer. It gave me more focus and I got to learn about some companies and whether or not I actually wanted to be there.

Also, if you have the opportunity and you’re a bit shy, like myself, and just need a kick start to talk to people, then volunteer at a booth. It will really help you see the otherside and help give you the confidence to go talk to other people. Getting a wingman to go with you is always helpful to. I chose to go by myself so that I wouldn’t chat with my friends and possibly miss opportunities. This also allowed me to meet some cool people in line while we waited. However the wingman thing isn’t a bad way to go either. It’s best if you go with someone in a different area of expertise. For instance a game designer and an artist. A producer and an engineer. Or if you’re two engineers than make sure to distinguish yourselves. That way you’re not competition to each other. Even if you’re both game engine, which areas do you focus on. Or perhaps you’re both graphics but one does more gameplay and the other more engine, etc. Just always present yourselves as doing two different things, even if you overlap in what you like. You’ll hear about more job opportunities and have more to talk about with the recruiters.

 

Game Projects I: Week 10 — Spring Break

Spring break was amazing! I got to go to my brother’s work and meet his team and bosses. We set up a meeting with his bosses and I got to interview Christina. She was really nice and open. She, like myself, had a degree in something other than computer science for her undergrad and then switched to computer science for her masters. She was doing really well in the company and had excellent experiences. She asked me what I wanted to do and I told her I was open to new experiences. Then she gave me some excellent advice: make a list of all the things you want in a company that you want to work for. For herself, her company met everything she wanted.

She also told me, in talking about being a woman in engineering, that she’d never experienced discrimination. Being in the workforce in California where they’re more forward-thinking and woman are urged to seek more professional jobs, if anything she’d experienced anti-discrimination where she was actually helped out a bit more because she was a woman.

On that same note she told me to always think of myself as an asset.

“You’re an asset to the company. You are. You’re worth every dollar they spend on you. Be confident.”

Getting Started Using Git: A Very Brief Overview of Installation and Set Up for Reference

This is a very brief overview of installation and set up of git for reference. This isn’t for teaching you git. I’ve found that as I’ve taught people git these are the things I constantly had to look up or have them look up just for getting started. So I thought I’d make a brief overview of the steps to make everyone’s lives easier.

For information about git resources, including a book that can teach you all you want to know about git, I have a post about that here.

Important note: some of these steps are specific to the gitlab git server repository. If you are using a different repository check their documentation.

Git Installation Overview:

Basically all you need to do, for Windows, is download git from git-scm.com. Install git bash (which will be your command line interface), and git gui.

Git Set Up:

Set your user name and email. These “tag” your commits. In git bash:

git config --global user.name "John Doe"
git config --global user.email johndoe@example.com

At this point you can start using git locally. If you don’t have a git repository there is nothing further you need to do for set up. The rest of the article is for connecting to (in this case a gitlab repository) git repository to push (like SVN commit) and pull (like SVN update), and lots more for easy collaboration among your fellows.

Connecting to a Remote Repository

Create your SSH Keys (You can add multiple):

(Should match your email from above)

ssh-keygen -t rsa -C "your_email@example.com"
  • The default place to save is correct (unless you’ve changed your settings) so just hit enter.
  • If you want a passphrase enter it followed by an enter twice. Otherwise hit enter twice.

The ssh key will now be saved in your user folder under “.ssh”. By default in Windows this will be in your user’s directory. Open the idrsa.pub file and copy the whole thing.

Save the key in your repository.

In Gitlab go to:
My profile -> Add public key
paste the entire key in the “key” box. Title will auto fill.
Select “Add key”

You should now have ssh access to the git repository and will be able to push, pull, clone, etc.

Make/Update your server repository

If you have a blank project: Clone/create a new repository:

Navigate/create the directory where you want the cloned project to go. (For SVNers, this is like checking out a project.)

In general, to clone from a repository via ssh the command is:

git clone git@:/.git

For example project it’s this:

git clone git@git.eaemgs.utah.edu:john.doe/BestProjectEvah.git

Once that is done, you need to create a local repository and then tell local git where your origin is. Git won’t make an empty repository unless you tell it to. So make a dummy file and add it to the repository and push to origin and tell git to track the upline:

cd project_folder
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

If you have an existing project (but not a git repo)

cd existing_project_folder
git init
git remote add origin git@git.eaemgs.utah.edu:john.doe/BestProjectEvah.git
git add .
git commit -m "Initial commit"
git push -u origin master

If you have an existing Git repository

cd existing_repo
git remote add origin git@git.eaemgs.utah.edu:john.doe/BestProjectEvah.git
git push -u origin --all
git push -u origin --tags

The “-u” in the “git push” tells git to track the branch on the remote branch. In future pushes then you don’t have to tell git which branch on the origin to push to. Just do a “git push origin $branch_name”.

Update your remote url

Sometimes your remote url will change. (curse the techs right?! 😉 )

To check your remote url run

$ git remote -v

This will list any short name remotes along with their urls.

To update run:

$git remote set-url  

If you need more details the

$ git remote set-url --help

is in fact very helpful.

Good luck! 🙂

Let me know if you find anything that is incorrect or other important startup commands to get going. I’m happy to refine. 🙂

Game Proto-Publishable 4, Week 5 — Submitting for Certification

We did a LOT of work on this game and it was fun to see it all come together with all the work and additions that we did after the post-mortem. Gagan, Robert, Brad, and I put in a TON of hours to get it done over the weekend.

StartBG_sample

The buttons have been updated from this screenshot. They’re very snazzy now. They’re rounded and gray, and on hover they are a very cool orange.

I added in the “real” UI complete with feedback buttons (complete with a form that sends us an email!), replay, next map, and a “How to Play” screen. Robert did all the art, though occasionally Gagan helped me pull out assets from Robert’s art.

HowToPlay

We built all the levels, got the colors down for the overhead map, I got someone to play test the first level so we could decide on the amount of time, got rid of actor mesh, IO (by removing it since our game isn’t currently dependent on it), and many, many more errors.

Gagan, Brad and I stayed in the game lab til 4AM Saturday night to get it done and submitted. Around 1:30am they started saying let’s just come back, but I knew I wasn’t coming back (especially cause we would have just spent more and more time on it), so we stayed. It was fun and painful all at the same time!

At one point I just needed the master and Gagan and Brad needed a break. So while I was busy working, they made paper planes and had a competition. 🙂

But we got it all built and submitted. Yeah!

FirstImage_1024

On Monday I had several people asking me how to build and submit to Windows8 so I sent my notes to self on the process the whole cohort. I told them to tell me if there was anything wrong, since they were just my notes to me, and I know people used them because two of the producers added notes to mine. I’m glad I could turn it around and help out my cohorts.

Hailin also asked me in the lab to help her out with building. Her team depends on IO (they read in the narrative to output to screen), so we did some research together on that. From what we found it is going to be a lot of work on her part to get it to standard with Windows 8. Windows 8 is a bit of a pain to work with. It is very particular and the notes on how to post to the store and the requirements, especially with libraries, and with Unity, etc. are all over the place, and sometimes extremely hard to find, if you can find them at all.

And so, I have attached my notes on how to build from Unity to Visual Studio 2013, to the Win8 store. I don’t know everything you have to do for certification, but I do know how to get it built at least.

If you use the notes and find anything wrong, some important details that have been left out, or a better way, please let me know in the comments below!

Deploying a Game from Unity to Windows 8 Store Notes

Submitted!

Brad called me late Tuesday (yesterday as I write this) to ask me my opinion on what to put for description and notes to testers for the certification submission. We got Casey involved in editing and it turned out very nice, and Brad submitted!

Thank goodness Brad figured all that stuff out! And Casey has been busy on making a website and media pages for our game. So grateful for my producers!

Oh no!

Brad called me early Wednesday morning (or today as I write this) to let me know we’d failed certification but it didn’t look like a lot of errors. The big one was it wasn’t working with touch as we anticipated. This was a hard thing to test because my team only got the tablet for a few minutes at a time and most of the time I “had” it I was sharing it with other teams who were trying to figure out the deployment to tablet. Once that got figured out I didn’t see the tablet again! I did have my laptop which rotates into a tablet, but it isn’t a true tablet because it’s still behaves like the real PC it is, so the touch on my computer doesn’t work like it does on a tablet, which is why it didn’t work for the Win8 Store testers like we’d hoped.

However, Microsoft donated three tablets to our lab. They only came in yesterday, but it is going to be a big help to at least my team. Hopefully they have accelerometers!

There is more to this story that has yet to have happened. We’re going to do whatever we need to do to get this published, but first Gagan and I have to finish our monster final C++ assignment that’s due Friday. We have to write a memory manager! Despite it being Wednesday, I don’t know how much I’ll be able to get done. It took Joe, our professor, eight hours to program his. We don’t have to have ours working (accept for alloc and free), but the more we have done the better our grade, and he’ll also be looking over our other code which I know I want to beef up a bit. Lots to do! I’ll probably spend the rest of today and all of Thursday and Friday up to the due time (midnight Friday) working on it. I know Gagan will be doing the same.

Stay tuned…

Game Proto-Publishable 4, Week 4 — Build and Present

Side-loading on the tablet

The biggest issue this week was figuring out the build for the tablet, and then the store…

In this I have to give another shout out to my fellow class mates. Nathan originally had figured out how to do a win8 build, but he hadn’t actually side-loaded it, like we’d all assumed at the beginning because that’s what his producer told us. But it got me started with the tools I needed: Unity, Visual Studio 2013, and the inital build setting option. Sidd B. and Vinod really helped me get the build from Unity to Visual Studio 2013 without any errors. Sean, Abhishek, and I tried for quite some time to get the Visual Studio Remote Machine debug to work,and I believe a couple others tried as well, but it just didn’t want to budge. However Tony was able to figure out how to just side load it onto the tablet and then showed Sean who then showed me. PHEW!! It took us til Wednesday 11pm to get it all figured out.

Just in time

My team stayed even later that Wednesday as Gagan continued to work out bugs in the movement and I finally got us a semi-working menu screen just in time to take a video and get it off to Casey for the presentation.

Oh, and I can’t remember if I mentioned it last week, but Robert figured out why the 3D text was blurry, (the default image size is SUPER small so it’s always blurry unless you make the default image size bigger), and fixed it. Took him five seconds. He’s a genius.

Both 2

The presentation

Casey did another great job on the presentation and the game was well received. Most of the feedback we received was already incorporated, or was going to be incorporated into the game, so we didn’t worry too much about that.

All the teams received feedback that they wanted to incorporate into their games so Brad, our amazing producer, got us all an extension through Tuesday! Go Brad!

Post-Mortem

It felt a little strange to do a post-mortem when we knew we weren’t actually done with the game. Especially since right after we were done writing up our postmortem time-line with the good and the bad, we flipped the whiteboard around and started writing out a final to do list!

 

Post_Mortem

Post_postmortem_ToDo

I love this team.

The bad

I’m going to change things up this time because honestly, there isn’t that much bad to talk about. Lots of bugs, some issues with different version controls, would have been good to have just a little bit more artist to engineer conversations especially since our artist was involved in some of the programming just so that we didn’t have to spend time fixing code later, it would have been nice to have more involvement from Casey, and then BUGS.

Casey gave Gagan and myself a small critique each: Gagan says, “It’s easy!” too often, and as for me Casey said that he didn’t mind my involvement with editing and writing and presenting, but warned me that some producers might. Something I’d already noted in my last group, but it was a good reminder.

This really opened up the conversation for me to be able to talk to Casey about his lack of involvement this go around. From what he told me it really sounded like he was experimenting with his identity on the team as on previous teams he’d experienced that his team members didn’t want his involvement. However three of us at least chose to be on this team because of him and because he wasn’t here we felt let down. He was sick for part of it, but he also didn’t communicate that to us.Casey also mentioned that a big reason he, and Brad just a tad too, weren’t quite as involved was because they felt I was handling it just fine. Which I was keeping engineer/artist stuff organized and solving problems, but then I didn’t have anyone solving my problems! Either. But that was a big compliment to me, and I’ll take it. I wish he would have asked us what we needed/wanted from him instead of assuming, but then one of us probably should have asked him to be more involved. Of course that didn’t occur to any of us until we had our post-mortem discussion. Whenever he was here he was awesome, which is why we needed him there more often. However, I think he really listened to what I had to say, and what Brad and Gagan said as well, and I think he’ll be more involved moving forward.

The good

So much to say! Strong concept, excellent collaboration. Brad really stepped up and became the lead producer. He did an excellent job and was nearly always here with us as late as we were! Excellent engineer collaboration. Casey pointed out that he was concerned that Gagan and I were going to have issues, but then was pleasantly surprised that we got along so well.

Learning git and then switching to SVN when it was better for the team. Being flexible. Artist/engineer collaboration. Our artist doing the overhead map, enemyy movement, and animation. Getting the 1st, 2nd, and 3rd playables! Great pitch and final presentation. Working game. Sound (Brad). Mock-up levels from Brad. Figuring out build. Getting everything merged.

Being awesome.

What I learned

ASK FOR WHAT YOU NEED! Collaboration among teams is essential! There’s no way we would have figured out the build for the windows 8 tablet and store if we hadn’t collaborated outside the team.

I discovered for myself that I could figure that stuff out, even if it was just googling, asking others, and lots of trial and error.

My team is awesome. We’re going to continue building and creating this game and I think it’s going to go directions we still haven’t considered. It’s going to do awesome!

Apparently, I love the word AWESOME!

After a certain bad experience, and still feeling upset, I wasn’t so sure about producers and I was okay with Casey not being as involved. But then, one day, Roger stole our producers away. Kyle stood up about 5 minutes later in a panic, “Where are my producers? I need my producers!” I wondered what he was thinking, as I was still feeling slightly embittered. But then, 20 minutes later, I needed my producers! Where were they! And then I proceeded to be angry with Roger. 😉

When Casey and I were having our post-mortem discussion and I shared with him that story, it finally came to me what it was and I told him:

“It’s not so much about the role [producer, engineer, artist, whatever]. It’s about the people. And I, and our team, needed you here.

I really hope that everyone in our class gives everyone else some slack. We were all experimenting with our roles and learning. That’s what this whole experience is about. And for those producers that felt their team didn’t want them as producers, then don’t act the producer! Act the person that is creating a game with them! That’s what they want anyway: someone who’ll help them make an amazing game! It’s not about the role, it’s about the people.

Game Prototype 3, Week 3 — 2nd Playable

This has been a very interesting group to work with. The mix of personalities and leadership styles, especially as we are all leaders, has been a bad mix, mostly because the disagreements have really gotten in the way of us being able to get our work done. As I mentioned last week, engineers and artists, and especially engineers, need time to do our work.

However, it has all worked out in the end. There has been some good collaboration, and some excellent ideas from every person. The game definitely would not be as good as it is without this unique set of people, and I have certainly learned a lot so far!

Also, my fellow engineer, Sty, has been great to work with. Not only was he willing to stay as long as we needed to, but he always treated me as an equal. I could also rely on him getting his work done and him, me.

 

I LOVE MY FELLOW STUDENTS!!

With all the disagreements, we were really worried about getting our game done in time. The 2nd playable was due Thursday! The work flow was as slow for Sty and myself as last week’s, but never fear, our fellow students from different groups willingly helped out. It was still rough because every game has its own unique mechanic that no one else knows how to resolve, but it certainly helped when someone could just throw you a function you needed, even if they weren’t sure how you were going to use it.

Sty and I also had to merge our code this week which was not an easy task with Unity. It’s not real programming (not this initial part at least) and I’m not really liking it, but I do see all the advantages. It was definitely easier than programming our game in 2.5D on our own, but still a pain. We had major issues with getting our code to merge and work correctly. Win for me! I was able to get it to work and collaborate with Sty to add a few lastminute details right before Roger, our EP, came over to review the game. PHEW!!

2nd Playable Review

Roger gave us some excellent ideas. My favorites were: 1) Since we didn’t have time to engineer only being able to build X number of towers with Y amount of Zzz’s (our money system), he told us to tell play testers they could only build X towers. This was an EXCELLENT idea and really helped us in our play testing. 2) Since the player has no time to study the map before waves of trick or treaters come, we could use that fact to really sale the game: frenetic pacing! This is actually what made me love our game: that you have literally one second to decide what goes where. It’s super fun!

Week 10 Lecture

Roger gave an excellent lecture this week and I took crazy notes! Here is a sum up of what he told us and some of my thoughts mixed in.

Roger started out by saying that some of us have either started to, or are about to, question: what am I doing here? or feeling like, I don’t believe this crap. He told us, “That’s great! Embrace it. It’s wonderful. That’s how you should be feeling.” Why? Because we’re in ten weeks, we’re tired, stressed, and learning a ton. It’s also the beginning of the journey and a natural time to start questioning. Part of us are also feeling like, “This is the best thing ever!” and “I’m finally where I belong.” Clearly the two thoughts are dissonant and he told us to become comfortable with feeling dissonance. We can feel, I hate this class, and at the same time feel, I’ve discovered my future! It will all work out.

Since artists and engineers have hard skills, and producers are more about having to sell their soft skills/processes, he told us what producers should be doing. The main roles of producers are:

 

  1. Communication: make sure everyone is on the same page, dealing with the proper problems, and communicating the game to outside people. They are not the manager, but the communication officer.
  2. Filling in: help out with engineering or art as needed.
  3. Triage: make sure everyone is working on what is important and that the program gets out the door, is fun, and is understandable.

Producers’ primary goals are:

  1. Game is good
  2. The team health is good: He told the producers (and the rest of us) that just as you’d give yourself slack, give your team slack too.

At the beginning of the semester everyone gave everyone else the benefit of the doubt. Now we’ve all been evaluating what everyone else is doing. This is the perfect time to give everyone the benefit of the doubt again. People have been playing with their professional identities as we were encouraged to do. We’ve all been learning throughout this process, and have sometimes chosen identities that don’t work well with other people’s.

Time to take a step back, take a big breath, and move forward with an open mind.

Game Prototype 2, Week 3 — It’s Over! :) / :(

What a great project and a great team I got to work with. I can’t believe it’s over already!

We put in a ton of work that last two days. I couldn’t sleep on Tuesday so I went into the lab at about 5am, and I came up with a plan so we could finish on time. Our producer Travis showed up around 8am, so in the loudest voice I could muster I told him my plan for getting it done, which was: we needed to stop focusing on bugs and focus on adding features. It’s a prototype after all. The bugs don’t matter, the game features do. Travis said that James really wanted to fix the jumping bug so how about a one hour compromise. Sounded good to me. When James showed up around 8:45 I told him my plan, without the one hour, and he really wanted to work on the jumping bug still. Travis had some serious foresight on that one. I told James he had one hour.

At our standup at 9am Travis had me lead it so I went counter clockwise starting with Trav and ending with me. It was really funny when it got to James because he told everyone I’d given him an ultimatum: he had one hour to fix the jumping bug and then he had to move on. It was only slightly embarrassing, but I wasn’t wrong. We did need to move on. In fact, moving on is what made it so we got our game done on Thursday! James was really sick, and I was still recooperating, and Swapnil really stepped up and got some things done that wouldn’t have happened otherwise.

I love how our game turned out. It is SUPER FUN to throw “Luigi.” Try it out!

“Donkey Kong 2.0”

Thursday was presentation day and we did something different: we showed our professors the game at our desk and then when we were done we showed it informally to our peers. When we showed the game on Thursday we got a mostly positive review from our professors. One thing they didn’t like about the game was one thing I didn’t either: Pauline was supposed to be the hero and she was in a mini skirt. I asked for pants, twice, but didn’t want to push our artist who had his heart set on basing Pauline of the original artwork. However the thing our professor pointed out is that the art was in dissonance with the story: it was still chauvinistic. Other than that, I felt really good about what we did. One of our professors, a producer, said he would have liked to have seen us add more new mechanics to the game, but of all the games this time around, ours was the most difficult to engineer. It was a feat just to get down what we did! During our informal presentation one of our fellow engineers asked us how we were able to write the collision in flash because he had tried to write this game in flash and couldn’t get the collision to work. I think that comment really put in perspective for the rest of the teams how brilliant o.

And I love where it could have gone too!

level2_mock_up

Post-Mortem

Game2-PostMortem-Small

Obstacles We Overcame

Not knowing as3 was easily overcome by having James help us code, which he was happy to do. Having James help out became such a big asset to the game that I am glad we had that block to begin with.

Getting that first playable done in time was a bit of a stretch. We basically had one class period to come up with the code and we at least were able to get something done on our due date!

The next big obstacle was the code scrap and two of us getting sick. But this was such a great team that there really wasn’t any slack, we all just worked hard to get it done. Another obstacle that came out was the difficulties of handling gravity and collision in flash, but that one was overcome by hard work and also by recognizing that this was a prototype and what really mattered was the fun stuff we came up with, not the bugs we didn’t fix.

The Awesome Stuff

I LOVED that I got to use git as our version control this time around too. It really helped with all the merging we had to do. I can’t imagine having to resolve all those conflicts and deal with all the branching we had going on if we’d used SVN.

The team was great and despite illnesses and code setbacks, morale was high throughout. It was a great team to be a part of.

Our game concept was strong and our EPs liked it.

After certain illnesses our output increased dramatically: we realy worked hard.

Adding in Luigi as a character we could throw around and break the barrels with made the game incredibly FUN!

I really think that if we’d had just one more week for coding we really could have added in some having stuff!

What I learned

In a prototype it’s not about resolving bugs, it’s about adding lots of cool features!! It’s not about being perfect, it’s about showcasing something new. Once you have all the cool features added, you test to see what is fun. Then you burn your prototype code and write the game in a real game engine with code that has good programming practices that can be reused. But, that’s not a part of the prototype. Moral: DON’T WASTE YOUR TIME ON BUGS! JUST TRY COOL NEW STUFF!!

I think the most exciting things we found were 1) going backwards was a different, more exciting game, and 2) throwing Luigi is fun!

Where’s the fun?

I am so grateful that I’ve finally found a way to do all the things I love doing — writing, editing, math, engineering, games, art, creating, story telling, blogging, collaborating with amazingly talented and creative people, and just having fun making GAMES!

There’s so much theory and study to game design and play, but I love that the most important end goal in every game is FUN!! The question always comes back to, “What makes our/your/this game fun?” Because games should be an experience, magical, challenging, beautiful, puzzling, and fun, Fun, fUn, FUN! Just like life! (Note to those that follow: a question you will always be asked and must KNOW the answer to is: “What is fun about your game?” If you don’t know, discover it. If it’s not fun, fix it or scrap it. If you know, add the fun everywhere you can without being too much and tell everybody!)

I’ve never been so inspired or felt so passionate. This game development/engineering/design journey is amazing. It’s hard, it’s wonderful, it’s challenging, it’s amazing, it’s keeping me super crazy busy (I think I get to sleep at Christmas time, maybe??), and it’s fun! Just the way it should be.

Where’s the fun? It’s right here.

(here = where I am because I am fun!) 😉

Starting with Git — Resource Links

I’ve been sending out this information quite a bit (all in different emails). I figured this would make a perfect follow up to Learning Version Control, and I might as well just make a blog post with this information and then send people the link instead of searching aimlessly in my email for all this.

Git Interfaces

There are two different ways you can run git on windows (well, more, but these are the two I recommend):

GitExtensions — this is the easiest to pick up:

Git bash (command line) — this is the most powerful. A lot of times things are easier via the command line:

  • git-scm.com
    • IMPORTANT: When you are install this version, after you’ve started the installer, make sure you select the “simple” git version with git bash and git gui (not git cheetah)

You can install both (in which case you may not want to install the git gui from git-scm), so you have a visual and command line interface.

Pro Git, by Scott Chacon

The most important chapters are 1-4, and 9 (if you want to really understand what is going on in the plumbing of git). If you’re using this for personal use, you can get a free copy here: http://git-scm.com/book

Alternatively, you can support the author by buying Pro Git from Amazon.

The MSEAE git repo URL

https://git.eaemgs.utah.edu/users/sign_in