background preloader

Best Practices for Designing a Pragmatic RESTful API

Your data model has started to stabilize and you're in a position to create a public API for your web app. You realize it's hard to make significant changes to your API once it's released and want to get as much right as possible up front. Now, the internet has no shortage on opinions on API design. But, since there's no one widely adopted standard that works in all cases, you're left with a bunch of choices: What formats should you accept? How should you authenticate? In designing an API for Enchant (a Zendesk Alternative), I've tried to come up with pragmatic answers to these questions. ... or just skip to the bottom and signup for updates Latest from the Enchant blog How to make your app lovable A decent app helps you get the job done. ... and those apps, the ones that make things feel effortless, are the ones we love the most. But what makes an app feel effortless? Key requirements for the API Use RESTful URLs and actions But what can I make a resource? SSL everywhere - all the time Related:  ++ theory

RESTful Web Services: A Tutorial More than a decade after its introduction, REST has become one of the most important technologies for Web applications. Its importance is likely to continue growing quickly as all technologies move towards an API orientation. Every major development language now includes frameworks for building RESTful Web services. As such, it is important for Web developers and architects to have a clear understanding of REST and RESTful services. This tutorial explains REST architecturally, then dives into the details of using it for common API-based tasks. While REST stands for Representational State Transfer, which is an architectural style for networked hypermedia applications, it is primarily used to build Web services that are lightweight, maintainable, and scalable. Features of a RESTful Services Every system uses resources. Representations Messages URIs Uniform interface Stateless Links between resources Caching Representations Listing One: JSON representation of a resource. Messages HTTP Request or

Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization Overview Designing first-person action games for Internet play is a challenging process. Having robust on-line gameplay in your action title, however, is becoming essential to the success and longevity of the title. In addition, the PC space is well known for requiring developers to support a wide variety of customer setups. Often, customers are running on less than state-of-the-art hardware. While broadband has been held out as a panacea for all of the current woes of on-line gaming, broadband is not a simple solution allowing developers to ignore the implications of latency and other network factors in game designs. Your game must behave well in this world. Basic Architecture of a Client / Server Game Most action games played on the net today are modified client / server games. With this in mind, the typical client / server game engine architecture generally looks like this: The server has a somewhat similar loop: Contents of the User Input messages Client Side Prediction Lag Compensation

What Every Programmer Needs To Know About Game Networking | Gaffer On Games Introduction Hi, I’m Glenn Fiedler and welcome to Networking for Game Programmers. Have you ever wondered how multiplayer games work? From the outside it seems magical: two or more players sharing a consistent experience across the network like they actually exist together in the same virtual world. But as programmers we know the truth of what is actually going on underneath is quite different from what you see. Peer-to-Peer Lockstep In the beginning games were networked peer-to-peer, with each each computer exchanging information with each other in a fully connected mesh topology. The basic idea is to abstract the game into a series of turns and a set of command messages when processed at the beginning of each turn direct the evolution of the game state. Of course this is an overly simplistic explanation and glosses over many subtle points, but it gets across the basic idea of how networking for RTS games work. But for other genres, the state of the art has moved on. Client/Server

Client-Server Game Architecture - Gabriel Gambetta Client-Server Game Architecture · Client-Side Prediction and Server Reconciliation · Entity Interpolation · Lag Compensation · Live Demo Introduction This is the first in a series of articles exploring the techniques and algorithms that make fast-paced multiplayer games possible. If you’re familiar with the concepts behind multiplayer games, you can safely skip to the next article – what follows is an introductory discussion. Developing any kind of game is itself challenging; multiplayer games, however, add a completely new set of problems to be dealt with. Interestingly enough, the core problems are human nature and physics! The problem of cheating It all starts with cheating. As a game developer, you usually don’t care whether a player cheats in your single-player game – his actions don’t affect anyone but him. Multiplayer games are different, though. Authoritative servers and dumb clients You also don’t trust the player with its position in the world. Dealing with networks Summary

