Re: What are you working on? How far have you got?

About the actual programming of the game.

Re: What are you working on? How far have you got?

Postby adam » Sat Sep 14, 2013 2:52 am

(admin: was in response to this post.)

KnightVision don't count yourself out just yet. HACKHalo2 is also working on a Java client. Having a java client that could connect to the server could allow others the ability to play that might not otherwise be able to.
adam
 
Posts: 113
Joined: Tue Aug 20, 2013 11:58 am

Re: What are you working on? How far have you got?

Postby jherico » Sat Sep 14, 2013 7:25 am

adam wrote:Having a java client that could connect to the server could allow others the ability to play that might not otherwise be able to.


That's a good sentiment, but I don't think it's going to work out that way. The ideal mechanism would be to say 'we're designing a game with an open API between a server and client and a server written in C++11, along with a reference client written in C++11, but which must strictly conform to the API so that other languages may be used to write clients'. Unless you make that a goal right from the beginning you'll find it's hard to just tack it on afterward. The problem basically becomes that it's too easy to modify the server, client and API all at the same time without thought to the consequences of other clients. Other clients become second class citizens that always fail to work after a new release of the software and eventually get abandoned out of frustration. The chosen model allows much faster iteration on adding new features though.

Personally I find Java much easier to work with in terms of the ecosystem of available libraries and the development tools, but it does impose a burden on the end user to have a JVM on the machine (not that that seems to have limited Minecraft's appeal). Perhaps with Boost and the C++11 features C++ won't require as much re-invention of the wheel as I recall, but only time will tell.
jherico
 
Posts: 13
Joined: Wed Aug 21, 2013 2:35 am

Re: What are you working on? How far have you got?

Postby Pseudonym » Sat Sep 14, 2013 8:57 am

KnightVision wrote:But I read that this project is going to be written in C++11 anyhow.

Not necessarily all of it.
Pseudonym
 
Posts: 129
Joined: Tue Aug 13, 2013 3:54 am

Re: What are you working on? How far have you got?

Postby adam » Sat Sep 14, 2013 5:45 pm

C++ doesn't use dotnet. maybe c++/cli but that is a Microsoft specific thing.
adam
 
Posts: 113
Joined: Tue Aug 20, 2013 11:58 am

Re: What are you working on? How far have you got?

Postby mrout » Sun Sep 15, 2013 1:35 am

KnightVision wrote:It's not that big of a deal to install the JVM


It is if you like security.

KnightVision wrote:if this is being coded in C++11 it also means this will need the 4.x DotNetFramework


Nope. The .NET framework is a Microsoft framework for the .NET platform. Common languages used with .NET include C#, ASP.NET, F# and Visual Basic.NET. C++11 has nothing to do with .NET.

KnightVision wrote:which is just like the JVM in many respects.


It's a similar idea. It's not in any way compatible, though.

KnightVision wrote:So there really is no difference in users needing to install stuff ahead of time.


Users almost certainly won't need to install anything new to run the game, except the game of course.

KnightVision wrote:In fact Mac and linux will not be able to install 4.x+ versions of the DotNet, do to MS controlling all of it and as easily as one thinks.


Mac and Linux users wouldn't want the .NET framework on their computers. They're likely to use Mono instead. But that's only if they want to run things like C# programs on their computer, not C++.

KnightVision wrote:It's why JAVA hasn't stopped the minecraft community because it can be installed on any OS.


That's right. Java: write everywhere, compile once.

KnightVision wrote:DotNet cannot, at least not without a lot of headache. Sure older versions of the DotNet 2.x and 3.x could be installed on MAC and Linux with the help of Mono etc etc.. but 4.x is not 100% working yet.


I'm not sure of the development status of the .NET 4 emulation in Mono, but again, it's not relevant.

KnightVision wrote:Meaning C++11 will be a problem for linux and MAC users.


Absolutely not. C++11 has nothing to do with .NET.

KnightVision wrote:It's why I chose JAVA as my code of choice. Makes things so much easier and nicer for the programmer AND the end user.


It's Java, btw. And that depends rather a lot on your definition of easier and nicer, I expect.

KnightVision wrote:Granted C++11 is a library C++ new standard.


C++11 includes both library and language features.

KnightVision wrote:But if your using Visual Studio AND the DotNet Framework, then my paragraph above makes sense.


I'm afraid it doesn't, actually.

KnightVision wrote:What I should have said is that earlier versions of the DotNet / Visual Studio can't compile C++11 code. Only the newer versions of Visual Studio that work with DotNet 4.x+ can.


Again, .NET and Visual Studio have nothing to do with C++11. You can compile C++11 code with g++, clang++ and Visual Studio. You don't need .NET 4.0 versions of Mono on Mac and Linux. You don't even need late versions of Visual Studio on Windows - g++ and clang++ work fine.
mrout
 
Posts: 731
Joined: Mon Aug 12, 2013 10:49 pm

Re: What are you working on? How far have you got?

Postby jherico » Sun Sep 15, 2013 6:32 am

mrout wrote:
KnightVision wrote:It's not that big of a deal to install the JVM


It is if you like security.


Don't kid yourself. Sure the JVM has had some high profile security issues, but as I recall, most of them have been in the area of the interaction between the browser and the JVM.

The code we write will also have bugs, security flaws, and exploitable problems. Code pulled in from libraries will be the same. It's the nature of software. Being VM based doesn't make you more or less likely to be vulnerable. Being connected to a web browser, the single most popular point of attack, does. So does having a huge installed base of people who aren't very security conscious.

mrout wrote:You don't even need late versions of Visual Studio on Windows - g++ and clang++ work fine.


'work fine' here having the meaning of 'require you to stop using the tool you're already experienced with and learn an entirely new build system'.

For every 'feature' you introduce into the codebase that eliminates the ability to use a commonly used development tool, cut your workforce by 20%. If the tool is Eclipse or Visual Studio, change than number to 40%. Make it hard enough to work with the code to eliminate enough of your workforce and you might as well just recruit people with enough money to purchase Unity licenses (or willing to get a second job to fund it) and make the game that way. It would be faster.
jherico
 
Posts: 13
Joined: Wed Aug 21, 2013 2:35 am

Re: What are you working on? How far have you got?

Postby mrout » Sun Sep 15, 2013 7:09 am

This isn't up for discussion, and the decision has been made.
mrout
 
Posts: 731
Joined: Mon Aug 12, 2013 10:49 pm

Re: What are you working on? How far have you got?

Postby Zardoz » Sun Sep 15, 2013 7:34 am

jherico wrote:
mrout wrote:You don't even need late versions of Visual Studio on Windows - g++ and clang++ work fine.


'work fine' here having the meaning of 'require you to stop using the tool you're already experienced with and learn an entirely new build system'.

For every 'feature' you introduce into the codebase that eliminates the ability to use a commonly used development tool, cut your workforce by 20%. If the tool is Eclipse or Visual Studio, change than number to 40%. Make it hard enough to work with the code to eliminate enough of your workforce and you might as well just recruit people with enough money to purchase Unity licenses (or willing to get a second job to fund it) and make the game that way. It would be faster.


Seriously, if you are developer that only know how work using only a specific IDE, you are doing a very poor publicity of your capacity as developer. The code is the code, and you not should have problem in using a plain Makefile, an Ant file, CMake, or any other nice building toolset, if is well documented.
Yep, I have a blog : http://zardoz.es
Emulator DCPU-16 VM
User avatar
Zardoz
 
Posts: 359
Joined: Mon Aug 12, 2013 8:54 pm
Location: Spain

Re: What are you working on? How far have you got?

Postby jherico » Sun Sep 15, 2013 7:58 am

mrout wrote:This isn't up for discussion, and the decision has been made.


First, it's a forum for discussion. Second, if you'd read the discussion you'd see neither I nor anyone else was advocating for changing any of the design specifications. In fact I was pointing out to someone who was encouraging yet someone else to continue development in Java because 'hey, free java client', that such efforts weren't realistic.

You came into the thread to lay the point by point smackdown on KnightVision, which included a few pot-shots at Java as well as a suggestion that Visual Studio might be superfluous the development process. If you didn't want people to reply to that with differeing opinions, you might have considered not doing so yourself. Trying to shut down the discussion with a dictatorial statement afterwards isn't going to grow your workforce any either.
jherico
 
Posts: 13
Joined: Wed Aug 21, 2013 2:35 am

Re: What are you working on? How far have you got?

Postby jherico » Sun Sep 15, 2013 8:28 am

Zardoz wrote:Seriously, if you are developer that only know how work using only a specific IDE, you are doing a very poor publicity of your capacity as developer. The code is the code, and you not should have problem in using a plain Makefile, an Ant file, CMake, or any other nice building toolset, if is well documented.


First off, anyone who is still using Ant or Make directly to maintain projects is someone I'd be deeply suspicious of. Also, I personally just started using CMake a few weeks ago to manage a cross platform project that has 3D example code running on OSX, Linux and Windows, in order to replace the individually managed VS, XCode and Makefile projects. Suggesting that the learning curve is just a matter of 'go look at the documentation' is laughable. CMake's documentation is scattered and incoherent, which isn't surprising because the domain it's attempting to cover is massive. There are several, sometimes dozens of books on each of the supported CMake build systems alone.

What you're suggesting that anyone who isn't at level 2 for 'tools knowledge' on the Programmers Competency Matrix isn't worth working with. There's a few problems with that. For one thing, lots of perfectly functional and worthwhile code gets written by junior developers. In fact, knowing when to given a piece of grunt work to someone else so that you can focus on a harder problem is just as much a part of being an experienced developer as knowing a variety of build systems.

Very experienced developers can still have spent most of their time working in one or a small set of tools. Someone might be super experienced in DirectX development but has only worked in VS and on the XBox. Just because he hasn't spent his free time researching alternative tools doesn't mean he's a bad developer. He might have very deep domain knowledge of 3D rendering that blows yours out of the water. He might be a PhD mathematician who's input in lighting shaders would be invaluable. He might also have no desire to drop the tool set he's spent years learning the ins and outs of just for a hobby project.

Try to remember that this project is no one's job. No one is getting paid to do this. So any impediment you put into any developers way is something they have to decide they'll work through because they love the project, but at every single one, some of them will probably decide that it's too much work to put into something they're just doing for fun. Taking the attitude that they're not good enough because they didn't just go learn the tool is all well and good, but it doesn't get code written any faster. Quite the opposite.

Every build system has a learning curve. Each of those curves that you require is a hill that a developer will have to climb to participate in the project. Your goal should not be to have only 3 awesome guys at the top of those hills.
jherico
 
Posts: 13
Joined: Wed Aug 21, 2013 2:35 am

Next

Return to Code

Who is online

Users browsing this forum: No registered users and 1 guest

cron