Git Product home page Git Product logo

elite's Introduction

Elite not very Dangerous | By: Kat9_123

A custom 3D Engine that draws it's graphics to the Windows console and a game loosely based on Elite. Fully written in C#.

Only for Windows!

Tabel of contents

What is it?

Elite not very Dangerous is a simple game made in my custom 3D Engine that draws it's graphics to the console. The game is very loosely based on the original Elite. Everything was made by me except for the really low level console interactions. Those were all adapted from Stackoverflow

All of the assets were also created by me. The sprites were made in Slate, the models in Blender, the sound effects in SFXR and the music in MuseScore.

It isn't really a game, it's more like a tech-demo.

https://www.youtube.com/watch?v=vIm_7NbgviA

Features

  • Uses the Windows command prompt
  • 2 Enemies and a Boss with detailed models
  • Mouse and Keyboard controls
  • Short distance warp ability
  • Pew pew!
  • Planets
  • It looks relatively good
  • Space!
  • Full HUD
  • Difficulty scaling
  • Soundeffects and music!
  • Score saving

The music is a highly questionable fugue that I wrote in one hour

Screenshots

HUD Explanation

image

Planets

image

Enemy

image

Boss

image

The Boss has a massive laser attack

image

Short distance warp ability

image

Why?

After I finished making an Asteroids clone for the Windows console I thought "What if I now made Elite in the console". First I dismissed it as I thought that I was far to incapable to do something like that. After a while of thinking about it I decided to do some research. I quickly stumbled upon OLC's 3D Rendering Engine tutorial. Though it was a tutorial for C++ it was pretty easy to convert the core concepts to C#. After a lot of tinkering I finally had a functioning renderer (rotation did take some time to get fully functioning). After that finishing the rest of the engine and game was relatively simple.

It was a very fun, challenging and educational project and I'm very happy with the result.

How to play

For the best experience use the Square font

If you want to use a different font, modify the Font option in assets/Settings.txt

You can either compile it from source yourself, or download it from the Releases tab just make sure that the assets folder is located in the same directory as where you launch the executable from.

I suggest you take a look at assets/Settings.txt for things like graphics or mouse settings before playing.

Controls

  • Space / LeftMouseButton - Shoot

Movement

  • W - Forward
  • S - Backwards
  • A - Left
  • D - Right

  • LShift - Up
  • LControl - Down

  • X - Break

  • C / RightMouseButton - Short distance warp

Rotation

  • Q - Roll left
  • E - Roll right

  • LeftArrow - Yaw Left
  • RightArrow - Yaw Right
  • UpArrow - Pitch Up
  • DownArrow - Pitch Down

Or

  • MouseMovementLeft - Yaw Left
  • MouseMovementRight - Yaw Right
  • MouseMovementUp - Pitch Up
  • MouseMovementDown - Pitch Down

Misc

  • M - Free mouse
  • Escape - Exit
  • R - Restart

Engine

The Engine uses a basic object oriented approach.

Though the Engine and the game are pretty closely integrated, you could definitely extract the engine (if you really wanted to for some reason).

The Engine itself lacks some pretty important features, mainly true object layering and occlusion. I decided not to implement these feautures because I was too lazy it wasn't necessary for this project and because it would cause unnecessary lag. Actual frustum culling would be nice though...

Features:

  • Fully written in C#
  • Runs in the Windows command prompt
  • Keyboard and Mouse support
  • 16 colours
  • Rotation based on forward and up vectors (is this really a feature though?)
  • Object oriented architecture
  • PNG and OBJ support
  • Custom font support
  • Basic line box collision detection
  • Easily accesible settings
  • Basic lighting
  • Sound support
  • Basic LOD support

Miscellaneous

If you have any tips, optimisations, balance changes, etc. Please either message me or make a pull request.

The game code is still very messy so any help with that is also greatly appreciated. The engine code is much cleaner, but still not that good.

Perfomance

Sadly the performance really isn't great. It will probably run on most computers at around 30-60 fps but you will have to tinker a bit with the settings. The biggest cause for the performance problem is probably the fact that all graphics are drawn to the console, which is kinda sad.

elite's People

Contributors

kat9-123 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.