Server Help Forum Index Server Help
Community forums for Subgame, ASSS, and bots
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   StatisticsStatistics   RegisterRegister 
 ProfileProfile   Login to check your private messagesLogin to check your private messages   LoginLogin (SSL) 

Server Help | ASSS Wiki (0) | Shanky.com
<C> Fake Player Platform: Alpha Release

 
Post new topic   Reply to topic Printable version
 View previous topic  <C> ASSS Multipub Module Post :: Post <C> Flag Statistics  View next topic  
Author Message
Cheese
Wow Cheese is so helpful!


Joined: Mar 18 2007
Posts: 1017
Offline

PostPosted: Wed Jul 20, 2011 1:00 am    Post subject: <C> Fake Player Platform: Alpha Release Reply to topic Reply with quote

MGB Edit: Source code can be found at: https://bitbucket.org/roxxkatt/asss-fake-player-platform


This is the second biggest project of mine to date.
It currently is about 4500 lines of code, second only to Distension, which is about 6500 that I reduced from about 15000 lines of java.
However, I am going to keep it closed source for the time being due to its magnitude, size, and incompleteness.
I also want to release this because it has so many features that I can't test them all by myself.
I have been sitting on this thing for a very long time, and people have been asking me to release this for an equally long amount of time.
I honestly could have done this release sometime last year, and probably should have, and the last time I got to sit down and work on this was around May this year.
This thing does everything you could want a fake player to do, and I am beginning to add AI to it as well.
Also, I have written this in such a way as that other modules can access any of the fake players' information just like a real player.
I call this a platform because it doesn't actively do anything, it only enables you to do whatever you want, and requires you to use the commands or interfaces to actually get anything accomplished. However, it is powerful enough to base an entire zone around, and I have had the idea in my head to eventually create a PvP turret defense zone.

Additionally, I have incorporated Smong's/Jowie's damage module into this platform.
I gave it a complete overhaul, but it functions exactly the same.
The original version was 1800 lines and mine is only about 1300, but I have added features such as double barrels, multifire, prox mines, and bursts, as well as a testing system.
I plan to add shrapnel, wormholes, and repels soon.
Also, it is no longer required to add regions to your maps to watch damage to specific tiles. All damage in an arena is reported now. You can now choose to do if(regioncontains(x,y)).

The way that this system works is that you create a fake player, and then optionally make it move, have energy, take damage, have weapons, and have AI separately. For instance, a bot could energy and take damage, but couldn't move or fire. Also, a weapon type must first be created, and then assigned to a bot, which means you only have to create one weapon type once, and then simply have any number of bots use that weapon type. Any weapon that currently exists in subspace can be used, including thors with shrapnel. This also means that you don't even need to load all the modules for it to work.

I have also written in a few interfaces so that other modules have even more control over the workings of this platform than users using the provided commands. For any assistance with the commands, use ?fakehelp and ?man. For example, to create the zombies that have been occupying distension lately, I have been using the following commands:

Code: Show/Hide

?makefake Zombie
?|fcw f=10|fcw f=200 r=100 w=1
/?|ft fr=2 sh=3|faw id=1|faw id=2|fe nrg=2000 chg=500 spx=512 spy=512 spr=50|fm spd=500 thr=50 -w -s -n
/?fai -c -s -n


To duplicate the HyperSpace PointDefense, you would use the following commands:

Code: Show/Hide

?makefake <pointdefense>
?|fcw f=10|fcw f=30 r=20 w=1 l=3 -a
/?|ft fr=1 sh=8|faw id=1|faw id=2|fm p=Cheese
?attach Cheese [optional]


This platform is in no way complete. If you have any ideas or feature requests, please post them here. The commented lines in the interface are features that I plan to incorporate into the platform.

Known bugs:
No bomb gravity or repels - coming soon
Respawn time - bots come back way too soon, it worked and then somehow I broke this...
AI pathfinding - works well enough for distances of 10 tiles or less, any more eats CPU (USE AT YOUR OWN RISK)
Bots might be able to stalk players in other arenas - may not be a bad thing

If you find any other bugs, please post here and be very specific, including how you found the bug, when it happens, and any other pertinent information.
Try to break it, and if it does, let me know exactly how you did it.

I still have managed to test this fairly rigorously and get it fairly stable, and I have gotten 200 bots into one arena before, and have gotten weeklong uptimes multiple times while having 100+ running.
Many screenshots are on a different computer, but here are a few screenshots of it in operation on this computer:









