Re: dynamic runtime responsiveness (was: Sweng-Gamedev Digest, Vol 54, Issue 1)
Jon Frisby <[email protected]>
| Newsgroups | gmane.games.devel.sweng |
|---|---|
| Message-ID | <[email protected]> |
On May 3, 2010, at 10:16 AM, Brandon Van Every wrote: > On Mon, May 3, 2010 at 9:45 AM, Jon Frisby <[email protected]> wrote: >> >> On May 3, 2010, at 8:29 AM, David Black wrote: >> >>>>>> >>> 1) Unity3D builds serialization/deserialization of scene objects >>> in at a very deep level and can in many circumstances reload your >>> game code (which is all C#/UnityScript/Boo-based) on the fly by >>> recompiling when a file has changed, serializing the running >>> scene to a temp file, loading the new code, and then >>> deserializing the scene. Generally this happens quite quickly >>> and causes only a minor hiccup, although the automatic >>> compilation process can get pretty slow if you have a lot of game >>> code -- one game of mine takes a good 10-15 seconds to recompile, >>> and several seconds to reload during a running game. >>> <<< >>> >>> Just how much game code are you talking about? I find I can >>> recompile >>> 200k lines of C# (with the MS compiler...) in less than 5 seconds. >> >> About 15,000 lines of code, but this is being compiled with a >> customized >> Mono build, while the game is running (and generally chewing up >> more than a >> full core), on a Mac laptop with a fairly slow disk (5400 RPM). > > The performance of a dynamic modification language under a full system Strictly speaking, in this instance the 'dynamic' features of Mono / CLR are not being used -- it's basically just doing the analogue of "build project" whenever a source file changes, then doing a serialization shuffle. However (to keep this on the original point), many languages can manage code reloading / code modification on-the-fly with without such complexity. Ruby, while generally not a good fit for a (runtime) scripting language for a game has language / engine features that facilitate this to good effect. (See: Ruby on Rails in Development mode, for example.) -JF _______________________________________________ Sweng-Gamedev mailing list [email protected] http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com