Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Fonze

Doom Battle Chess

Would you like to see a Doom-based Battle Chess game?  

48 members have voted

  1. 1. Would you like to see a Doom-based Battle Chess game?

    • Yes! I'd even be willing to pledge some cash, too.
      7
    • Yes, but I dont want to pay for it.
      31
    • Not worth it/Don't care.
      5
    • No.
      5


Recommended Posts

Dude that looks amazing. It's certainly more than I imagined, but in a good way. I can tell that one of your passions is the aesthetics of it, and they're looking great!

But don't you worry about the animations later? They can't all face the camera at all times. With the full camera control all the monsters will have to have animations for all angles. Which are already present in Doom, given, but seems like it might be a lot more work. Of course, I'm no programmer, so maybe it's not, but I would think that the animations would be the trickiest part.

Using that as a screensaver would be funny, especially if you could somewhat randomize the computers actions against itself so each game weren't the same. But that's all extra stuff. I love what I'm seeing so far.

*Edit*
I just thought of something else, the board might be best a bit bigger like the screenshots with squares 100 pixels wide. 64 might not be big enough to house, say, a mancubus fighting a cyberdemon. But you'll be the first to know how it's really gonna look, so I'm sure you got it on the right track.

Share this post


Link to post

Thanks! Its certainly more than I imagined too! I didn't think I'd be making a 3D board, but the 2D board just didn't look Doom. I'm surprised that the imgur video has had 60 views in 6 hours.

As for the animations, I figure that's not my job. Like a stewardess doesn't worry about piloting a plane. All of the pieces do have a direction, just not the sprite to look like they're facing the direction.

Facing the camera isn't a priority. Its a tedious thing importing all of the images one by one. Of course I guess that I can just make something to automatically import .png files from the folder that Doom Battle Chess sits in.

I still just fully intend on having default doom enemies scratching or shooting one another. Someone else is a better animator for a cyber demon curb stomping an arch-vile.

If you're worried about someone having to animate 8 directions, I can always gently move the camera to one specific place so you always see enemies fighting from the side. Then it locks the camera in place. The player can zoom in or out. Like the camera faces north west while the enemies face north east and the other faces south west. Yeah 8 directional fights does seem horrible on an animator. 8 directional walking is fine.

I think I am liking the "dump .pngs into a folder" idea, that way I can have the system call up imp_n_walk_01 - imp_n_walk_XX. So someone if they wanted to could have 60 frames of animation for the Imp walking they can or just a default 3 or 4 frames. imp_n_attack_baron_01 - imp_n_attack_baron_XX. Someone can make a 3 minute fight in .png files if they wanted to.

Now that I think about it I can have default folders for enemies "sprites/imp" "sprites/baron" and so on. That would let me include more monster support "sprites/batman" "sprites/super_meka_cako_with2_eyes." Since again, I want to let people select their own monsters. The system will just read all of the folders in sprites/ and know Batman should be in the game. If a caco doesn't have an animation to kill Batman, then the caco will just "capture" the Batman piece whether its King, Queen or whatever.

The custom monster idea is a way to get around copyrights too. It doesn't have to have official Doom monsters. It doesn't have to be named Doom Battle Chess. This can be a generic Chess game with walking animations. THEN people import Doom, super heroes or anything else. This can be legal.

All of this folder / image stuff is a lot easier than making the board 3D. Its best to start with the tough stuff and work your way down.

Chess AI is next. Game has to play itself. Along the way, every piece will move itself into position even if the movement isn't animated, you'll still see a mancubus slide along the board. Then the animation stuff / folders / chess piece picking can come next.

The computer will randomize its actions. If the computer have 8 pawns doing nothing the computer randomizes what it'll do or why move a pawn out when it can move a knight. I love random. If it has a target though, it will go for the target, of course I can have an aggression system. Aggressive computer will go for the target 100% of the time, passive computer will maybe have a 50% chance of attacking the target. Like a player that just doesn't see oh my pawn can take that queen or someone that's letting you win.

Share this post


