Friday, January 31, 2014

The Beginning

I've been plugging away at making my own computer game for about two weeks now, which I've taken to call The Merging. I'm doing it pretty much from scrap with SFML as my only library inclusion using C++ as my language. I've done a lot of short starts on games, but I've always had someone else saying they would be helping and not really contributing much (for valid reasons), and that always hampers morale; not getting help you were expecting. I started on this project with it in mind that I'd be doing all the work myself so I've not been suffering that (now it's just the mountain of work I have to do by myself that is dampening morale but so far it hasn't been that much of an issue).

The basic idea of the game is to have a table top miniature game, such as Warhammer 40k for example, in a multiplayer computer environment. Each battle will be fought between two or more players in different configurations ( 1v1, 2v2, 1v1v1, etc ). Each player will build a force of a handful of characters beforehand using a points system for purchasing units and upgrading them in various ways. They will then take this force and fight a battle with it in different setups and scenarios against other players either in a casual game or a game that will be scored for their overall ranking.

Turns will progress either in a you-go-i-go on a character by character basis, IE I activate one of my characters and do stuff with it, then you activate one of your characters and do something with it, and back and forth until all characters that can do something have done done something. The alternative, which is the way I'm leaning heavily towards, is to assign at the start of the match an order of initiative, very much how Dungeons and Dragons does it (at least 3rd edition, have not played the newer ones). A list would be made and it would be iterated through one by one until it gets to the end, then it starts over.

It is just a simple 2D top down game environment.

Battles will be of different point values, IE 500, 750, 1000, etc ( or whatever scale of points I come up with). Forces will be made before hand so all a player will do when they join a game is choose a force of the appropriate points value and wait for the game to start.

The mechanics would be much more in depth and complicated than in table top games, but that can be achieved because a lot of it is automated within the computer. Instead of two people having to keep track of everything on paper or with tokens, the computer can do it for them instantly. Complex rules and systems can be done without being a hassle during the game. It will give players much to think about as they build their forces.

My current progress so far is pretty good I think. I'm still embroiled in things like GUI elements, but I develop them as I need to following the YAGNI principle. All the work has just been done client side so far, but I'm getting to the point to where I need to start doing some server side stuff. 


Players will log onto a central server which will act as a news channel for me to broadcast info, a chat channel for players to talk to each other, a section for browsing games available to join or to start a new one, a place for doing ranked matches (if it gets that far, last on the list), and a section for creating and modifying forces. 

When a game is launched, the players will then be sent off in a peer-to-peer connection setup to have their game, which will then have the results reported back to the central server for tracking. At least, that's the idea for it so far.

I chose to do it from scratch so it would be a learning experience in general. I've had two years of schooling in computer science which was enough to learn C++ ( this was about six years ago ), and also math and physics classes. I've been figuring everything out on my own and learning by looking things up on the internet.

My ultimate goal is to release either this game or another game for sale and have my own indie game development company. Failing that, I think having a game such as this in my portfolio would greatly enhance my ability to get a job somewhere. Even if that doesn't happen it would still be a success in my mind because I have made something that most people only ever sit around and talk about.

The purpose of having this blog here is to share my experience with like minded people. I am slightly apprehensive about it because I am a pretty self conscious person when it comes to things like this. No one wants to be told their work is rubbish. I figure though, sharing my experiences and ideas might help move me along, help me to think about things ( I often think of several ways and/or better ways to do things as I'm doing them, kind of a curse really when I'm writing my code ), and get opinions on how to do things better or different ways to do things.


There will be a lot of updates coming soon as all the undocumented progress that has been done plays catch up on here and the story environment gets described.

No comments:

Post a Comment