jsbotarena's People
jsbotarena's Issues
Add more arena scanned data such as obstacle type, size and position
Add more tweak pane folders
Add tweak pane folders for:
Robots
Projectiles
Animations
Pools
Try spawning the projectile at the turret tip but you also need to check overlap (like spawning) so that it doesn't spawn inside another collider.
Rename system_newRoundReset() to system_unloadLevel()
This will make it clear that this function is used to unload and clean up the existing in anticipation for the next level.
The origin of the turretImage needs to be set depending on the hull image.
the hull entries in the database needs to specify an offset from their center where turrets attach to,
Change the objects that are called "...Helpers" to "Operations"
Example: AngleOperations.js
Try a spatial hash to make the scanning faster.
Corner robot upgrades
The robot corner should increase the radar fov angle to max and keep the radar static pointing down from the corner the robot is guarding.
Then keep track of the closest robot and rotate the TURRET until its bearing matches the angle of the tracked robot, and then fire.
Ideally also vary the type of projectile fired depending on the distance of the tracked robot.
The robot should also change corner if nothing happens after a certain amount of time.
Implement a system for loading levels defined from a JSON database
Same thing like we're doing for the Hulls, Turrets and Projectiles
Maybe there shouldn't be a distinction in the JSON regarding different types of layers.
I think every layer should be treated the same and custom collision situations should be handled with properties in Tiled like "collides" and "pit".
The scanForRobots functions only detects other bots' center-point only, not their entire bounds
Add scanned projectile data
The currently loaded tank images are facing upwards but Phaser faces to the right so these images need to be rotated.
Using image alpha to implement stealth mode, maybe from a powerup
A robot that tries to build a mental map of the arena from the information in the scanner
Then uses pathfinding techniques to find its way through
Add `system_shutdown` function which is used when closing the game.
This function is used to completely clean up everything.
RaycastManager
currently has system_dispose but it's not being used.
Only use one single spritesheet for all the images instead of multiple spritesheets
The robot scanner needs to also consider collidable objects in the way
Trying waiting for the turret to be aiming at the enemy bot before firing
Applicable for the robots which use a large radar arc
Implement the `AnimationManager.anchorAnimationTo()` function
so animations can move with some gameObject anchor
Group some of the scripts into their own directories
Scripts usually fall under a specific category, like Managers
or Utilities
, so group these into directories. This will make it clear how many Managers
exist in the game because these scripts are used for specific cases such as holding game state.
Make the pathfinding robot react to projectiles
Projectiles need to be represented as "temporary" non-passable through locations which need to be reset after some time.
Remove the old files directory
Rename system_preload() to system_preloadOnce()
This will make it clear that this system_preload
function will not run again once an existing level is reset and new one is loaded.
Make the corner guard bot keep the radar and turret in the arena and not rotating behind
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.