Lines for modules.conf:
Code: Show/Hide

fake:fakedamage
fake:fakeenergy
fake:fakemove
fake:fakeai
fake:fakeweapons



Commands for groupdef:
Code: Show/Hide

privcmd_ft
cmd_fcw
privcmd_faw
privcmd_fkt
cmd_fkts
privcmd_fm
privcmd_fkm
cmd_fkam
privcmd_fe
privcmd_fai
cmd_fakehelp



32bit Windows .DLL binaries included.
64bit Linux .SO binaries included.
Compiled on ASSS version 1.5.0
Any comments/suggestions/ideas would be appreciated.


_________________
SSC Distension Owner
SSCU Trench Wars Developer




Fake Player Platform Module
By Cheese

fake.zip - 95.72 KB
File downloaded or viewed 198 time(s)
Back to top
View users profile Send private message Add User to Ignore List Visit posters website AIM Address
Cheese
Wow Cheese is so helpful!


Joined: Mar 18 2007
Posts: 1017
Offline

PostPosted: Fri Jul 22, 2011 9:40 pm    Post subject: Reply to topic Reply with quote

i believe i may have fixed the respawn delay bug
i believe the problem was that i had put the kill:enterdelay value, which i presume is in centiseconds, directly into the timer, which accepts milliseconds, making the bot respawn too soon by a factor of 10.
this should be fixed in the next version

when i get to work on this next, i plan to fix bot+wall collisions.
the bot treats itself as a point particle when colliding with walls, leading to strange optical illusions when in close proximity to walls, and apparent wallhacking through single tile holes.
Back to top
View users profile Send private message Add User to Ignore List Visit posters website AIM Address
Dr Brain
Flip-flopping like a wind surfer


Age:38
Gender:Gender:Male
Joined: Dec 01 2002
Posts: 3502
Location: Hyperspace
Offline

PostPosted: Sat Jul 23, 2011 10:28 pm    Post subject: Re: <C> Fake Player Platform: Alpha Release Reply to topic Reply with quote

Cheese wrote:
Any comments/suggestions/ideas would be appreciated


Without source don't expect anyone to use it. Especially when asss binary compatibility is as bad as it is. An upgrade potentially rendering a library module worthless is a good reason not to use that library.
_________________
Hyperspace Owner

Smong> so long as 99% deaths feel lame it will always be hyperspace to me
Back to top
View users profile Send private message Add User to Ignore List AIM Address Yahoo Messenger MSN Messenger
Cheese
Wow Cheese is so helpful!


Joined: Mar 18 2007
Posts: 1017
Offline

PostPosted: Sun Jul 24, 2011 12:04 am    Post subject: Reply to topic Reply with quote

ive already encountered someone using a custom game.h with CB_KILL as "kill-3" instead of "kill-2"
not sure what to do in these situations...


also, I will probably release the source code later, but for now people don't deserve to be forced to make hybrids out of an incomplete project when they can wait a bit and receive a completed project...
Back to top
View users profile Send private message Add User to Ignore List Visit posters website AIM Address
Cheese
Wow Cheese is so helpful!


Joined: Mar 18 2007
Posts: 1017
Offline

PostPosted: Mon Jul 30, 2012 10:58 pm    Post subject: Reply to topic Reply with quote

I have released the source code.

http://www.subspace.co/topic/26524-c-fake-player-platform-official-public-release
http://www.subspace.co/files/file/37-fake-player-platform-source-code/
Back to top
View users profile Send private message Add User to Ignore List Visit posters website AIM Address
Mine GO BOOM
Hunch Hunch
What What
Hunch Hunch<br>What What


Age:40
Gender:Gender:Male
Joined: Aug 01 2002
Posts: 3614
Location: Las Vegas
Offline

PostPosted: Thu Aug 02, 2012 4:55 pm    Post subject: Reply to topic Reply with quote

Nice. For ease of others, you can see the code on Bitbucket at asss-fake-player-platform.
Back to top
View users profile Send private message Add User to Ignore List Send email
Display posts from previous:   
Post new topic   Reply to topic    Server Help Forum Index -> ASSS Custom Projects All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You can attach files in this forum
You can download files in this forum
View online users | View Statistics | View Ignored List


Software by php BB © php BB Group
Server Load: 697 page(s) served in previous 5 minutes.

phpBB Created this page in 0.554054 seconds : 33 queries executed (93.5%): GZIP compression disabled