Daedalus - no escape

Nice progress. :slight_smile:
Makes me feel like starting Eclipse and stop my current programming pause due to lack of motivation.
Nice particle effects, only blood in games does not attract me.
How do you do the AI ?

Intresting… Are the times of programming pauses international the same? :smiley:

Thanks for your comments :slight_smile:

concerning the AI, I’ve read a book :slight_smile: This one :
http://www.amazon.com/Programming-Game-Example-Mat-Buckland/dp/1556220782

I choosed this one because the main exemple developped in this book is very similar to my game. I really recommend this book, I had absolutly zero knowledge in AI before starting to read it ( was 3 weeks ago ) and today I have something that works for my game :slight_smile: (even if there is still a lot to do …)

Concerning the details of the AI, it is composed of several components :

  • a steering component that is handling the movement of the bot, it basically contains basic behaviors to do things like move to a point, avoid walls, flee from a point … they all just affect the speed vector of the bot
  • a pathfinder to be able to find a path to go from point A to B on the map
  • a memory component that is responsible of keeping track of the other bots that were in the field of view or that were heard recently.
  • a targeting component responsible of selecting the appropriate enemy target, it uses the memory to know about potential targets
  • a weapon system component responsible of selecting the appropriate weapon depending on the current target and to aim and shoot at this target
  • and the brain component, which is using all the other ones. It works with nested goals, it decides of a main goal depending on the context and then tries to solve it. Each goal is composed of several subgoals. Right now I have only 2 main goals for my bots: explore the map and attack target.

For example the explore goal choose a random point on the map and use the pathfinder to get a path to it. Then it adds a “follow path” goal to itself.

The follow path goal will take each point of the path in order and will add a “traverse edge” goal each time it needs to go to the next point.

The traverse edge goal will activate the seek steering behavior to reach the target point and terminates when this point is reached.
When there is no point left in the path, the follow path goal terminates, and so the explore goal terminates … and the brain will decide for a new goal to be added.

Note that at any time, the main goal can be changed depending on the context. For example if the bot is exploring the map and encounters another player in the middle of his explore path goal, this one will be discarded and replaced with “attack target” ( again depending on the context … later the bot will not try to attack if it has a low health level, or no ammo left for example :slight_smile: ).

Everything is very well explained in the book :slight_smile:

The next demo I will post will have the debug features activated so you’ll be able to see everything concerning the bots. Here is a screenshot showing it :

Ok, both of our bots would get along quite well :wink:
My AI was inspired by that book as well. Goals, a brain for memory, pathfinding. I have goals such as Hunt, Track, Shoot, Guard, Dodge, Chill, Power, Stray.
Only for the lower level physic stuff there is an additional state machine.
Yes, it’s a very good book.

Thanks for linking that book, I think I might actually buy that soon, I have been looking to learn AI for a while :smiley:

just a question about that book, I saw it had C++ examples, so im guessing its all in C++, I have hardly touched C++, I just kinda know the really basics that I have picked up from my friend who thought it would be a good idea to go from vb.net straight to C++, he wouldn’t listen to me, he spent about 4 - 6 months trying to make a calculator work XD (a command prompt calculator, so no GUI).

Is it hard to translate the code from C++ to Java?

@65K : great, your bots seems to be well advanced :wink: I had to change things as well for the lower physics as I’m using jbox2d … but that was not a big deal in the end. I’ve also put all path finding stuffs in a separate thread … I think it’s better than having it in the main thread like in the book ( even if in the book the author proposes time sliced path finding :slight_smile: )

@Phased : I used to do C++ in the past ( quite a long time ago, in a galaxy far far … ), but I don’t think it helped me :slight_smile: The important things in the book are design and algorithms. So basically the C++ specifics are not important, you just have to understand the algorithm behind the code, and there are lots of comments so it’s really not an issue ( at least it was not for me ).

This is beautiful! I can’t wait until I’m ready to do that sort of thing. I’m still fighting with my second Java2D game. Looks like LWJGL is the way to go for the next game.

Looks nice man.

