Development Blog Update - One small step for a man, one giant leap for Mac-kind
Max
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
Comments
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!
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.
I hope for your success!!!
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.
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.
I think this is a good sign of well written code!
@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].
<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.
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.
Awesome update.
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!
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)
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.
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!
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>
Any good links to where to learn Max?
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.
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" />
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" />