Skip to main content

Posts

Showing posts from November, 2017

Blog has moved

From now on I will be posting on https://snorristurluson.github.io/ Most of my postings have code snippets in them and I've been using markdown, checking into a GitHub repo, then copying and pasting the contents. Using a static site generated with Jekyll just seems easier. Thanks, Blogger - I have moved on...

Waiting for an answer

I want to describe my first iteration of  exsim , the core server for the large scale simulation I described in my last  blog post . A  Listener  module opens a socket for listening to incoming connections. Once a connection is made, a process is spawned for handling the login and the listener continues listening for new connections. Once logged in, a  Player  is created, and a  Solarsystem  is started (if it hasn't already). The solar system also starts a  PhysicsProxy , and the player starts a  Ship . These are all GenServer processes. The source for this is up on GitHub:  https://github.com/snorristurluson/exsim Player The player takes ownership of the TCP connection and handles communication with the game client (or bot). Incoming messages are parsed in  handle_info/2  and handled by the player or routed to the ship, as appropriate. The player creates the ship in its  init/1  function. The sta...

Large scale ambitions

Learning new things is important for every developer. I've mentioned  this before, and in the spirit of doing just that, I've started a somewhat ambitious project. I want to do a large-scale simulation, using  Elixir  and Go , coupled with a physics simulation in C++. I've never done anything in Elixir before, and only played a little bit with Go, but I figure,  how hard can it be ? Exsim I've dubbed this project exsim - it's a simulation done in Elixir. Someday I'll think about a more catchy name - for now I'm just focusing on the technical bits. Here's an overview of the system as I see it today: exsim  sits at the heart of it - this is the main server, implemented in Elixir. exsim-physics  is the physics simulation. It is implemented in C++, using the Bullet physics library. exsim-physics-viewer  is a simple viewer for the state of the physics simulation, written in Go. exsim-bot  is a bot for testing exsim, written i...