Write your post here.
I'm going to go through my customized dev environment and linux workflow (?),
this is mostly for starcraft brood war ofc born of necessity.
I use vim but I expect autocomplete and go to definitions and a tool that let me move throuth my projet easy and quick
is a great text editor available everywhere that let me customize it to my own needs
I'm by no means a vim expert, this is more like my notes in the continuous process of learning and making my own customized experience.
vim window movements suck by default, I need good movements (explain what does this means).
my goals are built-in language support for Python, Lua, Erlang and C
avoid the requirement of tools outside those supported languages,
avoid rust or go utilities if possible,
avoid c++ if possible,
introduce debian linux
introduce the starcraft and vim comparation..
- vim plugging manager
- my list of pluggins
- unit tests
- git integration
- startify menu (?)
- go to definition
- linting (?)
- denite (more than just a fuzzy finder!)
- undotree F5
- dirvish (file finder)
direction is more important than speed
plug vim pluging manager
my list of pluggins
|vim-sensible||a universal set of defaults that everyone can agree on.|
|vim-eunuch||Vim sugar for the UNIX shell commands that need it the most.|
|vim-fugitive||It's so awesome, it should be illegal.|
|vim-unimpaired||Complementary pairs of mappings.|
|vim-repeat||Repeat.vim remaps . in a way that plugins can tap into it.|
|vim-dispatch||Kick off builds and test suites using one of several asynchronous adapters.|
|vim-startify||A fancy start screen for Vim|
|vim-signify||Show differences with style|
|vim-polyglot||A solid language pack for Vim.|
|vim-maximizer||Maximizes and restores the current window in Vim.|
|vim-bbye||Close and remove the buffer.|
|vim-lastplace||Intelligently reopen files at your last edit position.|
|vim-sandwich||add/delete/replace surroundings of a sandwiched textobject|
|vim-highlightedyank||Make the yanked region apparent!|
|goyo||Distraction-free writing in Vim.|
|limelight||Hyperfocus-writing in Vim.|
|vim-peekaboo||see the contents of the registers.|
|vim-easy-align||A simple, easy-to-use Vim alignment plugin.|
|gv.vim||A git commit browser in Vim|
|vim-slash||Enhancing in-buffer search experience|
|Vim-Jinja2-Syntax||An up-to-date jinja2 syntax file.|
|denite||Denite is a dark powered plugin to unite all interfaces.|
|vim-dirvish||Directory viewer for Vim|
|vim-dirvish-git||Plugin for dirvish.vim that shows git status flags|
|vim-gtfo||Go to Terminal or File manager|
|vim-love-docs||Vim plugin for LÖVE syntax highlighting and help file|
|vim-pandoc||pandoc integration and utilities for vim|
|vim-pandoc-syntax||pandoc markdown syntax|
|graphviz.vim||graphviz .dot to .png flow chart image|
|vim-sxhkdrc||Vim syntax for sxhkd's configuration files|
|jupytext.vim||editing Jupyter ipynb files via jupytext|
|tmux-complete.vim||insert mode completion of words in adjacent tmux panes|
|vim-tmux-navigator||Seamless navigation between tmux panes and vim splits|
|vim-table-mode||VIM Table Mode for instant table creation.|
|auto-pairs||Vim plugin, insert or delete brackets, parens, quotes in pair|
|undotree||The undo history visualizer for VIM|
|onehalf||one half dark|
|rainbow||Rainbow Parentheses Improved|
|VimCompletesMe||You don't Complete Me; Vim Completes Me!|
|deoplete||Dark powered asynchronous completion framework for Vim|
|neoinclude||Include completion framework for deoplete|
|deoplete-clangx||C/C++ Completion for deoplete using clang|
|nvim-yarp||Yet Another Remote Plugin Framework|
|vim-hug-neovim-rpc||Compatibility layer for neovim rpc client working on vim8|
|deoplete-vim-lsp||deoplete source for vim-lsp|
|vim-cmake||plugin for working with CMake projects|
|vim-gutentags||A Vim plugin that manages your tag files|
|tagbar||displays tags in a window, ordered by scope|
|async.vim||normalize async job control api for vim|
|vim-lsp||async language server protocol plugin for vim|
|ale||Check syntax in Vim asynchronously and fix files|
|vim-lsp-ale||Bridge between vim-lsp and ALE|
|neoformat||A vim plugin for formatting code.|
|vim-devicons||Adds file type icons to Vim plugins|
|lightline.vim||A light and configurable statusline/tabline plugin for Vim|
|vim-cursorworld||Underlines the word under the cursor|
|lightline-bufferline||bufferline functionality for the lightline vim plugin.|
|lightline-ale||ALE indicator for the lightline vim plugin|
|vimwiki||Personal Wiki for Vim|
|calendar-vim||Creates a calendar you can use within vim|
|pomodoro.vim||Bring the beauty of the Pomodoro technique to Vim|
|Colorizer||Color hex codes and color names|
|indentLine||display the indention levels with thin vertical lines|
|vim-test||Run your tests at the speed of thought|
|vim-isort||sort python imports using isort|
|vim-minimap||A minimap for vim|
|vim-lsp-settings||Auto configurations for Language Server for vim-lsp|
- python support flake8 and pylint
- lua support luacheck
- c support by clang
- erlang support with syntaxerl
|leader ]||ale next wrap|
|leader [||ale previous wrap|
|leader x||buffer delete Bdelete|
|leader e||exit qa!|
|leader d||Denite buffer|
|leader f||DeniteProjectDir -start-filter grep:::!|
|leader Backspace||Denite -resume -cursor-pos=+1|
leader R, replace
leader gg, bla leader gj, bla leader gf, bla leader ga, git fetch leader gl, git pull leader gc, git commit leader gp, git push
leader cg, CMakeGenerate leader cb, CMakeBuild
leader ct, CMakeBuild test
leader tn, TestNearest
leader tf, TestFile
leader ts, TestSuite -strategy=vimterminal
leader tl, TestLast
I'm also have qe, j, k, qw, qq maped for quickfix stuff (?)
now the F keys
f1, help f2, maximizer f3, dirvish f4, denite f5, undotree f5, date on insert mode f7, calendar.vim f8, pomodoro.vim
Only meant to explore the TorchCraft Python API, not to build the best bot possible, you should probably approach your own differently!
Welcome to our tutorial for StarCraft: Brood War bots using Linux and the TorchCraft Python API; we will learn to:
- Setup the environment
- Gather resources
- Train your units
- Build your buildings
- Scout the enemy(s)
- Expand on the map
- Attack and defend
Finally we can test and deploy by:
- Test your bot using bw
- Join the Torch Up tournament
LuaUnit is a popular unit-testing framework for Lua https://luaunit.readthedocs.io/en/latest/
libuv is a multi-platform support library with a focus on asynchronous I/O. It was primarily developed for use by Node.js, but it’s also used by Luvit, Julia, uvloop, and others.
If a system is to be stable the number of states of its control mechanism must be greater than or equal to the number of states in the system being controlled.
In trying to understand what is happening around us we are faced with a fundamental problem. In approaching any situation, the system trying to understand it, does not attempt to gather all information. Instead it selects certain facts and searchers for others.
This selection of some items and ignoring of others is a process of abstraction.
It is the abstracting form a real or if you will empirical situation the things seemingly most important to deal with.
In this process of abstraction and model building we deliberately select a few items, ignore may others, and then place the items chosen in a particular relationship to one another.
In doing so we are intentionally ignoring facts or relationships that can influence the type of situation under study.
The problem it to select the most meaningful elements and relationships and dropout the rest.
Those who use abstraction skillfully know well that they neither have all the facts nor have considered all the relationships bearing on the outcome of what they are analysing.
We do not use the abstractions from one situation in another setting without carefully examining the fit. Neither do we expect a model to handle all aspects of a situation.
We shall be dealing with many abstractions and models, not with the intention of exactly mirroring the real world but with the objective of clarifying our perception of its most essential features.
Abstractions and models are mechanisms for economizing both time and effort, but like any tool they must be used within their limits.
Model your goals
Taking the abstracted elements, a character with the flat tire begins to connect them into a pattern.
Better yet, he weaves them into a model of the confronting situation, which we can use both to understand his plight and figure out what to do about it.
The parts of this model would probably include, among other things, the flat tire, the image of the spare in the trunk, the telephone, the service station, a forthcoming business meting, etc.
A second model would contain the telephone, the service station, and the repairman there.
Finally, he concludes that he will call a cab and leave his wife to deal with the flat tire as best as she can.
These are extraordinarily elementary models, but they serve a very practical purpose.
With them the main character in our illustration can see the likely consequences of various courses of action.
We can find out these things by doing them directly by actually handling the tire and observing that we get dirty, or by calling the repairmen and waiting for him and learning that it takes too long.
In the age of big data; information models are good.
- For any given size of data, the bigger the model, the better it generalizes, provided you regularize well.
- This is obviously true if your model is an ensemble of smaller models.
- Adding extra models to the ensemble always helps.
- It is a good idea to try to make the data look small by using a big model.
By using the model, however, we can make some reasonable predictions about what will occur and therby accept or reject the choices open to us.
Several references have been made with the intent of this guide to provide conceptual tools for analysis. As with any other tool models, abstractions and generalizations are useful only when within their limitations.
New Season 2022 map pool and details.
Write your post here.
Write your post here.
Hey, things are still on development hell, its a really slow cook.
I made lots of mistakes and in hindsight, put and tried to play an humongous amount of games following my own tournament format that bite me to this day.
This was just one of a few very big mistakes, I now think that is better to run a small number of games and found my self on the other extreme... growing the bot to play bo3 focus only on one (2), (3) and (4) player maps. I'm in between a code refactor moving bot to a entity-component-system architecture that play nice with a simulator that I have running Luerl (Lua on the Erlang VM) this is one of my main project goals and objectives this integration of different versions and implementations of the Lua language in tandem so instead of fixing the container tournament manager that explode on my face as reported before or finishing the actual tournament as planned, is not that I abandoned torch-up, if anything I want to approach things differently, I still plan to run games with the registered by now old bots following the previous stated rules, a first round and announce results I believe that as my goal with torch-up, that in order to move on to future things without old mistakes hunting me.. I'm a sloth on hell already, I don't have anything new to report around tournament results, other than something completely different, and probably not what you are wondering, like:
Originally I had this crazy idea of a future where bots could play the old proleague format including 2v2 games, all wishful thinking, since after some real world experience as 2v2 player and a lite dive into bwheadless.exe or C++ for that matter I learned the hard way how crazy my intention was.
I'm not going to continue with the Python tutorial and no matter that I can code some lite examples with TorchCraft's Python API the idea to build also a Terran bot, a race that I don't have any real experience with for a future 2v2 combo with my Zerg bot its completely out of my capacity, I wanted to get the attention of existing Python devs that could want to build a bot using Python, I hope that someone write a great bw bot with Python eventually I bet a scary bot could be made just with Python alone, but I'm not going to try to be that champion, I have my plate full with Luerl and I'm making a really bad job about it, I'm going to return to write about the Python side of things, for anything PyTorch running on another process talking TCP with the rest of the bot system as it should instead of using Python to write a second bot, Blueberry is dead long live Ophelia.
Python is slow, people say that to keep the meme alive, the reality is that is fast enough, the speed of Python have never been an issue for writing a StarCraft bot, deer reader take a look at the StarCraft 2 AI scene for examples.
Q. Is torch-up vaporware? is it ever going to happen?
A. I guess is vaporware until is not?
Q. What is my problem? ^^
A. StarCraft: Brood War.
Q.What happened? is there any update on this?
A. My goal still is built, compete and write about my bot and the system of systems core of the fixing of the StarCraft: Brood War problem instead of a main focus as tournament organizer, but I also want to compete in a world where you are not forced to use Windows because the game release originally for the 1998 version of that OS. So the idea of become an event organizer, sadly apparently the worst at tournament organizing is really not that bad, mistakes where made, my apologies to all involved that want to see this finally out of the deeps of hell or all of you competitive beautiful people that wanna a piece of my bot, until then, this will hunt me until I hunt it.