mikeware / spacebattlearena Goto Github PK
View Code? Open in Web Editor NEWSpace Battle Arena is a Programming Game.
License: GNU General Public License v2.0
Space Battle Arena is a Programming Game.
License: GNU General Public License v2.0
ERROR: Command ROT({DEG=0.0}) failed: Invalid Ship Command: 'Degrees Must be Non-Zero'
This tends to happen for students when we play find the middle. We should probably have the RotateCommand throw an exception if its constructed with 0 as the degrees? Not sure...
It'd be nice for the Dynamic Camera to look at deltas in score changing and health/shield values/damage/possible destruction to create a more interesting hands-off experience.
Allows you to adjust your velocity vector by a number of degrees.
The time it takes is based on the amount of adjustment required.
Need to investigate running the server from source on MacOS or Linux.
It should work fine, but need to double-check.
When the game is initially created and tries to instantiate its world, the world is starting to run right away.
If there happens to be a collision in the time before this initialization finishes and the game gets its world references, errors are currently spit to the console.
Not sure of impact. Think can either delay world gameloop or maybe since passing game to world anyway, just have it set the reference and clean-up messy create/reset stuff in game...
e.g.
Ideally, just migrate to a central major/minor convention for all three? Kind of already abstracted that way on the client.
I wrote a preliminary Microsoft Message Analyzer Log Parser. Need to figure out where in the tree it should live.
It's pretty neat.
Currently, Ships need a reference to the world so they can fire torpedoes (and maybe create other things in the future).
It'd be nice to abstract this reference somehow so they look like other objects.
Score = Max(TimeAlive)
After QUIT seeing:
Attempting to disconnect...
Disconnect complete.
Shutting down...
Attempting to disconnect...
Disconnect complete.
Notice the extra two lines
Not sure of the performance of either approach, but would be an interesting test to see if we could do less calculations in the gameloop for performance.
Would probably implicate that you don't get effected by gravity on the edge of the worlds, but not sure if that's working well anyway...
Check out example from http://jsfiddle.net/CriddleCraddle/Wj9dD/
This currently should only occur when the server gets gracefully terminated. It just causes a big exception stack to show in the client, but it should be handled a bit more gracefully in general in the client.
This is due to the fact that the json is sending [0,null](server -> all), but the client is explicitly expecting [int, int] and doesn't seem to parse 'null' as an integer.
Would be great to just have a pre-built app of the server using py2app for OSX.
Just need someone with a Mac...
Or just have fullscreen=true ignore the resolution and detect the monitor resolution.
Either case, it shouldn't be a manual process like it is now.
Need to clean-up the logic around ships respawning in the world, it's a little messy right now. This should just be the default behavior based on how we've used the system.
This will also help in cases where a 'player' isn't connected via the network...
This way if a player's ship is destroyed it's not a bad reference. It also makes it easier to pass around to give scores to the owners of things.
Ownership should be a more general property.
Think this is only when run from source. Think it's an extra thread in the networking side of things. But it's been an annoyance.
the map on the REQUEST in TextClient.java just looks for the GAMENAME, but the game could return more info about its settings if we want.
We should think about exposing this in the future to the registerShip method.
It'd be nice on the server when you zoom in or click to navigate that it does the transition more smoothly so the context of the world is maintained.
This would be nice for the tracking too, so it would jump more smoothly between ships (especially with the dynamic camera enabled).
Should just do like games work now and construct the object based off the name so that it isn't a hard-coded value.
Need to port over and clean-up lesson plans for Documentation section.
No loop, so server exits immediately. Know this used to work, so not sure what happened.
Not a high priority, as not very interesting to look otherwise...
Need to clean-up configuration files as examples and to better correlate with lessons and subgames.
Should specify how quickly you rotate or steer for instance, so that time and energy calculations can be made more predictable.
Need to abstract and move to only 'Round' objects
Currently, just using for testing, but should have a flag around if the AIShip 'counts' as a player and can advance in rounds (i.e. it's a bar to beat). You should decide if there's one per tournament or one per round...
Or is it just an auxiliary environment thing that should be ignored from scoring and advancement (i.e. you would add one or more during the world creation. Like turrets or defenders or something.)
Doesn't seem to be explosion force, as disabled that for torpedoes...
Thought of a potentially 'easy' way to implement a 'testing' framework to let us craft specific scenarios and view/test on the outcome.
Debating on how much I want this to be configuration vs. code, but would be really nice to test out certain scenarios in controlled environments to understand the complexities of certain elements of SBA more.
Want to review the new properties for Pull, Major, and Minor on the client?
Wasn't sure how best to describe it, but it was at the end part of brain power.
Right now, it's just a kind of hack in the game to put the Ship in the same group as the celestial bodies.
Though most game objects are also in this group...
Would be nice to have the single script to automate client and server generation of binaries and documentation from the command line.
Currently, 0 degrees is E and positive angles are CCW.
We should have 0 degrees be N and positive angles are CCW.
Would make it easier to split machine, world, game, and tournament settings up for instance.
Currently, it's stuck waiting for input.
See article here maybe for help unless you want to adjust how the client works: http://www.javaspecialists.eu/archive/Issue153.html
Think purely text client is good to keep, so not adverse if above method works.
See push of #14 when I do that soon.
Currently, Ship's rotations are handled as an independent entity.
If we plug it into the Physics Engine, then collisions should cause changes to angular momentum. This would be more interesting and realistic. Though we would probably need a command to 'stop' rotation?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.