jsbotarena's People
jsbotarena's Issues
Change the objects that are called "...Helpers" to "Operations"
Example: AngleOperations.js
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.
Add scanned projectile data
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.
Try a spatial hash to make the scanning faster.
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.
Add more arena scanned data such as obstacle type, size and position
Only use one single spritesheet for all the images instead of multiple spritesheets
Add more tweak pane folders
Add tweak pane folders for:
Robots
Projectiles
Animations
Pools
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.
Implement a system for loading levels defined from a JSON database
Same thing like we're doing for the Hulls, Turrets and Projectiles
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,
Implement the `AnimationManager.anchorAnimationTo()` function
so animations can move with some gameObject anchor
Trying waiting for the turret to be aiming at the enemy bot before firing
Applicable for the robots which use a large radar arc
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
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".
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.
The robot scanner needs to also consider collidable objects in the way
Using image alpha to implement stealth mode, maybe from a powerup
The currently loaded tank images are facing upwards but Phaser faces to the right so these images need to be rotated.
The scanForRobots functions only detects other bots' center-point only, not their entire bounds
Make the corner guard bot keep the radar and turret in the arena and not rotating behind
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.
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.
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.