-
Notifications
You must be signed in to change notification settings - Fork 570
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Release the 2024 Hackceler8 game engine.
- Loading branch information
Showing
472 changed files
with
19,977 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Hackceler8 2024 Game | ||
|
||
`handout/` is the version of the game that will be handed out during the game rounds. `server/` is the version that will run on the organizers' server. The only difference is the content of some files under game/components/boss. | ||
|
||
See the README.md in the respective folders for setting up and running the game client + server. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
# Hackceler8 2024 Game | ||
|
||
## Steps to run the game: | ||
|
||
1. Install prerequisites | ||
``` | ||
cd handout | ||
python3 -m venv my_venv | ||
source my_venv/bin/activate | ||
pip3 install -r requirements.txt | ||
``` | ||
|
||
2. Run server (optional but good for testing cheat detection/etc.) | ||
|
||
``` | ||
cd handout | ||
source my_venv/bin/activate | ||
python3 server.py | ||
``` | ||
|
||
Note that this server is slightly different from the one run by organizers during the live rounds as it doesn't have all the code for the boss fights. | ||
|
||
3. Run client | ||
|
||
``` | ||
cd handout | ||
source my_venv/bin/activate | ||
python3 client.py | ||
``` | ||
|
||
If you want to run the client without a server, pass `--standalone` as an additional argument. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
-----BEGIN CERTIFICATE----- | ||
MIIDjzCCAnegAwIBAgIUVx92s3F9s3TvTcTFzVMWbGb+cHIwDQYJKoZIhvcNAQEL | ||
BQAwVzELMAkGA1UEBhMCQ0gxEzARBgNVBAgMClNvbWUtU3RhdGUxDzANBgNVBAcM | ||
Blp1cmljaDEPMA0GA1UECgwGR29vZ2xlMREwDwYDVQQDDAhkZXYtdGVhbTAeFw0y | ||
NDA0MDQyMTQwMzlaFw00ODExMjUyMTQwMzlaMFcxCzAJBgNVBAYTAkNIMRMwEQYD | ||
VQQIDApTb21lLVN0YXRlMQ8wDQYDVQQHDAZadXJpY2gxDzANBgNVBAoMBkdvb2ds | ||
ZTERMA8GA1UEAwwIZGV2LXRlYW0wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK | ||
AoIBAQDUjGYxwdG8zPd79HMJ62DBOS2LaUrchVnVu02NXlnb8fYEEd22tDw7BoZ+ | ||
PCJ0/RxgaOOZ8AQwbh+LbyqFloP34BhRDjeMgAjyEZE4i9y7woysWHh8j7iH2GER | ||
SNZwYefZ+YRGnDp1C2A7DqVqLlsnt72zMTYUIYEZqBLFd/H/1ysfgIiZiHP1++dW | ||
chlV1lEL/2q0uLt8Oi+Hp/dA/E89TZznkSs2XKByUlF7Q34rHNoitRigtFw4/hXg | ||
a8KwY7o0FjNcQUP67C0zNBDsOZ8fEt1/i4k/hQ+B+iHHPF/CA0azY4JjUcSF7522 | ||
0GnGUjA7I+RWS0aii3hVtcy47sxxAgMBAAGjUzBRMB0GA1UdDgQWBBQ1HR6i0sQ4 | ||
N/WNu3Pp8pPS0cFjIjAfBgNVHSMEGDAWgBQ1HR6i0sQ4N/WNu3Pp8pPS0cFjIjAP | ||
BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBS4eEJXfF+JmpE0Qtr | ||
nH8Dvlsr6zTH6BZdhchdx4umZ28gnejTVFL3n6AFh9s8v4zyximIO40Zw2zzJwIo | ||
+EWvDDBWWAjLHDlzDrNtN7itNyDvKsskPVgBGYbCxiEJP+t+FI2YwRwboE8k3cPv | ||
rqnpkMXm9gYU0XGlZo/OysAbGZ0KrTReKUhVKmo8FocUCA2p9D1/bXYCv/jEM7ZW | ||
5uImP3w9v/bj+/Em2rXbHQMNBUY5ixQv++jpVIvkI4CqXhnWZKnG4efTeUgO2em5 | ||
ilDJnEZV9RkLIuu8LG2s2aR5NNrGjb4n1ve0jmAkKBzvl9aqERtUOqhvYLgNPmsq | ||
A86a | ||
-----END CERTIFICATE----- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
-----BEGIN PRIVATE KEY----- | ||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDUjGYxwdG8zPd7 | ||
9HMJ62DBOS2LaUrchVnVu02NXlnb8fYEEd22tDw7BoZ+PCJ0/RxgaOOZ8AQwbh+L | ||
byqFloP34BhRDjeMgAjyEZE4i9y7woysWHh8j7iH2GERSNZwYefZ+YRGnDp1C2A7 | ||
DqVqLlsnt72zMTYUIYEZqBLFd/H/1ysfgIiZiHP1++dWchlV1lEL/2q0uLt8Oi+H | ||
p/dA/E89TZznkSs2XKByUlF7Q34rHNoitRigtFw4/hXga8KwY7o0FjNcQUP67C0z | ||
NBDsOZ8fEt1/i4k/hQ+B+iHHPF/CA0azY4JjUcSF75220GnGUjA7I+RWS0aii3hV | ||
tcy47sxxAgMBAAECggEAPZpFokU1Fz3mur/iOa1FOStrxlypjFl/7IDhXMhMTgGG | ||
Vq6g7mu1izv8bgjaycJ0X4L2+G5GoIzCSsTY86forsZ99bwjoG6ZaSNrThLHUon0 | ||
AJ2RqjRzfLfbhklwkVjm/FejnV15WeQGq4c2rRwrYksQSafJLzN4uelrK110v7vj | ||
alXNFumtFIoskltgrLNR+YXaYjKp+DZANETk+E8N4pUIC+DNQwAhesK45+8uq9tx | ||
eS9DOzqgXrUNvL4bNmC4keZXggsgQ79kcu6pzXoTBDfgMFivxylAoP7ch1/yPvc3 | ||
CHchzSGGd8j5eRnhpiXVq8iK0hU07WS7vGFPoHzF+wKBgQDvaAKNalVPZJz+Tx5o | ||
T7sraReqIIKSh2wt8O9nL1n35llUMNln8+eGQBbEqkXQAUxdbUnYIcIcpx27xJqi | ||
vwZEFdnE4XHO4t7JSlvN+9YJAe1fAwTfX0X5tZa0katgUCMvV1oieOyGlNaYAeJ8 | ||
PjiREqNgfESqeCYpzf8zJ28ibwKBgQDjR9PQb/S8J3Jsn5PAAocezin2UDrf+Fbw | ||
ihIm3DA+enm8w4KVxMfH5ZU21YE2oU4dLz8UjWVrcQ2ArXG+mC2VPjMIPYTtzsJS | ||
/178q/cIAJNPin9KJ0lPi+eui58Bk1INDbBut5nNn0T0q4mY60FBR0ugqkEP6p/W | ||
kkP+PezvHwKBgQDQSVN/KXYTXtvfvYIdCtEy0XoPP72aMkwCJE6FHYNO1I//WYis | ||
kl1qRbQJYoLel2KTHhRS//vb5eFOjZxj34JaFhCi4+maL3PY+OKqcWIj8BNOyFei | ||
50cAG+aELwBFCTOzanI277II3NFe6rTbl16riOWvei5bibDaSiivnq1n7QKBgQCR | ||
9OOi3PL3DgIendA9o6Hwd4ddJiLZCFuUt6Z2jDrzNKYPQiMPWULPLbHIeA417hsD | ||
BP9mjHNQL1bzhu8f7gx/5mTRauh966TBtjvi2fCXk/8GOrQKA/bBfeA4KHPhiCFO | ||
PrdKMuAzu4+F7M89g/7xE/8OW6fSt+MT4fSGRnBtEwKBgDKEopk9I68JRETazeq9 | ||
w/uhVkRO2UxmpAr26+2Gi/O0G6vBxo1wDUuc2sq4+gJuA8ZLvl4MukatzWC2/GrE | ||
qjOgu3k92oDXC9qx03CjpVsVBl7g3Ht/GImM5PrRqaOT7ksXTzL2clsN/jwE2GNN | ||
YgNbdzk96ahTsKG5wmUpHjjR | ||
-----END PRIVATE KEY----- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
-----BEGIN CERTIFICATE----- | ||
MIIC8TCCAdkCFAiXEKC+siFb0JPetu30g8nhgQR2MA0GCSqGSIb3DQEBCwUAMFcx | ||
CzAJBgNVBAYTAkNIMRMwEQYDVQQIDApTb21lLVN0YXRlMQ8wDQYDVQQHDAZadXJp | ||
Y2gxDzANBgNVBAoMBkdvb2dsZTERMA8GA1UEAwwIZGV2LXRlYW0wHhcNMjQwNDA0 | ||
MjE0MDQzWhcNMjUwNDA0MjE0MDQzWjATMREwDwYDVQQDDAhkZXYtdGVhbTCCASIw | ||
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALKjl2+cnMXEC5RY69cv7+Dg4BK6 | ||
xGAV2dMr7uRbwWKL+E9DJTlS1NEcDwPuDboYc+3ELX9b1xqjKuxCmoR8QdLUcnyG | ||
8Fdy+NXrsv2OHHLA456XY5FY/8E3gBCSwUrZsjKXFopUQ9wHaYTKQebM6yJYNWdt | ||
SXrzMSRgMvfmg56ND5r4T4nM+RqFL4fu2wZ43PctJH4rvRytNfchpdoREo1YtFwS | ||
C+zds9CI1JTEVb8pJqfaNSuLIgjiraaoBB9gmYNFB0TGQg4oj9YC70maQlmisgkC | ||
/TpQ+qcNP0RMQw4XVfS34YyptkaWmxRnYalq4BYuIeeCC1b8ClYfXVofpz8CAwEA | ||
ATANBgkqhkiG9w0BAQsFAAOCAQEAqXvEgDBomTpO9SmdAFqtXddKuD1L4KTo4pXr | ||
R5NyOsFXpRpjH2OVDNkk9a7yMuifztAJpFolyiyyzpyJXItBLfzggCBfmW7dONaR | ||
lx2ZUuF1Etl7VotOU4PKpmOwe3yZf9waddQ8TfI/mVim+ZsIliJxiYh4k76EFyYv | ||
Z+rAzn1RjGZ6OPwOMeeveQbzBx9Pw8z4cBx8facYexcKqFfaJdrmTJRLfsE1KILJ | ||
jku8d0cURtNLbMsM1W5egQfOQJ4RpC53TWwpFEPO5k+0tYUB4+Kd6rw0O2YlDAJB | ||
Aci6DaQSwWSfiynT/Chv7bNy+c1LVruq2mmaAUuCwrzUgmIgNA== | ||
-----END CERTIFICATE----- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
-----BEGIN PRIVATE KEY----- | ||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCyo5dvnJzFxAuU | ||
WOvXL+/g4OASusRgFdnTK+7kW8Fii/hPQyU5UtTRHA8D7g26GHPtxC1/W9caoyrs | ||
QpqEfEHS1HJ8hvBXcvjV67L9jhxywOOel2ORWP/BN4AQksFK2bIylxaKVEPcB2mE | ||
ykHmzOsiWDVnbUl68zEkYDL35oOejQ+a+E+JzPkahS+H7tsGeNz3LSR+K70crTX3 | ||
IaXaERKNWLRcEgvs3bPQiNSUxFW/KSan2jUriyII4q2mqAQfYJmDRQdExkIOKI/W | ||
Au9JmkJZorIJAv06UPqnDT9ETEMOF1X0t+GMqbZGlpsUZ2GpauAWLiHnggtW/ApW | ||
H11aH6c/AgMBAAECggEAKVXCOkC+Y+KHnWVv+ORuOJZAMwVFYEheFUdyqSN0HXXu | ||
2IRcbiW0+cfoz4t7YKa82HUO5Avfu5mq2m1U7LgF0R94eEkO/uUrH/DAg3wpKAJr | ||
COzVzLGPyGkruGoE0OmLmrosLIjwBM8wQto8IogjFljbzplSqeDw645Y7NTJetud | ||
GX5SqKKaLZe/3VLoH9WaHt6gQW3wd7wftCNvBm36ZkrKw5nwkyqTyAXNKfw4zawq | ||
tPZpcLsC7hBDAx6Hij4a2hHzlJ5dBtUxtVtyTDAe1bgLTMbW/2+ylbpfXG6LJbvA | ||
+i7Uap/Zgg91tcwK9mdOolsydkFyKDUysXCSIoqryQKBgQDY3U8dsLgnEmklazQD | ||
yPpan4bHWb18FnMlDLjoxVQz80+NDEDlO3qk6GKEjXK0Y+1IIIhMehizAAk1beHg | ||
+ESzaU60JWbifzX7+EaqA05Fw5998J1nP7gYPZXnuZ3oNEDAI1HlEFScWbRQt4oY | ||
J6s5+3OvQ8LjmNe523GoMEJaFwKBgQDS4Fhn089UrLBWBvkxj49XPor4sBRyLAXl | ||
DZIwPZ3I+vdeL9+qkdUx9audTrInbmlq6/Lia1STdrHDUj9cZLlgaeH4sggk2Xv3 | ||
nkZvVSmSwiST9cmNvG17TQNY8jm+jplRjv1cfeGLgXvzN0gmu1XeV6xp9HNO2KGl | ||
ALJS0XndGQKBgQCKmV6ADjqTlhunM42pwZ/nnT8JV1xX2w06J5hiBAOdtCoqbiNn | ||
ngzzKiYUq0Yc7iRvTYNuxTXV6Pb5s8GCA4n81Bfd4G2R4lWBNRsMe1JiGfVsCwS+ | ||
QSYKMAoHcETwa7zaT3h+mmJJDrfEQpk6eNfhFcjIwdjjlwKAoTRRlo5BfwKBgQDR | ||
6Tp3WBOZcTEy4UwrNoF0UjCaLwSbRhE0Gdc8qAkpqBCXNEaMDxDO44LKWyziLXlI | ||
Usj68+ZDyDJZgMTLnwQc4ilrmySaMdfB/E6WwopYqWMp2c+hhEDjLR047B3o/x/F | ||
XPX9nNzoNqOAzrXGwFJQuqtI6WniwafejRv1bsnE+QKBgA3DM+0bW+6BRRDSyafM | ||
RU4mb3/X6Qb5NmTMRROvTzlVRJ8JIHo0YM8oj4WnXD6vT5czQ0YHFAbj0UFjjsFS | ||
tTd3FnkVdvCxUOucWNcM0TV5LvT2gQsdsizFXoJS520sBCOyKl7wX+gVzIZHHPQM | ||
nfrSDx04W1yKE2+1rRm5WZc1 | ||
-----END PRIVATE KEY----- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
# Copyright 2024 Google LLC | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# https://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
import argparse | ||
import logging | ||
|
||
from game import log | ||
from game import venator_gui | ||
from game import network | ||
import moderngl_window as mglw | ||
|
||
|
||
# A silly monkeypatch to work around mglw not allowing to pass in a parent parser | ||
mglw._orig_create_parser = mglw.create_parser | ||
def _create_parser(): | ||
root = mglw._orig_create_parser() | ||
return log.get_argument_parser(root) | ||
mglw.create_parser = _create_parser | ||
|
||
class Hx8Client(venator_gui.Hackceler8): | ||
def __init__(self, **kwargs): | ||
log.setup_logging(self.argv, file_prefix='client') | ||
net = None | ||
if not self.argv.standalone: | ||
net = network.NetworkConnection.create_client( | ||
self.argv.hostname, | ||
self.argv.port, | ||
self.argv.cert, | ||
ca=self.argv.ca, | ||
) | ||
|
||
if net is None: | ||
logging.fatal( | ||
'Connecting to server failed, pass --standalone if you want to run' | ||
' the game without a server.' | ||
) | ||
raise SystemExit() | ||
|
||
super().__init__(net=net, **kwargs) | ||
|
||
@classmethod | ||
def add_arguments(cls, parser: argparse.ArgumentParser): | ||
parser.add_argument( | ||
'hostname', nargs='?', default='localhost', help='Server address' | ||
) | ||
parser.add_argument( | ||
'port', nargs='?', type=int, default=8888, help='Server port' | ||
) | ||
parser.add_argument( | ||
'cert', | ||
nargs='?', | ||
default='ca/dev-team', | ||
help='Path to client cert (without .key/.crt suffix)', | ||
) | ||
parser.add_argument( | ||
'--ca', default='ca/CA-devel.crt', help='Path to CA .crt file' | ||
) | ||
parser.add_argument( | ||
'--standalone', | ||
action='store_true', | ||
default=False, | ||
help='Run locally (without connecting to a dedicated server)', | ||
) | ||
|
||
|
||
def main(): | ||
logging.getLogger('PIL').setLevel(logging.WARNING) | ||
mglw.run_window_config(Hx8Client) | ||
|
||
|
||
if __name__ == '__main__': | ||
main() |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Oops, something went wrong.