• 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

Inter process communication between Renderer and Game Logic

2 posts in this topic

Hello everybody,

So lets say you want to make a game in Go (http://golang.org), but because of the lack of preexisting solutions and because you think it is not what you want to spend your time on, you decide not to do the user interface (that is graphics, sound, input handling) in go, but you would want to use Unity.

Now we have one process running the logic, and another process running the 'viewer'. My idea is to do the IPC over a local TCP-socket since it seems the easiest to implement(?). I would then probably send delta updates of the information on entities which have to be drawn from the logic to the viewer, and input updates form the viewer to the logic.

My main questions are: Has someone already done something like this? And do you think it is a good idea? :)

I guess the lag from the IPC should be not noticeable, and the amount of data that needs to be transfered is not that high.



Share this post

Link to post
Share on other sites
This is how every modern chess and go (the board game, not the language) program works: There is a GUI process that launches the engine and communicates with it via a bidirectional pipe. For chess, the communication happens using one of two protocols: [url="http://en.wikipedia.org/wiki/Chess_Engine_Communication_Protocol"]XBoard's protocol[/url] or [url="http://en.wikipedia.org/wiki/Universal_Chess_Interface"]UCI[/url]. Go uses [url="http://en.wikipedia.org/wiki/Go_Text_Protocol"]GTP[/url]. This allows engine programmers to focus on making strong engines, it allows users to switch engines and [b]it allows for much easier testing[/b] of the engines.

What kind of game do you have in mind? Edited by Álvaro

Share this post

Link to post
Share on other sites
The first thing i would want to do is implement a simple go version of the top down shooter demo that comes with unity and then take it from there. So the first thing to do is to think about a protocol to send the position/transformation, animation and input data. Should maybe also include fire and forget events from the game logic like visual and sound effects (explosions etc.).

Share this post

Link to post
Share on other sites
I would use pipes because they are just as easy to use as TCP sockets (maybe even easier?) and because they are most likely faster. Whether or not the delay matters depends a lot on the game of course, but I guess for a shooter game which is kind of "twitch" by nature, it might just matter.

A pipe is usually something like a kernel handle attached to a small piece of shared memory managed by the kernel. Or, something similar. Writing to and reading from a pipe is something like a memcpy (or on some operating systems, under some conditions, incrementing a page table reference counter and adding a page to a working set).

A TCP socket must at the very least do a memcpy and calculate two checksums, consider a MTU (even if the MTU is the maximum allowable by IP on a local socket, TCP must still honor it and packetize as appropriate) and so some address/port mapping stuff, and possibly go through firewall rules, so conceptually it must be slower.

Usually you will just give a crap, because nobody notices anyway, but when you really need "twitch", it may be worthwile to use something different. A pipe doesn't really have any disadvantages over a socket, other than you can't run the frontend and the logic on different machines, but would one really want to do that anyway?

Memory mapping is yet another thing you could consider. It's supported on pretty much every OS and as fast as you can get (though proper synchronization can be tricky).

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

  • Similar Content

    • By LoverSoul
      Hello everyone.
      I had a problem with transferring my character from the creation editor to the game engine. I created the character in Adobe Fuse, then imported it to Mixamo to put rig and animation.
      However, the appearance of my character has deteriorated significantly, and after importing into Unity, the character even began to look like a meme from the Assassin's Creed. Can you please tell me how I can fix all this so that my character's hair does not look like bits of bacon sticking to her head, and her eyes and mouth have taken their stable position in the skull?
      Thank you for attention.

    • By ilovegames
      Simulator driving with two modes of play - a race and free game in the open world!   Features: - 2 game modes - race and free game - 3 modes of transport - Buggy, ATV, Jeep - The open world - Realistic control - Modern graphics

    • By NajeNDa
      Hi there,
      I am a game programmer (C#/C++) who is looking for a project to join. I am computer science engineer plus Master Degree in Game Development, currently working in one the most renown mobile games company (2 yeras academic experience, 1 year working experience).
      I have developed several prototypes or even games almost ready to release, but I always lack of artists, so I am looking for a project already set up or few artist to begin working in something.
      My preferences are:
      Unity or Unreal Engine 4 based project (UE4 prefered) PC/Console game prefered but mobile is accepted too Not interested in VR Serious team with almost all the roles filled or pretending to be filled 3D project prefered over 2D Guaranteed 7 work hours per week, Crunch 20 work hours per week  European team (if timezone is not a problem for you, so its not for me) I am not looking for any kind of money income from games neither the team, I want to do this as a hobby and a way to improve my skills.
    • By INTwindwolf

      We are an indie game studio consisted of professional and friendly people. Additionally, we are a team of skilled artists and dedicated indie enthusiasts. Our current project is INT, developed on Unity Engine 5 for platforms Windows, Linux, and Mac.

      INT is a 3D Sci-fi RPG with a strong emphasis on story, role playing, and innovative RPG features such as randomized companions. The focus is on the journey through a war-torn world with fast-paced combat against hordes of enemies. The player must accomplish quests like a traditional RPG, complete objectives, and meet lively crew members who will aid in the player's survival. Throughout the game you can side and complete missions through criminal cartels, and the two major combatants, the UCE and ACP, of the Interstellar Civil War.
      For more information about us, follow the links listed below.
      INT Official website
      Steam Greenlight
      IndieDB page
      Also follow social media platforms for the latest news regarding our projects.
      Website Administrator
      Unity Engine Programmer
      Please note all of above are remote positions. You will not be required to travel or relocate.
      We are unable to offer wages or per-item payments at this time. However revenue-sharing from crowd-funding is offered to team members who contribute 15-20 hours per week to company projects, as well as maintain constant communication and adhere to deadlines. Currently the crowd-funding campaign is scheduled for the first half of year 2018. Your understanding is dearly appreciated.
      Please click each position to view the job in detail, as well as application instructions.
      Thank you for your time! We look forward to hearing from you!
      John Shen
      HR Lead
      Starboard Games LLC
    • By McJug
      I'm looking for a 3D artist to join me in creating a new tower defense game with a twist. Very much a hobby project but one which I want to have a professional end product feeling, with something that we can eventually monetize. I have a lot of the base game design in my head but as a developer I'm doing the typical developer thing of thinking technically - so someone who would be enthusiastic about the idea and have input on the design too would be great.
      I usually start these things with people and they get bored so I'm left on my own with half a project - so really looking for someone who shares my enthusiasm (that doesn't mean sitting in front of a screen 24/7 either though - this is meant to be fun).
      A little about me - I am a development team leader in the real world and the last hobby project I worked on with one other developer was a puzzle game that got featured in popular IT magazine's, and ended up with over a million downloads. 
      If you're going to get in touch please provide a few samples
      Hope to be working with someone on this soon!
  • Popular Now