• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
ChrisHemmens

Streaming v Client side rendering

6 posts in this topic

Hello people and search engine bots.

I've been planning a game for months now, and as I've been starting to put some shit down onto paper I have come across a major hole that I really want to avoid.

Part of the system is going to be in JavaScript, the reason for this is that I can easily make a HTML5 document which can be used on a wide range of devices, which I'm sure you guys are most likely already aware of.

The problem with this is that it is in JavaScript. And as we all should know, JavaScript sucks balls when it comes to the simplicity it offers end users to read and alter the code.

This means, if I were to use WebGL and all that good stuff to render the graphics client side. It would probably have its first bot written within weeks if not days if not hours if some wanker wants too prove themselves to be an Über nerd. Something which I really want to avoid as it ruins the experience for people who really enjoy playing games.

So the easiest solution I have come up with is to stream the mofo graphics to the client in a 2D array of some sort. But then there is the problem with download speeds, bandwidth and it would up the server load majorly per user as all the 3D rendering will have to be done server side.

I was wondering if anyone else has ever considered a fix for the same problem. I also know that OnLive stream the video, but I'm guessing by the quality that it does so through UDP where I am restricted to TCP.

Any thoughts would be most appreciated!

Thanks in advance,

Chris
0

Share this post


Link to post
Share on other sites
Every game has to deal with cheaters and hackers at some time. If you have client side code running there is no way to prevent hacking 100%. You can (and should) implement server side heuristics to detect cheaters/hackers/bots and warn/ban their accounts. That's how most games do it.
0

Share this post


Link to post
Share on other sites
The solution is to add a button that says "report user for hacking" or "vote ban".

That or you can do as you said and recreate onlive if you have all the money for servers equipped with graphics cards and a ISP sized pipe to the Internet.
0

Share this post


Link to post
Share on other sites
Aw yeah, why do I always try to make things more difficult than they should be, that would be freak'n awesome. I'mma add achievements for reporting real cheaters.
0

Share this post


Link to post
Share on other sites
Onlive naturally prevents cheating because it leaks zero undesirable information. The only information the player gets is what he sees, and while he may post-process it real time (change contrast, etc...), it does not give him any significant advantage. And the only information the player can send to the server is keyboard actions (pretty much) at a controllable rate which means he cannot gain an advantage this way either.

In most other situations you are leaking craploads of extra information besides what you show on the actual screen, which gives the wannabe hacker plenty of stuff to work with. This is unavoidable with current technology. It has been discussed in [url="http://www.gamedev.net/topic/623043-is-it-possible-to-prevent-players-from-altering-the-client-side-graphics-in-a-game/"]this thread[/url] and the general consensus was that:
1. if your game is not popular then probably nobody is going to bother hacking it if you implement basic security measures
2. the best defense against hackers is a responsible community i.e. an easily accessible voteban mechanism
0

Share this post


Link to post
Share on other sites
Client Issues:
-Performance depends on the players machine, of which they can change by upgrading.
-The majority of information and processing is open to the player, who if educated in modifying the functionality of already compiles executables, may do whatever the heck they wish.
-Unpackaged assets may be modified or replaced in such a way that a player may gain an unfair advantage.

Streaming Issues:
-The server for the streaming would cost a fortune.
-The players require sufficient access to the server, including fast enough internet, with a low enough latency and a high enough bandwidth. (this can be fixed by the players paying the service provider an arm and a leg and potentially moving homes to reduce the latency)
-Once a month the almighty god Ra will ride dinosaurs in the streets and fred flintstone would own a master chief figure

hmmm... quite evenly matched...
in case the tone wasn't clear enough,
Streaming will not be a viable alternative to client side for a very very long time, data transfer would need to become physically faster... a lot. to the point ping no longer exists. its one thing to be killed a moment after you use a shield, its another to raise the shield a moment after you press the button (tried on live with a similar problem... its bad)... as mentioned there are more problems in that to have the processing power to play a game for the thousands of people or even hundreds of people who wish to play you would need a fortune a true fortunes worth of server power.
0

Share this post


Link to post
Share on other sites
I'm going to continue the project doing the rendering client side. When and if I ever get it finished, and if it ever earns any money I might invest in a better solution than user based cheat reporting.

I definitely think streaming remains a good solution. As you guys have pointed out it's really expensive to implement and the networking speeds of today can't cut a real-time physics based game-play with the video stream on-top, there is too much chance of lag. I do however believe streaming the visual and sound to the client is the height of cloud computing, it also means the client hardware only has to have minimal requirements to run the game. I don't really see lack of good server hardware as a viable problem as deploying in the cloud is a really good solution when you don't look at the costs.

I wrote a quick streaming library for Node.js, HTML5 canvas and WebSockets last night to see how it works out. It definitely works, but the performance is far from optimal. If the server also has to do some projection rendering on-top of the visual/audio streaming, user control handling and physics calculations, those all important milliseconds would simply be non existent. Especially when broadcasting among multiple users becomes part of the game.

Looks like I'm going to have to stick with some JavaScript obfuscation for now.

One handy thing about canvas is you can get a context of every pixel in the canvas and send it to the server as an image. This will have to do as the main anti-cheat mechanism for now.
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0