Building a better Mogre (Part 2)

Shortly after posting the first part of this series on improving the MogreBuilder I was contacted by another user (McDonte). He had been working on a GUI frontend for the automated build tool a few months back and I had offered to host the source code and binaries on my web-host. He sent me a copy of the code and I tested it out. I was hoping to make this part of the series about integrating the GUI but unfortunately, there are still few outstanding bugs to sort out. I was a little conflicted about how to proceed with the GUI side of things, so instead I did what I could with the command line version.

McDonte’s GUI

McDonte did an awesome job creating an option rich GUI to cover just about everything you could think of in the build tool. He also added the missing tasks to automatically download the Ogre source code as part of the build process. I was hoping to be able to build Mogre easily with the GUI, but I ran into a number of issues including:

  • The calls to hg had a syntax error because the -u option was missing from the command line.
  • Cmake reported an error but did not provide a reason.
  • I had to set the paths to TortioseHg and Cmake each time I ran the tool.

Once these issues are fixed I’m sure the GUI version of the tool will be released in one form or another.

The bitbucket repositories

A couple of days later I asked Beauty if I could have access to the MogreBuilder and Mogre repositories on bitbucket. This was no trouble and I uploaded the changes I made to the MogreBuilder command line version.

User Tubulii downloaded the binaries that I compiled last week and tested them out with the Mogre samples. He also had to build MOIS for the input system. Ideally, my goal is to make it easy to grab a copy of the repository and build Mogre out of the box with minimal effort. So it stands to reason that MOIS and the samples should also be included in the build process.

The Mogre samples

Surprisingly the source code for the samples is not on the bitbucket repository. For some reason, the only place the source code could be located was the Mogre installer for version 1.7.1. This is not really acceptable, so I plan to upload the sample source code to bitbucket shortly. I only just managed to get them to compile and run on my machine tonight after some messing around with the project settings.

Every time a new version of Mogre is built it is handy to be able to run through the samples as a smoke test to make sure everything went well.

Conclusion

I’m pretty happy with the progress this week, even though there is not a lot to show for it. The feedback has been great so keep it coming :)

Building a better Mogre (Part 1)

This week I have been helping out with an open source project called Mogre. My mission is to continue the work of another user (Amirabiri) on the MogreBuilder project to automate the build process of Mogre. Over the course of the next few weeks I would like to make the build process much easier and add some new features.

What is Mogre?

Mogre is a .NET wrapper around Ogre, the popular open source graphics engine. It has been developed and maintained by many users over the years. Mogre wraps the Ogre code using C++/CLI code that is automatically generated from a combination of tools. Once complete a stable .NET DLL is produced that allows .NET developers to make use of the powerful Ogre rendering engine in games and tools.

What is MogreBuilder?

The steps involved building Mogre manually is pretty involved. The whole process can take a few hours if you have never done it before and if you encounter any errors along the way it can be tough debugging them. To make this process easier a tool has been developed with the intention of automating the entire process. This should make it a lot easier to build new versions of Mogre each time a new version of Ogre is released.

The tool automates many of the steps but still has a lot to be desired. There are still a number of steps involved and the documentation is limited.

Part 1 – Building Mogre using the auto-builder

I had to make a number of changes to the original source code of the MogreBuilder.
I run the MogreBuilder after each of the following steps to find the next error and fix it.

Assumptions:
I have Microsoft Visual C# 2010 Express installed.
I’ve also installed TortiseHg at some point in the past

  1. Download and compile MogreBuilder source as a zip file from https://bitbucket.org/mogre/mogrebuilder
  2. Created C:\Mogre and set the command line parameter in project properties
  3. Downloaded Mogre source as a zip file from https://bitbucket.org/mogre/mogre/overview
  4. Extracted the source into C:\Mogre
  5. Downloaded and installed cmake from http://www.cmake.org/cmake/resources/software.html (add to system path)
  6. Get Ogre source using the command line: (run from the C:\Mogre\Main\OgreSrc directory)
    hg clone http://bitbucket.org/sinbad/ogre/ -u v1-7
  7. The patch failed for file OgreCodec.h so I manually patched it using the reject file.

The auto-builder ran successfully.

The end result

For the moment I haven’t loaded the source code into a repository yet (lack of time), but if you want to have a go at repeating the process yourself you can download my changes to the MogreBuilder in a zip file or you can jump right to the end result and download the .NET 4 binaries.

