All Projects → theonemule → dos-game

theonemule / dos-game

Licence: other
A Dockerfile for running Docker based DosBox games streamed to a browser client.

Projects that are alternatives of or similar to dos-game

masm-tasm
run and debug TASM/MASM code in VSCode via JSDos, DOSBox and msdos-player
Stars: ✭ 115 (+134.69%)
Mutual labels:  dos, dosbox
retrogardens
16bit retro programming in DosBox with Borland C++ 3.1, Turbo Pascal 7 and TASM
Stars: ✭ 49 (+0%)
Mutual labels:  dos, dosbox
basicdos
A new 8086-based reimagining of PC DOS and BASIC
Stars: ✭ 72 (+46.94%)
Mutual labels:  dos
DNS-Fender
A Proof-of-Concept tool utilizing open DNS resolvers to produce an amplification attack against web servers. Using Shodan APIs and native Linux commands, this tool is in development to cripple web servers using spoofed DNS recursive queries.
Stars: ✭ 47 (-4.08%)
Mutual labels:  dos
FutureDOS
A futuristic DOS
Stars: ✭ 46 (-6.12%)
Mutual labels:  dos
dd86
No longer maintained. See URL.
Stars: ✭ 36 (-26.53%)
Mutual labels:  dos
DIV
Reconstrucción y posible fork de DIV Games Studio 2.0
Stars: ✭ 41 (-16.33%)
Mutual labels:  dos
wine-launcher
Wine Launcher - Running Windows games under Linux
Stars: ✭ 249 (+408.16%)
Mutual labels:  dosbox
csol
A small collection of solitaire/patience games (Klondike, FreeCell, Spider, Yukon, etc.) to play in the terminal
Stars: ✭ 25 (-48.98%)
Mutual labels:  dos
third
Third, a small Forth compiler for 8086 DOS
Stars: ✭ 67 (+36.73%)
Mutual labels:  dos
awesome-ddos-tools
Collection of several DDos tools.
Stars: ✭ 75 (+53.06%)
Mutual labels:  dos
dos.zig
Create DOS programs with Zig
Stars: ✭ 48 (-2.04%)
Mutual labels:  dos
dethrace
Reverse engineering the 1997 game "Carmageddon"
Stars: ✭ 271 (+453.06%)
Mutual labels:  dos
AmpShell
A WinForms-based, lean and fast DOSBox frontend, for Windows (Linux and Mac coming soon !)
Stars: ✭ 29 (-40.82%)
Mutual labels:  dosbox
doslinux
Run Linux programs on DOS
Stars: ✭ 1,272 (+2495.92%)
Mutual labels:  dos
mt32-pi-control
MT32-PI.EXE/MT32-PI.TTP/mt32-pi-ctl is a control program for the mt32-pi MIDI synthesizer available for DOS PCs, Atari ST and Amiga computers as well as modern systems running Linux and Windows.
Stars: ✭ 22 (-55.1%)
Mutual labels:  dos
Docker-Swarm-DDOS
How to create a Denial of Service Attack through Docker Swarm.
Stars: ✭ 36 (-26.53%)
Mutual labels:  dos
dflat20
D-Flat Windowing System (SAA/CUA Interface) Version 20
Stars: ✭ 42 (-14.29%)
Mutual labels:  dos
another js
Another World/Out of This World (HTML5)
Stars: ✭ 46 (-6.12%)
Mutual labels:  dos
Safari-Crash
Small HTML DoS exploit kit aimed at mobile browsers that allows rapid deployment and testing
Stars: ✭ 32 (-34.69%)
Mutual labels:  dos

DOSBOX IN A CONTAINER WITH VNC CLIENT

So much fun!

  1. Create a folder.
  2. Place a copy of your game in the folder. I am using the shareware version of Commander Keen here.
  3. In that folder, create a file called dockerfile, paste in the following code.

FROM ubuntu:20.10
ENV USER=root
ENV PASSWORD=password1
ENV DEBIAN_FRONTEND=noninteractive 
ENV DEBCONF_NONINTERACTIVE_SEEN=true
COPY keen /dos/keen
RUN apt-get update && \
  echo "tzdata tzdata/Areas select America" > ~/tx.txt && \
  echo "tzdata tzdata/Zones/America select New York" >> ~/tx.txt && \
  debconf-set-selections ~/tx.txt && \
  apt-get install -y tightvncserver ratpoison dosbox novnc websockify && \
  mkdir ~/.vnc/ && \
  mkdir ~/.dosbox && \
  echo $PASSWORD | vncpasswd -f > ~/.vnc/passwd && \
  chmod 0600 ~/.vnc/passwd && \
  echo "set border 0" > ~/.ratpoisonrc  && \
  echo "exec dosbox -conf ~/.dosbox/dosbox.conf -fullscreen -c 'MOUNT C: /dos' -c 'C:' -c 'cd keen' -c 'keen1'">> ~/.ratpoisonrc && \
  export DOSCONF=$(dosbox -printconf) && \
  cp $DOSCONF ~/.dosbox/dosbox.conf && \
  sed -i 's/usescancodes=true/usescancodes=false/' ~/.dosbox/dosbox.conf && \
  openssl req -x509 -nodes -newkey rsa:2048 -keyout ~/novnc.pem -out ~/novnc.pem -days 3650 -subj "/C=US/ST=NY/L=NY/O=NY/OU=NY/CN=NY [email protected]"
EXPOSE 80
CMD vncserver && websockify -D --web=/usr/share/novnc/ --cert=~/novnc.pem 80 localhost:5901 && tail -f /dev/null

  1. Replace the COPY keen /dos/keen with your game (ie. COPY wolf3d /dos/wolf3d). 1. You can also change the default password, or override it with a -e parameter when you run the image.
  2. Now, with Docker, build the image. I’m assuming you already have Docker installed and are familiar with it to some extent. CD to the directory in a console and run the command…
docker build -t mydosbox .
  1. Run the image.
 docker run -p 6080:80 mydosbox
  1. Open a browser and point it to http://localhost:6080/vnc.html
  2. You should see a prompt for the password. Type it in, and you should be able to connect to your container with DosBox running. The game is started automatically.
  3. Once your image is built, you can push it to your image repository with docker push, but you’ll need to tag it appropriately.

USE WITH KUBERNETES

Kubernetes is another part of the equation when it comes to container apps. Containers on Kubernetes are deployed into pods, which are then usually a part of a part of a deployment, which will have one or more pods associated with it. Deployments can also be used for creating scalable sets of pods for high availability too on a Kubernetes cluster. If you’re not familiar with Kubernetes, check out this webinar below where I go in depth on the matter.

Deployments and services can be defined declaratively with a YAML file. Below is a Kuberenetes YAML file that defines a deployment and a service for my retro gaming container.

The deployment is simple – it points to a single container image called blaize/keen and then tells Kubernetes what ports to expose for the container. The service defines how the deployment will be exposed on a network. In this case, it’s using a TCP load balancer, where it is exposing port 80 and mapping that to the port exposed by the deployment. The service uses selectors on the label app to match the service with the deployment.

apiVersion: v1
kind: Service
metadata:
  name: keen-service
  labels:
    app: keen-deployment
spec:
  ports:
  - port: 80
    targetPort: 6080
  selector:
    app: keen-deployment
  type: LoadBalancer
---
apiVersion: apps/v1 
kind: Deployment
metadata:
  name: keen-deployment
spec:
  selector:
    matchLabels:
      app: keen-deployment
  replicas: 1
  template:
    metadata:
      labels:
        app: keen-deployment
    spec:
      containers:
      - name: master
        image: blaize/keen
        ports:
        - containerPort: 80

To connect use this, first create a file called keen.yaml file, configure your instance kubectl to work with your instance of Kubernetes, then run deploy the sample.

kubectl create -f keen.yaml

When this is deployed to Kubernetes, Kubernetes will configure the external network to open on port 80 to listen to incoming requests. When used on Azure Kubernetes Services, AKS will create and map a public IP address (htttp://[your ip address]/vnc.html) for the service. Once connected, you can point your browser to the IP address of your cluster and have fun playing your retro games!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].