Allegro.cc - Online Community

Allegro.cc Forums » The Depot » PixelBots Combat Prototype 1

This thread is locked; no one can reply to it. rss feed Print
 1   2   3 
PixelBots Combat Prototype 1
Max Savenkov
Member #4,613
May 2004
avatar

1. About the game.

For a long time, I've been a big fan of Kris Asick's PixelShips games. The whole idea of collecting something appeals to me a lot, and his projects had all the right ingredients. I always wanted to make my own game in the same vein, but without blatantly copying ideas. PixelBots (working title) is this game.

Despite sharing the idea of "gotta catch 'em all" with PixelShips, PixelBots is different in almost everything else. Rather, it's PixelShips meet X-Com meet Rogue (with maybe a dash of Quazatron). The focus of the game is tactical combat in randomly generated levels, where your team of bots will battle various enemies as they descend to the lowest level of old military installation. You will be able to capture enemy bots to supplement your collection. Each robot have different combination of basic parameters, weapons and abilities. And because I can't even make a Breakout clone without adding a storyline, there will be messages appearing here and there, through which you will be able to discover the past of your hero.

2. About this release.

Current release is not a complete game. It's not even an early alpha. Rather, it's a prototype of combat system. It has no other features beyond simple level generation, combats and some AI.

You can download it here: Pixelbots Downloads

