Сыграли на выходных в «Шепот за стеной». Эта настолка в своё время хорошо собрала на Кикстартере, а потом издательство Низа Гамс договорилось о локализации и привезло её в Россию. Кстати, Низа Гамс выросли из настольного видеоблога, при этом ребятам удаётся подписывать по-настоящему интересные и неординарные проекты.
Так вот, «Шёпот за стеной» это асимметричная игра, где один игрок управляет маньяком-убийцей, а 1-3 других игроков становятся жертвами. Игра идёт в стиле классических ужастиков вроде «Пятницы 13»: злодей фактически неуязвим, и от него можно только спрятаться или убежать. Персонажи перемещаются по большому старинному особняку, но фокус в том, что убийца не знает точное положение жертв и должен косвенно вычислять их по издаваемому шуму (шум это специальные жетоны, которые жертвы выкладывают при выполнении нужных им действий). Жертвы могут выиграть двумя способами: сбежать, найдя ключи от особняка, или вызвать полицию, починив телефон. Маньяк, понятное дело, должен для победы кого-то убить.
Прелесть «Шепота» в том, что броский внешний вид, в отличие от многих проектов, не оттеняет бедность игровых механик, а, наоборот, служит для их усиления. Красивая конструкция в виде дома — это и разделитель между полями (чтобы игроки не видели положение друг друга) и встроенная башенка для броска кубиков. Миниатюрки это не просто способ продать коробку подороже, а по-настоящему нужный элемент быстрой оценки диспозиции на поле. Вообще, многие мелочи здесь продуманы очень хорошо и прекрасно работают: так, например, с течением партии силы маньяка растут, что является естественным таймером конца игры без всяких там «после N ходов вы проиграли».
Правила простые, партии не очень длинные, даунтайма почти нет, в игре есть и блеф, и напряжённость и стратегия. Хотелось бы сказать, что она вообще идеальна во всём, но минус присутствует: совсем хорошо играется только на четверых. Любым другим составом уже чуть менее удобно, потому что одному игроку приходится брать нескольких персонажей. Хотя тоже возможно, у нас даже двое за убийцу играли (что правилами не предусмотрено).
Тем не менее, я купил базу и все дополнения, и очень советую. В базе пять персонажей жертв и три вида убийц с разными особыми свойствами, в дополнениях в основном ещё убийцы плюс новые виды особняков. Кстати, несмотря на тематику и надпись 18+, никакой жестокости тут нет, и можно без проблем играть с подростком 12-13 лет и старше.
#games
https://github.com/aio-libs/aiohttp-debugtoolbar
aiohttp_debugtoolbar provides a debug toolbar for your #aiohttp#web application. Library is port of pyramid_debugtoolbar and still in early development stages. Basic functionality has been ported:
basic panels
intercept redirects
intercept and pretty print exception
interactive python console
show source code
http://aiohttp.readthedocs.io/en/stable/testing.html
aiohttp provides plugin for #pytest making writing web server tests extremely easy, it also provides test framework agnostic utilities for testing with other frameworks such as unittest.
#aiohttp
https://github.com/aio-libs/aiohttp-mako
#mako template renderer for #aiohttp.web based on aiohttp_jinja2. Library has almost same api and support python 3.5 (PEP492) syntax. It is used in aiohttp_debugtoolbar.
http://steelkiwi.com/blog/an-example-of-a-simple-chat-written-in-aiohttp/
Last autumn I attended several python meet-ups in Kyiv. There was a speaker Nikolay Novik at one of them, who told about a new asynchronous framework #aiohttp, working on the library for asynchronous calls asyncio in Python intepreter’s 3rd edition. I got interested in this framework because it was designed by core python developers, mainly by Andrey Svetlov from Kyiv, and was positioned as a python framework concept for #web.
Now there is a huge number of different frameworks, each of them with its own philosophy, syntax and realization of patterns common for web. I hope that eventually this diversity will be on a single basis - aiohttp.
#learn
http://programtalk.com/python-examples/aiohttp.web.Application/?ipage=1
Here are the examples of the python api #aiohttp.web.Application taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
#asyncio#learn
https://pawelmhm.github.io/asyncio/python/aiohttp/2016/04/22/asyncio-aiohttp.html
👌Making 1 million requests with python -#aiohttp
Apr 22, 2016 - by Paweł Miech - about: #asyncio, aiohttp, #python
In this post I’d like to test limits of python aiohttp and check its performance in terms of requests per minute. Everyone knows that asynchronous code performs better when applied to network operations, but it’s still interesting to check this assumption and understand how exactly it is better and why it’s is better. I’m going to check it by trying to make 1 million #requests with aiohttp client. How many requests per minute will aiohttp make? What kind of exceptions and crashes can you expect when you try to make such volume of requests with very primitive scripts? What are main gotchas that you need to think about when trying to make such volume of requests?
https://github.com/aio-libs/aiobotocore
Async client for amazon services using #botocore and #aiohttp/#asyncio.
Main purpose of this library to support amazon s3 api, but other services should work (may be with minor fixes). For now we have tested only upload/download api for s3, other users report that SQS and Dynamo services work also. More tests coming soon.
The library allows us to store user-specific data into a #session object.
The session object has a dict-like interface (operations like session[key] = value, value = session[key] etc. are present).
Before processing the session in a web-handler, you have to register the session #middleware in #aiohttp.web.Application.
https://github.com/aio-libs/aiohttp-session
http://aiohttp.readthedocs.io/en/stable/web.html#aiohttp-web-middlewares
In order to implement a #web server, first create a #request handler.
A request handler is a #coroutine or regular function that accepts a #Request instance as its only parameter and returns a Response instance:
#aiohttp
http://aiohttp.readthedocs.io/en/stable/deployment.html
There are several options for #aiohttp server deployment:
Standalone server
Running a pool of backend servers behind of #nginx, #HAProxy or other reverse proxy server
Using #gunicorn behind of reverse proxy
http://aiohttp.readthedocs.io/en/stable/web.html#aiohttp-web-websockets
In order to implement a #web_server, first create a #request handler.
A request handler is a coroutine or regular function that accepts a Request instance as its only parameter and returns a Response instance:
#aiohttp#asyncio
from aiohttp import web
async def hello(request):
return web.Response(text="Hello, world")
Next, create an Application instance and register the request handler with the application’s #router on a particular HTTP method and path: