Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Dark Physics & Dark A.I. & Dark Dynamix / Networking with Dark AI

Author
Message
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 22nd Sep 2008 13:56 Edited at: 22nd Sep 2008 13:57
Didn't find the topic using search. Decided to open the discussion to those who are using or intend to use Dark AI in their networked games.

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 25th Nov 2008 09:38
With the lack of replies I reckon its safe to assume either DarkAI isnt suitable over a network or no one has use it for such. Thanks.

Todd Riggins
20
Years of Service
User Offline
Joined: 29th Oct 2004
Location: Texas, USA
Posted: 25th Nov 2008 20:10 Edited at: 25th Nov 2008 20:11
Just brainstorming since I havent had to a chance to play with A.I and networking yet...

Wouldn't you do A.I. on the server?
Since Dark A.I. is for DBPro, that means you would have to have a Windows based server?
Is it more common to have a server on linux system over a windows one?

A peer to peer multiplayer game, I would imagine one guy is the client and one guy is the host( acting as a server ). The host would do the A.I. and just send what the NPC dudes are currently doing to the client.

As a MMO, It would be the same thing. If you are creating a windows based server that ran a dbpro program to host the game, then I can see you using Dark A.I., but if you ran on a linux server, then you would have to create your own A.I. routines.

Just guessing...

Inspirational Music: Descent ][ Redbook Audio CD Soundtrack
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 26th Nov 2008 09:58
I'm currently developing the server with DBPro using a Server/Client model. I intend to use DarkAI on both the server and client. Server-side AI for controlling interactive Mobs. Client-side AI for controlling non-interactive bugs/flocks added to the scene for realism.

I anticipate using plenty of obstacles and pathfinding. I believe Client-side AI will be fairly simple to implement, however, I expect Server-side Pathfinding performance to suffer with hundreds of objects moving around simultaneously.

Todd Riggins
20
Years of Service
User Offline
Joined: 29th Oct 2004
Location: Texas, USA
Posted: 26th Nov 2008 16:17 Edited at: 26th Nov 2008 16:22
More I think about it, DarkAI may be to much for a MMO.

If you have enemies setup like common MMO's like WoW, SWG, AO, Matrix, COH, etc... they usually just stand around a spot, mabie randomly move to another close by spot. Then they act on the player if they are being shot at or if the player gets to a certain distance to them. Basically, the only A.I. I see is a distance formula, a chase routine and even patrol points which all can be done probably easier without Dark A.I. (?)

Sometimes its hard for me to tell, but some may use a A* routine. Like SWG, if I start running into another room or running up a starway that sort of circles upwards, an enemy that is chasing me can find its way to me. ( even though for me at least with SWG, the enemies always lag jump to a spot where the server says it will start attacking me again when I run around like that).

OR

Are you wanting to make a MMO sort of like Global Agenda:http://www.gamespot.com/pc/rpg/globalagenda/video/6200260/global-agenda-gameplay-movie-1 where you want enemy/ally bots like in quake3? That would seem to work good here. But, I see it working good for a limited amount of allowed players per game. Like a quake game or COD game.

Obviously, the more processing needed, performance suffers like you said. Is it possible in your MMO design that alot of A.I. objects will not be seen by anybody at any given time? (ie: Which would help to cut down on A.I. processing.)

Inspirational Music: Descent ][ Redbook Audio CD Soundtrack
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 26th Nov 2008 22:38
I'm shooting for a more sophosticated AI like Bots in a FPS. Process Occlusion/Scoping is definately on my list of optimizations, but, I have no solidifed ideas at the moment on how to pull it off with DarkAI. More than willing to brainstorm on this.

Todd Riggins
20
Years of Service
User Offline
Joined: 29th Oct 2004
Location: Texas, USA
Posted: 27th Nov 2008 00:48 Edited at: 27th Nov 2008 00:50
Ya got me curious
[note: This demo is just a rough idea]

I went and modified the Dark A.I.'s Teams Demo. With Around 100 objects on screen fighting it out, I can get around 60fps. Ofcoarse, I have yet to look into any optimizations if there is any for this example.

The code I have below, I have 3 variables at top: enemy, friendly, neutral. Each var designed to be in the range of 1 and 200.

with 100 players and 3 neuts, my fps starts in the mid 80's. When they start shooting each other, it gets down to the mid 60's (I did run this code once and the FPS was hung around 24 for some reason ). When I get the friendly dudes to follow me, it drops down in the mid 40's. When I make them stop following me, the FPS slowly starts rising back to around 60 FPS.

If I make where there is around 200 objects on screen, My FPS jumps down around 15 FPS.

modded Teams Demo code:


Inspirational Music: Descent ][ Redbook Audio CD Soundtrack
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 27th Nov 2008 14:13 Edited at: 27th Nov 2008 14:20
I get similar results. I believe the drop in frame rates may be due to graphics processing of objects vs AI processing, I'm gonna try a test with hidden objects.

Todd Riggins
20
Years of Service
User Offline
Joined: 29th Oct 2004
Location: Texas, USA
Posted: 27th Nov 2008 22:29 Edited at: 29th Nov 2008 20:52
I just tried with the code above by using "hide object" on all the enemy and friendly entities. I didnt see any fps change.

OT: heres a sneak peek piccy at my gui since some people dont use yahoo instant messenger anymore
[Edit: piccy taken off server ]

Inspirational Music: Descent ][ Redbook Audio CD Soundtrack
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 27th Nov 2008 23:20 Edited at: 27th Nov 2008 23:27
The Demo does provide insight on how I will be able to gauge performance on the Server. There is no Graphics processing on the Server so I feel really good about DarkAI performance. I think players will appreciate sophisticated and distinctive enemy AI like that found Halo, Left 4 Dead, and many other FPS games.

The GUI is looking real SWEET!!! Is that 100% DBPro Sprites? I've been working my own which is (80% complete): Multi-App User Interace (MAUI). MAUI wasn't originally designed to handle overlapping Gizmos, but, the need has arisen. I'm curious as to how you are are you handling Gadget Ordering and Focus?

Todd Riggins
20
Years of Service
User Offline
Joined: 29th Oct 2004
Location: Texas, USA
Posted: 28th Nov 2008 00:09 Edited at: 28th Nov 2008 00:42
Cool, that will be interesting to see Dark A.I. be incorporated like that into a MMO.

Well, I've been going pretty slow with my gui cause I get burned out doing boring stuff. Also, FarCry2(luv playing around with it's editor too) and Fallout 3 is to blame too.

