Jump to content

Game Viability


tedj
 Share

Recommended Posts

Hey there. So, straight to the point, I'm interested in knowing whether the game idea I have is viable, or not.

 

Background & Reasoning

I'm 23 and a web developer with an IT degree and a huge passion for games. Developed some funzies games when I was younger.Been trying to build a 'decent' game for some time now, tried with Unity but didn't feel the thrill.

I love JavaScript and I'm pretty much developing JS stuff all the time at work, so I thought "I'll make a game engine and then run something on it", and as fast as I had that thought another one came along "Nvm, don't have time for that". So I went and checked for already built engines.

After around a week of looking through, testing or building some games with the best engines, free or not, I came to the conclusion Phaser was definitely the best, at least for what I think my needs are.

 

Idea & Features needed

Let's start big; multiplayer. The idea was to have a game where 4 people would join 'a party' and fight through a dungeon, but I need to know if it's viable, if the browsers could handle it, if multiplayer is possible with Phaser and node.js, and so on before I actually start investing time on it.

 

The plan was for the dungeon to be big, with many environment actions like traps and chests and whatever more, mobs with good-AI around, boss fights with more environment stuff and a really good AI on those. But I didn't go small yet; server-side AI, events, and properties like health and etc because Saving would be included, because I want to prevent players from cheating, but that's on my end to make things go to a DB. But since saving is a feature, I can't let players have anything on their side, so basically everything server side besides maybe player movement, and when the player moves or does an action, it communicates with the server. Think maybe Ultima Online's dungeons, or Runescape. Heck, even WoW, SW:TOR or any other alike.

 

Players would be able to 'support' each other, with spells and what not. So yeah, this is my big project. The thing is that I will do it regardless of the language, but I'd much rather do it in a web based JS than work on Unity.

 

So yep, that's it. I'm worried mostly about performance issues, although it would NOT be for mobile I still think it would be pulling off some big usage of the browser. Well go ahead, permission to destroy my dreams granted!

 

TL;DR

Can I make an RPG Dungeon Party game in JS (Phaser + node.js preferably) where players can save their character, play in multiplayer up to 4 players, have spells and cast them on other players, with environment actions and bosses with AI, everything being server-side except player commands that would 'talk' to the server so that they can't cheat the game?

 

Thanks for the time you've spent reading. I must say even if it isn't possible, I'll still make some funzies games on Phaser, it gave me a huge thrill to work on my fav language and the fav area at the same time!

Thanks for building this.

Link to comment
Share on other sites

Wow! An Internet-playable Gauntlet sounds great. And, yes, browser technology has reached the point where this kind of thing is totally possible. One of the renderer options in Phaser is headless which I imagine is good for running it on the server. Phaser also allows fine-grained control over the timestep so you can step things forward without requestAnimationFrame... again, ideal for running things on the server. Websockets allow for low-latency communication back to a running server.

 

But don't do this! If you've never made a game before you should make something simple like Tetris or Asteroids first to get your feet wet. I know it sounds really dumb but there are *a lot* of corner cases to think about and you'll be busy juggling a lot of new tasks that aren't familiar to you if you've never made a game before.

 

Imagine trying to read up on WebSockets and dead reckoning and physics prediction and figuring out how to stop cheating while simultaneously trying to balance your game's stats (longswords vs. shortswords vs. wands of fireball vs. that ogre's hit points) and get your art and music assets in place while also administering a running server through code upgrades and a DB through schema changes and don't forget account management and recovery. Meanwhile, none of that is really about making your game feel FUN or making sure dialog works and maybe you should add a chat feature?

 

Or, at least, in true agile Enterprise fashion, make lots of tiny milestones that eventually lead to multiplayer. Adding real-time multiplayer over the Internet makes things exponentially harder. Seriously, make a roguelike that works on your desktop (I recommend buying the art from this guy) and saves your data in localStorage (5 meg limit, watch out).

 

Basically, start small and give yourself LOTS of early wins to keep yourself motivated.

Link to comment
Share on other sites

If your question is only "Is it possible?" then yes, definitely, it is. I know it for I am doing it. But don't get me wrong, it is a very hard and very long process. Progress slowly, make baby steps, test a lot, on all targeted supports (browsers, screens sizes, CPUs, devices), and be patient. 

 

Websockets are fast enough for real-time support (but be careful, I/O consumes a lot of performance), and Phaser is good enough to display a 2D-like dungeon game. Don't be too greedy on assets though.

Link to comment
Share on other sites

Imagine trying to read up on WebSockets and dead reckoning and physics prediction and figuring out how to stop cheating while simultaneously trying to balance your game's stats (longswords vs. shortswords vs. wands of fireball vs. that ogre's hit points) and get your art and music assets in place while also administering a running server through code upgrades and a DB through schema changes and don't forget account management and recovery. 

I feel like you've just summarized my life in the last 6 months. Can't say I have any complaints - I'm having the time of my life, in fact. 

Can I make an RPG Dungeon Party game in JS (Phaser + node.js preferably) where players can save their character, play in multiplayer up to 4 players, have spells and cast them on other players, with environment actions and bosses with AI, everything being server-side except player commands that would 'talk' to the server so that they can't cheat the game?

