{"id":85,"date":"2012-05-29T21:51:06","date_gmt":"2012-05-29T21:51:06","guid":{"rendered":"http:\/\/unorthodoxgamestudios.co.uk\/blog\/?p=85"},"modified":"2012-05-29T21:51:06","modified_gmt":"2012-05-29T21:51:06","slug":"game-engine-design-identification-of-libraries-and-tools","status":"publish","type":"post","link":"https:\/\/unorthodoxgamestudios.co.uk\/blog\/game-engine-design-identification-of-libraries-and-tools\/","title":{"rendered":"Game Engine Design (Identification Of Libraries and Tools)"},"content":{"rendered":"<p>This is the first real look at the design in relation to the game engine I have been developing, I&#8217;m new to the scene in engine development so it&#8217;s quite easy for me to make mistakes and overlook certain aspects. I have very little to go with and I&#8217;m\u00a0constantly\u00a0researching and finding out more about Engine\u00a0architecture\u00a0and implementation. So if something I&#8217;m doing seems a bit stupid please feel free to point that out.<\/p>\n<p>One of the first things I did when designing the engine was of course to select a suitable language to implement it in and produce a list of libraries and resource that I could use to aid in the development of the engine. Naturally I chose c++ as the implementation language of choice for the source code and have also considered lua, c# or javascript as possible languages I could use for the scripting language. Whether or not I will actually facilitate scripting in the engine via another\u00a0language has not actually been decided yet, but there are\u00a0several\u00a0reasons why it may be useful but I&#8217;ll get onto this at another stage.<\/p>\n<p>Here is a list of some of the libraries that I have identified so far that may be useful during the development, some of which have already been partially\u00a0integrated\u00a0into the project, This list is likely to expand as the development go&#8217;s on.<\/p>\n<p>Libraries:<\/p>\n<ul>\n<li>SDL(Simple DirectMedia Layer) &#8211; This is a library which can be used to handle windows management and Input as-well as several other handy things. Using this library could save me a lot of time as far as windows management and input is concerned and makes if far simpler and easier to set up a window ready for displaying 3d graphics. It also has the benefit of being compatible with both OpenGL and Direct X \u00a0and several Operating Systems. So it leaves a lot of options open. Although I will be\u00a0focusing\u00a0on windows development with OpenGL it might make it easier to port to different OS&#8217;s in the future if need be.<\/li>\n<li>\u00a0OpenAL &#8211; I haven&#8217;t looked into this much yet but this is a audio library that works with opengl.<\/li>\n<li>Newton Game Dynamics &#8211; A open source Physics Engine, Looks really good and some really impressive things have been made with it in the past. Physics engines are quite large and complicated so I didn&#8217;t deem it\u00a0feasible\u00a0to create my own from scratch, that&#8217;s a whole project in itself.<\/li>\n<li>SDL_Config &#8211; A library I found that is used for loading data from configuration files, very handy and saves a bit of time.<\/li>\n<li>Devil &#8211; A cross platform Image Library<\/li>\n<\/ul>\n<p>Useful Tools:<\/p>\n<ul>\n<li>Tortoise svn &#8211; eventually I will probably uploading my project to a svn just to make development a little bit easier to keep track of. I&#8217;ve worked with svn&#8217;s in the past and found them very useful.<\/li>\n<li>Doxygen &#8211; A useful tool used for documentation, herd some good things but\u00a0haven&#8217;t checked it out yet.<\/li>\n<li>Visual Studio 2010 &#8211; My compiler of choice.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is the first real look at the design in relation to the game engine I have been developing, I&#8217;m new to the scene in engine development so it&#8217;s quite easy for me to make mistakes and overlook certain aspects. I have very little to go with and I&#8217;m\u00a0constantly\u00a0researching and finding out more about Engine\u00a0architecture\u00a0and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5,11,4],"tags":[],"_links":{"self":[{"href":"https:\/\/unorthodoxgamestudios.co.uk\/blog\/wp-json\/wp\/v2\/posts\/85"}],"collection":[{"href":"https:\/\/unorthodoxgamestudios.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unorthodoxgamestudios.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unorthodoxgamestudios.co.uk\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unorthodoxgamestudios.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=85"}],"version-history":[{"count":4,"href":"https:\/\/unorthodoxgamestudios.co.uk\/blog\/wp-json\/wp\/v2\/posts\/85\/revisions"}],"predecessor-version":[{"id":89,"href":"https:\/\/unorthodoxgamestudios.co.uk\/blog\/wp-json\/wp\/v2\/posts\/85\/revisions\/89"}],"wp:attachment":[{"href":"https:\/\/unorthodoxgamestudios.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=85"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unorthodoxgamestudios.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=85"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unorthodoxgamestudios.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=85"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}