Yes, everything is 100% DBPro Sprites. I have managed to create a dll mangled function name to C++ code converter thingy. So, I am pretty much set up if I want to convert the gui code to a dll to pick up performance and ease of use. I personally find the DBPro code itself to slow down FPS while using DBPro sprites, not the sprites them selfs. Other people say the Sprites are slow. I guess I dont use them like they do. Ofcoarse, I try to keep my dbpro code optimized as much as possible as I go to keep the FPS up.

The thing I really hate is the DBPro compiling time. My current dbpro gui project has 12 files. I even tried to talk to LEE about getting DBPro to compile only source files that have changed. He says he thought about it, but wants to implement other speed up ideas. Incremental compiling brings the best speed up in compiling multi file projects in itself. Frustrating.

Anyways, I'm basically trying to add different GUI components now. I'm still working on the Scrollbars along with "Scrolling" it's target. When I get that done alone, I'll then be able to add in text boxs, edit boxs, list boxs, drop down box, treeviews, etc...

Right now, I have various styles of buttons, static and panels as you see in the picture. Also have seperate grouping functionality to allow stuff like checkboxs and menus as seen in the piccy. pop-up menu functionality is done too. Ofcoarse I want to add more specifics to the menu stuff. Also want to add drag and drop functionality like in dragging a spell icon from a spell book to the hotbar type of thing. Still got lots to do. I'll probably will create a dll for it though. Should be simple enough.

Gadget Ording and Focus, I simply keep sprite priority for each part by using that very DBPro command. Well I have a memblock list of all "parent" parts. I go through that list and set priorities to each part's sprite. So a parent part gets set, then it's child parts get set... and then on to the next parent part. So when I select a part that is "allowed" to get focus, set in front of other parent parts... I move it's parent part up in that memblock list. So when I go through that list again to order the sprite priorities, everything just falls in place, you visually see what you have currently focused ... or in front.

I only set things that are allow to get focused like that. In my case, I only set parent parts that can be moved to be focused. Some things will get forced in front of everything else. Like a "Loading... Please wait..." static part for example. Child parts for example dont ever get set to be focused. Thats the parents' job.

Ok I guess that was a bit OT. I'll start a WIP thread on it when I have a bit more done.... PS: Also, I have single line input in too.

