• Content count

  • Joined

  • Last visited

Community Reputation

119 Neutral

About simast

  • Rank
  1. Comparing a C/C++ run-time to the Java/.NET framework dependency is a bit too much? The game I am working on has around 7 binary lib dependencies.. And they are all statically linked. The EXE has zero dependencies (other than standard Windows DLLs of course). Heck, it does not even need an installer. The only reason why most of the C++ games require MSVCR DLLs installed are because developers are lazy, don't want to build static libraries themselves for their compiler/MT/MD support and just link with the binary DLL packages they can find on the net.
  2. Personally I think C/C++ is beautiful. You haven't learned programming until you are at the hardware level C/C++ allows you to be at. Still, for a newcomer - learning C++ (or even just C) is a bit overkill. As all the others, I do suggest starting with something more abstracted (Java/Python/C#/you name it).
  3. Scripting

    I have just finished embedding Google v8 JavaScript engine in my game. The API is simple and flexible and quite easy (once you get past the basic concepts, such as contexts and Local/Persistent handles). The point is that JSON is a subset of JavaScript so you can employ the same v8 engine for data description (JSON) and scripting (JavaScript).   Writing your own scripting language and interpreter in the year of 2013 is just silly. You would be surprised how complicated modern-day scripting virtual machines are. For example, v8 does not interpret anything - it compiles the script directly to machine code. Furthermore, it patches the code on-the-fly optimizing it even further. Theoretically your v8 JavaScript code can run faster than C++.
  4. Strange bug in Release mode

      I have recently seen some weird things happen when I use templates in VS2012. Have your tried to "Clean" up the .obj files and do a full rebuild of the project?
  5. I like engines. But more importantly, I like well abstracted, stable, flexible libraries. Isn't it great to wake up in the morning and realize there is a new 1.x.x release for one of the libraries you are using? It's like another person on the team did the job while you were sleeping. Same thing applies to engines.
  6. Another approach (with regular expressions and boost lexical cast): #include <regex> #include <boost/lexical_cast.hpp> std::cmatch matches; std::regex regExp("\\s{0,}([0-9]+)\\s{0,}x([0-9]+)\\s{0,}x\\s{0,}([0-9]+)\\s{0,}", std::regex_constants::icase); if (std::regex_match("100X200 x 300", matches, regExp)) { unsigned int width = boost::lexical_cast<unsigned int>(matches[1].str()); unsigned int height = boost::lexical_cast<unsigned int>(matches[2].str()); unsigned int depth = boost::lexical_cast<unsigned int>(matches[3].str()); }
  7. Game save system?

        But does that really make sense? What do you get from a SQLite database if all you want is to do a big one load and save? You get the atomic write operation, sure, but still, it seems overkill and over-engineering to me. The only place I would use SQLite is in a scenario where I intend to query for the data when I need it (as in with real databases). Probably a good example is a Football Manager type of game.