Getting started

Published March 07, 2016
Advertisement

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.

Introductions

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.

0 likes 0 comments

Comments

Nobody has left a comment. You can be the first!
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement
Advertisement