https://github.com/kat9-123/elite
A game loosely based on Elite that runs in the console.
https://github.com/kat9-123/elite
console-application console-game console-game-engine elite game game-engine-3d
Last synced: 5 months ago
JSON representation
A game loosely based on Elite that runs in the console.
- Host: GitHub
- URL: https://github.com/kat9-123/elite
- Owner: Kat9-123
- License: gpl-2.0
- Created: 2022-05-28T10:28:24.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-08-25T10:07:04.000Z (over 3 years ago)
- Last Synced: 2023-10-18T12:36:48.082Z (about 2 years ago)
- Topics: console-application, console-game, console-game-engine, elite, game, game-engine-3d
- Language: C#
- Homepage:
- Size: 94.8 MB
- Stars: 16
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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?](#what-is-it)
- [Screenshots](#screenshots)
- [Why?](#why)
- [How to play](#how-to-play)
- [Controls](#controls)
- [Engine](#engine)
- [Miscellaneous](#miscellaneous)
## 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

### Planets

### Enemy

### Boss

### The Boss has a massive laser attack

### Short distance warp ability

## 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.