danishcake / shoko-rocket Goto Github PK
View Code? Open in Web Editor NEWA clone of Chu Chu Rocket
A clone of Chu Chu Rocket
Should add smooth scrolling. New game grid can be used to compensate.
Screen resolution should be configurable, as most of the rest of the game now works on any size screen
Players need to see colour coded mouse cursors for their opponents
I should create a few multiplayer levels to test with
Levels should have limits in the metadata, eg 2-8 supported players, name, author etc.
The client should be able to obtain a list of servers. Add a master server to facilitate this.
Should be very simple - just a multiclient server that sends a long list of servers to client.
Clients will take different amounts of time to load, so when they are done they should send a ready message to server. Once all are received then it can begin the game. Perhaps there should be a 20s timeout?
Add basic spawning in multiplayer so that more opcodes can be tested
Massive number of warnings are produced on compilation, and obscure real problems. They should be removed.
Allowing saving of servers on the server browser. These could perhaps be drawn on a different background to the master server provided ones?
When the player changes their name in the lobby is should be saved - but only when it is changed by text entry.
Widget sizes cannot always be known beforehand. I should add scalable widgets to support this. Central tiled area with surrounding edges.
The editor needs a save file dialogue
Mouse Mania and Cat Mania, Everybody Move, Slow Down, Speed Up special events should occur every so often. When they happen the server should announce it, pause for 1000ms and then start again, with the new effect. A new message at the end will probably be needed.
The editor draws outside it's 12x9 bounds, so should be rendered offscreen first, so as to clip properly.
Widget are currently drawn in order of creation. They should have a z order. Modal widgets should be boosted to the top of the z order!
The 'ready' checkbox widget just changes the text, which is ugly. Provide a prettier widget.
After a mouse-hole/mouse-cat collision the editor resets - this can confuse which two collided. This should be highlighted for a few moments after reset
There is a blank bitmap for the scroll widgets - it should be replaced with a better image
Level Rip should check checksums, and lookup offsets in a table to work out where to rip
I've seen Cats & Mice tunnel through each other, so need to improve collision detection or set maximum delta time
The lobby has a few problems - new client names are always put in the client name entry box, not just when it's the correct client. On starting a new server the client readiness is not reset
Text input is needed to enter author/level name in the editor. It is currently not working, so requires tests to be written and input implemented
When starting the game using the keyboard there is no visual clue to the game being run (if it has no entities)
It would be cute to add a little circle of mice who ran around each other, drawn in the bottom left corner. Might need to add animation to gui elements to achieve this however!
Widgets cannot be created from callbacks as they invalidate the interators. Should add them to temporary lists that are merged on Tick()
The lobby makes inefficient use of space - ready widget could be removed and the player list used. The back button could be in a corner, and the chatarea/player list would have 128 extra pixels width.
Level rip produces levels that are technically correct, but because the XML tags are in the wrong order will not be possible to beat! Should add a patch to fix this
Server settings like port, max clients, default map rotation etc should be added to seperate ServerConfig.xml file
Improve the multiplayer user interface with widgets displaying the score. Arrow area looks good for this.
The editor cannot open saved files - this would be very useful!
a) Add a locked attribute to XML to prevent finalised levels from being opened
b) Add a menu item to open for edit to the menu
Scrolling doesn't work properly in Multiplayer.
Rather than having to drag to place, wasd should be used. There should also be backspace for reset & space for start
A mouse and a Cat can tunnel through each other as they wrap around
Sprite frames are loaded from XML, but often packed into the same bitmap. These are currently loaded from disk repeatedly, so should cache them to speed up loading a lot. Can clear the cache once done.
This area should be expandable/shrinkable for different sized levels, up to the limit of the window size
The server should be able to send the client a copy of a level. It's usually only a few kb, so it would be a waste to no do so.
Incorrect number of levels displayed when no levels present
In the lobby there should be a widget displaying the currently selected players, along with their ready state.
Allow the first user on server to set level - this will usually be the client who created the server(as I have no dedicated server yet)
Therefore should implement an authentication stage, where the client object grab a key from the server object and then sends it to the server, which should allow a degree of extensibility for dedicated servers
When the first user joins a server he should be able to control it's settings. This could involve automatic authentication if the server is not dedicated, rather than just granting admin to the first connecter
When entities walk off one edge, the cut fraction should be drawn on the other side
Spawners are not rendered yet - create a sprite for them
Arrow-walker interactions seems to suffer poor latency, even in low latency environments. Walkers regularly tunnel through arrows for up to a second before being redirected. Should find ways to improve this.
a) Perhaps batching of entity arrow interactions could result in much lower overhead?
b) Better extrapolation - eg have entities guess when they will interact with an arrow and behave as if they have. Corrections could be made on the basis of possibility - eg keep a list of interactions believed to have occurred and invalidate/confirm as proper info becomes available. If invalidating then revert state and extrapolate
The server currently sets the clients name, but this is not reflected by the name entry widget.
PlayerRockets need colors - create 8 matching the arrows
Get basic multiplayer working
If a server has a client connect on ID 0, then disconnect, the next client will be assigned ID 1 not 0. This could lead to a client getting given an ID of 8, which would crash the client.
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.