![]() |
|
Online Multiplayer viability with Allegro |
Cosford
Member #16,050
August 2015
|
Hi Guys, new around here to the forums. Prepare yourselves for an essay, or skip to the bottom for a TLDR. Myself and some friends are board game fans and some time ago, we got together a few times over the space of a few weeks and discussed and noted down a whole set of concepts and ideas for a complete game, dissimilar to anything else we could find currently available. However, due to the scale of the game (with regard to board size), implementing the ideas as a board game just isn't possible and scaling down the game such that it would play nicely as a board game, would suck a lot of life from the game. Therefore, I'd like to implement this as a computer game. It should: I'm a Digital Systems Engineering student, with plenty of experience working with C++ (although, this experience is in working with microcontrollers, not desktop/mobile applications). I'm familiar with some of the concepts of network connectivity, and basic uses of PHP, MySQL etc. --------- TLDR --------- Can Allegro be used to produce a simple 8 player multiplayer online game and how would one approach it? Would using Allegro be the most efficient way of doing it, given the intended end result is the destination, rather than necessarily the journey? |
Specter Phoenix
Member #1,425
July 2001
![]() |
Allegro has no networking API and you would need to find a separate library for that. Otherwise Allegro could be used for graphics, input, and sound. As for how you would approach it, start by learning to make games instead of jumping head first into the deep end. You should start by making simple games, simple chat programs, and proof of concepts for combining the two.
|
Cosford
Member #16,050
August 2015
|
Hi, thanks for the reply. I should have mentioned that I've worked with Allegro before. I worked through a comprehensive Allegro 5.0 tutorial guide (although the author of said guide I can't recall at the moment) and went on to create two simple games (a chess clone and a ~sort of~ RTS). It is because I'd worked with Allegro before that I came straight here to see whether this would be possible without entirely relearning a new API or engine from scratch. |
Chris Katko
Member #1,881
January 2002
![]() |
Seeing as how Allegro does audio and graphics, it's completely orthogonal to your requirement. That is, it won't help, nor hurt, your ability to write a multiplayer video game. It should be stressed, however, that multicomputer (multiplayer) games are inherently more complex than single-computer games because of the syncronization. That being said, if your game is more "typical" and you don't mind giving up some creative freedom for some ease of development? There are various "engines" that do most of the work for you. For example, I used to play Space Station 13 a lot. It runs on top of the BYOND engine. BYOND is java game engine (with a C-like scripting language) designed for massively-multiplayer JRPGs. {"name":"maxresdefault.jpg","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/c\/5cdef6a5d8550f5f51272ca44051176b.jpg","w":1920,"h":1080,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/c\/5cdef6a5d8550f5f51272ca44051176b"} {"name":"hqdefault.jpg","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/c\/e\/cec3487d2adafa61e332d59157f3ed85.jpg","w":480,"h":360,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/c\/e\/cec3487d2adafa61e332d59157f3ed85"} {"name":"99920_11447.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/c\/4\/c45a04a1b812a58a181f5b910b63be5b.png","w":799,"h":596,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/c\/4\/c45a04a1b812a58a181f5b910b63be5b"} It's sprites on top of a tiled map, with a chat box, all for free. BYOND "solves" the multiplayer problem by keeping the entire game on the server, receiving user inputs, and streaming the graphics back to the clients. The clients are nothing but dumb terminals (though they receive "what" tiles to draw instead of every pixel, so it's better than Remote Desktop/VNC/etc), so there is no multi-threading to deal with. Everything runs in a single path of execution. That's an important speed limitation, but it's also a gigantic advantage in terms of keeping complex systems human manageable. So in summary: Allegro works great for multiplayer games... so do other game libraries. But there are also game "engines" that may meet your needs and allow you to focus more on "making the game" than re-implementing the wheel. It all depends on your requirements, and the time and effort available. -----sig: |
Matthew Leverton
Supreme Loser
January 1999
![]() |
Depending on your skill set, you may find it easier to build a browser based game, particularly if it's turned based. You could just make it page-refresh based with some sort of JS chat plugin. Allegro is great at what it does, but it is really a niche library for those who still want to make a desktop game (generally 2D) without the help of some game engine. If the goal is the end result (the game), then I would not use Allegro, SDL, or any other desktop based thing - I'd make a game that plays on a website. If the goal is the journey, then perhaps I'd use Allegro. |
|