Posts tagged C#
Starting in summer 2010 (uh, was it really that long ago?) a couple of friends and me started developing a small game just for fun. We wanted to do it from scratch to have total freedom and to learn something in the process. To keep things simple, we chose to create a Space Invaders clone. We did this in our free time casually aside from studying or working, so it took a little bit longer than it would usually take. The most parts were finished during the course of 2011, including the first graphical assets. In the following years, there were some pauses and times of slow progress alternated by times of higher productivity.
Basically, the game was finished by the end of 2011. But as the rule of 80-20 (also called the Pareto principle) suggests, 80% of the time is consumed by the last 20% of the project. So during 2012 until now, most of the team was busy with life, but we still kept at it, polishing and refining the game until we were satisfied. Only a few graphical assets are missing (like proper laser graphics when shooting, a sprite for the mystery ship and a nice looking in-game HUD), but we decided its time to move on to other projects and finish this one.
Alien Invasion is entirely written in C#, using DirectX 10 with SlimDX and a self-made rendering engine, asynchronous resource management, the FMOD audio engine and utilizes a component-based game architecture. We even have a little LISP interpreter for our resource files! (yes, we are totally aware that this is absolute overkill for a small game like that. But as I already said before this wasn’t about the game, it was about the experience and trying stuff we wanted to do 🙂 )
So, without further ado, here’s the game:
Alien Invasion by Starforge Games is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.
To build and run the source code, you need Visual Studio 2015. Additionally, you have to copy the “data” folder from the game into the “AlienInvasion” project folder.
As of 11.06.2016, the project can also be found on GitHub at the following location: https://github.com/StarforgeGames/alien-invasion
Have fun with it. 🙂
In order to run Alien Invasion, you need the .NET Framework 4.6. Additionally, you may need to install the SlimDX End User Runtime for .NET 4.0, available on the official SlimDX website in the download section.
I would like to express my sincerest gratitude to all people who contributed to this project. These are, in no particular order:
My special thanks goes to Hansheinz Müller Philipps Sohn for providing the server infrastructure.
Master Thesis: Modality-independent Exchange of Information Across Devices Using the Pick-and-Drop Concept
I have submitted my master’s thesis to the university of Ulm and received my master’s degree. The task of my master thesis was to develop and evaluate a multimodal user interaction concept for an existing prototypical system that allows a drag-and-drop-like interaction across device borders.
To make things more interesting, this is no ordinary drag-and-drop action where the dragged information must retain its original representation. The dragged information can be dropped and represented by different media types, depending on the context. An example would be to drag the text “apple” and drop it into a droppable area for images. The dragged information would then adapt by switching to an image of an apple and displaying the visual information. One of the main achievements of my master’s thesis was to devise such an interaction concept and discuss the implications and problems inherent to such interaction possibilities.
Another point was the ability to spontaneously switch input modalities and devices on demand. For example, when working with a computer using mouse and keyboard to input information the user should be able to leave the computer, pick up a tablet and continue working in the next room inputting the text utilising the touch pad or voice input of the tablet.
Alas, I cannot share the source code this time, as my prototype is heavily dependent on the existing prototypical system and interweaved with its code, which is the property of the university of Ulm and part of a larger research project. But, as the focus was the interaction concept and its theoretical elaboration, the most interesting parts of this work can be found in the documentation.
It was written to the best of my knowledge, though I can’t guarantee it’s perfectly free of errors. Furthermore, the disclaimer of this blog applies.