Simon Ender's projects page

Database test programs

A collection of database programs, written in purpose of training of writing commercial programs. The created programs' types range from console client-server apps and graphical user interface apps in WinAPI and in the multiplatform wxWidgets library. The following database engines were used: MySQL and SQLite. The project is being developed together with Szymon Cichy thanks to Subversion version control system. Click on the image to enter project's gallery, where I introduce only my own programs.

Binary versions for Windows and GNU/Linux (if applicable) are available here.

Back to top

DB test programs
Click on the image to enter project's gallery.

Estate agency's database

A program which allows entering clients' estate purchase expectations into a database, then, in a handy search page, allows to search these clients, by providing information about a concrete sell offer.

A typical search may be carried out by searching entries that are of a certain type, places, parameters, and that have a certain feature or don't have a specific feature, that don't suit a given client.

Back to top


Estate agency
Click on the image to enlarge it.

MDDClone-SDL

An SDL port of Mercenary games series (one of the first 3D games). SDL port means that the same code can be compiled on all platforms which support SDL. So far Windows, Mac OS X, GNU/Linux and FreeBSD ports have been created. The project is based on MDDClone's source code, but contains my own improvments, with OpenGL version being the most important one. For historical and compatibility reasons, a software rendering version is being developped, using conditional compilation.

The project's homepage, including gallery is available here.
Source code is unavailable due to copyright restrictions.

Back to top


Estate agency
Click on the image to enlarge it.

Killers Behind You

A 2D platform game, written in C++ language, using SDL and OpenGL libraries. The game is distinguished by its cartoon graphics, a dynamic and smooth camera and a realistic (in sanity boundaries) physics. Together with the project's artist, Paweł Zięcik, we plan to merge the best ideas from other platform games with our own into one game. The game works on Windows and GNU/Linux operating systems. In future, a Mac OS X port will be released.

Demo of this game for Windows is available here, and for GNU/Linux here. The GNU/Linux version requires that you first install the following libraries: freeglut, SDL, SDL_image, SDL_mixer and zziplib.

Back to top


Killers Behind You
Click on the image to enlarge it.

Killers Behind You level editor

Killers Behind You level editor written in C++ language, using wxWidgets library. The editor imports and exports XML formated level data, which are then used by the Killers Behind You game itself.

Back to top


Killers Behind You
Click on the image to enlarge it.

Launch MFD

Orbiter's Multifunctional Display which calculates a necessary azimuth with which you must launch and fly your spacecraft, to reach an orbit with certain parameters, also depending on physical parameters of your source celestial body. Additional features of Launch MFD:

  • Powered Explicit Guidance algorithm by NASA - determines ship's currently required pitch to reach orbit of given altitudes along the insertion
  • Fuzzy logic autopilot - points a ship smoothly to flight director marker (on both axes), using my Fuzzy Engine for Java port - libFuzzyEngine++
  • My direct ascent algorithm - also using libFuzzyEngine++. Described below

Launch MFD is one of 20 most wanted files of all times on OrbitHangar Orbiter's addon list. As an Open Source project, Launch MFD has many contributors and 3 authors, including me. The MFD is being developed with a help of Subversion version control system.

C++ code is available here, and the Windows binary is here. Requires Orbiter to run.

Back to top


Launch MFD
Click on the image to enlarge it.

Orbitrader MFD

Multiplayer trading module in development for Orbiter. Allows to transfer cargo between bases and space stations in the Solar System for virtual money. All transactions and events are stored on the Orbitrader server developed by Pawel "She'da'Lier" Stiasny, where the transactions are recalculated and from which the last event is downloaded next time you run the module, so it can restore the simulation's state.

The project uses libxml2 library for data grouping, libcurl for the data transfers, and pthread, to provide non-blocking data transfers.

C++ code is available here. Requires Orbiter to run.

Back to top


OrbitraderMFD

Energy MFD mk2

Energy MFD mk2 is a tool which samples your kinetic (KE), potential (PE) energies, and their sum - mechanical energy (ME). The stored data is drawn on graphs, giving you a nice view of your energy states. The MFD is mainly an educational tool, which allows for carrying out some interesting physical experiments, described in documentation.

C++ source code and Windows binary are available here. Requires Orbiter to run.

Back to top


Launch MFD
Click on the image to enlarge it.

Orbital Scenery

This is an orbital scenery generation module. It creates and moves objects as vessels, which act as asteroids, with random velocity and rotation. Click here to see the addon's video-clip.

C++ source code and Windows binary are available here. Requires Orbiter to run.

Back to top


Roids
Click on the image to enlarge it.

DEI Multiplayer Lobby

A program which is a result of heavy modifications of Sam Lantinga's SDL chat client/server. Along with the basic chat function, the Lobby now possesses a more sophisticated ability: it allows transferring game states of a turn based strategy game Divide Et Impera through the Internet.

Uses Simple Directmedia Layer library, to call various low level functions.

C/C++ code and Windows binaries are available here.

Back to top


DEI_Lobby
Click on the image to enlarge it.

Direct ascent calculator

This application serves as a visualisation of my direct ascent algorithm, used in Launch MFD. The ship's trajectory, being the calculations' result, is displayed in the graphical part of the program, while the flight's parameters in means of time are displayed in the right part of the program. The algorithm uses fuzzy logic (libFuzzyEngine++) to increase speed of numerical solving and, as such, is the subject of my Master Thesis. A detailed description is available in Launch MFD's documentation.

C++ source code and Windows binary are available here.

Back to top


Launch MFD
Click on the image to enlarge it.

libFuzzyEngine++

My C++ port of Prof. Edward Sazonov's Fuzzy Engine for Java. Porting the Engine from Java to C++ required some thought on how to avoid reliance on garbage collector, typical in Java / C# programming. The library itself uses a developer friendly interface in form of function definitions and linguistic rules. I use the port in Launch MFD for direct ascent algorithm's numerical solving and fuzzy autopilot.

C++ source code and build scripts / projects are available here.
The original Fuzzy Engine for Java is available here and is currently maintained at Sourceforge.

Back to top


Launch MFD
Click on the image to enlarge it.
Conceptual images © Prof. Edvard Sazonov.

Brain Party Windows port

I've helped Paul Hudson from Linux Format magazine in creating Windows port of his brainteaser game - Brain Party. Porting it required making some not so obvious changes in the code, and of course preparing the binary itself, using MinGW and MSYS

C++ source code and Windows binary are available here.

Back to top


Brain Party
Click on the image to enlarge it.

Tic Tac Toe for Java

An AWT based Tic Tac Toe game with fully resizable graphics, created as an academic project.

Java executable is available here and the source code here.

Back to top


tictactoe
Click on the image to enlarge it.

Azimuth calculator

Launch MFD's precedessor. It uses the same basic algorithm for azimuth calculation, but in practice, the program of little use for Orbiter. On the other hand, as a standalone program, it has educational and demonstrative values.

The program has been written in pure C and WinAPI, so it doesn't need any additional runtime libraries to run.

C Code and Windows binaries are available here.

Back to top


Azimuth_calculator
Click on the image to enlarge it.

MDDClone Bitmap Translation Tool

This tool allows to translate bitmaps used in MDDClone, using a human readable interface. In detail, it converts text that you enter with your keyboard, into a bitmap file which is then used by MDDClone.

The invented algorithm includes automatic text centering and automatic font choosing (the longer the text, the thighter the chosen font). Also different parameters are accepted for a given line to perform specific formatting.

C/C++ code and Windows binaries are available here. Be aware, that this is my first program shared publicly, so the code is pretty immature.

Back to top


Mercenary_BMP
Click on the image to enlarge it.

Image whitening script

This is just a demonstration of a part of my Matlab scripting abilities. Using Matlab's Image Processing Toolbox, I was able to remove blackness from images, contraty to making a negative of an image, which distorts all the other, sometimes important, colours.

A practical usage of this script is for printable versions of Orbiter tutorials, for an obvious reason: whitened images save a lot of ink or toner.

The script is available here. Requires Matlab to run.

Back to top


Image_whitening
Click on the image to enlarge it.

AbsoluteKillrot

A fix of Orbiter's original bug, which results in some slight, constant ships' rotation, noticable and very annoying during interplanetary travels.

C++ code and Windows binaries are available here. Requires Orbiter to run.

Back to top


AbsoluteKillrot
Click on the image to enlarge it.
© 2008 Simon Ender. Logo image comes from the Hubble site.