What your describing is very possible, especially with a 2d game. People seem to forget that browsers are tools designed specifically to communicate information over the internet. In the past, they've been used primarily for text/image and video based communication but that doesn't somehow exclude them from being capable of high-performance online multiplayer gaming. With webgl, browsers now have a pipeline to the GPU, which means your browser has the same rendering capabilities as standalone apps (traditional games). There is a memory restraint because most browsers aren't designed specifically for gaming - but that restraint becomes smaller and smaller the more advanced computers/browsers become. Then there is all the built-in advantages of an application (the browser) specifically designed for sending/receiving data over a network, which just makes it easier to write networking and integrate social aspects into your game (do some reading on websockets). 

 

the browser is hugely capable of being just as powerful as traditional gaming consoles. You might have to be smarter and more economical with memory when writing games for the browser, and that's a con, but think about all the pros. A big one is the fact that anyone can access your game and load it up quickly simply by clicking a hyperlink. But games should be highly accessible and portable anyway and I think that's something lost with modern consoles and PC gaming. I don't remember the last time I turned on my xbox. Seriously, I have to sign in with a user account, I have to download updates, subscribe to xbox live - screw that. Games should be like they used to be with NES -- just press the ON BUTTON and play.  Portability is GOD! The browser is the game console of the future. 

Link to comment
Share on other sites

Thanks for the feedback guys. Well, I didn't want to elaborate that much before, but here's a few things I've skipped which I believe important to note:

-> I'm coding alone, but I have 2 other friends, one working on all the graphics, and the other creating the sound

-> I have made games before so I'm familiar with the structure, process, time, etc.

-> A parallel plan was to blog everything I'm doing, the progress and such, and record it - I plan to make tutorials out of this to help others in the future

 

I'm still unsure of a couple of things where I'd like some opinions;

  • Should I run top/down or isometric? I'm keen to top/down since I want the player to be able to move vertically, horizontally and diagonally while avoiding stuff, and I'm also not sure if Phaser has proper isometric support from what I've read here
  • Is it better to firstly create the game for single player? Starting from basis with multiplayer would be better in the long run, but I'm pretty sure I'm knocking on mister 'gonna have a hard time's door. Thinking about making all the engine in single player first.
  • Will the CPUs handle? I'm still not super confident if I can run it server side while having players receiving that much info and having to process all of it without having the browser crash. I want players to play on their PC, not mobile, but I was hoping I could reach even the slower cpus.

 

QUOTES

@drhayes, although I didn't need to make a tetris-like game because I'm quite familiar with it, in the week I spent checking different engines, I did small games on nearly all the ones I tested. On Phaser I ended up following the tutorial and then building a Super Mario-like game(level actually). I had lots of fun so I just went and made another one with a top/down style with the stars and diamonds assets from the same tutorial, just for funzies. I still have a couple of goals which I'll detail bellow. Oh and yeah I'm totally following the 'small milestones to keep motivated' style! Thanks for your support, you seem to know your stuff quite well, here's to hoping you'll come back and follow this project (I'll eventually need to ask questions to someone!)

 

@Skeptron, I'm expecting it to be a hard progress, and slow progress doesn't scare me either, I'm a perfectionist and I need to see things working perfectly before I'm able to move on to other steps. Sometimes this is a bliss, sometimes it's bad. What did you mean with greedy on assets? I was aiming for a nicely looking game, won't over-do on the assets tho, but certainly want the 4 players to shoot random spells that all of them can see for example.

 

@feudalwars, I absolutely agree with you. Games should be easy and instant. That's the thing that has been lost and I want to recover with this. You click the game, and you play. I'll have to add a login because well, we need to save stuff but that's about it. I had thought about being economical with memory. I've read about it in here as well, how you shouldn't destroy and create other assets, but rather you should re-use them. I'm pretty economical in that way, like I said before, I want things to be perfect and being lazy (re-using code and memory) is my life motto.

 

Current goals:

  • Successfully create a fast multiplayer simple game - something like the tutorial game from Phaser. This is what I'll be doing at home today.
  • Create a smooth moving engine for top/down - if we do decide to go top/down, which we probably will. I want players to be able to move in all directions

 

Brainstorming ideas:

  • Chat - I originally planned to have a chat system. However one of the challenges I wanted to the game was to queue with random people and be able to survive without speaking. I kinda like that feeling, but it's a personal opinion, and my partners disagree (despite different areas, we all discuss and work on the game design)
  • Scale the difficulty with player size - I don't want players to be waiting forever in a queue system, so I'm thinking of allowing parties from 3 to 5 people maybe. I think 2 players would kinda of ruin the game idea but it's also a possibility for two friends who just want to go alone.
  • Allow next to infinite levels of difficulty - Players who want to challenge themselves further may do so, in exchange for better rewards obviously.
  • Procedural dungeons - Any game of this type without procedural levels gets boring really fast. Unless it's incredibly hard which then it just gets boring fast. Unless we added a huge or challenges that players really enjoyed. Then it would only get boring at a normal pace. Maybe.
  • Compelling story - Game play is always a priority to me. More so than the lore or 'if it makes sense', but I do want to keep a healthy balance between the two, however I'm not sure if I should add a compelling and hard worked story on it. I do love storytelling and that's the main reason I play games, but I don't know if I could be that good at it. Maybe I'll get someone to do it.
Link to comment
Share on other sites

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...