14 awesome design books that aren't about design This is an updated article originally published in winter 2017. There are plenty of amazing design books around, but some of the best lessons can be learned from books that are about a different topic altogether. Last year, GV partner Daniel Burka put out a Tweet asking the hivemind which non-design books had taught them the most about their profession, and the thread proved hugely popular. Best design book that's not about design? Designers across the industry, from disciplines ranging from graphic designers to web pros and specialists in UX or UI design, got in on the discussion. 01. Most creatives suffer self-doubt at one point of another. "If you've ever suffered from Imposter Syndrome or wondered what the secret of creativity may be, Robin Ince's book is a must-read," he says. 02. On the surface, you might not naturally link comic books and websites. 03. "How we question briefs and solutions, and the truths we face, is a crucial part of design. 05. 06. 07. 08. 09. 10. 11. 12. 13.

A list of 7 persuasive methods used in games to hook users. ** Update: I’ve compiled together many visual examples of psychological tactics in games on this deck. (With a quiz in it!) Long gone are the days where games could just be great in order to generate revenue. Now, since 90% of games on the app store and Google Play are free, being a great game isn’t good enough. Only games that encourage users to engage and spend regularly can survive. As such, current successful F2P games are a brew of persuasion techniques designed to achieve uncompromised engagement. Endowed Progress People who feel they have made some progress toward a certain goal are more committed to achieve that goal. Take two imaginary math students as an example. This psychological phenomenon is used in countless games. For example, after the first play in a running game (Temple Run, for example), the player would receive an objective, such as Run 1,000 meters (750 to go). How to use endowed progress: Make sure your users have a clear goal and kick off their journey for them. Envy

Narrative is not a game mechanic I love stories. My chief hobby is reading. I was formally trained as a writer, not as a game designer (there wasn’t really any formal training for game design I got started, but that’s another story). I think most game stories are not very good. Narrative in a game is not a mechanic. This simple fact is frequently ignored, particularly in games aimed at the mass market. Let’s start thinking about this by looking at what a game is. If you string these together, you’ll typically find that the problems will alternate between abstract problems and simpler interface problems. If you take something like a racing videogame, you now have a fairly hard interface problem; the sensitivity of the steering wheel or the analog stick is now an actual physical motor challenge — often a bigger challenge than the cognitive problem of where to point your car. In a game grammar model, you always have a black box model, and you select something to input into the system. Games are a compound medium. Related

#AltDevBlog » Game Designers are all on Steroids Game Design / Video Presentation: Game Designers around the world are addicted to performance enhancing drugs and many of them don't know it. They are addicted to progression and escalation. As game designers we are often playing with human psychology and tapping into the various triggers and ticks of human behaviour; our reasons are varied. Hiding Shitty Design behind Progression Progression, like most drugs, feels really good. If the moment to moment play isn't satisfying then often we hide it in the guise of grinding or progression. Use Case: Fixed Narrative For the discussion I want to separate play into two distinct areas: fixed narrative and free play. Pacing, escalation and moments of spectacle are critical limited tools applied with editorial precision to give structure and climax to the authored story. Every challenge should be skippable upon failure, see GTA V as a great example. Free Play? Chess, Spelunky, Starcraft Multiplayer are some great pure examples of freeplay. Great!

What Games Are: The Win Imperative Editor’s note: Tadhg Kelly is a veteran game designer, creator of leading game design blog What Games Are and creative director of Jawfish Games. You can follow him on Twitter here. Many readers will be familiar with the idea that games and reward go together like two peas in a pod. But reward by itself isn’t that rewarding. The reason is that it’s not the reward that’s interesting, it’s what it signifies: satisfaction of a job well done, a stroke of luck, a problem solved, a situation overcome, an enemy defeated. But let’s be clear for a moment. What Winning Looks Like Winning is often not ultimate. However these games are still full of wins and losses. Winning is also often self-directed. Finally, winning needs to feel authentic. No Wins, No Play When wins become routine, a game turns boring. The main reason narrative-led games struggle to engage players toward the end of their story is usually to do with this tension. It’s also why many a cheap social or app game fails. Winning Is Good

Related: