Development Blog Update - One small step for a man, one giant leap for Mac-kind

MaxMax Technical Director, Unknown Worlds Entertainment Join Date: 2002-03-15 Member: 318Super Administrators, Retired Developer, NS1 Playtester, Forum Moderators, NS2 Developer, Constellation, Subnautica Developer, Pistachionauts, Future Perfect Developer
Please post comments on the topic Development Blog Update - One small step for a man, one giant leap for Mac-kind here
«1

Comments

  • killkrazykillkrazy Join Date: 2007-09-10 Member: 62238Members
    wow, good stuff.
    Not much to say really since I have no programming knowledge, except that I read the whole thing and if it was blog-worthy and new-laptop-worthy then hoorah!
  • ComproxComprox *chortle* Canada Join Date: 2002-01-23 Member: 7Members, Super Administrators, Forum Admins, NS1 Playtester, NS2 Developer, Constellation, NS2 Playtester, Reinforced - Shadow, WC 2013 - Silver, Subnautica Developer, Subnautica Playtester, Pistachionauts
    Very cool, glad to see you are trying to make this as easy as possible down the road.
  • locallyunscenelocallyunscene Feeder of Trolls Join Date: 2002-12-25 Member: 11528Members, Constellation
    edited March 2009
    <!--quoteo--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--quotec-->I quickly found a number of places where my C++ code wasn't portable to the g++ compiler. I also discovered a few errors in the code which hadn't been caught by Microsoft compiler. These were all really easy to fix, and was exactly the kind of knowledge I was hoping to discover with this process.<!--QuoteEnd--></div><!--QuoteEEnd-->
    That's excellent that you're getting value added from the actual porting and not just from increasing the customer base. Sounds to me like you can make a strong case to your investors to continue upon this path, and hopefully have those simultaneous releases.
    <!--quoteo--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--quotec-->One of our goals is to make Natural Selection 2 and the toolset work natively across Windows, OS X and Linux.
    ...
    Ultimately, getting the Builder running on OS X was a pretty easy process
    ...
    I also haven't rewritten the platform specific piece (which detects when files on disk have been modified), but I do have a good solution now for how to organize these files in our code base.
    ...
    The bigger task is all of the small things, and this process has helped me flush about a bunch of them that should make things smoother going forward. We're not sure if we'll have enough time to release an OS X or Linux version simultaneously with the Windows version, but it's something we're very interested in doing. But I'm feeling good about the portability of the engine, and since our entire game is written in Lua it doesn't need to be ported at all!<!--QuoteEnd--></div><!--QuoteEEnd-->
    As <b>comprox</b> said it's fantastic that you're planning all of this out ahead of time, and it seems like you're really abreast of it, even without having done these types of porting before.

    I really do hope you make a simultaneous release. It could garner a large amount of good will from both the linux and mac communities and some early adopters that you wouldn't reach otherwise could be great word of mouth advertising for NS2.
  • radforChristradforChrist USA Join Date: 2002-11-04 Member: 6871Members, Constellation, NS2 Playtester, Subnautica Playtester
    I would LOVE a reason to remove this WinXP installation off of my Macbook!

    I hope for your success!!!
  • ThuroThuro Join Date: 2007-05-30 Member: 61058Members
    edited March 2009
    Great news post! I love reading about stuff like this and on that note, I have a few questions and comments.

    What challenges do you foresee with a Linux port and do you have plans to attempt a test port as you did with the builder for Mac OS? I've done a little coding for windows but I have no experience with porting so I'm not familiar with the code differences between linux, mac, and windows. Direct3D will obviously not be available for Linux (It's a MS closed standard iirc) but does Linux have significant coding differences the way Mac does?

    What sort of time investment can you predict for a full Mac or Linux port? I imagine some significant recoding will have to be done to work with an engine other than Direct3D. Even though it's only a small portion of your code, it is probably the most significant (at least in my mind, but again I have no experience with coding a 3D engine). What of your designs for a Steam-based release? Steam does not seem to be available for Mac or Linux (from what I can tell on their website) so what will you do in regards to that? Will you be publishing your releases for Mac/Linux independently? Or perhaps partner with Valve's distribution method for boxed copies (Sierra, Vivendi, etc.)? I hope that question makes sense; I'm not too familiar with publishing methods.

    I've seen a few companies do a staggered release for their products across multiple platforms. That is to say they released a windows version first and followed it up a month or a few months later with a mac and/or linux version. Do you see this as a viable possibility? What drawbacks or benefits do you see with a staggered release versus a simultaneous release? Obviously upfront a simultaneous release would generate a bigger initial buzz than a staggered release, but is a big starting buzz better than a medium one followed by two smaller ones? Perhaps the continued long term word of mouth will stimulate greater long term interest than a big burst in the short term.

    At any rate, I'm glad to hear that the first test port was successful and that you've begun the process of thinking about other systems. Hopefully the forethought now will lessen the burden when the time comes to do the real porting work.

    I will be glad to see the NS community grow larger for NS2 than it did for NS1. You certainly have a difficult task ahead of you in your goal to make NS a game that quickly appeals without having to draw a dedicated community of NS-heads who are familiar with the game mechanics. In that respect, what extra steps have you taken to make NS easier for the average gamer to grasp as a newbie? I remember a lot of people complaining about how complicated NS1 was and how the Combat mode was released to draw in a much larger crowd. You've said that you will not be making a Combat mode for NS2 and while I understand the reasoning behind this (to focus effort on the core aspect of the game: classic mode) what plans do you have in place to appeal to gamers who don't wish to spend a lot of time fighting a learning-curve? Apologies if this has been asked and answered elsewhere; if it has please direct me to a link and I'll happily read there.
  • KungFuDiscoMonkeyKungFuDiscoMonkey Creator of ns_altair 日本福岡県 Join Date: 2003-03-15 Member: 14555Members, NS1 Playtester, Reinforced - Onos
    <!--quoteo(post=1703379:date=Mar 24 2009, 07:46 AM:name=radforChrist)--><div class='quotetop'>QUOTE(radforChrist @ Mar 24 2009, 07:46 AM) <a href="index.php?act=findpost&pid=1703379"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I would LOVE a reason to remove this WinXP installation off of my Macbook!<!--QuoteEnd--></div><!--QuoteEEnd-->

    I'd love more reasons to not use Windows <img src="style_emoticons/<#EMO_DIR#>/tounge.gif" style="vertical-align:middle" emoid=":p" border="0" alt="tounge.gif" />. Good to hear that things are working well.
  • RideRide Join Date: 2003-11-11 Member: 22511Members
    Oh now that's good news. Looks like that bootcamp partition of mine can be put to rest once NS2 is being released.
  • PaladinDudePaladinDude Join Date: 2006-12-04 Member: 58881Members, Constellation
    Having done coding for Mac (OS7,8,9 and X) in the past I can only say kudos to you for getting something vaguely working within a weekend! Hand crafting a Makefile += bonusKudos <img src="style_emoticons/<#EMO_DIR#>/wink-fix.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink-fix.gif" />

    I think this is a good sign of well written code!
  • coriscoris Join Date: 2003-07-08 Member: 18034Members, Constellation
    This is great news! Ever since I bought my Mac I hate booting up windows – I even switched all my other computers to running Ubuntu.

    @Thuro: both Mac and Linux are POSIX-complaint *NIX environments, so they have a lot more in common than the Windows platform has with either.

    However, how the binaries are built differ a fair amount between the different systems. If I recall correctly, Apple has also created a heavily modified gcc (compiler) for OSX. I'm not sure if that's only targeted for Objective-C (the programming language that most native mac-applications are written in) though. I'm not sure how the library support between the different platforms are, but I think it's pretty straight forward, since Mac Ports exist [http://www.macports.org/]. Perhaps the easiest solution would be to first port it to linux and then have a word with the macports folks? News spread fast in the Linux community, which the creator of World of Goo also seemed to notice [http://www.tuxradar.com/content/world-goo].
  • hottunahottuna Join Date: 2008-01-17 Member: 63430Members
    <!--quoteo--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--quotec-->Releasing games for two platforms has always been the key to our profitability. Porting games is free money, and it's awesome. I suppose this is the sort of thing we should keep secret, as it'll only get us more competition on the Macintosh.<!--QuoteEnd--></div><!--QuoteEEnd-->
    <a href="http://jeff-vogel.blogspot.com/2009/03/how-many-games-i-sell-part-two.html" target="_blank">How Many Games I Sell, Part Two </a>

    A really worthwhile read for any indie developer.
  • juicejuice Join Date: 2003-01-28 Member: 12886Members, Constellation
    edited March 2009
    <!--quoteo(post=1703388:date=Mar 24 2009, 01:33 PM:name=hottuna)--><div class='quotetop'>QUOTE(hottuna @ Mar 24 2009, 01:33 PM) <a href="index.php?act=findpost&pid=1703388"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec--><a href="http://jeff-vogel.blogspot.com/2009/03/how-many-games-i-sell-part-two.html" target="_blank">How Many Games I Sell, Part Two </a>

    A really worthwhile read for any indie developer.<!--QuoteEnd--></div><!--QuoteEEnd-->

    I loved Exile, played it on my mac back in the day. Spiderweb software, yep. Of course after 10 sequels it gets old. But hey it worked for him.
  • rsdrsd Join Date: 2003-02-11 Member: 13405Members
    Great post, interesting stuff! It's good to hear you guys have linux in mind. I don't have Windows installed at all at the moment and was dreading having to dual boot just to play NS2 (although I would have).
  • Nima_Nima_ Join Date: 2007-08-30 Member: 62083Members
    I'm surprised that the DirectX code only takes up such a small portion.. Very interesting post, right up my alley.
  • RadixRadix Join Date: 2005-01-10 Member: 34654Members, Constellation
    Interesting. Good to hear.
  • PrefixPrefix Éirinn go Brách Join Date: 2006-12-31 Member: 59353Members, Constellation
    This is excellent to hear!

    Awesome update.
  • Cyborg16Cyborg16 Join Date: 2006-11-18 Member: 58656Members
    Cool, cross platform support. Good to hear you've been working on this. <img src="style_emoticons/<#EMO_DIR#>/smile-fix.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile-fix.gif" />

    I've been coming across similar compiler differences lately (but from linux to windows). IEEE special functions in this case...

    I'm not surprised the D3D code isn't such a big problem, more that you're not using something like OGRE to do that for you (but I'm not much of a graphics programmer). For people's info, there's other things to worry about, like build methods, where to store user data, different libraries...

    You can give me a nudge if you want some linux-specific help, but it sounds like Max is doing great here!
  • JydskatomkraftJydskatomkraft Join Date: 2007-02-26 Member: 60123Members, Constellation
    Great news for all gamers!

    I moved to linux 6 months ago and im very glad to hear that you guys are planning a <b>native</b> version for both mac and linux.
    Wine can handle most problems, but it's still sad to be a gamer when most games a written to windows <img src="style_emoticons/<#EMO_DIR#>/sad-fix.gif" style="vertical-align:middle" emoid=":(" border="0" alt="sad-fix.gif" />

    For those who don't know yet, it's possible to play NS1 over steam with the program Wine, from linux (and properly mac too)
  • ratclawratclaw Join Date: 2008-06-12 Member: 64433Members
    I'm a pc, but it's good to see developers push the barriers on the game systems usable.
  • Dr_ShaggyDr_Shaggy Join Date: 2002-09-26 Member: 1340Members, Constellation
    So I haven't posted in these boards since "Posted on: Nov 15 2004, 07:31 PM"

    I've kept an eye on NS2 development and done a bit of lurking on the boards from time to time, but this post is what brought me back.

    Great news on the successful Mac port. Since 2004 I'm a happily converted Mac user, with the XP bootcamp partition for whatever game I'm playing at the moment (L4D). As most Mac users will tell you, it's a pain having to load up windows when it's game time.

    Does XCode use the g++ compiler? You may be missing out on certain optimizations that XCode will provide if you're using a different compiler. I haven't done much XCode work (iPhone hello world app <img src="style_emoticons/<#EMO_DIR#>/nerd-fix.gif" style="vertical-align:middle" emoid="::nerdy::" border="0" alt="nerd-fix.gif" />), but I've heard of XCode helping with threading and creating universal binaries (probably not helpful for you).

    Hrm I've got a job now, I should finally get a Constellation account.
  • centaur2048centaur2048 Join Date: 2009-03-24 Member: 66886Members
    The nice thing about doing the work of keeping your codebase OS independent right now is that it will be easier to port over to PS3, should you decide to do so.

    The 360 is really, really easy to get your code running on. For the most part, if it runs on PC, it will run on the 360. More importantly, if it runs on PS3, it will run on a 360.

    I spent last summer interning on Medal of Honor... I have some crazy stories about the PS3 <img src="style_emoticons/<#EMO_DIR#>/smile-fix.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile-fix.gif" />

    Good luck! And, stop using makefiles! Look into Ant or something!
  • yimmasabiyimmasabi Join Date: 2006-11-03 Member: 58318Members
    edited March 2009
    Dear Max,

    Dont forget these;

    1. First there are many PC( XP/Vista) users and NS funs highly waiting NS2 game.
    2. Largest game players are now PC (XP/Vista) users
    3. All Mac user may install XP/Vista on Intel CPU based Macs now.
    4. So Please dont change the way of NS2 now. We call this "Don't Warp From the First Goal!". NS2 on PC needed ASAP.


    On the other hand, congratulations. I have Mac Pro also, It is good but have some problems on the XP & Vista. Beacuse Apple wants to sell his own OS X. OS-X is also great as i also have iPhone which uses same OSX. I also wrote some codes on both Mac & iPhone by using X-Code. I really dont know what is the percent of mac users in the world but there are many mac users especially in USA as i thought.

    Try to code in general format for Mac, iPhone, PSP, XBOX but forget OSX for now. Because you have a small developer core and time goes.

    "Don't Warp From the First Goal!" (I am not sure if this is grammatically true)

    Yilmaz from Turkey [ABLE.ns *]

    PS: Did you check stormrise game on vista ? There would be some inprirations.
    <a href="http://www.gamespot.com/pc/strategy/stormrise/index.html?tag=result;title;0" target="_blank">http://www.gamespot.com/pc/strategy/stormr...=result;title;0</a>
  • steppin'razorsteppin'razor Join Date: 2008-09-18 Member: 65033Members, Constellation
    Good read Max, I enjoy these little insights
  • StarClawsStarClaws Join Date: 2002-11-26 Member: 9974Members
    Oh god... Now we gotta deal with mac gamers... /me kills in console
  • AnimeLOLAnimeLOL Join Date: 2006-11-02 Member: 58275Members
    Gah, makefiles are pains, I hear you! I really need to take the time to learn how to properly use them <img src="style_emoticons/<#EMO_DIR#>/tounge.gif" style="vertical-align:middle" emoid=":p" border="0" alt="tounge.gif" />
    Any good links to where to learn Max?
  • SirotSirot Join Date: 2006-12-03 Member: 58851Members
    How are you going to distribute on Macs and Linux?
  • MojokdirectorMojokdirector Join Date: 2008-02-21 Member: 63705Members
    Sweeet! NS X Gorge!
  • thomasjthomasj Join Date: 2008-12-21 Member: 65823Members
    Great stuff, a good read.

    It is very useful to hear you explain your development process' and explain how you go about solving problems you come across.

    Best of luck at GDC.
  • JydskatomkraftJydskatomkraft Join Date: 2007-02-26 Member: 60123Members, Constellation
    I like the way you guys think. By sniffing around in OS-X you can see some of the crossplatform problems going from Windows to MAC/Linux, and encounter while you are writting the code instead of making the game to windows and then discover the problems when porting... Thumbs up <img src="style_emoticons/<#EMO_DIR#>/smile-fix.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile-fix.gif" />
  • FraxinusFraxinus Join Date: 2008-03-02 Member: 63783Members, Constellation
    This sounds awesome, glad to see that the mac version is shaping up in a timely manner.

    Now I can play NS2, when it comes out, abroad on my laptop <img src="style_emoticons/<#EMO_DIR#>/smile-fix.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile-fix.gif" />
  • coriscoris Join Date: 2003-07-08 Member: 18034Members, Constellation
    <!--quoteo(post=1703413:date=Mar 24 2009, 10:49 PM:name=centaur2048)--><div class='quotetop'>QUOTE(centaur2048 @ Mar 24 2009, 10:49 PM) <a href="index.php?act=findpost&pid=1703413"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->The nice thing about doing the work of keeping your codebase OS independent right now is that it will be easier to port over to PS3, should you decide to do so.

    The 360 is really, really easy to get your code running on. For the most part, if it runs on PC, it will run on the 360. More importantly, if it runs on PS3, it will run on a 360.

    I spent last summer interning on Medal of Honor... I have some crazy stories about the PS3 <img src="style_emoticons/<#EMO_DIR#>/smile-fix.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile-fix.gif" />

    Good luck! And, stop using makefiles! Look into Ant or something!<!--QuoteEnd--></div><!--QuoteEEnd-->

    I'd really suggest rake [http://rake.rubyforge.org/] over ant. It's easier to get started with (imo) and handles complex things really nice, since it's just a ruby script which handles conditions and similar things a lot better than ant files. It also gives you the pleasure of programming in ruby <img src="style_emoticons/<#EMO_DIR#>/wink-fix.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink-fix.gif" />
Sign In or Register to comment.