Modified MogreBuilder source
Mogre .NET 4 Binaries

What’s next?

A few steps can be taken to make development easier:

  • Uploading the source code to a repository.
  • Getting feedback on what’s most important
  • Getting help from other developers

There are loads of little improvements that could be made to the MogreBuilder including:

  • Adding a GUI
  • Automating more of the steps
  • Fixing the patching issue
  • Documentation
  • Adding in other components (Terrain and Paging)
  • Allowing the user to choose which steps to execute (skip the compile if you know it’s already complete)

More information

There is a development thread on the Mogre forums.

List of First Person Puzzle games

When we think of first person games the word ‘shooter’ is usually involved. If I was to try and list all of the FPS games on the market it would be nearly impossible. What happens however, if we replace ‘shooter’ with ‘puzzle’? The list suddenly gets a lot shorter. Many people would only be able to list 2 or 3 games.

Portal
If you ask anyone to name a first person puzzle game, it’s likely the answer is going to be Portal. This is the game that proved first person puzzle games can work really, really well. When Valve first developed Portal they really didn’t know if it was going to be popular. It was packaged in The Orange Box and soon gathered a cult of fans. If you haven’t played it yet go and grab a copy now!

Portal 2
Of course, once Valve realised Portal was so popular they developed a sequel. A much longer game with a more in depth story and many new puzzle elements and a 2 player co-op mode. It’s probably the best first person puzzle game made to date so let’s hope they make a third game in the series :)

Narbacular Drop
The game that inspired Portal developed as a senior game project of students attending DigiPen Institute of Technology. The developers where hired by Valve to develop Portal using many of the same concepts. Although the game is not as polished or complete as portal you can download it for free.

 

Tag: The Power of Paint
Tag Team, a group of students from the DigiPen Institute of Technology created a game that allows the player to use special paint sprayed from a paint gun to change the physical properties of surfaces. The project team was then hired by Valve, to help create new puzzle elements in Portal 2.

Q.U.B.E
Set in a cube based environment, this game challenges players to navigate each level by manipulating coloured cubes with a kind of mysterious glove. Although the game keeps the graphics simple it provides some interesting gameplay mechanics using logic, physics and platforming.

The Ball
Solve puzzles with the help of a large physics driven ball. Using an ancient weapon to attract the Ball towards you, or use it to hammer the Ball toward objects and enemies. You can also push the Ball into areas you cannot enter and use it to help you survive the many traps and hazards.

Quantum Conundrum
A game being develoeped by Kim Swift who was one of the students developing Narbacular Drop and joined Valve to develop Portal. In early December of 2009, she left Valve to work for Airtight Games to work on Quantum Conundrum. I don’t know a lot about this game yet except that you play a 12-year-old trapped in your uncle’s mansion. The primary game mechanic is the Interdimensional Shift Device allowing the player to switch into one of four different dimensions.

Glasshouse
Another student project created in 2008 by Rocktopus Games. For a free student project this game looks very polished. The game uses a gravity gun that can attract or repel as the main mechanic. Unfortunately, the download on the main website seems to be broken.

AntiChamber (Hazard – Journey of Life)
I’m not really sure how to describe this game. The developer descibes it as a journey through the depths of a non-Eclidean labyrinth where geometry and space follow unfamiliar rules. It really has to be played to fully understand what that means. The developers website doesn’t have a download link, but with a bit of Googling you can find a demo here.

Fract
A game still in development with an interesting neon electro twist look. The player is let loose into an abstract world built on sound and structures inspired by electronic music. The gameplay is about exploring, rebuilding and creating. The puzzles are simple knob twisting or button pushing to match patterns.

Vestige
Vestige is a game that takes place in an alternate history, beneath the capital of a renewed and oppresive Roman empire. The levels in this game look incredible, which makes sense because the game can be downloaded from the talented level designers website of Alex Forsythe.

Recall
Another work in progress with the concept of being able to rewind time using a kind of space-time camera. Theres not a lot of info on this game yet but it’s worth keeping an eye on.

The Penumbra Series
A group of first person horror adventure focussing on story, immersion and puzzle solving. While, horror and story seem to be the main focus, the games do have puzzles and there is not shooting or weapons in the traditional sense.

So there you have it, all of the games I could find that fit the first person puzzle category. The list is short, even including titles still in development, nevertheless, it does seem to be a growing genre. Who knows, maybe one day people will say FPP alongside FPS.

If you know of any other games that should be on the list please let me know.