Link to post

That makes sense about the animations. I'm sure that programmers have specialties just like doctors and mechanics. Didn't think about it before though, lol.

Facing the camera for the doom sprites in particular isn't much of an issue without an animator, but won't the regular pieces you make have to be able to animate and face certain directions?

I'd be ok with monsters only scratching each other, ie. one generic attack animation, as long as it's easy for an animator to add in custom animations for each battle later.

I think the gentle camera movement to one set direction would be a good touch for ease to the eventual animator. I agree 8 directional walking shouldn't be too bad, though I forget if Doom has the 90° left and right directions present in the animation. I seem to remember it being only 6 directions that each moster was animated for. But my memory fails sometimes, lol.

Yes, I think the custom monster and dumping their data into a folder ideas are the way to go. It will avoid copyright infringement with the Doom/batman/unifish/whatever people if the stipulations to see Doom are the same as they are for wads. Idk about the Battle Chess people, idk what exactly they copyrighted, but I'd imagine that the concept of animated chess pieces fighting cannot be copyrighted.

I agree that it shouldn't be named either "Doom" or "Battle Chess," as that would beg a lawsuit. I just made that the post name and basically over-simplified what I was talking about to be concise and avoid misunderstandings. Of course that generally tends to cause them, in my experience. Cest la vie, lol.

Makes sense to start with the tough and work towards the easy. I like the idea of the aggression system. It sounds about similar to most other computer chess AI's. That's why you can't play on the easier difficulties, cause the computer throws a game in one move and you learned nothing, lol. I like random, too.


By the way, I'm no programmer, but it you want someone to help do the easy, mindless, tedious and time-consuming stuff so you don't have to waste your time, you know as excited as I am about this that I'm down to help you any way I can.

Share this post


Link to post

The directions can be mirrored. So it only needs, front, front left, left, back left, and back. Then it gets mirrored, but then there's the cyber demon with the rocket launcher on one hand.

Programming is more of a math and language thing while animating is more of a graphical thing. Of course it depends if its 3D or not. Someone will be better at graphics and animation that I am. I know people, but they want money. The cheapest they'd do it is $20 per walk animation cycle per direction for sprites this size. So $20 * 6 classes = $120. Then there's the death animations, I know they'd want $30 if not $60 each since its animating 2 pieces so 6 * 6 * $60 = $2,160. Then there's 5 way walking directions too that might turn $120 into $600 for just the walk. At that point I wonder if someone would would need their social security number for tax purposes paying out that much.

Lego has their own version of Battle Chess, so I'm sure they didn't patent or copyright the ability to have people on a chessboard fighting.

"Generic Animated Chess Fight"

I wonder if the guy making Doombringer has thought of Doom being out of the name.

As for the importing thing, its just easier to make the game suck in the entire folder instead of how I've been doing it one by one. Work smarter, not harder, plus there's all sorts of extra functionality.

Share this post


Link to post

Agreed. These were so nice to watch. They look hand animated with the exceptions of R2D2 and the walker. Everything is in character too. C3PO is the doofis that gets the job done unknowingly.

I guess that's what comes with a $50 game with the Star Wars license.

An animator might want to take a video of 2 people fighting, shrink the video and the frame rate and make a sprite version of Doom enemies over it.

Share this post


Link to post

Lol Sys, thanks for those videos, they were entertaining.

Geo, maybe have the option later of turning the 3D/rotating camera off so only front and back have to be animated? I could try and learn animation to save myself that money, but either way itd make it easier on the animator to animate less. And myself if it's 20 bucks a cycle (ouch!). Maybe I should get into that business...

Could the cyber's animation be nonmirrored and the rest be mirrored? Or is that a limitation of this type of thing?

Also, maybe I need to start a thread learning how to animate Doom monsters... Maybe another time.

Share this post


Link to post

It was probably wrong of me to say that there were only 5 and its mirrored. That's just a shortcut instead of making 8. Its still 8, but it could be 5 with mirroring. Cyberdemon always has a right launcher. SS will always carry a gun in their right hand.

Nothings limited with programming. That's what's beautiful about it.

I can turn off camera movement and just have 2 directions, front and back, and I suppose it wouldn't look too bad moving diagonal directions. That's the real reason to need 8 direction movement.

Share this post


Link to post

Yeah, that's true, all 8 directions would likely be needed for a decent looking chess game. Unless the camera were slightly offset to the side to make the left and right animations not necessary. But even then, I'd likely need to see how it looks, because most things look better in our heads. I'm sure you're a better judge of how it's gonna look than me anyway.

Yes, nothing is limited, which is a beauty in and of itself, but I worry a bit about how to handle updating this in the future. An animator prolly won't want to figure the coding out to make everything work. I may have to work with you later, once the animations are complete, to figure out how to put in the triggers for the custom animations, like the cyber curb-stomping the rev. Of course this point is moot if you've already put everything in and it doesn't mess with the standard animations you want.

Perhaps if Sarge is cool with it I could ask him later about preparing Brutal Doom animations for use with this (so the animations wouldn't have to be brand-new), in exchange for some cash, so maybe his Steam-sale experience will be better next year O.o

Share this post


Link to post

No one will have the source code to update the programming. I'm pretty stodgy when it comes to that stuff.

The animators will just be able to drop .png files into a folder and start the game. It will be automatic whether its 1 static frame or 3473873789 frames of animation. No one has to go into the code, you just put the files in the directories in Windows or wherever.

In addition to sprites/imps/ style directories I can do graphics_pack/sprites/imps/ style or default/sprites/imps/ Then someone can select a graphics pack and use those sprites.

Time to clock in and do the AI.

I think I need to aim the camera a little differently, there's a lot of space, but here it is with 100 x 100 tiles and 1360 x 720 resolution.



All of the pieces now have their movement patterns. They don't move, they just know they can do a diagonal for bishop and so on. It goes through every piece from king to pawn to determine who can be attacked and then pawn to king to determine who can attack them. It did that before, but now it does it for every piece and not just king and queen. Gotta start somewhere. The camera is in a traditional chess perspective default position.

Another hour and the pieces now slide move to capture and only capture, going through other pieces. It works as long as there's something to capture. There was a problem with the pawn that took a while.

Now to make it so when there are no captures, the computer has to make a move. Then I will make it so other pieces block movement except for the knight.

Share this post


Link to post

Nice man, your progress sounds awesome.

I understand if you will be stingy on the source code, it's your product, after all.

So just to be clear, it will eventually have no problems recognizing and implementing the individual custom fight scenes? How will this be done, will files have to be named in very particular ways, will it just be select the files individually within the program, or completely automatic?

I think I could figure out how to copy (for my own use only) the Doom sprites and paste them in an appropriate place, but I will have to know how to order everything, including the eventual individual battle scenes.

Share this post


Link to post
Fonze said:

Nice man, your progress sounds awesome.

I understand if you will be stingy on the source code, it's your product, after all.

So just to be clear, it will eventually have no problems recognizing and implementing the individual custom fight scenes? How will this be done, will files have to be named in very particular ways, will it just be select the files individually within the program, or completely automatic?

I think I could figure out how to copy (for my own use only) the Doom sprites and paste them in an appropriate place, but I will have to know how to order everything, including the eventual individual battle scenes.


Another hour later I realized the 2nd priority after attack should be defend. So I'm making what I call a dodge mechanic, where the game analyzes if one of its pieces is in danger from a king to a pawn. Then moves that prioritized danger piece to a safe location, which means analyzing every move the danger piece can make and analyzing every move that the other team can do if that move was complete.

So that's where I am now. I will make it determine suitable safe spots and then randomly pick one of the safe spots. In time I guess there will be logic to find a strategic safe spot.

When I am done the game will have no problems recognizing and implementing individual custom fight scenes.

sprites/imp/imp_fight_batman_01.png - sprites/imp/imp_fight_batman_XX.png just in a folder.

Files would need to be named specific things, unless I make a system like a .txt file where you include the .txt file saying:

attack_png = imp_battles_batman_
walk_north = imp_walk_n_

or

attack_png = imp_hugs_batman_im_
walk_north = imp_shuffles_nor_

I suppose the real problem for the sprite battles is the fact one will have to be facing forward and the other away. So an imp facing away vs a caco facing toward and also a caco facing away and an imp facing toward. I guess I can make a system where the imp and caco walk to a default position and then the battle starts. So even if the imp is facing away, it walks around facing toward then the animation starts.

*edit*

Now 3.5 hours into the project tonight, I have finished the dodge mechanic. Too bad its so early that everyone is so busy attacking that when its time to dodge... no one can attack.

There will not be much to show for a while when I pick up the project and work on it again. The next task is having the game come up with all of the pieces that can be moved and finding safe spots for them to move, then randomly selecting a spot. That just feels like another 90 minutes at this point, even though I have 80% of the system already in place for the dodge mechanic.

I leave you with this movement demonstration. Again, movement, not animated, so everything just slides. Its laughable since there's such little logic, but its what it is right now.

http://i.imgur.com/LZkXYna.gifv

Will this beat the 82 views that the other one received?

Share this post


Link to post

Lol! I liked the demo.

The problem with only having one battle facing for each enemy is that some will inevitably attack others with the same orientation, not to mention when a piece attacks its counterpart.

Would this be a fix:?
Have monsters animate to their set positions, attacker always on the bottom facing up and the defender always on the top facing down, since the board would flip, like battle chess. At that point, the custom animations could run, as long as they are done correctly the monsters should appear in the same places. If no custom animations exist the standard attack/death animations could take place.

Of course either way the monsters sprite file will have to have the standard attack/pain/death sprites anyway, but this way, if custom battle animations are present, they could run through an "if" function.

You might already be light years ahead of what I'm talking about, though.

One other question, and this may be a stupid one, but I'm assuming that it will play the sounds of the monsters or whatever if they're present, correct? No big deal if it don't, idk how complicated that stuff gets.

Once again if you want me to do some of the mindless easy stuff for you I'd be happy to help, no credit needed.

Share this post


Link to post

I can have attacker always face away and defender always face toward. If they're not facing that way then they walk in a circle to the specific position.

If there are no custom animations, but there are default animations, the default animation would play. If there are neither, then nothing will play. It will be just a piece disappears.

I keep saying attack, but I really mean battle. 2 sprites 1 animation. So a movie of an imp fighting a caco made in .png format.

While scratching, shooting and rockets might look cool and be good for a static game, with all of these import idea, that might get ugly and less friendly to mod.

Sound and or music usually / always come last for me. Its something that enhances the game and if the game can't be fun without frills then its not good. In fact even graphics are enhancements.

Share this post


Link to post

I don't get why the Cyberdemon is used as the King- it's highly mobile, can strike from great distances etc., so the logical role should be that of the Queen (...yeah, I know what you're all thinking, by looking at my avatar, but let's forget this aspect for a while).

The Cyber Mastermind, OTOH, is yes, powerful, but also clumsy, impeded in its movement, and relatively ineffective over long ranges...exactly like the King.

The Archvile as a stand-in for the Queen...OK, it has mobility, it can stike from afar and behind other monsters, but that means it could also be the Knight (a role which is also idel for the Revenant, though).

Share this post


Link to post

The Archvile works as a Queen since it's highly mobile and can hit anything within its line of sight. The Cacodemon also works as a knight since it flies over other pieces unless we're using Jetpack Revenant.

Share this post


Link to post

Well I'm back to clock in. Someone suggested Vile as queen and cyber as king. Then I was going to change it, but it slipped my mind.

This time to get a discussion going, I'll make the barrel as a king and pinkies as pawns.

Share this post


Link to post

Lol geo, from what I'm gathering anything can be anything. That's cool.

I'm guessing that the battle animations would have to be specific to each encounter. For example, if I want to have revs and cyberdemons but someone else wants revs and batm-- batmen? there will have to be specific battle animations for a rev killing batman instead of a cyberdemon.

Still wondering about the sounds, too.

Other question, if someone were to go overboard, would the program be able to randomize battle animations if, say, someone wanted to have multiple ways for a rev to kill a cyber?

Just curious on these things, I like to know how stuff works :)

Share this post


Link to post

Sure.

sprites/imp/imp_kills_rev_01_01.png

The first 01 is the death sequence. The second 01 is the frame in that animation.

Sounds can be done. I can even do it from a text file with variables.

Like:
play_sound = imp_kills_rev_01_93.png imp_rawr.wav
play_sound = imp_kills_rev_01_23.png rev_scream.wav

So as you can tell it would play a sound on frame 93 of animation 01 and it would play another sound on frame 23 of animation 01.

I could also make a variable in the .txt file to prioritize the death animations. Like if you have a super secret rare animation...

play_animation = imp_kills_rev_01 1

Then the common animation can be:

play_animation = imp_kills_rev_02 100

Share this post


Link to post

Damn that's cool man! I like the sounds of what you're making very much.

Share this post


Link to post

Well its now 3.5 hours later. There is progress, but its still pretty messy.

Attacks come first, then dodges, now it can move pieces. There is logic to not put them in harms way, but well it looks like there is a flaw there. There is also logic that does not allow pieces to share spaces, nor go through other pieces, but watching the video there is clearly an error somewhere that will be found.

Anyway, its something to show:

http://i.imgur.com/2Mogd8E.gifv

Keeping track of pieces that all look the same was getting too 3 card motne at 2 am, so I just colored them different. Its easier than taking images out of the doom2.wad and putting them in.

Barrel = king.
pinkie = purple.

discuss.

Share this post


Link to post

Hey man can you take that thing down or put it in a collapsible spoiler section? It's murdering my crappy phone.



Lol the barrel would make a funny king if the animator made it so that when it dies, it blows up the attacking monster as well. Would still be checkmate, but it would be pretty funny to watch the attacker self-sacrifice.

Idk about the purple pinkies, not that it matters as none of the Doom sprites will be included, but for myself I would rather go with either the dark variants from realm667, or a completely different monster set.

Since you are designing an AI, will it eventually be able to support 1 player vs comp? If so, will there be difficulty levels and more specifically, will it whoop my ass? Lol.

Not that I'm that great, but with the AI work your putting into it it would be a shame for people to still have to resort to other apps for practice.

Also, do you plan on putting in additional features like board set up and move take-back? How about a save feature and an export to email type of thing for long-distance games with old people?

Those may be asking too much, but it's just ideas at this point from the peanut gallery. Youre the mastermind here :)

Looks cool though. Progress is always a good thing.

Share this post


Link to post

It works fine on my toaster. Taken down. The spoiler code didn't help. 70 views in 6 hours. The last one only had 24 views.

It will eventually be player vs computer or player vs player. The AI is just more important and difficult than player movement. That's something I can do when I burn out from AI.

I can do difficulty levels or aggression levels or all sorts of variables and priorities. The AI is really 99% of any chess game.

I can put in board setup. That's probably easier than making player movement. To anyone that can't play chess, I intend on having the game where you hover your mouse or touch a piece to see all the movements that piece can do with blue tiles. I can even setup a danger indicator where if you click on your piece to see all of its moves, it will show you with lets say a red tile that piece can be taken if you move it there.

Take back is easy, I can have it record all moves so you can rewind. Now that I think about it, a cool feature after the game if you see all the moves in reverse if not push a button at a certain point to play it from that point. Its not as difficult to make Braid as people think.

I can make a save file and encrypt it so you can email it out. I don't think I want to put forth the effort to make it email itself. I can investigate clicking something to open your email program and attach a file, but I don't see that happening.

