https://github.com/emasuriano/felix-fix-it-multiplayer
Remake of the retro game: Felix Fix It, with the ability to create rooms dynamically in order to play with another person via HTTPS.
https://github.com/emasuriano/felix-fix-it-multiplayer
c pthread sdl2 sdl2-image sdl2-ttf semaphore socket
Last synced: about 1 month ago
JSON representation
Remake of the retro game: Felix Fix It, with the ability to create rooms dynamically in order to play with another person via HTTPS.
- Host: GitHub
- URL: https://github.com/emasuriano/felix-fix-it-multiplayer
- Owner: EmaSuriano
- Created: 2017-03-04T17:47:32.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2019-01-01T21:19:01.000Z (over 6 years ago)
- Last Synced: 2025-03-01T00:10:55.509Z (about 2 months ago)
- Topics: c, pthread, sdl2, sdl2-image, sdl2-ttf, semaphore, socket
- Language: C
- Homepage:
- Size: 741 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Felix Fix It Multiplayer
Remake of the retro game: Felix Fix It, with the ability to create rooms dinamically in order to play with another person via HTTPS. Written in C language and using SDL to render the graphics.

## Getting Started
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
### Prerequisites
Client and server will only run on Linux systems (maybe Mac too, but it hasn't been tested). In order to be able to execute we need to download some packages from apt-get install:
```
sudo apt-get install libsdl2.0-dev libsdl-image2.0-dev libsdl-ttf2.0-dev```
### Installing
After installing all the packages from above, we're ready to compile our .c files just by running:
```
make
```This process will result in three new files inside the root folder:
- Torneo: server process to allow users to join to waiting rooms and play.
- Partida (CAN'T BE MANNUALLY RUN): match process - The server will create one of this when two players are ready to play.
- Cliente: client process that allow players to join rooms, change nickname and configuration.If you want to rebuild the files, first you need to remove the compiled ones. The following command will wipe them for you!
```
makeclean
```## Torneo(Server) description
Command to start the server:
```
./Torneo
```This will bring a dashboard with the description of current matches and players connected:

The server will be alive until someone stop manually the process, otherwise it wouldn't close at any time.
## Cliente (Client) description
Starting the client:
```
./Cliente
```The first screen you will see is the main Menu:
//PASTE IMAGE OF MENUThe first option will connect us to the server and join a waiting room for another player.
The second one allows us to change:
* The configuration of the server to connect with.
* The keys to move the player and fix the windows.
* Our nickname inside the game and server.After two players join the waiting room, the server will create a match and there they can start playing:

The match will continue until both players are dead. Meanwhile the server is storing all the points of the match, so if one person play more than one game he will gain all the points of the matches.
After the match is over, both player will enter in the waiting room (again) and the server will choose different players to play with (if it's possible).
## Built With
* [SDL](https://www.libsdl.org/) - Simple DirectMedia Layer
* [pthread.h](http://pubs.opengroup.org/onlinepubs/7908799/xsh/pthread.h.html) - POSIX Threads
* [sem.h](http://pubs.opengroup.org/onlinepubs/7908799/xsh/syssem.h.html) - Mutex Semaphores
* [socket.h](http://pubs.opengroup.org/onlinepubs/7908799/xns/syssocket.h.html) - Sockets## Authors
* **Emanuel Suriano** - [EmaSuriano](https://github.com/EmaSuriano)
* **Esteban Barrett** - [Ph003](https://github.com/Ph003)
* **Federico Casabona** - [FedeCasabona](https://github.com/FedeCasabona)## License
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details