• Content count

  • Joined

  • Last visited

Community Reputation

116 Neutral

About roger_hq

  • Rank
  1. MA:XX 3D shoot-em-up game now in Beta

    Anyone had a chance to try the game? Any and all feedback appreciated.
  2. Hello, I've recently published my first 3D game, MA:XX and is now in Beta test. MA:XX is a top-down asteroids-style shoot-em-up game using DirectX 9c on Windows. It uses a Direct3D graphics scene-graph based library I wrote and a Game Object library I wrote for scene graph and game object management. MA:XX supports keyboard and game controller game play, internet high-scores list, several different kinds of bad guys and power-ups, and never-ending levels (stages) of baddies trying to destroy your ship. Image of the Day topic here on You can learn more about the game here: Deep Blue Future - MA:XX project page You can download the game here: Deep Blue Future - Downloads page You can look at all of the high scores submitted by players here: MA:XX High Scores Page Please feel free to download and install and let me know what you think. If you find bugs/defects, or have suggestions, please feel free to use the defect submission web site link included in the Start menu links provided with the installer. Thanks for trying my game, I hope you enjoy it as much as I did in creating it! roger_hq [Edited by - roger_hq on April 16, 2009 10:23:06 PM]
  3. Space combat Game - Star Blast

    Downloaded, started up fine. Went to "select ship" screen, selected ship. Hit Play. Application crashed. Didn't see a log file to forward to you. This looks like a great game, I hope you work out the issue! System information: Windows XP Service Pack 3 Pentium 4 2.8GHz 3.5 GB RAM Radeon X1650 AGP graphics Cheers, roger_hq
  4. The difference is actually quite significant. When the calculation comes back from DrawText() or GetTextExtentPoint32(), in one example, I get a value of 134. When I count the pixels on the screen, it is actually 609 pixels wide. It's a pretty major difference, which makes me wonder if I'm interpreting the value coming back from DrawText() / GetTextExtentPoint32() correctly. Also note, that I am using a LOGFONT structure, which I set the height/width of the log font before I select it before each measurement: logFont.lfCharSet = ANSI_CHARSET; logFont.lfHeight = 100; SelectObject(hdc, &m_hFont); GetObject(m_hFont, sizeof(LOGFONT), &logFont); Not sure if this makes any difference, I suspect not. I also did as you suggested and changed the code to use the DC I should be (oops!), and it didn't seem to have any affect. Any other thoughts as to why the two values would be so far off?
  5. Correct - I take a screen shot, and count the pixels. I compare that to the value my application logs for the calculated width of the string, and they never come out the same. There seems to be some kind of discrepancy either with the conversion from logical units to pixels or how I'm interpreting the information that comes back from GetTextExtentPoint32().
  6. Hi all, I am currently struggling to figure out how to determine how wide a string of text is on the screen, particularly when I change resolutions in my Win32 application. The reason I want to determine how wide a string will be, particularly between resolution changes, is that I want the strings to be of the same length relative to the size of the screen, regardless of what resolution the user picks. Note: Using C++ MSVC 6.0 and Win32 application. Here's how I create the font handle (I do this once): m_FontHandle = LoadResourceFont(&m_hFont, (LPCTSTR)(MAKEINTRESOURCE(IDR_RT_FONT_1)), "RT_FONT", "Font 1", -MulDiv(32, GetDeviceCaps(hdc, LOGPIXELSY), 72)); Here is how I try to determine the width (in pixels) of the text that will be displayed: "Calculate Width": float GetTextWidth( const std::string& text ) { HDC hdc = GetDC(NULL); SelectObject(hdc, &m_hFont); RECT screenRect; ZeroMemory(&screenRect, sizeof(RECT)); GetClientRect(m_g->GetHWND(), &screenRect); UINT screenWidth = screenRect.right - screenRect.left; RECT rect; DrawText(hdc, text.c_str(), text.length(), &rect, DT_CALCRECT); // float width = ???? . . . } I've tried several different ways to calculate the width, to no success. When I count the pixels wide for the text, it never came up to be the same as the formula calculation I did in my code. Has any one tried this before? Any help would be much appreciated! roger_hq
  7. Interesting, I didn't realize that doing stunts would give you ammo, I'll have to try that out. I did get the ammo power-ups from destroying the enemies but I'll give the stunts a go tonight. I also saw that you give demos on how to do the stunts, but it never connected for me that I would get power-ups from them, maybe I just didn't see that bit. Keep posting on this game, I enjoyed it very much, and I'd love to hear about updates. Cheers, roger_hq
  8. I loved this game. Very fun, and simple concept that you've captured very well from the original game. Strong work! I would agree with the above poster that the default configuration for a/s/w/d would work better for movement and mouse look for targetting. I simply could not wrap my brain around the default control scheme. Once I converted to the known paradigm of movement with the left hand and targeting with the mouse, the game became much more fluid and easy to play. I also would recommend either more ammo, recharging ammo, or more ammo power-ups for peoeple like me who love to blast away. ;) It got somewhat frustrating to constantly be running out of ammo, and then you were basically helpless and had to restart the game. I am assuming there is some conservation of ammo message in there somewhere, but it seems that the default amount of ammo is a bit on the small side. Anyways, nice work! Very well executed.
  9. I am a Computer Science Department Advisory Board member for a Washington State high school, and have worked with this high school's technology teacher extensively on developing curriculum for her computer science classes, specifically in regard to game development. I'd be happy to give you input on my experiences. Send me an email if you are interested in talking and we can chat off-line. Cheers, roger_hq
  10. Collisions for Ranged attacks?

    For the 2D scroller I made, I just kept one list of projectiles for the player and one list of projectiles for enemies (I used stl vectors actually, but that's another topic). I assumed enemy projectiles would not hit enemies and player projectiles wouldn't somehow loop back and hit the player. I didn't do space partitioning per-se; each projectile in the above lists would be updated in world-space coordinates (tile-agnostic). The game map was broken down into large tiles; each tile had a list of enemies that were on that tile. Therefore, enemies knew which tile they belonged to. So, to determine if a player projectile collided with an enemy, I iterated through all the player projectiles currently in the game, and assigned them a tile. I did this by using a conversion function that determined what tile each projectile belonged based on the world-space coordinates of the projectile. Once I knew which tile a projectile belonged to, on each update pass of the game, I would iterate through all the projectiles, find out which tile it currently was "stationed" on, and only checked the enemies on that tile for collision. This keeps you from checking each projectile against each enemy on every tile. This seemed to have pretty good performance on 2d top-down scroller. There were usually a lot of projetiles flying around as well. Well, hope that helps. Keep in mind there are tons of ways to optimize collision detection. Try not to over-optimize in the beginning. Come up with something that is straightforward and make sense.
  11. Collision detection question

    In the SMUP I developed I used a simple bounding box approach; a master bounding box which covered the entire graphic, and a list of small bounding boxes that covered only the portions of the bitmaps that were actually part of the enemy. If the bullet in question did not hit the larger bounding box, then I just went on to the next enemy. If it does intersect the master bb, then check each of the internal ones to see if it hits the actual enemy parts of the enemy bitmap. I was using DirectDraw 7 with lots of bullets and bounding boxes (exact numbers I couldn't say, but I never had any problems) and it seemed to work very well. The same could be applied for 3D, with a outer sphere for master collision detection and maybe smaller cubes or rectangles for the "sections" of each collidable object. Check the outer sphere first, and if its a hit, then move on to the inner boxes for more realisitic collision detection. Hope that helps.
  12. Looking for a game

    I thought that this game is what you were talking about, but since the website is a 404, its hard to say. I also remember a game called Defense Condition, but couldn't find anything about that either. Good luck with your search!
  13. I am using DirectX 9c and I can get the .x exported models to load correctly. Again, I can't remember which of the 2 versions I use (and I have to set some options in the export dialog in order to get it to work), but I do get my models to load with no problems. I'll look at it tonight if I get time to tell you which exporter worked for me and the options I had to set.
  14. Carpal Tunnel Syndrome

    I have to wholeheartedly agree with Noods post, plus some of the other things previous posters have mentioned. I am a professional software developer and I also hobby game develop on my own time, so I was typing and mousing alot (particularly on a small mouse and a cramped laptop keyboard). Recently (read: within the last year) I started developing tiredness, then numbness, then pain in both of my hands and wrists. It eventually became stabbing pain in both of my hands, particularly in the joints that start the fingers, in the wrists, and a fiery pain in my elbows. I was scared to DEATH. My arms are the means I keep food on my family's table, so you can understand that I was very nervous about my future. I don't have carpal tunnel, but it turns out I got severe tendonitis and perhaps RSI from typing, but most importantly, MOUSING too much. I talked to a doctor and physical therapist, and now, while not totally pain-free, I can continue to do my work (my game devving has suffered as of late though). Here would be my suggestions: 1. Like Noods says, get some COMFORTABLE arm braces and wear them to bed. This will help you dramatically. Also use the arm braces when you type/mouse. If they have a hard plastic wrist component along the underside of the brace, that can go a long way to relieving pressure on tendons/nerves that get compressed against your keyboard/mouse. 2. Get a and get used to using an ergonomic keyboard. These keyboard releive some of the pressure on your wrists, from not being bent at an unnatural angle. This is another must. 3. Switch hands when using the mouse. While I haven't tried this, several of my friends/colleagues have tried this and have had success with it. Being ambidextrous with a mouse will give your tired arm a break. I don't particularly have any trouble if I'm just typing; my RSI came on from typing on a cramped keyboard and using the mouse too much. 4. Take a BREAK! You are 17, and I'm guessing you really don't need to be typing so much, especially now that school is out. Take this metric into consideration: for every week you work with CTS and with pain, add 1 month to your full recovery time. So if you never take a break, you can quickly see how you will never get better. I took a break for several months after the worst of my symptoms, and am so much better off for it. I know it sucks, but don't play on the computer for a while (read: don't play games or type, the longer the better). As in several months. Just because your pain goes away doesn't mean you're cured. 5. Get some physical therapy. There are several excercises you can do to help with pain. Google "Tendon Gliding Excercises", and you should find some excercises that may help you get over your pain. I used to think that RSI or CTS was because of weakness. I now know that its not. I wouldn't wish it on anyone, especially on someone who needs to keyboard/mouse for a living. Take a break and give your body a chance to heal.
  15. Yes, Milkshape comes with a .x exporter, at least in the version I have (1.7.4 I believe?). There are actually 2 different .x exporters, iirc. One of which I can get to work, the other of which I could never get to work (probably user error). Anyways, the version of Milkshape I use has 2 exporters which you can use, although its been a while, and I can't remember which of the 2 I have used successfully.