Porting Mr Gravity Demo Reel Week 1

On Sunday, June 8, 2014 0 comments





Since this video, I've updated the touch input... One Swipe is one move. I think you might want hyper sensitivity in the game, so I may just add a function that turns it on and off. Anyway, enjoy :D

Mr. Gravity Porting Progress Week 1

On Saturday, June 7, 2014 0 comments



First Run of Mr. Gravity on my tablet :D

Screen shot of the very very first successful run of Mr Gravity on my phone
The game was written for TV's, which is why this is not displaying correctly



Issues that I've found so far. 
  • Sound does not play. I've corrected the background music by running the content through MonoGame's Content pipeline and defining it as Music content rather then sound effects. 
  • There is a collision detection issue that is found on any wall that is convex in a level(See Picture)
  • Images are coming out extremely weird. Not all, but as you can see with Mr. Gravity in this picture, he has really thick lines, that make him look really bad. Our neon lettering in our menus are really really awful. Not sure why it would do something like that.. Almost all the level content comes out perfect, except for these handful of content.
  • There is a huge need for code refactoring. There were a lot of good ideas that didn't get polished, and it hurts the codes performance and makes it very difficult to read. A huge example of a refactor need that hurts perfomance is the content loader. We load stuff everywhere!! Half the files we are loading already exist in memory somewhere, and doesn't need to be read in again. My first effort to refactor the content is with music. It's now loaded in a music collection, and loads once, but only if it's needed(so it now doesn't load 10 music files right at startup)
  • Of course, controls are bonkers right now. I wrote a nice little swipe gesture, and am working on motion controls. I refractored the entire control system, allowing for multiple control schemes at one time, but not requiring any number of control schemes. The game will check for what it can use, and make it possible. I also was able to take out the isXPressed, isAPressed, isShoulderPressed, etc, now that they have no meaning. Even if we went back to Xbox, the new structure is much better     


At this point, this is all I can think of. The game is working surprisingly well...Like way better then I ever expected for a game that came from an Xbox 360, written by a handful of college students who didn't know fully what they were doing. We wrote some solid code, considering the fact :D

Mr. Gravity Goes Multiplatform - Getting Started

On Wednesday, June 4, 2014 0 comments

There are a ton of required features needed to get Mr. Gravity running, and especially if you are on Windows 8(like me). 


List of requirements(As far as I can remember):
Alright, if you made it this far, congrats!!! I'm sure that was rough, but don't worry...It's worth it. 

First things first, make sure everything is installed that is listed above and that XNA is set up to work with VS 2012.

Next, open up the Github app and set it up to the Git repo - https://github.com/DizWARE/Gravity-Shift.git
There are 4 new branches that I added into the main repo, that will be important for you. The first branch is Multi-Platform. This contains the starting point for all the new branches. The other three are: Android, iPhone, Windows. If you work on the iPhone project, use the iPhone branch, etc. We will merge back to Multi-Platform and them merge back to the master as work is finished on them. 

ANDROID:
Switch the the Android branch.
You should be good to build and attempt to run. Make sure you have an Android device; I haven't tried running on an emulator but I'm sure it's not as cool :P Make sure the Android project is set as default

A couple things that I've seen when running. My most common error has been when you start to deploy and it throws an out of memory error while trying to package the application. Clean the project...If it still doesn't work, clean the project, exit Visual Studio and open the bin folder and clear out all the files that are in the folder. You can then retry :) Not sure why it does it, but seems to have something to do with a cluttered output folder.

Most of the other errors had something to do with content being named correctly. If you need to look at the application file structure, in the output folder, you'll find a .apk file. If you change the file type to a .zip file, you can browse through it and see what is being copied over. All the content is held in the Asset folder.


Gravity Shift Progress - 4/15

On Friday, April 15, 2011 0 comments

I worked on A LOT of things this last couple weeks. Coming around crunch week is really bringing in a lot of last minute features. I'll start from the beginning:

Credits:

