While working with Ogre3D and reading the news on their page I found a project called NeoAxis. A game engine using Ogre for graphic rendering written in C#. The screenshots are promising and the feature list contains everything I need. Physics, graphics, input control and last but not least support for multiple platforms.
I have downloaded the NeoAxis SDK and started a bit to work with it. The demos in the SDK are great. All features are shown in one big game. In this game is a long corridor with many doors. You can walk thru in first person view and enter door by door. Behind every door one feature is shown. The source code for the demos can be found in the SDK, too, to see how it works. For some genres there are finished templates available. For example first and third persons games. You only have to find the right demo and change the code for your needs. The wiki contains documentation of the basic structure of NeoAxis and refers to the right demo source code. The main development platform for NeoAxis is MS Visual Studio but there is an deployment tool which builds and prepares packages for different platforms.
After some programming with NeoAxis and a good impression I also found some problems which made this sdk not the first choose for me. Here are some of the reasons I stopped working with it. The deployment tool delivers windows and mac binaries. For Linux is the advised solution to take wine. Ok, that will work but is not really a good solution because the user has to do a lot of work to get the software running. Due to visual studio is the development platform it was a bit unconvenient to reboot every time I would like to develop with NeoAxis. A virtual machine was not enough because of heavy use of shaders in the graphic engine. The result was 3fps instead of 250fps during the demos. The style the documentation is written make it hard to start. Everything is in the demo code and you search the parts you need. An answer how to develop and deploy more than one application with a single installation I have never found. Except to install the sdk multiple times…
NeoAxis is worth a look for you if you search for a C# based game engine. The graphic is nice and there are already existing templates to modify. Perhaps I did not find the right documentation to get a good access to it. And last if you develop on windows than many problems I have had you probably will not have.
For those who search a good book to start programming C# I would like to suggest you this book. It covers all important parts of the language in a comprehensive way with good example how to use features of C#.
With good experience in Java it is really easy to learn C# and after reading this book my last gaps between java and c# were closed.
The book is written by Ian Griffiths, Matthew Adams and Jesse Liberty published by O’Reilly Media Inc.
Sometimes it is a good idea to have a look around you even if everything works fine. So far I was used to Ant for building my java applications. Ant is a great tool and like gnu make it is able to do everything you want it to do. You only have to write a proper configuration file…
Maven is on the first look a bit more restrictive because it forces you to follow some conventions given by the chosen type of a project. But if you follow this way you will get much simpler configuration and well structured layout of project files. The project type specific stuff is handled by plugins and there are plenty of plugins already out there for nearly every task you could imagine. Due to the fact that you can write your own plugin maven is less restrictive as it seems in the beginning. And for all standard use cases I was really satisfied with the already existing plugins.
Maven is written in java itself and therefore available on every platform java is running. The existing plugins can be retrieved from internet repositories. Even depending jar files you need to build or deploy your project are retrieved automatically. Perfect to build on different machines without the need of installing the jar dependencies on every build machine or blow up your source revision system. Just add it to maven configuration and if something is missing it will be retrieved.
The eager Ant is not dead. It has now a new companion.
If you want to learn a new program language because of seeing new concepts or search for a new way to solve a problem which is difficult to implement in the language you are currently using. Give Scala a try!
t is a modern language which combines the best concepts of many programing languages and paradigms. You can program either object oriented or functional just as you wish or its better for solving your problem. The language is very extensible and support you with mechanisms to add new functionality in libraries and you can use them like built-in constructs of the language. That make the language scalable and now you can guess where the name is coming from.
Before I enumerate all features of scala take a look at the homepage or read the book “Programming in Scala”. It is very good start into scala which covers all concepts step by step. You should have already some experience in object oriented programming languages. Java would be great because you can skip some parts of the book. Otherwise you have to read a few pages more which is not really a problem.
Take a look a scala if you have some time. You will not regret it. (Beware that you will ask yourself the question “why it is so complicated to implement…?” if you write code in an other language than Scala).
I found a treasure in my book shelf today. It is only a small book but it was one of the first books I bought as I made my first experiences in computer science.
It was printed in 1990 and all laws are still applicable. You only have to replace the words floppy disk by usb stick or modem by DSL. Technology may change but the problems are still the same. In my opinion a must have read book for everyone who work with computer. After reading you know, you are not alone…