Jump to content

  • Log In with Google      Sign In   
  • Create Account

Bluefirehawk's: "Path to World Domination"

And now to something completely different, or why Diablo 3 sucks 2nd try

Posted by , in Info, Rambling 08 March 2013 - - - - - - · 1,481 views

Yes, I am starting a new project! But before I get to the meat of it, the game idea, I want to point out what I actually would like to accomplish with this project.

I want a platform where I can learn more about game programming and in general designing a medium sized code project. It should be a game with a very limited scope, a small game that I can dissect and inspect completely, that I can experiment with and test my expectations.
Wow, I almost sounded like Ghandi... anyways it is a study project with one main goal, learning. I want to learn more about game design, programming, and software architecture. The latter one is great, since I have this very subject in my current semester, yay!
Ok, so what is it? What is the game about that will flatten my path to world domination? Alright, here it comes:
ALIENS! Wait no, not this one, MAFIA!

This game idea is based on the social game Mafia aka Werewolf aka Assassins aka Witch Hunt. I thought it may be a very interesting concept for a multiplayer game. I also think it is a good excercise how you translate a "normal" game to a computer one.
Alright, roll up your sleeves, LET'S DO THIS!!... But how?
How do you base a game on a different game? Writing it down, it seems like a no-brainer: Let's research the original game! Wikipedia had a surprisingly good page on it:

...is a party game created in the USSR by Dimitry Davidoff in 1986, modelling a battle between an informed minority (the mafia) and an uninformed majority (the townspeople)...


Why do I bring this up? This little sentence sums up the whole game, it is the core mechanic! Alright, why should that help?

The core mechanic in my opinion defines what the gamer does but not necessarily why the gamer likes it. Sometimes the core mechanic is easy to find and sometimes it is as hard to find as your car keys you had 2 minutes ago.
What is the single mechanic in Portal? The Portal Gun of course! Nobody would make a Portal sequel without the Portal Gun. Think about it, in Portal, you have many different objects to play with. You have boxes, "hard light bridges", fluids etc. to play with. All of that are only new toys for you to screw around with the Portal Gun.
Yet in Diablo 2 I can't find a single core mechanic apart from it being "Action" RPG, which was the single revolutionary aspect in the
original Diablo, every notable RPG before it was round based. Thinking about the Diablo series like that suddenly makes more sense why D3 fell flat in everything gameplay related. The skill system is crippled with the extensive cooldown, resource system and limited skill selection. At the core of Diablo was the idea to just "use" your skills. On the other hand they fitted the D3's Monk with such ridiculously shallow resource "spirit", that I could only use the cool skills I wanted any 20 seconds or so and even if i had the resources, anything cool had a stupid cooldown timer too. No other skill reflects that better than the D3 Barbarian Rage skillset which all have a cooldown timer of 120 SECONDS. Blizzard, are you telling me that I need to wait TWO BLOODY minutes until my barbarian does something awesome again?! What the HELL is that, coffee brake mandated by *the hero's union*?
On the contrary, in Diablo 2 I could use almost every cool skill I wanted at any moment as often as I wanted, if the situation allowed it (e.g. enough mana and no manaburners). I could even use skills for somethng they weren't intended for, using the Paladins Charge skill to get away. That's why on surface Diablo 3 looks similar like Diablo 2, they correctly analysed what people liked at the old Diablo games but they completely forgot what you were supposed to do. That's why it isn't a true sequel to the Diablo series, like you made a Portal 3 without the Portal Gun...

buuut back to topic... at least how I understood this, you can make completely different games with the same core mechanic, you simply vary with what you give the player, with the core aestetics. You could make a shooter out of this, but that would be putting a different mechanic at the core and just use that as an "extra".
So basically I try bringing this social game in the digital realm. That doesn't mean that it is simple, now with networking, animations and fancy stuff I can add a lot more to the core mechanic...

AAAAAAAHHH SCREW YOU, BRAIN!

You may not have noticed this, but often things become more clear when I've written them down, and now suddenly my brain kicked in and told me that I could be trying to deviate more from the social game and explore more... and I had a few nice ideas how you could encorporate the game... so I am going to experiment more with this, but that should be the topic for an other post.

Damn, this entry is even less coherent than usual, maybe this really deserves the rambling tag. In defense, I am getting a cold, so that may be a reason why...


You only gain experience shortly after you needed it

Posted by , in Info, Game Design 22 February 2013 - - - - - - · 1,130 views

Hellooo again

As the title says, you gain experience shortly after you needed it, or in this case, knowledge I gained after abandoning my project that would have been useful at the start.
Basically, those are all the questions and tasks I should have tackled before I began. This post is partly for me and partly for anybody who also wants to start his own projects like me: HEAD ON!! . I guess many people are like me, when you have an idea you want to get started ASAP! But you tend to profit from stepping back and ask yourself some important questions, you have to be sure it is the right project at the right time.
This is in no way the best or only way, or the only questions to answer, this is only what I will be doing in the future.

Why do you even want to make a game, what is your personal goal?
This question isn't asked often enough. Why do you do it? It's maybe the most important question you need to ask yourself, everything else, the goal of your project, depends on it. This isn't a philosophical question, your answers can be very trivial like "I want to make a living", "I want to learn about X". Maybe you don't have only one goal but serveral, in that case you should settle on one main goal. The answers alone seem a bit useless, but they get important together with the next question, so bare with me.

What is the goal of the project?
Again, the answers can be very simplistic like in the first question ("I want to sell it"). Now if your main personal goal and the goal of the project deviate, you inevitably run into problems. For example, if you want to learn but the main goal of the project is to be profitable, then you probably are working on the wrong project. If you want to learn, it is important to be able to fail, sometimes you learn more by failing instead of accidentally getting it right.

What technology do I use?
Unless your goal is to learn a specific platform, toolset, language etc. this is the wrong question to ask yourself at this point. Don't settle on your technology to early, maybe there are better tools for the job.


Alright, I got everything. I have this great game idea, let's do it!
I was there too, you have written your game idea to paper, and are keen on working on your game, but wait, you missed something!
Do you know which mechanics are more important? Do they even fit the game you have in mind? Do the mechanics even tell the same story as the story?
Before I ramble on, I want to say something about how you get your ideas.
Very often, you come up with an idea by mixing existing games or genres together, because in your head, it plays like the next cool game (my earlier post about that). But that's not the only way to get new ideas, for example: the fine people at Valve came up with "Left4Dead" while AI Programmers were testing new bots for Counter Strike. They were fighting as a small group of human players against a large number of bots who only used knives and they had incredible fun while doing so.

Dissecting the game
Let's go back to Left4Dead, I think it is an easy game to dissect when you have listened to the developer commentaries, some things become strangely clear. I am no professional, everything I write here is purely based on my understanding of game design.
I'd say, every game has a core principle, the core gameplay, how you would describe the gameplay in one sentence, many unarmed enemies against few armed players. That is, at least in my opinion, what the developers at valve experienced and liked while playing against unarmed bots, they played the earliest prototype of Left4Dead.
We then have to set the core aestetics for the game (watch the video at the end, it explains this better than I ever could). For Left4Dead, it is undoubtedly Co-Op, but it didn't have to be. I am sure you could imagine a game where compete against each other player. Both can be explained with the same phrase, but nobody would say that these games are related.
Now why should this matter? Again, let's turn to our poster child. I challenge anyone to find anything in Left4Dead that doesn't enforce co op. From the items, over the levels to the story, everything serves only this purpose. Yes, it also has a competitive aspect when you put 4 vs 4 in the mix, but I argue it isn't a core aestetics, in the end you compare the team effort. Compare this to Call of Duty multiplayer death match, where a good player can essentially win the round while he drags along not so super players. In Left4Dead on the other hand, it doesn't matter if you have an uber player in your team, he can't win alone.
So, why is Left4Dead a zombie shooter? Because it fits perfectly with the core gameplay and the core aestetics. Valve didn't do it the other way around. That's why everything feels right in Left4Dead, there is nothing that seems out of place at least in my opinion.
I think this is by far the hardest step, this is where you see the difference between novice and senior game developers. If you do this right as early as possible, you have a good understanding what it is that you are producing and how valuable feature X is to the game. It gives you a scale to judge your features on.

And now...
...you should have a solid basis for your game project, mind you anything of the above should never change. But the reality is, they often do. If something does change, don't take it lightly, be sure what impact your change has on the game, the project and on you.
I think now

I wanted to write about my own game idea and how I tried to dissect it. Alright then, that will be the topic of the next entry.

Videos
  • Aestetics:
  • Starting your narrative



The future... good bye hopes and dreams

Posted by , in Info 17 February 2013 - - - - - - · 1,033 views

Alright, this is going to be a bit of a gloomy post, at least for me.

In short, I am postphoning Project: Phoenix indefinitely, as studios like to put it. I am not going to work on it in the near future, but maybe later when I am wiser, more experienced, have more resources at my disposal and a better grasp of what actually needs to be done in a game project. I wrote in my last post why I am abandoning the game, here I want to show you why it is the right choice.

The simplest explanation is, my goals changed. This first started as a framework to dig deep into C++ and more low level programming. After starting to think more about the game I want to be making, I got more and more excited about this project of mine, until I had a cool game in my mind that I really wanted to see coming to life. Without really realising it, I changed my goals.
That isn't a bad thing, until I came to realise the second thing, I haven't done a single game before. Making a 'good' game, let alone the quality game I had in mind needs more than pretty ideas.Excluding story and artwork, it needs solid game design, fitting mechanics that envoke the feelings you intend to invoke, about the pacing of the game.
It is like writing a poem, just because you can write words on a sheet of paper doesn't mean anybody will like it. It also doesn't just take hard work and time. It takes a special way of looking and analysing your writing, what it tells the reader conciously and subconciously. And that in a nutshell is game design, at least this is how I understood it.

And here lies the main point, I don't know anything about this. To learn it, you need to gather analysing skills, you need to analyse different work, and most importantly, experiment with it. This may be the best way to learn about game design more than in any other field. And with Project: Phoenix, I had no room for experimenting, wich also means room for failing.

So I abandoned the project, the goal was not really reachable for me and it was the wrong goal to begin with. My goal should be about learning, learning how to solve the problems in game programming and how you design a game.

That doesn't mean that I wasted my time, quite the contrary, I know now very precisely how you should NOT start a game project, I know how and why games can change so vastly during development, I aquired the best grades in my college C++ classes, I started gathering skills to analyse games and game ideas. I learned about human psychology, the uncanny valley and pacing, I learned about the story structure, the journey of a hero and the badly written plot. And those are only the non technical aspects, I learned much about topics I didn't intend to learn about, which is a good thing I guess.

To the future! With a project that I can experiment and possibly fail.
What is it going to be? I'll write that in my next post.


When the storm hits

Posted by , in Info 09 November 2012 - - - - - - · 790 views

the Inevitable happened, the exam storm has hit the harbor. And it hit hard.

Also, I maintain other hobbies than programming, I also do some martial arts and now have the chance to train for amateur full contact fights. That would mean more training and less time for other stuff.
But I don't want to stop programming this, I love the concepts, problems to solve and design thoughts while starting my own game engine. Abandoning the project is not what I want to do and not what I will do.

Long story short, I don't have time writing more journal entries at the moment, I was very lucky to have time writing this one. Because if I am not writing a journal, I am studying or try to educate myself more on how to tackle such a complex software, or I am fighting with minor problems of QT and Doxygen.
(Talking about QT, bugger me but getting QT and doxygen working together was very anoying. The plugin for the QTCreator needed a newer version of QTCreator. The right version installed, I've found out that Linux Mint used an older version of a library, I think it was a C Library. In the end I installed Kubuntu, had trouble installing the latest versions of QT, and settled with the older QT Package but the QTCreator 2.5.0)
And When I am doing neither of those, I am training.

I am still figuring out what problems design problems I have to solve, and when I try to maintain the interval and length of published entries, I won't have any time left to do what I came here to do, to program.

This means I will probably lengthen my Entry interval, maybe write less structured and shorter entries. Only time will tell. But I try to update on my thoughts and design questions/choices.


Game engine architecture, or how to start your own Engine...

Posted by , in Info, Coding 02 November 2012 - - - - - - · 1,944 views

...finally! Finally something I wanted to write about all along!
Why didn't I do it? Well...

... I knew I didn't know anything about designing such a complex system. I tried to find some good examples on the Internet. While one wasn't very bad, it didn't make too much sense to me, I always felt like something was missing.
I finally ordered the book "Game Engine Architecture" by . In short, it is great, it contais what the title says. It talks about the problems in modern AAA game engines and how the different engines solved them.
"I don't want to make a AAA game engine, why should this book be good for me?" Because it talks about everything a game engine has to do, about what subsystems it can have.
If you make your own hobbyist game, you face similar problems, only your solutions are simpler. Plus it orders your code nicely and logically.

So basically, if you own this book, this entry is obselete. Almost. Here, I want to write about the groundlaying decisions you have to make not as a professional, but as a hobbyist, as a guy who just wants to start programming fun stuff.


Starting your own Engine
The first and most important question:What is my target, what do I want to get out of it?
Many starters rush to the next questions about the engine, but most importantly, why do you want to do it? Do you want to get money out of it? Do you want to learn? Do you want to implement your dream?

It was simple for me, I came the other way around. I originally wanted to have a C++ learning project. After some time, it dawned to me, instead of programming some boring shit, I could write a game!

To the people who want to realise their dream... unless you are a senior in gamedev, it won't happen. Or the game would not look like the way you dreamed. If you know this (not simply reading this sentence, but KNOW what concequences this can have on your motivation), then move on.

What game do I want to make?
There is no point making an engine without a game in mind. That's how simple it is. If you have a raw idea, it helped me writing it down, solidifying my thoughts. A good Idea is writing a journal about it ;).

What platforms should it be running on?
This can already narrow your choices. For example: "My platform is IPhone", you are pretty much set.
If you say "Well... uhm... on a PC?" You didn't get much further. You also have to ask what for what operating systems. JUST DON'T ASK ME WHICH!
"So for what operating system should I programm?" ARRGH, alright let's not start a crusade here. It should run on your favourite platform you are developing at. You can put more thoughts into it, what kind of person will download and play your game. But that is only secondary, unless you want to make money out of it.

I chose to tackle the Devil, I went for cross-platform. If you use cross-platform libraries, it shouldn't be a big problem, right? NO!
It is easyER when you chose a higher programming language like java, C#, or python.
In a Language like C++, it isn't too difficult either, when you know how. And you DON'T KNOW how when you're not an experienced C++ developer.
Just for the record, I am NOT an experienced C++ developer, I witnessed first hand how painfull it is.

What Language do I use?
For now I tried to avoid talking about religion, but now I can't talk around it any longer.
From a Theoretical Computer Science stand point, it really does't matter. There is nothing you can do with language A that can't be done with language B. The only difference is, some things might be easier to do in a specific language.
"So what should I choose?"
Oh dear. Ok... just... alright, are you a beginner? If you are, choose anything BUT C++. Go with C# or Java, both work very well, both have a good tutorials and beginner forums. Both have a C syntax and you could even get a professional job as a programmer in both languages. Don't just DON'T START with C++.
"Why?" Let me tell it to you this way: Java and C# are like a good wooden bridge over a deep cliff. It supports your weight and even has a wooden safety railing. You can jump off if you want to.
C++ on the other hand is like a bridge of three ropes, one for your feet and 2 for your hands, with a angry gorilla at the other side shaking the ropes wildly. It also has a sign besides it "Health and Safety Advice: Don't fall off, or you're dead!".
If you say "well, I looked at the C++ tutorials and I thought they are pretty simple", then I can't help you here. Do what you have to. You'll see soon enough.

What libraries do I use?
With your favourite language chosen, you can go out and search for useful libraries. I can't advise you how you chose it, I can only urge you to use one.
You don't have to reinvent the wheel all the time.

What Toolchain do I use?
If you are new to programming, you may ask yourself "what do you mean, toolchain? Like a toolbelt of a construction worker?"
No, with toolchain you refer to the tools you are using while developing your program.

Now you are at a point where sometimes, you already have a common toolchain available, I urge you to use it. Don't try to be different, there is a reason why it is common.

Before you start coding, you should set up your toolchain. I know many don't believe me, but you'll save much trouble later on.

You should at least have a:
  • Repository, SVN and Git are the most prominent. Git is especially interesting with the free online git repository server github.org. check it out.
  • an IDE that is able to compile and debug your program.
While not needed, it is a good idea to have a testing framework.

If you've chosen to go down the path of doom, using C++ in a cross platform project, then here is where a lot of your time is eaten up. I've written serveral posts about it, and about the frustration.

That's it for this week, I wanted to write more about the actual architecture, but will be in an other entry.


Keen on making mistakes

Posted by , in Info, Coding, Rambling 26 October 2012 - - - - - - · 813 views

Sooo... this weeks post will be less structured, it is again more of a "writing thoughts to words" entry than something new to the game... anyways.

I gave more thoughts on the engine design, also how you design as efficient as possible, how do you implement a Entity based design correctly... and it went on and on.
Suddenly it jumped my mind, I wasn't going anywhere with it, even though having experience with business application, being one of the better programmers in my college, I want to have a state of the art AAA engine design on my first try.

It won't happen.

I am young, I have a long way to go, much to learn and much to conquer.
College is a weird thing, you learn so much in a single year, that you are shocked at the stuff you have written a year ago and when you are good in your college, it can happen to you what has happened to me: It gets over your head. You think too highly of yourself.

So you do something very few people ever do on the internet. Put your ego down. You are not the best there is.

Game developing is hard, noone can tell you how hard it is, until you tried designing even a simple Iso game in more detail. The learning curve is steep, very steep and you will produce much much shit. That is how you learn, not by endlessly browsing for the best solution.

I don't say that you shouldn't try educating yourself (for me, this would be the Entity Design), you also don't have to reinvent the wheel, if you can learn from the mistakes of others, GREAT!

But if your learning process keeps you away from the actual task, programming, you should rather go ahead and make bad design choices.
Nothing should take away you actually programming something.
It kinda did for me, so I stop worrying so much about making mistakes and just do them. I will find them soon enough, then I know why the design choices were mistakes in the first place.

So to any other new game programmer: you will do badly, that is why it is called "programming experience". Don't try to learn something from a mistake you didn't do yet.


I can die happy now! For realsies...

Posted by , in Info, Coding, Rambling, C++ Endeavor 19 October 2012 - - - - - - · 1,017 views

...yes, I really am that happy.

"Why" do you ask? Simply put:
IT WORKS!! HAHAAAAAAA!!!! SUCK ON THAT SEVENTH CIRCLE OF DEV. HELL!! Screw you guys, I'm going home.

(If you haven't noticed already, this entry has the Rambling tag)

It works, I still cannot really believe it, I feel a bit lightheaded from that, or maybe it's the hangover, or the chocolate flash, I don't KNOW and I don't CARE, It WORKS.
I've found my light, my saviour, my knight in shining armour. Alright that sounded a bit gay, but moving on. Hail the almighty QTCREATOR. I finally have everything besides the coding. Everything I that was so nervewracking, i can really start to do what I came here to do: Program a game and chewing bubble gum. And I am all out of gum! DUN DUN DUUUUN!
And to beat ass, never forget to beat ass...

"So why is it so good?" QTCreator WORKS! YES! It is easy to install on all platforms I currently want to develop on (windows+debian), a QMake script is fairly easy to understand and yet the easiest Makefile generator script I've found. It as a powerful testing framework and I think the most intuitive switching between "editing, debug..." views. The editor itself is pretty much what you'd expect in an IDE these days.
It's not without it's faults, the "add library" dialogue only allows for .lib files, whick is pretty anoying for your .dlls. Sometimes the design tries to be too posh, too much "Look at me, I am a hip, cool IDE! Not your nerdy Visual Studio, nobody laughs at you when you use me!" I don't need a good looking IDE. It has to work and be productive, I don't care how it looks.

The next weeks post is a bit more structured and maybe a bit depressive, because it is not the day that you think it is. I write these entries sometimes weeks earlier. My entry two weeks ago "Watching people play games..." was written back in August. But the Context never seemed right to post it, so I always pushed this entry further back. I started writing this entry back in october, but you see this in the middle of october, I am actually writing to you from the past!!
That means, sometimes you have an outdated project update and sometimes posts that follow are older than the current post, like in this case. I actually have the next 2-3 entries almost completely written. Next weeks post is older and maybe a bit depressing, hopefully you still find some value in it.


I'm already rambling, I feel like writing some more: WTF, my post was featured? I don't know what the requirements are to get your post featured, I don't know if a human or an algorithm selects the featured entries. If it was a human, I have no idea why he or she thought the entry "Watching people play games..." was so good. I've written most of it in an hour, didn't put much thought in it and even I thought it wasn't terribly interesting. Maybe mildly entertaining, but that's it.
I don't want to bitch around, I like being featured, it makes me feel important. I just don't understand why this entry, and not one of those I actually put hard work in it.


Why it is called Game Design...

Posted by , in Lore/Story, Info, Game Design 12 October 2012 - - - - - - · 977 views

Soooo... this weeks post originally was more on the gameplay, but first to something completely different:

As I started to think more about the engine design, I couldn't get my head around how I should switch correctly between the "overworld view" and "fight view". As it turned out, the actual problem was lying somewhere else, I don't really know what I want to achieve with the "overworld view". Before I write an addendum to the "Why is my game fun" series, I should think about what you do with what you do. And to know this, I need to be more clear about the story and the first 10 minutes of the mission...

I start to see, game design combines everything: Programming, gameplay design, story, level design, sound/music, you even care about what the gamer should feel at a specific point in the game.
The term "Game Design" makes sense, it is hard to fathom the extend of your design work you have to do. I Also learned that you shouldn't lose the overview of the whole game, and that you cannot finish programming when you don't really know what kind of gameplay you want to have... everything depends on each other.

There are two fields I didn't think much about, that also influence the overworld view: Story/Lore, which should help define the overall mood and style the game has, the music, because nothing is more teeth grinding than music that does not fit the game, and the enemies you fight. In the end, the overworld revolves around the monster activities.

What I ought to do is make a bit of a mix of what I didn't do so far, concentrate on everything else than coding and design. I think i schould look for a "game soundtrack". Nothing official and I probably won't put it in the game because of copyright. But nothing helps setting the mood like the music.


Watching people play games...

Posted by , in Info, Rambling 05 October 2012 - - - - - - · 1,234 views

... doesn't sound creepy at all does it?

I had to write in ruby, didn't have a lot of sleep and just ate a piece of chocolate, hellllooo rambling time!

Soooo in this weeks post I talk about... what did you guess? About watching people play games.

For quite some time I've been into watching people play video games on youtube. I especially like SSoHPKC and the Creature stuff they do, but that is an other story, maybe for an other rambling post.
To those who don't know them, they essentially record themselfes playing video games and talking about random stuff.
The weird thing is, I think it does more than just entertain me, I think it helps me looking at game design from a more neutral standpoint.
"You are weird" you say? I have to tell you: I am watching people play games, what do you think I should be?!

But in all seriousness, it really does. More often than not, the commentary breaks the atmosphere of the game. "Why should that be a good thing" you say? Well, sometimes it seems games brush over bad design or bad story elements by providing an atmosphere that draws the players attention away.
Breaking away the atmosphere with the commentator shouting "SHOTGUN RAAAIIIIN" lets you notice all the dips and bumps.
The best example: try watching Call of Duty: Black ops, or COD: MW3 for that matter.
The singleplayer SUCKS! The story gets increasingly embarassing, the gameplay has stayed the same since Modern Warfare 1, the only thing that makes the singleplayer acceptable is the atmosphere. The distributed "I am so awesome" events like breaching and a few total badassery moments at the end of the game to make you forget about it.
COD: Black Ops at least TRIED to have an interesting story, they put effort in a plottwist that you maybe could not have seen coming.
But the latest MW3... seriously?! Have you ever had a knive in your heart, didn't care about bleeding, survived a World War 2 emergency medical procedure and walked around shooting stuff few days later? Was he faith healed by Peter Popoff? They didn't even try...
I couldn't watch SSoH play MW3, it just was too boring. Same shit, different day. On the other hand, watching him play Batman: Arkham Asylum was just awesome. Not only becaue he failed hilariously, but even by watching the game, I was drawn into the world of this game.

But back to watching people... play games...
Usability engineers have a technique called "talking out loud", they try to encourage a test person to talk out loud what he/she thinks while using the gui. This isn't just for shits&giggles, it helps evaluating the design, finding design errors. In other words, there are people on youtube doing exactly that for video games! For free! Day and Night!


Next week is business as usual, better structure and fleshed out thoughts. For today, I just wanted to ramble around a bit. See you soon!


The boring part of being a Developer or: Why I failed

Posted by , in Info, Coding, C++ Endeavor 28 September 2012 - - - - - - · 1,401 views

Soooo... this week I write again about the boring part of developing: Software Construction


If you've read my ramblings on "The seventh Circle of Dev Hell", know that I have my problems with the toolchains for C++, so this is basically part 2 of the Dev Hell, but more structured and no random sentences. Since I don't think C++ veterans have any interest in a text of my first experiences with different C++ tools. I aim this at the C++ newbie, like I am.
I don't have a lot of experience with the toolchains, all of this are the first experience I had with them, so don't take it too seriously when I write "tool xy sucks", I havent worked with them for more than a few hours.
"What are the best tools to use" you ask? None of them, they all suck.


The Problem with the C++ tools
They are old, mostly.
As I sink more and more time into everything around the coding, I see now why C# and Java use a separate RE. I suddenly like Ant + JUnit. It is just so easy to set up build scripts and tests for your platfom, that happens to work on others as well.
I am very disappointed by the tools available for C++, comparing to what is at Java/C# disposal, they are shabby.
This is managable for a C++ newbie if you get some help from tools, like Eclipse CDT that takes care of your make files.
Good for you, but if your project should be platform indipendent, so should be your makefiles (traditional makefiles aren't afaik). And here is where the pain starts, here is where you sink too much time, here is where you have to learn more than you think.
There are tools around, like CMake or QMake. CMake is fit for the job, but you don't. It isn't an easy tool to work with, at least for me, it really starts to get on my nerves.
That's why you shouldn't use C++ for your first big project. You spend so much time figuring out how everything else besides the coding works, how you install tool XY, how do you link correctly, how the HELL do you set up a good cross plattform build environment??

Setting up such an environment isn't hard, if you have experience how you do it. I would love somebody explaining to me his/her setup why it was done that way and not otherwise...

But alas, there was nothing I could find that satisfied me. So the short story: I gave up.

I decided to not go for platform indipendece, I first aim for Linux 64 bit environment. And if the unexpected happens and the game suddenly gains huge popularity, I can make the project cross platform with roughly the same amount of work. But then, it would be worth the time.






December 2016 »

S M T W T F S
    123
45 6 78910
11121314151617
18192021222324
25262728293031

0 user(s) viewing

0 members, 0 guests, 0 anonymous users

Latest Visitors