We tweaked our credits, with better labels and more information in it. We also made it pretty with some traveling images and added a level to play in the background, that may stay or go. Here's some images:







9th World:

We added a new world to the game called "Unnamed - Contest" which requires 480 stars to unlock. The idea will be, if the player beats this level, they can record themselves beating it and get the world named after them. Here's the picture of it:


Popup Triggers:

Launches an image popup or a text popup when the user enters its radius. This allows us to demonstrate things we want the user to learn or experience without forcing them to do anything they don't want to do or keep them from skipping over the information. Here's some images:



Background Particles:


I didn't make these but I turned them into something that we could actually use. They move at variable speeds, but always move with gravity. It's hard to make a picture of this, so expect it in the trailer, but you can look at the pictures above to see these dust particles



I forgot to mention last week that we did a public BETA test and it was very successful. We caught some bugs we were unaware of, and we got some really good feedback from real customers. After this session, I was fixed a lot of bugs and pushed those through, including some graphical bugs we had on xbox. There is still minor graphics bugs that I need to look at, but I'm lacking an xbox to test it on.

Also, I've been working on our marketing, and started a twitter account @AngryNewton. This is so that we can share news and advancements in our project from here on out, and so we can talk to fans. We also started a Facebook page to pull in fans that way. Lastly, I have written an email to a game review at cnet that I've been a fan of for a couple years now, which I'm currently trying to see if he would at least give us a first look or something. A lot of big things happening and we are very excited!

Gravity Shift Progress - 4/4

On Monday, April 4, 2011 0 comments

So we've been working diligently on this brand new World Select, and I think we've struck gold. It looks remarkable and just clearly states everything we want apparent to the user. Its simple and intuitive, and is just good looking. Here are some images:






We have yet to test this on the 360, but we believe it should work right, as it is arranged using relativity.

Edit:
Also fixed some bugs we had with loading that would keep us from becoming official. The game would freeze up for a second on big levels before showing the level. It now shows a loading screen when you start a level to prevent confusion here.
Had a similar problem in the Retry option, but this was capable of being fixed more gracefully.
Also fixed a crashing bug when worlds went over 8.

Gravity Shift Progress - 3/30

On Wednesday, March 30, 2011 0 comments

I've really fallen behind here. I'm actually kind of upset to realize that I've only been sprinkling on what I've done for this semester, when I know I've been pounding out features pretty consistently. More and more I realize that I don't like to write, so writing out what I've done always weighs pretty heavily on me, and so avoiding it has been easier than trying to find the time. I do want something that I can go back and look at and be proud to see my progress of things, as well as future employeers(probably more important actually), so I'm going to try to recap previous progress:

Since February, the biggest thing that has gotten done is the level selector. As briefly mentioned in the previous post, I was rewriting this and got something that looked and worked well, but there was still some confusion with the system, as it isn't fully apparent to the user that there is more worlds available. Because of this, for the 3rd time, we are going to rewrite it, but this time I don't think it will take a full rewrite(thank goodness). We are going to move all the worlds onto one page and have their levels in their own personal sections. Here's a picture to demonstrate:



I think this is a very good move, as it keeps everything available and utilizes the free space very well.

Also, we've made a trailer of our game which me and Nate worked on together. This can be found here:



I've worked on some audio that has become the official sounds effects. I've also created a program that made creating a level list easy. The loading and saving of the game has become more graceful, but still needs work(Some levels lock for a second before loading which is against the rules). We've been working on a lot of problems that are required to work to be released on xbox live, which I was involved in fixing some of them. Mostly, at this point, there has just been a lot of tuning. According to the App Hub forum, we are doing very well. There is about 8 people who have posted after playtesting, with mostly positive and good feedback. We look forward to getting our game out on the actual market.

Gravity Shift Progress - Tuesday 2/22

On Tuesday, February 22, 2011 0 comments

We are making sound progress. I've been implementing a new level select this week that is based on a world system, and realized really quick, that we've really hurt our design by keeping in temporary code. Since this is a whole new system, I've had to rework all of this, which is just a beast. I feel like I've been doing it as intellegently as I can so that its open to changes we might need, but we'll see.