Here's what's in:

    Video & Screenshots:

    Video:

    http://www.youtube.com/embed/kd38eRnYKKc

    Screenshots:

    Title screen and some options:
    {"name":"screen_p1_01.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/b\/d\/bd145d6e9a69dbc00710af82aecfa8c0.png","w":1040,"h":805,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/b\/d\/bd145d6e9a69dbc00710af82aecfa8c0"}screen_p1_01.png

    Your bots at the start of level:
    {"name":"screen_p1_02.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/6\/56a4439a9b8a5dbab4272b663378dae7.png","w":1040,"h":805,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/6\/56a4439a9b8a5dbab4272b663378dae7"}screen_p1_02.png

    Some enemies! We can't fry them, though, because the line of fire is blocked by wall. There is no fog of war or visibility calculations, as you can see.
    {"name":"screen_p1_03.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/f\/0\/f00948da97273f0e64e1e128a5f30625.png","w":1040,"h":805,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/f\/0\/f00948da97273f0e64e1e128a5f30625"}screen_p1_03.png

    Now this feller is about to get a load of laser blasts in his ugly bot face!
    {"name":"screen_p1_04.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/9\/b\/9b30d816a7175d3bb1a7b0cea0aa9320.png","w":1040,"h":805,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/9\/b\/9b30d816a7175d3bb1a7b0cea0aa9320"}screen_p1_04.png

    Somewhat worse for the wear, but still alive. One of the bots have a Forcefiedl on.
    {"name":"screen_p1_05.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/3\/2\/32b107cb8942d3dc39489c4ae72c8b4b.png","w":1040,"h":805,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/3\/2\/32b107cb8942d3dc39489c4ae72c8b4b"}screen_p1_05.png

    Green bot is the boss. He is not very hard, because he don't have special AI yet and can't use abilities.
    {"name":"screen_p1_06.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/4\/d\/4dbfd7f7936daac430dd4b791736d17f.png","w":1040,"h":805,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/4\/d\/4dbfd7f7936daac430dd4b791736d17f"}screen_p1_06.png

    "Trooper" bot is about to use "Grenade" ability.
    {"name":"screen_p1_07.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/8\/e\/8ef5ef321b064a8cc9ff50418d9d95d1.png","w":1040,"h":805,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/8\/e\/8ef5ef321b064a8cc9ff50418d9d95d1"}screen_p1_07.png

    3. Bugs.

    Since it's a prototype, this release may contain a lot of bugs. If you report them, I will try to fix them, but at this point I mostly care only about game-breakers.

    Known bugs:

      4. Feedback.

      I would greatly appreciate all feedback, because I want to make sure the combat system is interesting enough before moving forward. Post or send your ideas and suggestions!

      If the game crashed, it will try to send me a crash report. Please allow it to do so, this way I might be able to find and fix important bugs sooner.

      Also, please allow the game to send statistic to my server. It will allow me to get a picture of how people are playing this prototype. The game will not collect or send any personal data or identifying information about you, or your computer.

      Edgar Reynaldo
      Major Reynaldo
      May 2007
      avatar

      Due to the size of the window the game is virtually unplayable. There are at least two buttons off screen, and the bottom of the window is off screen so I can't scroll down with the mouse, and I also don't know how to attack. I figured out how to move at least. My native resolution is 1280x800 fwiw.

      Max Savenkov
      Member #4,613
      May 2004
      avatar

      Ah, that seems to be a problem. UI and window size is really not adaptable. 1024x768 is a minimum :( Let's see if I can hack resolution selection and scaling into that code quickly...

      Edgar Reynaldo
      Major Reynaldo
      May 2007
      avatar

      Max Savenkov
      Member #4,613
      May 2004
      avatar

      Allegro crashes when I try to run in fullscreen 0_o in alloc_glyph_region.

            data->page_lr = al_lock_bitmap_region(page,
               data->lock_rect.x, data->lock_rect.y,
               data->lock_rect.w, data->lock_rect.h,
               ALLEGRO_PIXEL_FORMAT_ABGR_8888_LE, ALLEGRO_LOCK_WRITEONLY);
      
            /* Clear the data so we don't get garbage when using filtering
             * FIXME We could clear just the border but I'm not convinced that
             * would be faster (yet)
             */
            ptr = data->page_lr->data;
      

      al_lock_bitmap_region seems to be returning 0 and nobody checks return value before accessing it.

      Maybe something is wrong with my build of Allegro, though, like an old version of Freetype... I mean, page_lr should probably be checked before use anyway, but why is it returning 0 in fullscreen mode only?!

      Otherwise, the most obvious reason is that format is wrong.

      EDIT: I'm not alone with this: https://www.allegro.cc/forums/thread/612544 Will try OpenGL now.

      EDIT2: OK, Fullscreen checkbox added, using OpenGL now, and also you can quit game even from main menu/title screen :) Archive updated.

      Mark Oates
      Member #1,146
      March 2001
      avatar

      I played it, it's playable. I had no crashes or bugs, but didn't make it all the way through. I lost to a Warrior, but it was fun. :)

      The first thing I noticed is when a craft moves, the camera follows. I'd just keep the camera in the same spot because it was a little bit disorienting.

      --
      Visit CLUBCATT.com for cat shirts, cat mugs, puzzles, art and more <-- coupon code ALLEGRO4LIFE at checkout and get $3 off any order of 3 or more items!

      AllegroFlareAllegroFlare DocsAllegroFlare GitHub

      Max Savenkov
      Member #4,613
      May 2004
      avatar

      [quote]
      The first thing I noticed is when a craft moves, the camera follows. I'd just keep the camera in the same spot because it was a little bit disorienting.
      [/quote]

      It saves some scrolling, though :) If enough people complain, I might make it an option, or remove it completely.

      Felix-The-Ghost
      Member #9,729
      April 2008
      avatar

      Maybe scrolling to keep it on screen but not orienting the camera on it.

      ==========================
      <--- The ghost with the most!
      ---------------------------
      [Website] [Youtube]

      Edgar Reynaldo
      Major Reynaldo
      May 2007
      avatar

      Your latest version crashed for me. I was going to send the error report, but you need to run my default email client to send it? No thanks, and it kind of pisses me off that you are taking a screenshot of my desktop. Who knows what I could have been working on?

      Max Savenkov
      Member #4,613
      May 2004
      avatar

      Hm, not it should not run your e-mail client! Also, it's not a screenshot of your desktop, but just game window. Maybe I should name screenshot file to reflect that.

      Edgar Reynaldo
      Major Reynaldo
      May 2007
      avatar

      Max Savenkov
      Member #4,613
      May 2004
      avatar

      I didn't know it could do this. I mean, take screenshot of desktop instead of game... It's a stupid behaviour and not helpful at all. I guess I'll have to disable screenshot feature of crash reporter then. I'm sorry.

      Could you please send me a dmp file of crash manually then?

      EDIT: Updated version with screenshots disabled. Also, it definitely should only try to send report itself now, without using external programs.

      Edgar Reynaldo
      Major Reynaldo
      May 2007
      avatar

      Max Savenkov
      Member #4,613
      May 2004
      avatar

      OK, I see. Allegro can't create 1024x768 window. I guess whether it works or not depends on where Windows tries to position it. If it overlaps with screen's edges, it will crash.

      I'm sorry, but I guess you can lay my game aside for a while :( Until I implement resolution detection at start and proper resizing for UI elements and input (I tried to hack it in yesterday, but it proved to be not so simple).

      Edgar Reynaldo
      Major Reynaldo
      May 2007
      avatar

      Max Savenkov
      Member #4,613
      May 2004
      avatar

      Thank you for your patience! I'll try to fix this in a couple of days.

      EDIT: OK, here's a new version. It's still a hack, but it should get the game to run on smaller screens until I can rewrite GUI code to handle different resolutions without scaling the whole picture.

      The operating procedure is now this:

      1) On start, the game will check if desktop resolution is too small to run 1024x768 window. If it is, it will run 800x600 window with scaling instead. Because of downscaling, it will look blurry.

      2) You can run the game in windowed mode, but if you chose Fullscreen option, it will try to switch to 1024x768 to avoid downscaling (it's really ugly).

      On somewhat unrelated note, I now support the crusade to make laptop/netbook screens support larger resolutions :)

      P.S. My server tells me 5 people played my game (with statistic sending enabled), and 4 of them won it on the first try. Is... Is it a representative sample? :) (I know there are a lot of folks who disable stats reporting, though, so the actual number might be closer to 20 players)

      Edgar Reynaldo
      Major Reynaldo
      May 2007
      avatar

      It still crashes and doesn't show the selection screen. It does show an empty 800x600 window though. I tried to send the report but it kept saying socket connection error and it tried like 6 different IMAP servers, and then it asked me to send it with my default mail program at which point I closed it.

      Max Savenkov
      Member #4,613
      May 2004
      avatar

      OK, let's try this then: if you click on "What does this report contains?" it'll show list of files and Export button. Export will save report file in chosen location. Could you then attach it here (it should be small, about 10-20Kb)?

      Trent Gamblin
      Member #261
      April 2000
      avatar

      Max, did you develop some kind of crash reporter for this game? Could you tell us about it?

      Edgar Reynaldo
      Major Reynaldo
      May 2007
      avatar

      Max Savenkov
      Member #4,613
      May 2004
      avatar

      Trent, no, I didn't develop it. I just used quite well-known CrashRpt library. It only works under Windows, and now it seems it does not do a very good job.

      I actually was going to use Google's BreakPad crash reporter (since it at least is multi-platform), but when I encountered gyp project generator they use instead of CMake, I decided to put it away for a while, because I didn't have the right combination of Python libraries for it to work.

      Trent Gamblin
      Member #261
      April 2000
      avatar

      Ok, thanks for the info.

      Max Savenkov
      Member #4,613
      May 2004
      avatar

      Edgar, wow, that didn't help at all :) The stack seems to be completely smashed, there is only one address on it, and even crash reporter was unable to associate any module with it.

      I have compiled a version with some debug logging added for you. Let's see if we can get anything from it:

      pixelbots_proto01_debug.zip

      Also, in this version crash reporting is disabled. In Vista and Win7 you can create a memory dump of running (or crashed) process through Task Manager. Please, post here text from deubg console (which now should be shown along with main window) and dump created with Task Manager, if possible.

      Yodhe23
      Member #8,726
      June 2007

      I played it and I quite like it, but I am a fan of these games. Definitely reminded me of Laser Squad in terms of the game play.
      It seemed quite stable for me, although I didn't quite manage to finish the level, I will be keeping an eye on your game. It also provided me with some inspiration for my own game.
      Keep up the great work.

      www.justanotherturn.com

      Audric
      Member #907
      January 2001

      Looks like a good start. Kudos on putting the robot stats in text files. By the way, the stats look like the ones from Zoids Legacy on the GBA, which allowed an amazing level of customization of the units. But I'm not sure how it fares when the robots have only their built-in abilities/weapons. (ie. often have only one way to spend their energy)
      Are you going to keep the top-view sight ? It may be an adequate view for a plane or car, but not so good to represent a combat robot (on wheels, tank treads, biped, quadruped etc).

       1   2   3 


      Go to: