Brain me

Members
  • Content count

    46
  • Joined

  • Last visited

Community Reputation

170 Neutral

About Brain me

  • Rank
    Member
  1. Question about classes (error I don't get)

    I am mostly self-taught, but I'm actually taking formal courses at college right now. I'm not really learning very much from class, but we can't claim credit for engineering courses at my university. Having gone the self-taught route and then the formal route (textbook + instructor), I am in the strong opinion that textbooks are NOT a good idea until you have more exposure to programming. Many of my classmates don't have a clue what's going on because any textbook worth its salt goes into detail the beginning programmers can't handle. What I would recommend are the following online tutorials, AFTER which you should pick up C textbook. I recommend a C textbook because it will cover very low-level (somewhat esoteric) information that most programmers are unaware of, and it will do a very good job because the C language is relatively small compared to the C++ language, allowing a more in-depth coverage. After that, proceeding to C++ is a walk in the park. Here are the online resources that help(ed) me out: http://www.cprogramming.com http://www.cplusplus.com/doc/tutorial/ http://www.iu.hio.no/~mark/CTutorial/CTutorial.html http://www.codeproject.com/ http://www.gamedev.net These aren't a comprehensive list at all, but the first two were my mine source of information for a solid few days during a really boring summer... As far as textbooks go, the number one text that I recommend is "Introduction to Computing Systems: From Bits & Gates to C & Beyond". Any version will be good. Hope this helps.
  2. Question about classes (error I don't get)

    When you initialize a variable, that "object" resides somewhere in memory. For your weapon class, each time you create a weapon weapon RustySword; weapon RustyAxe; weapon RustyMace; they each reside in a separate region of memory. The data within each weapon is independent of data in the other weapons. When you pass integer parameters to the functions within your "weapon" class, you use those parameters to set data within that particular instance of the class. If you want to set data within a player class based on a particular instance of the weapon class, then you need to pass that instance, and not a string, which is itself different data having nothing to do with your variable name. class Player { public: Player( int health, int intelligence, int strength, int gold ); setCurrentWeapon( weapon w ); // ... }; //... void someFunctionThatCreatesWeaponAndAssignsToHero() { weapon newGodSword( "God Sword", rand() % 3 + 5, 100, 10, 20, 20, 50 ); hero.setCurrentWeapon( newGodSword ); } It sounds like you might have tried to start running before learning to crawl. You really should learn more about variable declarations, initializations, scope, functions calls, the stack, and the heap before you dive into classes. You could probably cover the basics of these topics in an hour or two, but they are extremely important fundamentals.
  3. Java problem

    You're updating yspeed but never recalculating falling. There's an infinite loop. Also, you should replace while( falling = true ) .. With while( falling ) // or while( falling == true ) ..
  4. Simulating Boredom (Yes, Seriously)

    The game I've been designing for a few weeks with a friend has a skill system similar to this. Our game doesn't present the experience to the player, it's kept in the background. Not all skills level the same way, and how much it takes to level a skill depends on other skills and the character stats. On top of that, after not using a skill for a certain period of time, the skill starts diminishing, and skills diminish at different rates depending on which skills you use the most. A diminished skill is easier to level up to the base level than a normal level up, but it's not instant. In this way, we're hoping players just stick with the style of character they want to have (warrior, mage, rogue, assassin, etc) because stopping to raise other skills will only start diminishing the skills the player uses more often at a faster rate. However, because of the differing diminishing speeds, a skill not used a lot takes a lot longer to start diminishing. Because of this, we're hoping that non-essential skills will level up through the quest line instead of repetitive actions at the beginning of the game.
  5. Breaking into a Degree

    I'm only a Sophomore in Software Engineering, but I've already finished my minor in Computer Science. In all the CS courses I took, I learned the material rather quickly while the CS students struggled with some of the lower-level stuff. I would recommend reading Introduction to Computing Systems From Bits & Gates To C & Beyond. I let one of my CS buddies borrow it and he said he learned more from it than any of his CS classes. You can get the international edition for like $30 bucks, or one of the older editions for cheaper at a used book store. Good luck.
  6. Degree

    I'm studying Software Engineering at The University of Texas. I wanted to pursue a degree in Computer Sciences, but I like Software Engineering more because I prefer to work closer to the hardware. I have two close friends in Computer Science and I get a lot of questions from them regarding memory management, computer architecture, and operating systems because they aren't covered very well in the computer science department. Instead, they can write about a hundred different searching/sorting algorithms, build all sorts of data structures (although not quite understand what's going on behind the scenes), understand neural networks and a bunch of topics that are a little too abstract for me. I only delve into game programming as a hobby, but my two cents are that if you want to get into the industry, you need exposure to both sides.
  7. Learning Path

    Quote: They got video card manufacturers to start making DirectX specific cards, they shipped versions of windows with drivers which were intentionally designed to make OpenGL run slower so that DirectX seemed like the better choice, and shipped OpenGL headers have been stuck at 1.1 forever. Microsoft isn't the only developer for opengl drivers for Windows platforms. The latest drivers from nvidia and ati are very reliable and fast.
  8. What exactly is a matrix?

    Symbolically, a matrix is just a way to hold the coefficients of a solution of m equations involving n unknowns (m x n matrix). However, in linear algebra, we can also define a matrix to be a list of n vectors in R^n space. Ex: [ 1 2 3 ] [ 3 1 7 ] [ 2 9 6 ] Can be understood as the coefficient matrix of a system of equations or as the three vectors, a1, a2, and a3, where a1 is the first column, a2 the second, and a3 the third. There are a number of operations we can do with matrices, but these only make sense if you understand that as a system of vectors, a matrix is a transformation of the vector you are multiplying from R^n space to R^m space. In graphics programming, we typically use a 4 x 4 matrix, which means when we multiply an R^4 vector by a matrix, a transformation occurs, producing a vector also in R^4 space. Ex: A(m x n matrix) * b(R^n vector) = c(R^m vector) If you consider matrices transformations, then we can describe the multiplication of matrices as the composition of transformations, just like when we compose functions. And just like the composition of functions, order matters. Ex: g(f(x)) != f(g(x)) AB != BA (generally) In graphics programming matrices are primarily used as transformations (or functions) that take a vector and produce a vector. By multiplying (composing) matrices, we can reduce the number of multiplications each vector needs. For a more complete definition, Google is your friend, but a text would be better. I purchased a text on linear algebra at Half Price Book Store for $4.99 (no joke) for my class this semester.
  9. Quest items in freeform games

    I agree with Trinavarta. I hate killing/doing something ingame, only to find out hours later that I have to do it again because I didn't have the quest active. I remember back when I played Morrowind I died at one point, restored the game, and worked on this one quest for about an hour (travelling in this game took forever!), only to realized *AFTER* I killed someone that I forgot to start the quest after reloading the game... I think a relatively simple way to handle something like this is to allow players to gain quest items before they have the quest, but design the game so that you can't destroy items. Instead, if you sell or drop an item, the player has some log that they can look at and read "Precious Ring of Healing: Sold to x". If x hasn't sold that item, at any point you can buy it back from him, but if he has sold it AND the quest involving that item is active, you can question him about where he sold it. Just an idea though. Good luck.
  10. Learning Java

    I've always been a fan of JCreator for developing in Java. It's a very simplistic IDE, but it gets the job done. I've always hated IDEs that try and do way too much (Eclipse *cough*). As far as tutorials, when I first started learning how to program I found this tutorial: http://www.javacooperation.gmxhome.de/TutorialStartEng.html It walks you through the language while you're making some simple games. For me, this was great because it actually motivated me to understand the language because I was doing something more useful than System.out.println( "Hello, World" );... Good luck.
  11. College courses and AP exams

    I'm in my second semester at the University of Texas at Austin, and I know exactly where you're coming from. I got a 5 on the AP Computer Science AB test, and the test seemed like a joke to me, but the introductory Computer Science courses are even more ridiculous, so definitely take the exam unless you want to spend your first semester learning 2's complement, how to call a function (I'm dead serious - some people just CAN'T get it..), and how to declare and initialize variables... I'm majoring in Computer Engineering, but I have a friend I went to high school with who got a 2 on the AP CS A test, and he's taking those introductory courses bored out of his mind. Unlike the CS department, in the Engineering department at UT, you can't test out of any courses, so I'm sitting through a semester of Intro to C Programming. Anyway, yes, the tests are worth it because you can skip at least the lower 2 or 3 CS courses. Even more worth it is the AP Physics C tests. If you have time, get 5s on them. Seriously, I'm gonna finish here 3 semesters early JUST because of taking the Physics. But there are a few pieces of useful information in classes where you think you already know everything, so at least attend a few lectures to see if your professor is the kind where you might learn something "extra".
  12. Replacement for hit points and game overs?

    I enjoy the odd game where there's a unique solution to health, instead of the typical respawn at last checkpoint with no consequences, but what makes a lot of games addicting IS the challenge of not dying. I liked the system in Diablo II where when you die, you respawn in town without any of your equipment. When you made it back to your dead body, you recovered your equipment. There were only 5 towns throughout the game and they were separated by a LONG way by foot with lots of monsters, but there were waypoints that could teleport you close to where your body was IF you discovered them. Not only that, but there was also a penalty towards experience and gold when you died. I'm not saying to replicate their system, but completely eliminating a health gauge and dying in a COMBAT game??
  13. Frame Rate Independent Article

    It shouldn't appear to jitter because with interpolation you're calculating motion in between two time steps. The only reason it would jitter would be if the interpolation carried you past the final time step or the time steps were not accurate. With 60 logic updates per second, the time between states is already very small (~16.67ms). With interpolation, the difference between the last frame and the current is even smaller. The resolution of your interpolation calculations are very probably doing something you're not expecting because of such small values.
  14. Keeping ally players alive.

    If the AI controlled characters receive less damage than the currently controlled one, they will live longer but not be invincible. Unfortunately, anything you do is going to be slanted. If the AI is so good that the players don't die, there's no reason to switch between them. If the characters just hide or defend, then switching between them doesn't bring any tactical advantage. I guess you just need to decide which way fits the game play better.
  15. Loss of Control: Addiction / Impairment

    I'm implementing some loss of control in the game I'm slowly building in my spare time. The game is based on the Wheel of Time fantasy series, and soon after the main character learns how to control his magic he realizes that he can hear a long-dead man's voice in his head, and he often remembers some of the man's life. The man in his head slips bag and forth between sanity and madness and every now-and-then tries to take either take control of the magic, the main character's body, or both. I haven't gotten close to implementing this and I'm still polishing some ideas. I'm not sure how I'm going to indicate that the man in the head is trying to take over, but I think it would be interesting if when the man in the head does manage to take over the body the player has to struggle to make it do what they want. For that affect and a few others, my PC game is going to be built around an Xbox 360 controller, and when the character happens to be in those states, the rumble affects and sensitivity of the thumbsticks should be interesting. Thoughts?