Wednesday, December 2, 2009
Post Re-Post on the Blog
1. Does D really want to be popular? Be the "cool" kid?, and
2. What would it take to achieve popularity (The geek view would be the most technically superior language will win, but this is like saying the smartest man has the best chance of becoming president, we see how that works out in the real world ;) )
Disclaimer: Within a finite amount of time, I wrote this quickly, fully explaining the finer details would take a lonnng time ;)
Concise Summary:
D language popularity can increase dramatically if:
* C++ support is improved
* D is ported to .Net
* D is ported to JVM
* Driver-run grassroots marketing campaign (kind of like intelligent spam or context-sensative ads, where the driver is the central machine that tells where to advertise and when and how, etc, and people would post on different sites. The driver machine could be a community member who organizes this campaign on a wiki, and D citizens could carry out the deed.)
Long post:
Maybe this is just stating the obvious, but if popularity is really what D wants then features are not the choke point or problem with D adoption, I see the choke points as
* How well does this language interact with others?
* How stable is this language ?
I think the D language can make great strides by riding piggy back on
* .NET MSIL (Doesn't exist?)
* JVM (Doesn't exist?)
* C++ (D 2.0 implementing this somewhat)
* C (already done)
The fact is that no one wants to re-invent the wheel, I would never have used D if not for the fact that it can ride on C's progress. Similarly, it is very feasible to have D run on top of C++, MSIL, and JVM.
Great progress have been made in both the .NET and Java libraries, and I suspect D or a similar language would do well there.
D wouldn't do as well on .NET as Java perhaps because C# is already halfway decent, but it would increase D adoption anyways.
D on JVM on the other hand, if it's possible then I think it can be a big hit. You can say there are fundamental philosophical differences between JVM and D, but I see it as a way to increase D adoption. Then suggest move to mainline D when speed is a greater concern.
Now, I'm not the one to do this work anytime soon, but perhaps it is a good idea to remind others. I think language adoption comes from
1. How well the language interacts with existing technologies (Only can interact with C and C++ with a lot of effort, no MSIL or Java interaction)
2. How useful the language itself it (D is already incredibly useful)
3. Language stability (Rapid growth is a good start, however without stability its like trying to build a building on a fault-line )
4. Massive marketing machine (D's actually doing decent in this)
Looking at these points it becomes obvious why languages are successful. Interpreted languages have gotten away with not requiring too much compatibility because of their nature, and C# and Java are decent products with a good amount of hype behind them. C had AT&T and was actually useful, and C++ became popular on the sole fact that it extended C.
Now we have D, which talks to C and therefore the next "C".
D can also be the next "C++", "Java", and "C#" if D can have direct access to these languages libraries.
- Clay
Wednesday, November 18, 2009
SVG, Scenegraph, and Arctographer
I'm working on implementing an SVG loader / renderer using ChristianK's resurrected scenegraph extension for rendering. Also, SirAlaran is working on a arc.x.level extension and tilemap editor, take a look here:
http://www.dsource.org/forums/viewtopic.php?t=4775&sid=7d989c8c6604ff0adcff4dbcb602d3f9
and
http://www.hackerpilot.org/images/game_project/map_editor/screenshot-2009-11-15.jpeg
All in all, things are looking up.
Tuesday, November 3, 2009
ArcLib v.03 GUI-Physics-Refactor release
I would like to announce the latest release of ArcLib, Arc v.03 GUI-Physics-Refactor release. See http://www.dsource.org/projects/arclib/report/6 for full list of work done on this release.
The greatest changes were made to the structure of the project. Also includes the joystick support, camera, per pixel collision detection, sprite, and 2d lighting system.
See http://dmedia.dprogramming.com/?n=Tutorials.ArcIntro for getting started with D and ArcLib.
The real purpose of this release is that I finally got everything working and cleaned up in the trunk. I had ported the hybrid GUI, but don’t have time to support it because of the massive amount of code and my lack of familiarity with the system. I will also drop scenegraph unless others want me to keep it.
I will now create the stable branch.
- Clay
Introducing the arc.game Game class
Here is the first incarnation of the Game class. The idea behind the class is that the user will overload the this() class for init, process() for game loop, and shutdown() for shutdown code, and the Game class will handle the mundane details, such as input processing and window swapping. After creating their own class to extend the Game class and overloading the correct functions, the main loop simplifies to
// main entry
int main()
{
// initialize game
Game g = new MyGame("Arc
Graphics Primitives", Size.d640x480, false);
// loop game
g.loop();
// shutdown() is called by loop() after loop exits
return 0;
}
Here is an example I’ve modified to make use of the game class: http://svn.dsource.org/projects/arclib/trunk/examples/arc/draw.d
Of course, use of this class is optional. It may gain more features in the future, such as setting up game states and integration with the GUI. For now, its very simple.
Monday, November 2, 2009
Back from the Round-a-bout
I’ve been out for a while, but I’ve decided to clean up my project a little. I left it hanging with a broken subversion for too long.
Anyways, I want to get ArcLib fully integrated with eclipse, so I’ve installed the descent plug-in and have an eclipse project file. I plan to use xfbuild when I can get it to work, but right now its complaining about not having the –deps flag, and I can’t get the current hg clone to build. So I’m using reliable old dsss until I figure out how to replace it with xfbuild, and then I’ll figure out how to run xfbuild straight from eclipse.
I find eclipse to be an excellent editor if you have the memory to run it. It has useful features like global project search and replace with the option to use regex, and other neat features.
The news is this: The current trunk now compiles, yay! I haven’t checked to see if it works, but it should for the most part. Also, I’m not going to support hybrid and the scenegraph anymore, for the sheer amount of code they have, and my lack of familiarity with these systems. If I need, I may write a scenegraph or similar features from scratch in the future. Also, arclib should be able to be compilable with xfbuild, once I get that to work.
Speaking of Round-a-bouts, a nearby town decided to install two of them on the roads, with one on the highway. Both round-about's are design fails.
Thursday, July 9, 2009
Current plans...
I've been thinking of hooking ArcLib up to the minid scripting language to provide rapid prototyping of games.
Some more extensions I plan on to help provide the rapid development of games as well.
arc_actors - keep track of actors in game
arc_menu - in game menu capability
arc_credits - end credits capability
arc_hud - in game hud capability
arc_tilemap - bird eye tilemap
arc_scrolling- scrolling tilemap
Some other tools in consideration...
Map Editor
Sprite Editor
Tools to facilitate rapid game development plans are the current future.
Friday, June 26, 2009
D - Good, Bad, Ugly, Pretty
First of all, I see the biggest problem for D is that the community is small, and there is no incentive for the community to grow. All jobs are done in C++, Java, C#, etc. Because D isn't really old or rich, the community isn't likely to grow much in the future. From my experience, D is a hobby language and that isn't looking like it will change much in the future, not without a lot of money. I see D's small community and lack of real world jobs in D as the MAJOR problem with D, and probably as a huge reason why people try D, like it, then move on. Those who stay are not in it for the money, but the love of the language.
Second, productivity tools. You can have the most productive language in the world, but if C++ or C# has better productivity tools for refactoring / coding, the productivity of the language itself may not matter as much as the productivity gained through the productivity tools. Plus having no productivity tools scares away main stream programmers.
Third, stability. While stability is somewhat accomplished with D 1.0, there is a new DMD release, new phobos + Tango release about once every month or two. These releases tend to have small breaking changes that make old code obselete if not updated every month.
Fourth, simplicity. The simpler the language, the easier it will be for new people to pick up or maintain. Some people enjoy complexity, while I enjoy the simplest possible solution. D 1.0 is almost perfect, but IMO D 2.0 is creeping on the complexity scale. If a concept can't be quickly grasped by most programmers, perhaps it should be left out.
I really don't see the D language itself as the problem, and I see the D tool chain easily improving in the future. The real problem with D is that no one is ever going to use it in serious applications, because no one really knows it. Its not taught in the University, D has no means of spreading the word of itself, its not revolutionary enough to really catch anyone's eye. No one will use it because no one uses it, there are other languages that perform a decent job with decent productivity tools to accomplish practically the same thing as D (C#, Java, Python, etc).
So, what's the future of D? I think the future of D is in indie games. The end user doesn't care what language its in, productivity is increased, and most game bindings are already converted to the D language. Since indie games are usually written by a small team without industry experienced "bosses", they can freely choose the language they want to use.
D will continue to excel in hobby projects as well, since there is no real money stream coming from D incorporated to fund itself.
My prediction is that D's state will probably stay the same, maybe picking up some more indie game developers, for the future.