jkoan / sdl_bomber Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU General Public License v2.0
License: GNU General Public License v2.0
David Ashley [email protected] 990207 11:24 PST This is work in progress and might be of absolutely no use whatsoever. This is a Bomberman clone. I bought a game called Atomic Bomberman and found it awful, there were intolerable delays after each game in network play while the game was downloading data (what data?) over the network. Really crappy job they did but I liked the artwork and sound effects. Atomic Bomberman was a DOS/win95 game. I looked under linux games and found xblast but it was unusable for various reasons. For example its network support just relies on xwindows networking--before entering the game you've got to type in the host:display of each person who will be playing. Only the main machine gets any sound. Also in the game you kept moving in whatever direction you had last hit until you hit a wall or hit another direction. There was no point in using the source as a starting point, there were so many critical design flaws in that version I decided to write my own game from scratch. Currently the game will most likely only be playable on a LAN. Some machine must run the matcher program. Players register their game with the matcher machine, and joiners query the matcher machine to get a list of active games. On xdr.com there is a matcher program running and the bomber.c mname[] definition points to xdr.com. I tried it and it didn't work on my own LAN through a firewall. You can try the game as is and it might work using xdr.com as a matcher. Otherwise you'll have to run your own matcher daemon on some machine. Assuming you have 3 machines tom, dick and harry and you want to play a 3 player game, you would modify bomber.c's mname definiton to be (line 47 of bomber.c) char mname[]="tom"; Then on tom run the matcher program as a background task. Compile and distribute duplicate copies of bomber and data/* files, then run bomber on each machine. The menus should be self explanatory--one person selects HOST NETWORK GAME and the other people select JOIN NETWORK GAME. ----------------- How to play --------------------------- You've got to blow up other players to win. Spacebar drops a bomb. Get away and hope your enemy gets hit by the flame. The 'b' key is a 2nd control for when you are lucky enough to pick up the bomb control--looks like a bomb with a timer on it. When you have that the bomb won't go off until detonated by another bomb, you are killed, or you press 'b'. Blowing up bricks might result in prizes, most of which are good. Skates = speed up Bomb = allow you to have one more active bomb flame = Increase bomb strength turtle = makes you move very slowly bomb with timer = controlled bomb detonation with 'b' key. gold flame = Set flame strength to max There isn't much point in playing the game alone (single player). In that case the only thing to avoid is accidentally killing yourself. Big deal... It's really a multiplayer game. ----------------- Left to do: ------------------- Come up with a better scheme for internet play, as it is any latency will kill the game playability. Works fine on LAN though. Figure out why matching doesn't work through a firewall... [Specific case is 2 machines on my LAN cannot be matched by a machine that is outside the firewall, and the firewall machine is doing IP masquerading. Net result is matcher gets remapped IP addresses and these mean nothing inside the LAN, only make sense when used from the outside world] Score. Remap movement keys not implemented. Allow game hoster to set network game options and have them visible to players who have joined the game. Alternate gfx sets. Better handling of 8 bit mode with limited palette. Computer controlled things that can kill you. Other bonus types that can be harmful, such as skull. Internet play where everything is asynchronous, thus playable with a fixed latency. As it is now slaves send to master, then master sends back to slaves, and this data xfer must complete before the game can advance a step. For internet this would be intolerable. I've never tried though... Better docs, online explanations, attract mode... Single player with computer controlled figures that must be killed/avoided. ---------------- Direct comments, complaints and questions to [email protected] This code is GPL.
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.