Tag Archives: gamedev

Inside Look – Git Flow

Working on small projects, picking up a version control system (VCS) was hardly a must for me. I don’t any project here has ever had more than 4 people working on it at once. Nevertheless, using Git and a well established process can be incredibly useful for even the individual coder. It allows a one (or multiple people) to work on multiple paths of a project without (or at least little) worry of seriously corrupting the source code. Git is known as a decentralized version control system. There is no one golden repository which everyone must work from. In fact, any individual has their own copy of the repository which they can use to track their own local changes as they’re working. There are many ways to use Git to keep on top of a project and I think everyone finds their own style, but I’d like to share what I’ve been using.

My projects consist of two main branches, master and develop. These branches will always exist and will never be removed.

The two main branches.

The two main branches.

Master is considered sacred and only touched if a completely sound production release is ready. Instead, develop contains typically the latest, active, and (reasonably) working code. When a the team has a new feature they want to introduce, they create a branch off of develop. This is called a feature branch. This is worked on until completed and then merged back into develop. Sometimes, merges may happen before a feature is fully completed. Maybe there was a specific change that needed to be present in develop for other feature branches or some bug was found.

A feature branch example

A feature branch example.

In a perfect world, these are all the branches of code you would ever need to care about. There are many corner cases that can occur where you may need to create a hotfix branch to fix a bad release on master, you may have a feature with sub-features being worked on, and many more. For a nice example, here’s a bigger picture of what that may look like.

A full Git Flow example.

A full Git Flow example.

Huge credit goes to Vincent Driessen for these images. You can find his post at http://nvie.com/posts/a-successful-git-branching-model/ which describes the full process. Over a year ago when I was just getting into this Git thing, his post allowed me to finally grasp a good method of using this powerful tool.

Tagged , , ,

Dev Update – Parallax!

I’m sure you’ve played a few 2D side-scrollers. I’m sure some of those implemented parallax scrolling as well. If you don’t already know, parallax can be described as follows:

Parallax is a displacement or difference in the apparent position of an object viewed along two different lines of sight, and is measured by the angle or semi-angle of inclination between those two lines. As the viewpoint moves side to side, the objects in the distance appear to move slower than the objects close to the camera.

One great example of this is standing in a forest, looking out and seeing many tree trunks. If you focus on one tree as you side-step in one direction while looking forward, you’ll see trees farther away are moving slower and trees closer are moving faster in respect to the one you chose to focus on. Making sense? Good! Anyway, I wanted to show a quick clip of what our parallax looked like.

Parallax in the flesh!

Parallax in the flesh!

Neat, huh? The process behind this is actually remarkably easy. Each “layer” of art gets its own parallax factor. This is just a multiplier that will be applied to the speed of the camera moving. If the parallax factor is less than 1 but greater than 0, the layer will move slower than the camera (such as the ocean at 0.8). If the factor is negative, they will move faster than the camera (such as the light posts at -.1). The pavement, pillars, and the car are all on the same layer as the player, so they move at normal speed (essentially 1.0).

Also, giving a shout-out to GifCam which was used to make this gif. Super easy and free (donations accepted!). Pretty much as good as the Snipping Tool for Windows. Will definitely be using in the future for posts here.

Tagged , , ,

Dev Update – Adjusting Art Style

Before making this post, I realized I didn’t have a category for simply posting updates on work that wasn’t tied in to some release or patch notes. Well, I guess now is as good as any to introduce Development Updates! For the premiere of these posts, I wanted to show a little teaser of our current and possibly future art style we’ll be going with.

The current style being used.

The current style being used. http://ashnovember.com/

Pretty sweet, huh? You can thank Stewart Leith for that and check out more of his work at his own blog. Those waves are animated, too! Obviously, we went with a bit of a retro, pixelated look. Nothing wrong with that, but it turned out to be quite limiting (just check out Stewart’s stuff, epic potential!). So yesterday, he sent me a simple concept of what the new look could be, changing the game into more of a platformer than a runner.

The planned style for the near future.

The planned style for the near future. http://ashnovember.com/

Much more painterly, interesting to look at, and putting some parallax onto these scenes is gonna be a treat. Maybe I can get some gifs up then to show that off. Might even play around with the current scene to test it. Anyway, I hope that has wet your appetite for a bit of content for now. More to come later this week!

Tagged , , ,

More on Git

So with the new project, I’ve chosen to stick with good ol’ git to manage our version control. This is quite a challenge when it comes to Unity3D, as there’s a large number of irrelevant files that will get changed, added, and deleted which really should be ignored. In comes .gitignore. Without it, version control in Unity would be a nightmare. It took me a bit of searching to find a nice list of the type of files I should be excluding, so I want to make sure to post it here for anyone else that might need it:

# =============== #
# Unity generated #
# =============== #
Temp/
Obj/
UnityGenerated/
Library/

# ===================================== #
# Visual Studio / MonoDevelop generated #
# ===================================== #
ExportedObj/
*.svd
*.userprefs
*.csproj
*.pidb
*.suo
*.sln
*.user
*.unityproj
*.booproj

# ============ #
# OS generated #
# ============ #
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
Icon?
ehthumbs.db
Thumbs.db
/*.csproj
/*.sln
/*.userprefs
/*.sln
/*.csproj

Also, just starting using Sourcetree instead of TortoiseGit to have a bit more of a visual process for those new to VCS’s. They’re also the makers of bitbucket.org which we’re using to host the project so obviously the support is there! Currently exploring the possibilities of GUI elements for Unity! Quite handy (and a hell of a lot easier than using pygame to make simple windows!).

Tagged , ,

Hello Again World!

It’s been while (over a year!) since I last posted here. Work got busy, the Java game fell through, and just didn’t have time to mess around with my Python project or blog. Well, I might get back into this as an artist friend of mine has been interested with learning Unity3D and experimenting with creating a game. I, also been wanting to check out Unity3D, eagerly jumped on board to help out with the scripting. So, from Python to Javascript and now to C#, I seem to be getting a healthy exposure to some common scripting languages! 

Unfortunately, this project is a private one to protect our art assets. We may open it up in the future or may pursue actually trying to put something on the app market. Who knows! Either way, I’d still like to post what I can here and maybe show off some releases if we can ever make something presentable! 

Tagged , , , ,

A Little Break from The First Fantasy

With v0.1 released, I feel like it’s in a nice, stable place to sit for a little while. In the meantime, I’ve volunteered to join a small group of my friends in our attempt to make a web game. This is something I’ve never really done before. JavaScript is mostly foreign to me, especially CSS and advanced web concepts. However, I’ve found and have been using a handy tool called pyjs (or PyJamas). It literally takes your python code and compiles it into JavaScript. It also provides a number of modules to facilitate a more “web focused” design. This is also my first “real” attempt at running the entire game through GUI elements.

We’re starting off with a simple Blackjack game to make sure we can get through the entire process (brainstorm, design, art, code, web stuff, hosting) without too many problems. If it all works out and we’re mildly impressed, we may try to make some actual attempts at bringing in some money with future games. It should be fun and already is a definite learning opportunity. I’ll post some information about it when I can, but we’d like to be as hush-hush about it until we know what the hell we’re doing!

Tagged , , ,
%d bloggers like this: