<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Disqus - Latest Comments for ChrisMDP</title><link>http://disqus.com/by/ChrisMDP/</link><description></description><atom:link href="http://disqus.com/ChrisMDP/comments.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Thu, 09 Aug 2018 04:29:39 -0000</lastBuildDate><item><title>Re: How to add live code reload to your game</title><link>http://chrismdp.com/2015/08/how-to-add-live-code-reload-to-your-game/#comment-4030310006</link><description>&lt;p&gt;You're right: function pointers are always broken after reload, so I only used them in a few places and used big switch statements to work around this elsewhere. In theory you could go through and attempt to fix all the function pointers if you had a central registry of them, but I didn't use them enough to bother with doing that.&lt;/p&gt;&lt;p&gt;Hope that helps!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Thu, 09 Aug 2018 04:29:39 -0000</pubDate></item><item><title>Re: How to add live code reload to your game</title><link>http://chrismdp.com/2015/08/how-to-add-live-code-reload-to-your-game/#comment-3600227377</link><description>&lt;p&gt;I used a unity build and compiled the entire game every time. The full Sol Trader codebase compiled in just over a second, thanks to using zero libraries and no templates, so this was never a problem. &lt;br&gt;You could always use a game DLL and an engine DLL if the engine was too slow to compile, and just load the game every time, leaving the engine DLL in place. Or, just compile the engine into the base EXE and have a smaller chunk as a DLL. There’s more boilerplate that way (exporting functions etc) so a fast build and one DLL worked best for me.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Sat, 04 Nov 2017 15:22:03 -0000</pubDate></item><item><title>Re: How to add live code reload to your game</title><link>http://chrismdp.com/2015/08/how-to-add-live-code-reload-to-your-game/#comment-3598234921</link><description>&lt;p&gt;&amp;gt; Are you using his memory allocation stuff? And if so, did you actually understand why he's added memory arenas?&lt;/p&gt;&lt;p&gt;Yes - it's so that you can partition your memory into useable chunks, and ensure that one chunk can potentially grow without fragmenting too much all over the system. If you keep a free list for hash maps for example, I want those blocks to be fairly close to each other to optimise cache hits.&lt;/p&gt;&lt;p&gt;&amp;gt; I noticed that Casey has moved all the game code into the DLL, including all the entities stuff. In a different world where entities are part of a real entity-component-system I'd rather have all that stuff as part of the core engine...&lt;/p&gt;&lt;p&gt;I have my core engine sitting inside the same DLL. There's nothing to stop you compiling libraries into it. The only pieces of code I have outside DLL are things I absolutely need to be platform specific - such as interaction with the OS and the core loop (as timing stuff is quite OS specific). These are only a few hundred lines of code in each of these platform-specific files, and the OSX/Linux functions are mostly shared in one file, too.&lt;/p&gt;&lt;p&gt;Hope that makes sense?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Fri, 03 Nov 2017 08:51:23 -0000</pubDate></item><item><title>Re: 5 ways I screwed up Sol Trader's launch: a post-mortem</title><link>http://chrismdp.com/2016/06/5-ways-i-screwed-up-sol-traders-launch-a-postmortem//#comment-2778364680</link><description>&lt;p&gt;Thanks for your comments, Jake. I'll make the changes you mentioned around save/load, they're really simple to make and will definitely improve things. Most of your other points are either being worked on, or on my list to improve. Appreciate the feedback (and sorry you lost your save 😳)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Tue, 12 Jul 2016 01:11:13 -0000</pubDate></item><item><title>Re: 5 ways I screwed up Sol Trader's launch: a post-mortem</title><link>http://chrismdp.com/2016/06/5-ways-i-screwed-up-sol-traders-launch-a-postmortem//#comment-2772985577</link><description>&lt;p&gt;Thanks! There's more to do on the visualisation of relationships: a family tree would be a good thing to add. After 1.1 I'll review all the outstanding ideas and see what's next.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Fri, 08 Jul 2016 17:09:51 -0000</pubDate></item><item><title>Re: 5 ways I screwed up Sol Trader's launch: a post-mortem</title><link>http://chrismdp.com/2016/06/5-ways-i-screwed-up-sol-traders-launch-a-postmortem//#comment-2756215709</link><description>&lt;p&gt;Hmm, it might be nice to allow you to force your way through a gate. Interesting - one to think about!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Wed, 29 Jun 2016 01:55:39 -0000</pubDate></item><item><title>Re: 5 ways I screwed up Sol Trader's launch: a post-mortem</title><link>http://chrismdp.com/2016/06/5-ways-i-screwed-up-sol-traders-launch-a-postmortem//#comment-2755095897</link><description>&lt;p&gt;Glad to hear it! It's not perfect yet (although a number of the early bugs are now fixed as I've released 10 updates since launch), but 1.1 will hopefully sort out a lot of the remaining issues...&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Tue, 28 Jun 2016 12:23:08 -0000</pubDate></item><item><title>Re: Modelling opinions and prejudices in Sol Trader</title><link>http://chrismdp.com/2015/11/modelling-opinions-and-prejudice-in-sol-trader/#comment-2399276667</link><description>&lt;p&gt;Thanks for the thoughts. At the moment, observers don't draw different conclusions, but they will do in the future: &lt;a href="https://trello.com/c/rE1KsOGp/208-opinions-influenced-through-self-opinion" rel="nofollow noopener" target="_blank" title="https://trello.com/c/rE1KsOGp/208-opinions-influenced-through-self-opinion"&gt;https://trello.com/c/rE1KsO...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Tue, 08 Dec 2015 04:43:14 -0000</pubDate></item><item><title>Re: How I'm using Proxemics in Sol Trader's game design</title><link>http://chrismdp.com/2015/04/how-i-m-using-proxemics-in-sol-trader-s-game-design/#comment-1997401393</link><description>&lt;p&gt;I actually came to the opposite conclusion: that if people bear grudges for ever, it might not be more realistic, but it would generate more intrigue and reasons for the player to act on another character's behalf.&lt;/p&gt;&lt;p&gt;Balancing realism and fun is difficult. Ultimately I'll try it and if reconciliation is more fun then all to the good. What I might do is make that sort of thing a mission goal, so that the player can have a hand in it, which could definitely be fun!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Fri, 01 May 2015 05:16:48 -0000</pubDate></item><item><title>Re: How I'm using Proxemics in Sol Trader's game design</title><link>http://chrismdp.com/2015/04/how-i-m-using-proxemics-in-sol-trader-s-game-design/#comment-1994798844</link><description>&lt;p&gt;Great question. The chracters also now store a separate list of enemies that they have seriously fallen out with and to whom they are no longer on speaking. There's currently no way back from this state :)&lt;/p&gt;&lt;p&gt;Falling out happens quite rarely in the generator, but there will be lots more reasons for this to fire in the game itself...&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Wed, 29 Apr 2015 17:33:19 -0000</pubDate></item><item><title>Re: Your abstractions are a liability</title><link>http://chrismdp.com/2015/04/your-abstractions-are-a-liability/#comment-1975327046</link><description>&lt;p&gt;And I'm no longer sure that bouncing through different methods in the code isn't often as much cognitive drag as seeing a 'cluttered' big method all in one place. For me, 'clutter' isn't as compelling a reason to break methods up as I thought it was.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Sun, 19 Apr 2015 03:01:38 -0000</pubDate></item><item><title>Re: Your abstractions are a liability</title><link>http://chrismdp.com/2015/04/your-abstractions-are-a-liability/#comment-1955442582</link><description>&lt;p&gt;Not brilliantly, to be honest, but no worse than before. Most of this code was setting up external services which doesn't lend itself to unit testing.&lt;/p&gt;&lt;p&gt;Inlining incorrect abstractions in general will break existing tests, but in theory the abstractions will re-emerge from the soup of code and reform into more easily testable components.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Thu, 09 Apr 2015 10:43:14 -0000</pubDate></item><item><title>Re: Your abstractions are a liability</title><link>http://chrismdp.com/2015/04/your-abstractions-are-a-liability/#comment-1953488594</link><description>&lt;p&gt;Good catch, thanks. Fixed.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Wed, 08 Apr 2015 16:23:29 -0000</pubDate></item><item><title>Re: Your abstractions are a liability</title><link>http://chrismdp.com/2015/04/your-abstractions-are-a-liability/#comment-1953011757</link><description>&lt;p&gt;Yes, absolutely. In the real example in my game code, I inlined both `init()` and `cleanup()`, both of which where 20-30 lines. Many of the member variables they were setting up vanished at that point, and the class collapsed down significantly.&lt;/p&gt;&lt;p&gt;The main game loop is now a very clear 2-3 page method, and I don't have a problem with it staying like that: at least until any correct abstractions become clearer.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Wed, 08 Apr 2015 12:33:11 -0000</pubDate></item><item><title>Re: How I doubled the speed of my game by giving up on C++</title><link>http://chrismdp.com/2015/04/how-i-doubled-the-speed-of-my-game-by-giving-up-on-c-plus-plus/#comment-1941417121</link><description>&lt;p&gt;I didn't have space to talk about it in this post, but yes, I'm using a large memory buffer and one allocation for the whole program. &lt;br&gt;I'm not doing placement new though as I don't have any constructors: just a few initialisation methods where I need them, or I just fill in the values. I'm not convinced about overloaded constructors: I prefer explicit initialisation methods. I think I've only needed about two of these so far. &lt;br&gt;Pointers to less frequently used data is a good idea: I'll probably use indexes as they are half the size on 64-bit and they serialise for free.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Thu, 02 Apr 2015 03:54:33 -0000</pubDate></item><item><title>Re: Why video game coders don't use TDD, and why it matters</title><link>http://chrismdp.com/2015/03/why-games-coders-dont-use-tdd-and-why-it-matters/#comment-1911668846</link><description>&lt;p&gt;Absolutely. I'm currently trialing writing code without unit tests, but starting with the usage code first, stepping through code to check it does as I expect and using Assertions for edge cases. It's an interesting journey so far...&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Tue, 17 Mar 2015 09:44:44 -0000</pubDate></item><item><title>Re: Why video game coders don't use TDD, and why it matters</title><link>http://chrismdp.com/2015/03/why-games-coders-dont-use-tdd-and-why-it-matters/#comment-1901283842</link><description>&lt;p&gt;That's a very sad state of affairs if true. That's rather like telling a builder not to use cement because it's quicker just to stack the bricks directly on top of each other.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Wed, 11 Mar 2015 10:44:26 -0000</pubDate></item><item><title>Re: Red Dwarf: Sol Trader hits Kickstarter</title><link>http://powergamer.co/featured/red-dwarf-sol-trader-hits-kickstarter/#comment-1788485668</link><description>&lt;p&gt;Hello! I'm the developer, and very happy to answer questions on the game!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Mon, 12 Jan 2015 10:14:27 -0000</pubDate></item><item><title>Re: Elite and Asteroids Collide in Sol Trader</title><link>http://cliqist.com/2015/01/05/elite-asteroids-collide-sol-trader/#comment-1774347423</link><description>&lt;p&gt;Thanks for the article! I'm the developer, and happy to answer any questions that people have.&lt;/p&gt;&lt;p&gt;One quick clarification: there aren't any asteroids yet, but I do plan to implement real asteroids (as in, rocks) into the game as part of getting it completed this year.&lt;/p&gt;&lt;p&gt;Chris&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Tue, 06 Jan 2015 05:25:39 -0000</pubDate></item><item><title>Re: Why BDD works solo, and why that matters for everyone</title><link>http://chrismdp.com/2014/08/why-bdd-works-solo/#comment-1557870463</link><description>&lt;p&gt;Hi Andre,&lt;/p&gt;&lt;p&gt;Thanks for pointing out Job Stories, I'd not heard of them before.&lt;/p&gt;&lt;p&gt;To be honest I'm not a huge fan of any particular format to write stories in. They all have different emphases which can be helpful, and I tend to teach people all of them and major on the ones that correct the presenting issues, and ensure people don't cargo cult an overly restrictive method which doesn't help communicate to anyone.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Mon, 25 Aug 2014 04:18:05 -0000</pubDate></item><item><title>Re: How to layer context into your features using Real Narrative</title><link>http://chrismdp.com/2014/04/how-to-layer-context-into-your-features-using-real-narrative/#comment-1360545461</link><description>&lt;p&gt;Definitely, but perhaps after the price goes down :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Tue, 29 Apr 2014 07:34:28 -0000</pubDate></item><item><title>Re: What&amp;#8217;s your favorite DIY family game?</title><link>http://journal.avdi.org/2014/04/14/whats-your-favorite-diy-family-game/#comment-1336230077</link><description>&lt;p&gt;Hey avdi!&lt;/p&gt;&lt;p&gt;Try out &lt;a href="http://cardpirates.com/rules" rel="nofollow noopener" target="_blank" title="http://cardpirates.com/rules"&gt;http://cardpirates.com/rules&lt;/a&gt; - I wrote it last summer. You only need a pack of cards and some counters or dice for the pirate ships. Plays in 10-30 minutes.&lt;/p&gt;&lt;p&gt;Have fun!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Mon, 14 Apr 2014 15:01:32 -0000</pubDate></item><item><title>Re: How I learned to stop worrying and love (some) detailed Cucumber features</title><link>http://chrismdp.com/2013/11/how-i-learned-to-stop-worrying-and-love-some-detailed-cucumber-features/#comment-1127904289</link><description>&lt;p&gt;Are you saying the use of the term prejudice is prejudiced? :)&lt;/p&gt;&lt;p&gt;Judgementalism is in my opinion to be avoided. I don't think you can entirely remove yourself from subjectivity though.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Mon, 18 Nov 2013 05:58:00 -0000</pubDate></item><item><title>Re: How I learned to stop worrying and love (some) detailed Cucumber features</title><link>http://chrismdp.com/2013/11/how-i-learned-to-stop-worrying-and-love-some-detailed-cucumber-features/#comment-1124508408</link><description>&lt;p&gt;I challenge prejudice everywhere I see it, on pretty much every subject, in myself most of all. Perhaps I need to write more about this.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Fri, 15 Nov 2013 09:20:04 -0000</pubDate></item><item><title>Re: How I learned to stop worrying and love (some) detailed Cucumber features</title><link>http://chrismdp.com/2013/11/how-i-learned-to-stop-worrying-and-love-some-detailed-cucumber-features/#comment-1119626629</link><description>&lt;p&gt;Thanks for the pointer. That's a whole other subject in itself... but yes, very interesting :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Parsons</dc:creator><pubDate>Tue, 12 Nov 2013 09:20:55 -0000</pubDate></item></channel></rss>