Jump to content
  • Advertisement
Sign in to follow this  
  • entries
  • comments
  • views

Getting started

Sign in to follow this  


Well, this is something new. I usually post any kind of a blog entry on my own site, but for some reason it feels better talking game development in a Journal here at gamedev.net, rather than on my site. There's a sense of separation of concerns if you will, a nice way to isolate my thoughts on my new project.


I suppose I should start with a bit of an introduction. My name is Johnathon Sullinger (@Scionwest on Twitter) and I'm a Lead Applications Developer at my day-job where I architect and build internal LOB apps. I exclusively use .NET and C# in a Windows environment there, and enjoy the work that I do. At home, I've programmed in a few different languages and tech, from Objective-C and Swift to cross-platform .NET development with Xamarin and the new .Net Core APIs. I've been programming for 20 years, starting when I was 10 in Visual Basic 5. Here I sit now with roughly 11 years of experience in C#, picking up another new language to learn. Today I set out to dig in and understand C++. I've written in it before, while writing Objective-C, it wasn't a lot of exposure though. Most of the time I skipped passed C++ and went to the C APIs.

What's being developed?

So what am I making? Well, I'm keeping that a little bit closer to the chest than I typically keep my projects, at least for the time being. I do however plan on sharing what I am coding and working on as I develop the game. I might not explain the core idea behind my game, but I do plan on having lengthy posts here in regards to what I'm working on, how I'm designing and developing the game and so forth.

Why C++ when my core competency is C# you ask? There are several libraries available in .Net that I could use, such as the aging XNA framework, the MonoGame framework or even a full engine such as Unity 3D. In truth, I did dabble a bit in each one of them. I've used Unity before and just never liked it. Their new pricing strategy doesn't float my boat either. I didn't want to target XNA, a deprecated framework, with a brand new game. I'd miss out on hooking into so many of the cool APIs that the various operating systems I am targeting supports. MonoGame I couldn't get working on my Mac, which will be my primary dev environment. So I settled on Coco2d-x and C++.

What I've done

I've actually not done much of anything yet. I did get a coco2d-x project created and compiled. I started working in Xcode and remembered how much I hated the IDE. While reading through a tutorial series on coco2d-x I discovered AppCode by JetBrains. Having used it all day today, I think I've found my permanent IDE while developing in OS X. It's a really solid IDE.

I created the initial headers and implementations of my games questing system. A Quest object, and an Objective object. Quests can hold a collection of Objectives that must be met in order for the Quest to be marked as completed (side-note, it's not an RPG!). I was pleasantly surprised to find out that C++ 11 has lambdas, for-each and generics (Templates I believe they're called in C++). I was thinking I would have to handle arrays with my own algorithms and it turns out the majority of my needs can be met with std::vector.touchListener->onTouchBegan = [this](cocos2d::Touch* touch, cocos2d::Event* event) -> bool { labelTouchInfo->setPosition(touch->getLocation()); labelTouchInfo->setString("You touched here"); return true;};
Using lambda's in C++ is really going to make things a bit easier as I go through the coco2d-x API. Looking forward to using it quiet a bit more in the near future. The capture clause of the lambda was a bit confusing at first, but luckily Microsoft's MSDN had a great article on lambdas in general and explained each part of the lambda which make it a bit clearer as to what the above code actually does. It's really no different than Lambda's in C# or Closures in Swift/Objective-C, with the exception that neither has a capture clause as far as I know.

I'm well on my way to getting my new project up and running. I've posted a couple forum threads tonight here at gamedev.net in regards to animation and bone/joint wire-up. That will probably be one of the first things I have to tackle with this game.

I plan on talking a bit more about what I'm going to be working on in another post, one where I can spend some time writing it when it's not midnight. I really want to talk through my design and development process here in this journal.

Until the next post.

Sign in to follow this  


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!