Published with Blogger-droid v1.6.7

Gravity Shift Progress - 2/10/11

On Thursday, February 10, 2011 0 comments

I've done some pretty cool stuff since the last post...most generally, I've worked on menu stuff. Our main menu implements our gameplay as interface. I've got this for the main menu and the options menu. I also worked on the credits screen. It now scrolls and presents our names under specific titles. Lastly, I also created a new xbox project that is now in our repo. This should help us to keep the xbox project up to date

Published with Blogger-droid v1.6.7

Gravity Shift Progress - 11/27

On Thursday, January 27, 2011 0 comments

As of Tuesday, i havent had time to get anything done. instead I've been focused on my other classes which have taken priority in the last couple days. I will, however have some new features added by tomorrow, and expect to see some big progress in the next couple days, so i will update once that happens(if i remember :-))

Published with Blogger-droid v1.6.6

Gravity Shift Progress - 1/24

On Monday, January 24, 2011 0 comments

Ok, since the 19th, I have added:

-Progressing levels(You can move to the next level after beating the level without having to go to the selection menu)
-Unlocking levels after you beat the level before
-Prepared the code for future high scores and other planned details
-Modded with the level editor for easier level creation(also fixed some small bugs in the code)
-Got the game on the Xbox...This took a long time, due to some conflicts with certain files in the code I guess. Anyway, it works after making a new project and copying the files over and modifying specific preferences. I went through our code and made some changes to help the transition between the 2 easier, code-wise(things like casting lists of objects from a child class to its parent class is not allowed on Xbox but allowed on the PC). I might figure out a way to throw the Xbox stuff on a separate branch in Git. Anyway, it worked without any speed hiccups but had some layout and audio issues that we are working to resolve.
-Worked on the physics engine with curtis. We talked about a way to prioritize collisions so that immediate action collisions don't disregard sound rules like, rails should always stay on their track. We didn't write much code on it, but I wrote out what I think is a pretty decent algorithm and he was supposed to implement it. We'll see how that goes.

Gravity Shift Progress - 1/17

On Monday, January 17, 2011 0 comments

Oh boy, back to the blogs that I always lose track of :S

Anyway, here's a recap of what happened over the break(that I did during the first week I think)

-Matrix collisions, which basically is a continuously updating grid to allow for easy testing for collisions, because only the surrounding tiles have to be checked for collisions rather than the entire set of game objects

-Wall objects, which basically links touching static objects together so if we have a long stretch of wall of 100 tiles, this is only 1 object in the collision list.

-Thumbnail image saving in the level editor. This has since been modified to shrink the image to a 300x300 image before saving.

-Reorginization of the code. The layout is like this now
--Game contains Load, Update, and Draw and based on the game state, will run the Level, or any of the menus. Each of the menus and the level have an Load, Update, and Draw which updates its individual states when running. They are also able to change the game state using a pointer to the one handled by the game.

Since the break, I've added a LevelSelect menu that uses a page system. It divides all the levels defined into 12 groups called pages(no real division when it comes to the place they are stored, but it seems like this to the user) and the user can flip through the 12 on screen or use the arrows to pan through the pages. I've also went through and fixed some bugs that have shown up in the last couple days. Currently I'm looking into making the level selection work world wide. This way we can unlock levels when beating the previous level, and move to the next level after beating the level. Should be easy but we'll see how it goes

Gravity Shift Progress - 12/05

On Sunday, December 5, 2010 0 comments

RThis week was another busy week for all my other classes but I did find time to add some new features. First, I fixed some small bugs here and there in the level editor. I also added the ability to use triggers and to translate them and run them correctly. The trigger I made, adds a force to any item that is within the defined range(changeable from the level editor) with a force that is changable from the level editor. The trigger can also be a square or a circle collision. I also spent some time completely rebasing GameObject construction through all its children. This passes the translated entity info to the object so each one can translate itself however it wants. I also fixed the camera, which looks tons better than it did.

Published with Blogger-droid v1.6.5

Gravity Shift Progress - Monday 11/22 WAY BEHIND :S

On Monday, November 22, 2010 0 comments

I don't know why I keep falling behind now, but I apologize first off. Between Thursday and Tuesday, I was not able to get any work done at all, except for getting our program upgraded to 2010 and XNA 4.0; Between Tuesday and Thursday, I coded up the translation process between the level editor and the game. This includes launching the game from the level editor, and converting the xml logic into Game logic. Also, this includes fixing all the bugs that arose from this. Since then, I have not had time to work on any more of the project. Its been pretty busy lately but I should have a lot of time the rest of this week(after Thanksgiving :D)

Gravity Shift Progress - Thursday 11/11

On Thursday, November 11, 2010 0 comments

This might seem lazy, but class is starting right now, so here's all my commits I did since Monday.

commit 645ba7dd956d44892afa3acc028fe4ced2b17ea4
Author: Tyler Robinson
Date: Thu Nov 11 14:11:06 2010 -0700

Update Additional Properites.
-Now allows loading and saving of entity properties. Also, set up for editing individual entity property values

commit 5867090c50cb90e026b3af7843cfeeb957ad0b3b
Author: Tyler Robinson
Date: Thu Nov 11 13:56:19 2010 -0700

Update Additional Properites.
-Now allows loading and saving of entity properties. Also, set up for editing individual entity property values

commit c51c2fe3ffe609f7903ea25d7fa3356cbcba40d2
Author: Tyler Robinson
Date: Wed Nov 10 17:39:39 2010 -0700

Integrate Save/Load for everything

commit ab6c709655871619010bbb7b8246f21c423ca08e
Author: Tyler Robinson
Date: Wed Nov 10 15:58:19 2010 -0700

Fix Row/Column initialization and Add manual Double Buffer

commit d18d297f97271ec5e369f07147187a8138d9d1f7
Author: Tyler Robinson
Date: Wed Nov 10 08:53:56 2010 -0700

Add some comments and fix an error with Select tool

commit f84f35f57c8f89979c795c67f76a944a8c2919e5
Author: Tyler Robinson
Date: Tue Nov 9 23:17:13 2010 -0700

Fix multiselect
-Relocated the drawing points with the drawing offset. Why this worked before and stopped? Who knows.

--Flicker is nearly 100% gone, and definitely good enough to leave be for now
(maybe come back in the future but I don't know why we would).

Definitely release quality at this point(minus few missing features)

commit 3120322c27c5116ccf2ef702419ae0b6180383f9
Author: Tyler Robinson
Date: Tue Nov 9 21:59:25 2010 -0700

Major improvement in flicker issues. Still exists but much better now(Completely usable now)

commit 10b02b9f518504ce5a5b83417c682f501fd8408e
Author: Tyler Robinson
Date: Tue Nov 9 21:27:24 2010 -0700

Add some movement prevention code. Keeps things on the grid

commit dc4b4b17e8b0d124ddfcd3899e77b39fa145983d
Author: Tyler Robinson
Date: Tue Nov 9 21:03:07 2010 -0700

Fix some flicker in Depaint

commit b411fb3de9706270a586a2f7560fc405fed934d0
Author: Tyler Robinson
Date: Tue Nov 9 14:42:57 2010 -0700

Bug fix, Bug fix, Bug fix, Bug fix...Other stuff...New things :D

commit f38e624094a29a3ea124e82991039777395e7fb2
Author: Tyler Robinson
Date: Tue Nov 9 02:06:34 2010 -0700

Better Multi-Selection. Looks wonderful...Check it out :D

commit b1bb75adcf6fb88a5261abdc8a1306dfa738b04d
Author: Tyler Robinson
Date: Mon Nov 8 23:43:23 2010 -0700

Merge the 2 GUI's.

This might be summarizing too much, but I've been cranking code better if I don't focus on updating the blog, and since I am posting my progress every time I finish something, why not use that :) Next week will have clearer posts, I hope :D

Gravity Shift Progress - Monday 11/8

On Monday, November 8, 2010 0 comments

Kinda fell behind this week. A lot, a lot, a lot of work has been finished though which I think makes it worthy.

Thursday Progress-
Added a GUI to our backend. Extremely simple but most of it worked as expected, most of the time.
This was shown in class, and was taken very well(I was actually suprised).

Since then, I've been cranking out features. You can now create entities and change their properties. It adds just fine and saves all of this info perfectly. We can also change the background now, there is cleaner drawing, beautiful zooming in and out, selection for single-select and multi-select which draws a selection indicator, better entity movement, and more. I've been just cranking code(as I know my time is little), but its turning out very well and so I'm motivated to keep pumping out more code.

The next plan is to work this code into Jeremy's front end, which shouldn't be too hard since he gave everything the same name, or nearly the same name. Just need to find time to do it.

Gravity Shift Progress - Tuesday 11/2

On Tuesday, November 2, 2010 0 comments

A ton of progress this week, but still not as much as I hoped. I have been working on the internal parts of the level editor, and have reason to believe that adding one or more entities, removing one or more entities, selecting one ore more entities, copy one or more entities, cutting one or more entities, pasting one or more entities, undo any of these operations, Redo any of these operations, and some pixel to grid conversions. There is other stuff but I can't remember all of it...It was a lot of logic and a lot of hours that I pushed into it. I've also been managing the Git stuff, and helping everyone who has issues(merges conflicts have been issue lately, so I'll be writing a reference for that soon).

Waiting on Jeremy's front end before I can test this stuff, but its moving nicely on my end.

Gravity Shift Progress - Thursday 10/28

On Thursday, October 28, 2010 0 comments

Not too much to report today. I've had a pretty busy week with CS4400 and life in general, so I didn't get much done outside of class. Here are the things I did do(including class):

Got the team up to speed on the level editor design. It went pretty well, but we won't know how good or bad the design is until we jump into the work(which I am hoping for a full lab day today so that we can collaborate on the ideas.

All of our CS guys have been able to update to git, which I have fully merged yesterday. We also uploaded the level editor into our project, so the group should be able to easily download the code without any real work. I think that now we have a firm base on workflow, we should be plowing through from here on out.

Lastly, I reviewed the Evil list a little bit. I do believe that its a doable list to work around but some of the things that we have to guarantee really sucks(like absolutely no bugs, whatsoever). I guess we will see how this goes but I plan on bringing it up in the Stand-Up meeting.

Gravity Shift Progress - Tuesday 10/26

On Tuesday, October 26, 2010 0 comments

Several things have happened.

First we've made some major progress on git. Casey, Nate, and Jeremy have both been able to push updates to the game(nothing major, yet), and all have said that its easier than it seems(which is how I feel too). This gave me an opportunity on learning how to merge the code, as well as resetting the HEAD of the current branch, along with editing remote branches(I feel these are all important for someone who is running the entire system).

On top of this, I wrote a design doc that further defines our level editor from the original definitions. This can be found here:

https://docs.google.com/document/edit?id=1moFbTO3htIemgeUpa1-shcrvQ-NwvlS5rE-fLFVWfR4&hl=en&authkey=CP760_gN

Me and Nate have started with writing the code, and have defined a Level(integrated with the Editor Interface that I mentioned in the doc), and an Entity. This is all minus the ability to import and export, as that is still up in the air on agreement with the group.

More on this later.

Updating the Contact List Tutorial

On Wednesday, October 20, 2010 0 comments

Do not attempt this tutorial before I demonstrate on Thursday(10-20-10)

Ok so the task here in this tutorial is to continue to help you get familiar with Git, by actually making changes in the repo. This is assuming you have set up Git already(See here) and that you have an understanding of VIM or have changed the editor to Notepad++(See here).

Disclamer:
As I know someone is going to run into the problem, I thought I would warn you: be sure that your msysgit is INSIDE of your Gravity-Shift folder before trying these commands. This is important because it won't work otherwise.

Okay, the first thing you need to do before you make any changes(to avoid merge conflicts) is to fetch the latest data from MY Git repo. To do this you do this command:

git fetch upstream

This will get all the newest files and changes that the team has made in a whole. At this point, you have these changes locally, but you have not applied it to your own version yet(so if you opened one of the changed files, you would not see any changes). To receive these changes, you must merge the code with this command:

git merge upstream/master

Stop for a second
Why "upstream/master" ? Well, what we are saying is that we want to merge the code from upstream's master branch. If we start using lots of branches(ones for specific bugs, ones for stable releases, etc) this will be important to understand, but for now always do "upstream/master"

We now have the newest code on the computer, which we should now see "ContactList.txt" in the Gravity-Shift folder. Open this and add your contact information into it. Do not forget to save.

The next thing you need to do is commit your changes. Simply do this command:

git commit -a

Which will prompt you for a commit message. This is REQUIRED, and would be best if you do clear messages so that your code is easier to review. The correct format is always "Present Tense" sentences, using words like Add, Remove, and Change instead of Added(Adding), Removed(Removing), and Changed(Changing). Try to be persistent on this format.

After you committed, you need to push your changes.

Alright, woah...
What is the difference between commit and push, and why do I need to do both?

Commit finalizes any local changes on your own local distribution. This means what ever changes you make are official on your own hard drive and that's it. Push, on the other hand, copies those changes into your Github repo(the one online) so that it can be shared with the rest of the team. It is very important to understand that these are separate things, and that committing does not always mean that you need to push as well. You should always commit any changes on a regular basis, but you should only push when you are ready to share with the rest of the team.

So to push your local changes to your online repo, use this command:

git push origin master

Ahh, another weird command
Calm down, we are just saying that we want to push our changes to origin(which is our personal repo's) on its master branch.

VERY LAST STEP!!!!
Go to my repo(See here) and in the upper right corner you will see a button that says "Pull Request" . Press this button, and fill in the popup box with your changes(same format as commit messages) and send it off. I will then be able to take your code and merge it into the main repo so everyone can receive the changes.

VIM text editor instructions

On 1 comments

So, while using msysgit, you will more than likely end up using VIM to write text at least once(unless you change it, which I will tell you how to do that at the end of this tutorial). A good example of when VIM is required is during a commit. The editor is extremely difficult to understand, especially without any instructions, which is exactly what this tutorial is for.

Lets make an assumption that I just made some change to the code; how bout I added the ability for the player to change colors. Once I had the job finished, I would commit:

git commit -a

This would immediately start the text editor, VIM. It would have a print out something like this:

(Your cursor should be here)
#############################
# You made a change that needs to be committed
# The following files have been changed
# (To reset to head, use git reset HEAD)
# WindowsGame1/Player.cs
@
~
~
~

Or something like this at least. Your cursor should be at the very top, if its not, you'll need to move it using the arrow keys.

1. Press the letter i to enter Insert Mode.

2. Type your message: Add player ability to change his color

3. Press the Escape key to exit Insert Mode

4. We now want to save. Type :w (do not forget the : in front of the w) and press enter

5. To exit VIM, type :q (do not forget the : in front of the q) and press enter

Your file will then report to git that you are done writing the commit message and are now ready to commit.

As a final reference, to start VIM with a file(it will be a new file if it doesn't exist yet) type this command:

vi

To difficult?
Yeah I agree, that's why I went in search of a different solution, which I will share with you. Be sure you have dowloaded Notepad++(found here) and type this command in msysgit:

git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' multiInst -notabbar -nosession -noPlugin"

So the git config --global core.editor tells git you want to change the text editor. The 'C:/Program Files (x86)/Notepad++/notepad++.exe' is the location of Notepad++ so it might be different for you. You will have to browse your computer for the Notepad++.exe.

Powered by Blogger