Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

588 Good

About sirGustav

  • Rank
    Advanced Member
  1. sirGustav

    A Resource Manager for Game Assets

      I've done exactly this. Works pretty well. https://github.com/madeso/euphoria/blob/master/euphoria/cache.h   I noticed however that the create function probably doesn't need to be a parameter, should change that...
  2. I'm in. Probably be making a sourcery like game with libgdx. This will probably mean that there is much text to write, and I'm not a native speaker, so this might be a stupid idea, but hey, that's what jams are for, right?
  3. Python has pep8, C++ has google c++ styleguide, cpplint.py, cppcheck among others, for C# there is stylecop and more. I googled and searched but I haven't been able to find anything relevant for GLSL.   So as the title says, is there a styleguide and/or a lint tool or anything that helps me write better GLSL code?
  4. I've might have a working implementation now. I changed fixOpenGlNegativeZ to a negative z scaling matrix since I probably want what is called a left handed coordinate space and the OpenGL faq recommends doing this. Then I changed my lookat from quaternion_rotation_aim_at(ret, from, to, up, cml::axis_order_zyx); to cml::matrix_look_at_LH(mat, from, to, up); cml::quaternion_rotation_matrix(ret,mat); and that apparently fixed the problems(I still don't know what the difference between those functions are). that I at the moment can detect. I will have to do some more testing but for it seems to be working
  5. For months I've been trying to get object and camera placing to work, and it feels like this should work, except that it is missing a character/sign somewhere causing everything to fail The properties I'm trying to recreate are: In is positive ZRight is positive XUp is positive YIdentity quaternion is facing In/positive z This is how I create my projection matrix: gluPerspective(camera.fov, aspect, camera.znear, camera.zfar); pwnAssert_NoGLError(); This is how I build my camera matrix: // camera.rotation is a quaternion representing the rotation of the camera, camera.position.vec is the vector of the object const math::mat44 fixOpenGlNegativeZ = cmat44(RightHandAround(Up(), Angle::FromDegrees(180))); : mat( fixOpenGlNegativeZ * cmat44(camera.rotation) * cmat44(vec3(-X(camera.position.vec), -Y(camera.position.vec), Z(camera.position.vec))) ) This is how I generate the modelview matrix per object that is sent to gl through LoadMatrix // mat is the camera matrix above, pos is the vec3 worldspace position and rot is a quaterion representing the rotation of the object return mat * math::cmat44(pos) * math::cmat44(rot) My maths is cml based and here are their definitions: typedef cml::vector<real, cml::fixed<3> > vec3; typedef cml::quaternion<real, cml::fixed<>, cml::vector_first, cml::positive_cross> quat; typedef cml::matrix<real, cml::fixed<4,4>, cml::col_basis, cml::col_major > mat44; Along cml I have a few wrappers, mainly ©onverter functions beginning with c and ending with the resulting type, like cmat44 converting it's argument to a 4x4 matrix. cmat44(vec3) = cml::matrix_set_translation cmat44(quat) = cml::matrix_rotation_quaternion RightHandAround = cml::quaternion_rotation_axis_angle To get right of a quaternion I do: // v is global Right(positive X) and q is the quaternion const quat r = q * quat(v, 0) * math::GetConjugate(q); return cvec3(r); // ignores w // the vector is normalized later before it's used If anyone can point out what I'm doing wrong or offer suggestions I would be glad edit: slighty changed topictitle to better describe the problem
  6. A while ago I started converting my pet project from a vanilla visual studio solution to a cmake generated solution. CMake is a cross platform makefile/solution builder. While it makes it easier to have the same configuration for many platforms and compilers, the biggest win this gives (imo) is that you can comment and easily search your configuration files. Why I haven't converted to cmake earlier is because I though that I had not influence over how the output looked, however I recently found out that with source_group you can instruct how the files should be laid out in the solution explorer and, as far as I can tell, it supports placing files directly under the project node, making the solution tidy: source_group("" FILES ${game_src}) One downer is that you have to type the files to add. While this isn't that different from how visual studio works it is irritating. There is a glob command that can list files from a directory, and while it can, and some projects do, use this as list source files, it isn't recommended. I didn't want to go against recommendations and I didn't want to type files I decided to write a tool to write the files for me. So... two weeks of pythonscripting and four revisions later(iirc) I can add this to my cmake file: #autogen this: include(game_src.cmake) and that tells my cmakegen.py script to autogenerate game_src.cmake in the same folder as the "caller". While the generated files are manually added to hg, and you have to run cmakegen.py when you add new files it support relative include paths (though it is undefined when two different files include the same cmake file) and it does generate the same output on both windows and ubuntu.
  7. I am Gustav, I am from south sweden, and this journal is hopefully where I'm going to write about stuff. I'll probably be reposting some of my older posts from my other dead blogs and I got some content in the pipeline and I think this will mostly be about code and gamedesign on my game. Speaking about the game, the game is a third person shoot/beat em up with soldiers, wampires, zombies and wherewolves. Since I started designing on it back in 90-something, and coding it in 01/02 something, quite a bit has changed. I've gone through: 4 name changes (was "the best", "infection", "infection: survivors" and now "survivors")a change in perspective (was a fps)at least 2 gamplay changes: It was, and still is, a shoot and kill and walk through the environment, but there was a period of it being a travel back and forth between camps of survivors, delivering messages.3 different languages (C, C++, C# and now C++ again)3 revision controls (copy when needed, svn and now hg)2 engines (genesis 3d in the first write and since then custom open gl ones)3 opengl startup libraries(sdl, custom and now sfml)and at least 5 total rewrites With those stats out of the way, I started on this rewrite in July 2009, and I decided that I only will refactor in the future, so I converted the svn to hg less than a year later and it probably wont be long until I start on the refactoring as the rendering engine doesn't look like my target api. In the mean time I probably are going to change from my custom math library to cml (or something), visual studio project to cmake and intermediate mode to vbos, to name a few "smaller" changes that also need to happen. For thoose who like to have a look(I welcome feedback btw), my game/engine can be found on code.google.com/p/pwn-engine/. I'm not sure I'll be putting survivors related code there however, since I plan to keep everything datadriven. My c# attempt, among my other c# projects, can be found at code.google.com/p/prettygood/ Here are a few screens that I managed to dig up, for those that are wondering The first version, C and genesis 3d: http://i.imgur.com/v6u9r.jpg Some ot the later rewrites, still pretty old, I guess about 4 years ago, it might be my last C++ version before I tried C#: http://i.imgur.com/nC5Kt.png phew. This was fun, digging though the past. If noone has anything against it, I'll probably dig though my other games and since they doesn't have as much history I'll probably go a little more to the depth, both code, design and graphics wise.
  8. Language doesn't really matter, as long as it's a good one. C++ is not a good language, as it takes too long to compile so I wouldn't call it rapid :) Regarding native, I would say that I would like native look and feel, but it doesn't need to be native widgets. PySide seems like a good choice, and from what I can tell it's made by nokia (or a branch)
  9. Hi all! I'm considering throwing out C# as my script/utility/rapid prototyping language for some smaller(both less overhead and smnaller download when deployed), cross platform solution(windows & ubuntu, osx as a bonus) solution. I don't really want to give up the wysiwyg gui editing and debugger that visual studio has(though I'm willing to compromise), so after checking out some frameworks I discovered PyQt, however it seems that it has some problems(closing thoughts refers it to a big hack). PySide seems better but it's in beta, so does wxPython, though I'm having a hard time judging what is good and what's not. So what I'm mainly looking for is tips about other rapid development frameworks, what works and what don't :) This focus on python doesn't mean that I want python frameworks, just that I've mainly found python frameworks and they seem like a valid replacement. Just for reference, some of my c# scripts/utility applications: * appplication that parses a visual studio solution, writes a graphviz file of the dependencies between the projects and runs dot on it * application that given a list of (mp3) files, figures out valid id3 tags based on filename following certain rules * application that from a list of unstructured video files, parses info from filename, gets title from a public database and places the series and movies in a predefined structure * various smaller editors for various configuration files. ...like my games, most of them are uncompleted :)
  10. As far as I can see, nothing is wrong with your code, and I believe my code looked roughly liked that before I rewrote my image loading, as I believe sfml could use more error codes than true/false. That said, I am using the 2.0 branch (and had other issues with dynamically linking) so this may not apply. Other than that, it sounds like what the others said, you're in the wrong directory.
  11. sirGustav

    Advanced Game Engine Design

    I pretty much stopped reading here... Quote:Original post by Scrut Cmon you know wtf this shit is ... but I'm wondering how you managed to access the hardware given that your "Platform" module already takes care of that. Anyways... this is all the information that I needed: Quote:Original post by Scrut But anyhow its fucking gigantic and havent made any games execpt like cell wars and little games, but done shit loads of mechanics and physics simulation Apparently your "game engine" is fucking gigantic and you haven't made any games. No, your not going down the right path.
  12. sirGustav

    what would make a scary fps coop game?

    Personally I don't play scary games, and from what I can tell, the games that people say are scary are pretty lame. Doom3 scares consisted of giving physics objects a thrust or letting a monster attack you from behind. Fear slowed down time and showed/hid a girl. Both was made unsettling with lots of gore, and made me jump with the help of stingers. I don't believe you can make a scary game, and a coop game is even harder, however you can include elements that people under the right circumstances consider scary. First, make the main enemy unknown. Like the smoke monster from lost or the pov of evil from evil dead. Anything that gets to close to it, is devoured and possible left as a bloody corpse. Make them scream as they die painfully. In these chase sequences players have to help each other through and over various obstacles to escape from the monster. The player has to control some weak character, someone that cant fight back. The player cant possible be expected to be afraid of something, if (s)he can kill it without endangering him/herself :) So I'm thinking teenage cheerleaders with pom poms, after some party going home and the subway crash through the ground killing several passengers, and awakening the monster. Then they have to split up, to move forward, perhaps some activation of some sort. Here are some creepy aliens like monsters that are part of the environment. The monsters in the beginning of solomon kane are a good reference, as is the cave monsters in The Descent, and (I'm guessing) pretty much any other vampire movie where the vampires lives in darkness. They players can work together and play it as army of two as one character draws the attention of the monsters and then flees; or sneak around and flip those switches that need to be flipped. Then you could have some breather gameplay, where the player could catch their breath and the girls could mourn their lost ones, chat with each other, cry and generally be afraid. Repetitive, yes, but I believe it has potential :)
  13. sirGustav

    [C++] Coding Styles

    I used to have no prefixes on member variables, but after getting bitten by a typo and, perhaps a lower than usual warning setting, like this: class Class { int member; Class(int membr) : member(member) {} }; Now I use a mMemberVariable scheme instead :) I prefix global constants with a k like kMyConstant, instead of MY_CONSTANT that I use for macros. I guess that's the only "hungarian" that I like :)
  14. sirGustav

    Help needed for parsing algorithm

    Recursion is one easy way of solving your problem... void Node::read() { string line = readline().trim(); if( line == "}" ) return; if( line == "{" ) { Node node = new Node(this); // set parent node.read(); // recursive call add(node); } else { add(new Attribute(line)); } } [Edited by - sirGustav on April 14, 2010 12:03:43 AM]
  15. Those are really different questions, you're comparing apples and oranges, though they are similar they are also different, let's break it down: Text-files versus binary: text files are easy to hand-edit and read, but harder to parse. What it really comes down to is do you need to hand-edit them? Pack level specific data or rely on already distributed content: This is less of a problem if you use some kind of vfs. In my current game I mount each levelfile(zip archive) to the vfs and loaded a common, recently mounted, binary level file. Using this technique it can reference both the common or level specific files in the same way.
  • Advertisement

Important Information

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

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!