Inspirational Music: Descent ][ Redbook Audio CD Soundtrack
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 28th Nov 2008 06:13
SET SPRITE PRIORITY

Wow how did I miss that one?

*slaps self across head*

I know what you mean by `boring stuff` and I dread coding GUIs because of that very reason. However, I took a completely different approach developing MAUI. The highlight of the system is it's LUA Scriptable Styles, Behaviors, Transition Effects, and Actions. Behaviors define the `mechanical` operation of a Gizmo and I've only written `Label` and `Button` Behaviors so that I get on to creating tools for MMO with minimum GUI functionality. I'll create checkboxes, dropdown boxes, as needed. Of course the first tool on the agenda to develop is the GUI Editor - LOL.

Todd Riggins
20
Years of Service
User Offline
Joined: 29th Oct 2004
Location: Texas, USA
Posted: 28th Nov 2008 08:40
OH the dreaded GUI editor... arg.
I... might do that... know i need too...

Well, I decided I will make mine into a dll. Get Image is absolutely dog slow. I had to use make image to memblock/make memblock to image combos and copy needed data over to the target scroll area. Luckly it's faster. Still slow. T'is disappointing.

I got to playing with that Dark A.I. and saw how much fun I was missing out on...

Inspirational Music: Descent ][ Redbook Audio CD Soundtrack
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 28th Nov 2008 21:01
Todd,

I figured if your working on a GUI and have Dark AI your planning some type of game. Curious as to what it is.

Todd Riggins
20
Years of Service
User Offline
Joined: 29th Oct 2004
Location: Texas, USA
Posted: 28th Nov 2008 22:07 Edited at: 28th Nov 2008 22:08
Well lol, I went on a spending spree and bought: Dark Lights, Dark Shader, Dark Physics and Dark AI. Basically, it was originally for my biggest goal of including all that functionality in my own "game maker" sandbox editor. I still dont have "the game" I want to work on yet. But, there has always been something about having Team A.I. stuff that Dark A.I. presents that gets my imagination rolling. And then add Physics on top of that...

Inspirational Music: Descent ][ Redbook Audio CD Soundtrack
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 29th Nov 2008 02:43 Edited at: 29th Nov 2008 02:49
That is too hilarious! I did the same exact thing to include Dark Ink, TextureMax, Enhanced Anims, and Enhancement Pack. I don't recall what exactly I was working on the last time we were able to chat, but, I've been focused on my MMO(FPS)RPG "Meta" Game Maker since 16th Oct 2007.

Most of that time was spent honing my 2D Art & Music Skills and coding the GUI. I've learn a great deal about DBP in coding the GUI and I'm using most of the discoveries to help flush out concepts/theories for other aspects of the Game Engine.


DarkMORG GUI Editor


The GUI ties into every aspect of the user input to include non-graphical player controls, so I feel like I've been working on a Game and not just another boring GUI. I'm moving forward with Tool Development with only GUI labels and button behaviors created.

I was able to take the GUI Concept on Paper to reality in code. In fact it functions much better than I expected. I'm really excited about the progress and cannot wait to get coding on some of the other concepts like Modular Entity Construction and Behavioral Rules AI Node Systems.

Butter fingers
18
Years of Service
User Offline
Joined: 20th Mar 2006
Location: Mecca
Posted: 29th Nov 2008 03:28
interesting discussion,
I'm not calling myself an expert on DarkAI, but I have used it a fair bit, and have played with it outside of it's normal realms of use. I would advise you not to look to the teams demo as an indicator of potential performance;
Firstly, it's using DarkAI in automatic mode, which tends to be CPU heavy compared to the manual mode.
Secondly, it's only using 3 factions, where in an MMO I suspect you will have more than 1 enemy faction (ie, Orks and wolves are both enemies of Players, but they are also enemies of each other).

what ever, here is a vid I posted a while ago showing that Dark AI can handle large numbers of AI characters while also processing a bunch of other stuff at the same time (multiple collision detections and ray casts for example)... just a note, the "flocking" issue (whereby all the zombies move together) has now been sorted... I just haven't posted another video!

http://uk.youtube.com/watch?v=jTj6ilMho_I

Todd Riggins
20
Years of Service
User Offline
Joined: 29th Oct 2004
Location: Texas, USA
Posted: 29th Nov 2008 04:13 Edited at: 29th Nov 2008 04:14
TechLord, I keep thinking about that where I should just stop and just use buttons, statics, panels... the easy basic stuff like that. But I keep wanting scrolly stuff and so I keep going and adding more to the gui functionality. I got to at least have drop down scrolly menu type of support and then mabie I'll start playing aound with the fun stuff. I've already thought up of a interesting game that should be quick to put together with Dark A.I.

Butter fingers, hey thanks for the heads up with the manual mode. I was just starting to look over the documentation and the demos again. Thats awsome to know that you can control "factions" like that. Also, your video was very cool to watch! I liked that. (* must put GUI coding aside... )

Inspirational Music: Descent ][ Redbook Audio CD Soundtrack
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 29th Nov 2008 13:33 Edited at: 3rd Dec 2008 11:01
@Butter fingers: Give me my Infectious Zombie Outbreak, NOW. Oh Yeah! The vid was totally inspirational and reinforces my decision on investing in DarkAI. I cannot wait to start coding distinctiive Mob AIs with it such as the ones listed here.

@Todd: MAUI has two types of UIs Pointer/Gizmo (graphical 2D|3D) and Controls (input devices:keyboard|mouse). A Gizmo is basically a generic `hotbox` thats assigned a Behavior defining how it works `mechanically` during Pointer Events.

In MAUI, Scrollers, DropBoxes, etc are `Compound Gizmos`. Compound Gizmos are created with 2 or more gizmos that can have different behaviors that act upon each other. For example a Scrollbar consists of 4 Gizmos: two Directional Buttons, Lever Button, and Sliding Field.



So in other words, I can layout gizmos now that will represent scrollbars etc and code the behaviors later. Being able to do this was the only way I could stay motivated coding Yet Another GUI- LOL.

Login to post a reply

Server time is: 2024-11-24 18:42:28
Your offset time is: 2024-11-24 18:42:28