If people are bad with emailing files, I can make an export where it gives you a bunch of text that you select all, copy and paste into an email. Then they copy and paste from the email into their game. That prevents people from having to find a file, but I can always have the game open the folder with the encrypted file so they know exactly where it is. The whole copy and paste a bunch of text just means someone can cheat and move a piece around via the file, but then I can implement something where the game can check that sort of thing like did 1 piece move or did 2 pieces move?

Share this post


Link to post

You should make the imp kills actually burn them to death with the fireball perhaps making them run around on fire as they do in Blood or perhaps use the burning sprites from Strife. Stuff like that could be applied to the rest of them like Cacodemons could electrocute them and Revenants could blow them up (I guess just a regular shoot 'n' gib animation)

Share this post


Link to post

The problem right now, SavageCorona, is that we (not that I'm working with geo/doing anything to help this project along [aside from a meager $100 pledge]) lack an animator to make that happen. Geo is just gonna put the stuff there to make it happen, it will be up to us to get what we want and put it in. Hopefully it will be easy; it sounds easy, but then again everything does at first ;p

I do like the idea of the imp burning it's victim, but I think that shouldn't happen every time. Maybe just vs the pawns or something. *Edit* I remembered just now geo also stated we could have multiple animations for each specific battle. *Edit End*

I think for myself I will wind up making each team have different monster sets, if it's possible. It may get confusing for some, but I'd love it. If not I'll go with the dark variants of the same monsters and just have different sets to play with.

Speaking of which geo, if all this so far is possible and you're willing to do it, would it also be possible to have a save feature for monster sets? Possibly tiles too.

Speaking of tiles, since we haven't discussed them, even though you had asked: I don't think it matters much. More likely people wont care as long as they're contrasting.

Share this post


Link to post

Well its that time of the night. Like a talk show, but with programming and chess!

2 hours in and I've fixed a lot of issues. Game plays like an actual chess game. Well playing itself.

I've taken out the attack. So no one attacks, they just dodge and move to safe places.

There is now a text output for debugging, its probably the only time I've needed an actual output to a text file to figure out errors. The output shows the computer's possible moves. Did you know there are 18 moves right out of the gate?

Now I am adding safety logic, such as oh no that queen can attack me! Is there anyone in the way? Yes. Well that's cool I guess I shouldn't care then.

Three hours in, I have what I can only describe as a movement confidence. Since dodge is different than move, but they work virtually the same. The movement is when a piece is not in danger, it can move to a safe spot.

The "confidence" part is now the game knows pieces can be blocked by other pieces. Before it would live in fear that if it moved a piece it can get picked off by a queen, bishop or rook being blocked by pawns. Now it knows that its being blocked.

There still seems to be a problem with pieces not accounting for a pawn's ability to attack diagonally even if there's a system in place to recognize that.

Who would have ever thought there's so much to talk about with the logic of even the simplest things that no one thinks about?

The main code is currently 1,700 lines.

4 hours in there is now a priority for dodging. If a knight can capture a bishop, rook or pawn, it prioritizes who to move out of the way first. I thought it was odd seeing the computer move a pawn out of the way in that circumstance. Better logic would have it set up a trap where you capture me, I capture you sort of thing, but well in time.

Here's tonight's progress. Still glitches, but its getting there.

.... uh I'll be asleep by the time this video is up. The upload keeps resetting.

I was wrong

http://i.imgur.com/tsCRiL0.gifv

Share this post


Link to post

Nice geo! It's cool to hear about how a chess AI works.

I also really appreciate the time you're putting into this, 1,700 lines of code is a lot. Especially when you consider that a good amount of those were afterthoughts to fix certain things. Also, I'm sure thats about as tedious as professional painting, so it's just that much more awesome to me.

One other thing, if I remember correctly there should be 20 different starting moves, as each pawn (8) gets 2 (16) and each knight does as well, for a total of 20.

Share this post


Link to post

Yeah that sounds right. Not sure what happened with mine, but according to the print out there are 2 moves for the knights when there should be 4.

Share this post


Link to post

Lol the person who made that document must've been drunk when they made it. If that's the case, it might be good to double-check some of their numbers. However, it could have been a one-time mistake.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×