Online Platformer?

Started by
7 comments, last by Ferrik Bromyde 19 years, 10 months ago
Howdy all! I'm new to the Gamedev forums, though I've lurked on and off for a year or two. I've never completed a game other than Tetris and similar small games (with the exception of a Myst-like game and a text adventure game I did a LONG ago), but I've been working on a game idea I really want to write. I want to be able to feel like I've accomplished something over time even if I don't finish it, which is always a possibility, so I'm working on an iterative game design, (i.e. I can build a small game, and build it into a larger one over time because of the modular/scalable design). Anyway, I have a few questions regarding said possible design. For lack of better ways to describe it, I may compare it to games that came before it. Basically, the game should be a 3d online platformer, with control and basic gameplay similar to Mario 64 (i.e. flips and jumps, etc.) There would be buildings, shops, etc. that have minigames and such you can play. As far as any PvP combat goes, that will be non-lethal and essentially like Super Smash Bros. Melee. Okay, so I took a lot of inspiration from Nintendo...what can I say? They make some awesome games. :) I also want to include a light RPG element through an inventory similar to Zelda or JKII. Additionally, I want to have the ability to basically connect a "house" you keep on your computer to any server you're on (this came from thinking about P2P gaming ideas and reading Snow Crash). You could then "invite" people into your home, etc. Servers and "houses" could be interconnected through portals of some sort, perhaps even a central gate that could "dial out" (to use a Stargate term) to other servers. Perhaps, to give the game a bit more focus, there will be a castle or other central location on each server where the "king" (player with special benefits) resides. The one with the most points is King, and points are gained possibly through minigames, combat, etc. The graphics would be fairly cartoony with perhaps a slight western or medieval flair. Reading through all that, that seems like a rather disparate set of elements and might not easily meld into an actual game idea the way it has in my head. My original inspiration for this game, if this is any help, was a TFC server called the SillyZone. There were some additional mods on the server and killing was discouraged, so people just signed on to the server to talk, have fun, try out wacky stuff, play games they made up, etc. Basically, I see this the same way. A place to hang out and have fun for a few minutes, but more than a chat room (especially since I love platformers). There could even be team-platforming elements! :) So: 3d online platformer with chat elements and VERY light RPG elements. Question the first: Do console-style controls (Mario Sunshine, for example) transfer well to PC, or is is a nightmare? Question the second: I've been considering building a simple AIM client into the game and UI using the TOC protocol. Would you find it a benefit/cool feature to be able to talk on AIM and play at the same time, or a hindrance? And the third: With the real-time bandwidth requirements of an online platformer, any more than 30-40 a server would probably be very unwieldy, right? Are there any obvious questions/problems I'm not seeing?
Advertisement
-Direct ports of console controls always frustrate PC players. If you design your control scheme FOR the PC, then there shouldn't be a problem.

-In a slower, more relaxing game atmosphere, in-game IMs wouldn't be a horrible idea so long as they were completely optional and didn't interfere with the experience.

-Depending on the throughput and processing power of a server, if you wrote really clean and compact netcode you could probably manage at least 30-40.


Now, for the bad part.
You probably need to aim lower. It sounds like you've done some developing before, but nothing the level of a rather large, interactive, 3d world. This is the sort of project that entire teams get stuck and lost on, a single person will probably either get stuck somewhere during development, or will put out a half-baked product. It's easy to see these great things and get excited about making something like them, but worry first about the essentials. Learn 3d, then learn networking, then learn any other pieces you need to make this vision a reality.

Now, for the upside of that.
You don't sound too off-the-wall about it, which means that you probably have a good shot of making SOMETHING good if you set your ambitions to a level that you can actually achieve. Deep breath, think about exactly how much you can manage, and replan a project that's a little bit more 'Intermediate' on your road to this one.
Well, it appears that the server ate my original response, which was probably more lengthy than necessary anyway. The gist of it:

Muchos gracias for the reply, senor! And you are quite correct about my lack of game development experience. The largest project I ever actually completed was a compiler for a modified version of C. I've started several 3d engines, though I've never finished one...but at least I always learned something.

I have a particle engine, a scripting language, a simple AIM chat client, a partially working network engine, and the foundation for the game...it's a redesign of a game I started years ago, but I based the redesign on Design Patterns and on the Enginuity series of articles, which helped point out some things I'd not taken into account. Right now it's basically a chat application with some extra features, but I'm hoping that I've designed it well enough to be fairly modular. My initial goal is a simple online side scroller with chat, and then I can take a step back and ask myself, "Can I really do this?" Then would come major tasks like replacing 2d physics and graphics with their admittedly much more complex three-dimensional counterparts.

One of the other problems is my lack of artistic flair. While I have some design experience in CAD systems like Unigraphics, Anvil, etc., limited knowledge of Maya and Blender, more experience with Photoshop, etc. and a small amount of technical proficiency in drawing and such, I just don't have the ability to put something together that makes people say, "Wow, that looks really cool."

Thanks again for the advice! One last question, this one regarding my network engine: I currently have a CConnectionManager Singleton that handles a list of implementations of the abstract base class Iconnection, and IConnections handle IMessages. Under the current setup, you create and register an IOCPConnection, for instance. Then you'd hand an IMessage to the connection manager, with info about who it needs to be sent to, etc., and the manager would hand it off to the proper IConnection. All IMessages have Serialize functions. Is this an overall robust design, or did I overdesign/underdesign or otherwise miss an obvious problem?
Hi, I tried to reply last night, but yeah, the server went down.

I really like your idea, and have actually been working on a similar thing. Like you tho, I'm taking a more realistic (for me) approach at first, working on a 2D game to start with.

Here's a thread I made on it. People posted some good ideas there you might want to check out.
Howdy!

If you keep your mini-games seperate, then you can have a central world 'hub' where people meet, chat, and join games. This is kind of what people were thinking about when Quake1 was coming out. Originally, doors would connect to games and other servers.

You could have dedicated servers for game 'spawns' and such, so high flinch games could keep low ping, much like zones are in most MMORPGs today. I don't see why a bunch of people could all enter a room, and chat while their personal computers loaded up that mini-game. Then the a door could open up to the game once everyone's computer was ready.

Having mini-games separate also allows easy expansions and such. Locked doors mean a download, or a purchase, etc.

Having a lot of environment interaction meens high bandwidth, so if you have a hug like Mario 64, I agree with Shadows in that the number of players per zone will be low. However, games like Planetside show that it can be done. I played it for a while, and it gets pretty intense.

Personally, I think all static screens, menus and dialogs can be replaced, and should be replaced, but real time interactive environments.

I also agree that controls could be an issue, but not a wall.
Thanks for the replies! I'll definitely read through that thread. And I've been thinking a lot about different ways that the door idea you mentioned could be extended. Loading up the minigames idea in that fashion is an excellent idea. :) (EDIT: I just practically restated what you pointed out, so I deleted it in the interest of not looking like a moron) But first I've got to have something running. :-P
Okay, several multiplayer 3D platformers exist for the DreamCast and PlayStation. I highly recommend you look into these. If you're serious about this project, then knowing what other people have done before you is a good asset.

a) PowerStone 2 for the DreamCast. Its a 4-player free-for-all fighting game whose controls handle a lot like Mario 64 or old arcade platformers (like the Final Fight games). Easily the best game of the genre. Only catch is that you need a big screen to play 'cause the gameplay is so frantic its hard to see what's going on.

b) Unholy War for the PlayStation. Made by Toys For Bob (designers of the Archon and StarCon serieses) its a simple board-game strategy where unit-to-unit combat is handled by a head-to-head platformer. The arenas are all very interesting and there are 14 bizarre characters to choose from for combat. The combat is much more firearm based than

c) Sonic Adventure 2 is a good example of how _NOT_ to make a platformer. It has 3 modes of multiplayer - first is Sonic's racing game, which is quite good, although player interaction is limited to "spells" that are cast from anywhere to anywhere and just use your rings that you pick up. Second is Knuckles game, which is the most tedious scavenger hunt ever. Third is Tails game, which is a simple, 3rd person 1-on-1 giant robot battle, and is passably good.

d) GridRunner for the PlayStation. A very unique 1-on-1 game, mixing Tag and UT's Domination gametypes. Its a very fast top-view game, but could easily be adapted to a 3d platformer. Combat is simple - you have so much energy for spells that you can use to a) move around and speed yourself up or b) slow down your opponent or otherwise stop them. The map is filled with flags, and if you're the "runner" you can touch them and they will turn your colour. You win when N flags in the map are your colour (not necessarily all the flags - the number is defined by the map). The other player is "it" - they can't touch flags, but if they touch you, then they become the "runner" and you become "it". Very good game.

e) for the NES, look up Snake Rattle and Roll, the original multiplayer 3d platformer. Very fun cooperative platformer. Kinda hard though. Highly recommended.

The problem is this: the main reason for multiplayer platformers on consoles is that consoles only have 1 screen. Splitscreen on the console is a big pain, so single screen is a good move. You can't do behind-view or FPS in single-screen multiplayer, so people get inventive, making multiplayer platformers like Super Smash instead.

On the other hand, with USB you could conceivably wire up 4 gamepads to your PC and play PC games as if they were console games (I do this already on my PC with Blaster Disaster, Tank Squared, and Atomic Bomberman - I can have 5 players at once on one PC with TS and AB).
-- Single player is masturbation.
From what I've read, it seems like you have a good chance of making this game if you play your cards right :)

The biggest issue I see is that you'd need a lot of server power for this. But the way people move around from zone to zone playing mini-games lends itself perfectly to a peer-to-peer architecture. You would still need servers to act as the main gate between areas/mini-games, like Battle.net does to help you join a Starcraft multiplayer game, but it would blend seamlessly into the whole experience of travelling around the world since it replaces the menus; and this way you wouldn't need to worry at all about servers. The only reason why servers need to control every tiny piece of physics in the game is to prevent cheating. This is only an issue in games like RPGs, where you have a kind of a virtual property and cheating can destroy that. But in a platformer, unless you have stuff like money and items, cheating will make you win a mini-game, but that's it. People might get pissed off and stuff, but the balance of the game is not lost. If you had a server-client connection that is not 100% perfect, you'd run into the same problems. This is EXACTLY what happens with games like Counter-Strike. I'd go with a peer-to-peer approach, so each mini-game would be essentialy like a lan-game, or a chat room if people are not really playing (towns and stuff) - the Starcraft approach I mentioned.

Oh, and you can still have items as prizes for special mini-games made by the designers, if these games are hosted by your servers so that it's just as hard to cheat as with a server-client architecture. This way people can't cheat to have lots of cool items with no effort ;)
Sorry for the lagged response. :)

Actually, reading some articles about P2P MMORPG's is what led to the current design (though I personally have ZERO interest in writing an MMORPG). You put some of my exact thoughts into words far more succintly than I could, and gave me a couple of new ideas, too. Thanks! :)

I realized after I posted that a lot of my ideas seemed vague, so I've been working on hammering out the design in a lot more detail. Right now I'm trying to work out the dynamics between items and minigames and the "overworld" and how and when items can travel with you between servers.

When I get the design solidified (though I wouldn't call what I'm working on a design doc yet), I'll post it if anyone is interested. And probably even if they're not. ;)

edit: fixed a grammatical error

This topic is closed to new replies.

Advertisement