My only complaint is that I actually use the mouse1/mouse2 for forward/backward, so it would be nice to be able to set the fire button to ctrl or whatever.

Thanks for your comments, about the controls it’s already done in the actual version, the one posted here is a bit outdated :slight_smile:

I’m back from vacation and I finished to refactor the big buggy mess which was handling the game state ( I’m now using state machines and it’s way cleaner :slight_smile: ). So I will post a new demo this week end … tomorrow I think :slight_smile:

ok guys so here is a demo of the latest version :

http://www.daedalus-thegame.com/download/daedalus-0.1.7.jar

The jar should run on windows / linux / mac.

This version includes :

  • bots ( players controlled by the computer ). The number of bots + their level can be chosen at server creation time
  • particle systems (blood, explosions, smoke, sparkles …)
  • new weapon : rocket launcher
  • different player skins/color ( assigned randomly by now … should do a menu to select it ). Only two skins are available in 4 colors each right now ( yes the two skins are very similar :slight_smile: )
  • some work to compensate internet lag
  • other things I don’t remember … :slight_smile:

To do next :

  • optimize network messages size … I’m sending too much ( and often non relevant) data right now :slight_smile:
  • ammo handling + weapon pickup
  • bots aware of their health level to take decisions ( flee from battle, search for medikits … )
  • bots aware of their available ammo/weapons to select the appropriate one ( or eventually to search for a better weapon )
  • menu to select the player skin
  • menu to select the list of map running on the server
  • in game menu for the server to be able to add/remove bots on the fly

Servers:
I’m running 2 internet games on a server I have at home. If you try the game, please try to connect to them and tell me if the conditions for playing are all right ( as well as your ping by pressing F5 ).

Here are the details of the 2 servers :

  • Main server A - 1M : running one small map with 1 bot level medium … max players : 5
  • Main server B - 4H : running two medium size maps with 4 bots level high … max players : 12

Otherwise you can always run a local server with bots :slight_smile:
For info the map selector is in the lobby, just above the start button … it’s temporary, I have to do a dedicated screen to be able to select several maps, and display some more info on them (recommended number of players, map name … ideally a top view of the map) …

I’m waiting for your comments !! Hope to see you in game :wink:
Cheers

Yay boot! Now I can play it.

Have you tried it ? If so, some feedback would be greatly appreciated :wink:

Oh I love this game. It’s really polished, you got some nice sound effects and it runs really smooth on my computer.
The only thing I did not like about your game was the AI. I think it was quite hard for ‘easy’ (yes I’m a noob :x). Bots did sometimes not turn around when you shot them and that was quite weird. Also, I would like to see a cross hair (or whatever). Makes me feel better to know where I am aiming to :stuck_out_tongue:

Thanks for your feedback !
concerning the AI :

  • yes that’s something I was expecting to hear :smiley: It’s quite hard to calibrate the levels of the bots because I play very often, and so it seems that I got skilled :smiley: I’ll definitely have a look at this and try to make easy and medium levels more accessible. I usually play in hard or insane :slight_smile:

  • to tell the truth, bots never turn around when they are shot ( if they do it is just luck :slight_smile: ). That’s in the TODO list for the bots. Later they will react to shoots but also to the sounds produced by the other players ( shooting or even walking for instance … )

  • for the crosshair, I was not inclined to add one because I thought it would be to easy to hit with some weapons then ( machine gun and railgun … ) … but you’re not the first one to say this so I think I’ll reconsider it :slight_smile: Maybe a small indicator at the top of the screen showing the impact point could be a solution … I’ll think about that :wink:

Thanks again for your feedback ! I used to test the game with some friends who got pretty skilled as well ( they’re all better than me ! :slight_smile: ) so it’s really interesting for me to get some feedback from people new to the game !

Just one question : did you connect an internet server or did you start a local game ?

A local game.

really nice game.

CTF and Domination gamemodes would work nice too.

I’ve DLed it but not yet play :clue: hmm maybe at night.

I’ve made a new gameplay video, here it is :

zPQvKQxImV0

I agree ! :slight_smile:

:o :o :o :o O______O

Now THAT is a quality game. You’ll make millions, son.