Looking for simple but complete open-source game

Hi all, I’m looking for a simple open-source single-player game to turn into a simple multi-player game. Simple so that a child can play it (so I can play it with my kids), and complete so it’s currently properly playable. A puzzle game would probably be ideal, and I’m looking to use my GMC library to add a multi-player aspect to it. It takes so long to trawl through BitBucket and GitHub repositories, downloading and compiling each game only to find it’s broken or non-existent. Any recommendations?

Thanks!

Hi Steve,

I think it´s not that easy, especially for puzzle games since the multiplayer factor in puzzlegames is most likely in the game-mechanics itself.
Also, you´ll have a tough time to read and understand the code of other players only to create a second character for example.
I don´t have a game I could give you and I also don´t think that implementing mp into a existing game is that easy but I could offer you something:
I got a little game engine I use to build basic prototypes. I think I don´t have any server/client function in there yet so if you wish, I/we could build a little game and you could make the multiplayer part.
I´m not sure how “good” the game has to be related to graphics and performance since the engine is just pure jave, not libs, nothing, so it´s not that fast in rendering and stuff, but I´t more than enough to build prototypes since there is already some handeling for input, animation and rendering which means I could build something like Tertris in an hour.
Just tell me if you want to take my offer…

Best regards,
Fabian Zimbalev

Thanks for your reply. I’m afraid I will have to decline your kind offer, but thanks anyway. What I’m looking for could be something like Tetris (although I’ve already created a multiplayer version of that) or any game where the players would play separately, but if one of them completed a “task” (e.g. a row in Tetris or a swipe in Candy Crash) something would happen in their opponents game, like it would get faster or something. Almost any simple game will do, but finding a good one in a reasonably finished state is more time consuming than programming!

CokeAndCode.com had a simple start for SpaceInvaders published as a tutorial. I don’t know if this code has been maintained and works with Java8 or not.

I have a puzzle game I started and am wanting to revisit, called Hexara. It started, conceptually as a sort of reverse-Boggle: instead of searching for words in a given puzzle, one builds the puzzle from the list of found words. Except I made it hexagonal and the words became icon-strings. I don’t know if this is suitable, in present form, for conversion to multiplayer, but am willing to brainstorm/collaborate and make the source available. I’ve been wanting to redo the Java2D graphics in JavaFX among other things, if that is an issue, but am open to other ideas.

I’ve got a few little open-source games available here: http://staticvoidgames.com/members/Kevin

This one is a puzzle game that might be pretty reasonable to make multiplayer: http://staticvoidgames.com/games/BlackSheep

But like others have said, what you’re describing is not trivial. It might sound easier to take an existing game and make it multiplayer, but that’s going to be much, much, much more difficult than writing your own game from scratch.

Start very small. Start with the bare basics. Maybe a chat room, or a multiplayer drawing application. Then move onto implementing a simple game, like tic-tac-toe or even rock-paper-scissors. Move on from there in small steps.

Thanks for the reply; those games look like the kind of thing I was looking for. If it’s okay with you, I’ll make a multiplayer version of Black Sheep. Initially it will just keep score of which player finishes each level first, until I’ve thought of how the players can affect each other’s games.

I understand what you’re saying about multiplayer, but I’ve written loads of “proper” multiplayer games before, from realtime to TBS. The hardest part is getting people to play them! :slight_smile: What I’m looking to do here is make multiplayer games where the players don’t interact directly, but compete against each other and indirectly affect each other’s game. As I mentioned in an earlier post, something like Multiplayer Tetris is a good example, where if one player completes a row, it speeds up the other players game. I’ve just released a multipler version of Tempest (source here: https://github.com/SteveSmith16384/wbt-multiplayer ) where completing a level causes the enemies to increase in the other player’s games.

Ah, interesting. I’ll be curious to see what you end up doing with this, so keep me updated!

I’ve just noticed that your games, at least the one’s I’ve tried, use Processing rather than plain Java. Do you have any that are in plain Java?

You can use Processing as a Java library and use plain old Java with them.

But if I remember correctly, these are all plain Java:

http://staticvoidgames.com/games/Defuse
http://staticvoidgames.com/games/MazEvolution
http://staticvoidgames.com/games/TimeForWords
http://staticvoidgames.com/games/Quidditch
http://staticvoidgames.com/games/BrinyDepths

I just tried MazEvolution as it looks interesting, and I thought it would be good if the player who wins gets an easier maze than the losers or something. Unfortunately there seems to be discrepancy between the jar and the source, as when I run the source, there’s no player or exit shown. I did uncomment some code that caused the player to be drawn, but still no exit.

I haven’t touched this code in years, but I can try to look when I get home.

But this is exactly what’s going to make your approach difficult: it’s one thing to try to write code and then add multiplayer to it. It’s a completely different beast to try to wrap your brain around code written by other people. Even if the code works exactly like you expect (which it never will), you’re still going to have to be comfortable going through code written by other people, which can be a very messy experience.

I would guess that what I did was comment out some stuff in order to create some screenshots of mazes without showing the player or exit, but that’s really just a guess.

I’ve fixed it now so it draws the start, end and trail.

Just the way I like it. :slight_smile:

I’ve just finished the first version of the multiplayer version of Maze Evolution. It’s a bit rough and in-progress but seems to work. As it is, the first player to get to the exit triggers a new level for all players, and the players who didn’t get to the exit get a more complicated maze.

I’ll add a readme soon and give you credit for the original game. I might tweak your algorithm for the first maze, as sometimes even that one can be challenging! It generates great mazes though.

Full source is available here: https://bitbucket.org/SteveSmith16384/mazeevolution

Hi!
You can check also some of my games:

  • CryptoRL2: a top down roguelike
  • GeometryTwo: a fully playable crazy game made in 48 hours for Ludum Dare compo
  • JPacman: simply pacman
  • Shade: a nice game I made with Alex Schearer years ago. Gameplay involves stay on moving shadows in order to grow

hope will helps!

Thanks Gornova, those links look good. Unfortunately, my laptop (Acer Aspire 3Gb RAM, Dual Core Celeron) seems unable to run anything created using LWJGL. :frowning:

I’ve just re-discovered the Java4k competition entries (http://www.java4k.com/) which I’d completely forgotten about. Some of them are absolutely incredible, and about half have the source code included.

Problem with LWJGL ? Do you have windows, linux, mac ? Maybe is just a problem of which version of LWJGL I’ve used

J4K competitions are awesome… and difficult to understand some times. I mean, these are games build for a competition with small code base, so…

Its Windows 10. All the games I’ve tried have the same problem (apart from the usual “lwjgl.so library not found on classpath” which gets really annoying after the millionth time but is fixable). I always get the error of something like “Unable to handle that pixel depth” (or something like that).

Hi

Set org.lwjgl.opengl.Display.allowSoftwareOpenGL to true, it should work. Your machine probably only has the crappy Microsoft GDI Renderer as unique OpenGL driver:
http://wiki.lwjgl.org/wiki/LWJGL_Hidden_Switches.html

A better solution would consist in installing a better OpenGL driver provided by your GPU manufacturer.

Actually, and this has been true for quite sometime now the, default OpenGL implementation is built on top of Direct3D. Still a crappy implementation, but not as bad as the old days.

What makes you think it’s any better now? It still supports only OpenGL 1.1 or OpenGL 1.4 in the best case, doesn’t it?