GithubHelp home page GithubHelp logo

tower_defense's Introduction

Flecs Tower Defense

Tower defense example written in Flecs (live webasm demo)

Screenshot 2023-09-27 at 1 31 51 AM

How to run

Use the following commands to run the demo:

Install bake on macOS/Linux:

git clone https://github.com/SanderMertens/bake
bake/setup.sh

Install bake on Windows (don't use powershell)

git clone https://github.com/SanderMertens/bake
cd bake
setup.bat

or if you already have a bake installation:

bake upgrade

Then run:

bake run SanderMertens/tower_defense

Have fun!

tower_defense's People

Contributors

999pinggg avatar sandermertens avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar

tower_defense's Issues

windows build fail

E:\tower\bake>bake run SanderMertens/tower_defense
[ clone] 'https://github.com/SanderMertens/tower_defense' into 'C:\Users\Administrator\bake\src\tower_defense'
[ clone] 'https://github.com/flecs-hub/flecs-hub' into 'C:\Users\Administrator\bake\src\flecs-hub'
[ build] application tower_defense => '.'
[ 7%] main.cpp
main.cpp
C:\Users\Administrator\bake\include\tower_defense/bake_config.h(21): fatal error C1083: 无法打开包括文件: “../../deps/flecs.h”: No such file or directory
[ error] command returned 2
cl.exe /nologo /EHsc /Od -D__BAKE__ -D__BAKE__ /D_WINDOWS /D_USRDLL /DCGLM_EXPORTS /DCGLM_DLL /DBAKE_PROJECT_ID="tower_defense" /Dtower_defense_EXPORTS /I C:\Users\Administrator\bake\include /I .\include /c .\src\main.cpp /Fo.bake_cache\x64-Windows-debug\obj\main.obj /Zi
[ from] command for task 'main.cpp' failed
[ from] dependency 'objects' failed
[ from] failed to build rule 'ARTEFACT'
[ error] build interrupted for tower_defense in .
[ error] project tower_defense built with errors
[ error] failed to build '.'
[ error] build failed, cannot run

Flecs asserts with missing symbol

I'm running Ubuntu 20.04, and I followed the bake instructions in the tower defense readme. Here's my output showing the assertion failure:

[ clone] 'https://github.com/SanderMertens/tower_defense' into '/home/adwyer/bake/src/tower_defense'
[ clone] 'https://github.com/flecs-hub/flecs-hub' into '/home/adwyer/bake/src/flecs-hub'
[ build] application tower_defense => '.'
[ 7%] main.cpp
./src/main.cpp: In function ‘void AimTarget(flecs::iter&, size_t, Turret&, Target&, Position&)’:
./src/main.cpp:499:38: warning: ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context]
499 | target.lock = (r.y == angle) * (distance < TurretRange);
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
[ 14%] flecs_systems_sokol.c
[ 21%] flecs_game.c
[ 28%] flecs_components_geometry.c
[ 35%] flecs_components_cglm.c
[ 42%] flecs_components_transform.c
[ 50%] cglm.c
[ 57%] flecs_components_gui.c
[ 64%] flecs_systems_physics.c
[ 71%] flecs_components_physics.c
[ 78%] flecs_systems_transform.c
[ 85%] flecs.c
[ 92%] flecs_components_input.c
[ 100%] flecs_components_graphics.c
[ run] application tower_defense [44238] 'bin/x64-Linux-debug/tower_defense'
fatal: flecs.c: 17610: assert: !existing || (sym != NULL) Head (MISSING_SYMBOL)
bin/x64-Linux-debug/tower_defense(+0x150989) [0x55c4c3a60989]
bin/x64-Linux-debug/tower_defense(+0x151058) [0x55c4c3a61058]
bin/x64-Linux-debug/tower_defense(+0x159b26) [0x55c4c3a69b26]
bin/x64-Linux-debug/tower_defense(+0x3838f) [0x55c4c394838f]
bin/x64-Linux-debug/tower_defense(+0x21929) [0x55c4c3931929]
bin/x64-Linux-debug/tower_defense(+0xf1d9) [0x55c4c391f1d9]
bin/x64-Linux-debug/tower_defense(+0x101d4) [0x55c4c39201d4]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7face1096083]
bin/x64-Linux-debug/tower_defense(+0x9f3e) [0x55c4c3919f3e]
[ error] process 44238 exited with signal 6
[ from] process crashed (6)

build error

I ran the command as specified in the README.md and I got a build error as follows.

[  clone] 'https://github.com/SanderMertens/tower_defense' into 'C:\Users\Immuno\bake\src\tower_defense'
[  clone] 'https://github.com/flecs-hub/flecs-hub' into 'C:\Users\Immuno\bake\src\flecs-hub'
[  build] application tower_defense => '.'
[     7%] main.cpp
main.cpp
C:\Users\Immuno\bake\include\tower_defense/bake_config.h(21): fatal error C1083: Cannot open include file: '../../deps/flecs.h': No such file or directory
[  error] command returned 2
   cl.exe /nologo /EHsc /Od -D__BAKE__ -D__BAKE__ /D_WINDOWS /D_USRDLL /DCGLM_EXPORTS /DCGLM_DLL /DBAKE_PROJECT_ID=\"tower_defense\" /Dtower_defense_EXPORTS /I C:\Users\Immuno\bake\include /I .\include /c .\src\main.cpp /Fo.bake_cache\x64-Windows-debug\obj\main.obj /Zi
[   from] command for task 'main.cpp' failed
[   from] dependency 'objects' failed
[   from] failed to build rule 'ARTEFACT'
[  error] build interrupted for tower_defense in .
[  error] project tower_defense built with errors
[  error] failed to build '.'
[  error] build failed, cannot run

But, flecs.h exists in the proper location.
How can I handle this error?

Build failure

TowerDefenseGame> bake run SanderMertens/tower_defense
INFO: Could not find files for the given pattern(s).
**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.5.5
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
[  clone] 'https://github.com/SanderMertens/tower_defense' into 'C:\Users\sudo\bake\src\tower_defense'
[  clone] 'https://github.com/flecs-hub/flecs-hub' into 'C:\Users\sudo\bake\src\flecs-hub'
[  build] application tower_defense => '.'
[     7%] main.cpp
main.cpp
[    14%] cglm.c
cglm.c
[    21%] flecs.c
flecs.c
[    28%] flecs_components_cglm.c
flecs_components_cglm.c
[    35%] flecs_components_geometry.c
flecs_components_geometry.c
[    42%] flecs_components_graphics.c
flecs_components_graphics.c
[    50%] flecs_components_gui.c
flecs_components_gui.c
[    57%] flecs_components_input.c
flecs_components_input.c
[    64%] flecs_components_physics.c
flecs_components_physics.c
[    71%] flecs_components_transform.c
flecs_components_transform.c
[    78%] flecs_game.c
flecs_game.c
[    85%] flecs_systems_physics.c
flecs_systems_physics.c
[    92%] flecs_systems_sokol.c
flecs_systems_sokol.c
.\deps\flecs_systems_sokol.c(5658): error C2059: syntax error: '('
.\deps\flecs_systems_sokol.c(5658): error C2146: syntax error: missing ')' before identifier 'GLenum'
.\deps\flecs_systems_sokol.c(5658): error C2122: 'void': prototype parameter in name list illegal
.\deps\flecs_systems_sokol.c(5658): error C2059: syntax error: ')'
.\deps\flecs_systems_sokol.c(5662): error C2085: 'target': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2143: syntax error: missing ';' before 'type'
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glBindVertexArray': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glFramebufferTextureLayer': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glGenFramebuffers': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glBindFramebuffer': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glBindRenderbuffer': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glGetStringi': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glClearBufferfi': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glClearBufferfv': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glClearBufferuiv': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glClearBufferiv': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glDeleteRenderbuffers': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glUniform1fv': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glUniform2fv': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glUniform3fv': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glUniform4fv': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glUniform1iv': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glUniform2iv': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glUniform3iv': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glUniform4iv': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glUniformMatrix4fv': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glUseProgram': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glShaderSource': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glLinkProgram': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glGetUniformLocation': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glGetShaderiv': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glGetProgramInfoLog': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glGetAttribLocation': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glDisableVertexAttribArray': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glDeleteShader': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glDeleteProgram': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glCompileShader': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glStencilFuncSeparate': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glStencilOpSeparate': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glRenderbufferStorageMultisample': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glDrawBuffers': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glVertexAttribDivisor': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glBufferSubData': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glGenBuffers': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glCheckFramebufferStatus': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glFramebufferRenderbuffer': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glCompressedTexImage2D': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glCompressedTexImage3D': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glActiveTexture': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glTexSubImage3D': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glRenderbufferStorage': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glGenTextures': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glPolygonOffset': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glDrawElements': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glDeleteFramebuffers': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glBlendEquationSeparate': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glDeleteTextures': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glGetProgramiv': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glBindTexture': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glTexImage3D': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glCreateShader': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glTexSubImage2D': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glClearDepth': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glFramebufferTexture2D': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glCreateProgram': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glViewport': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glDeleteBuffers': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glDrawArrays': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glDrawElementsInstanced': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glVertexAttribPointer': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glUniform1i': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glDisable': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glColorMask': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glColorMaski': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glBindBuffer': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glDeleteVertexArrays': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glDepthMask': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glDrawArraysInstanced': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glClearStencil': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glScissor': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glGenRenderbuffers': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glBufferData': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glBlendFuncSeparate': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glTexParameteri': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glGetIntegerv': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glEnable': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glBlitFramebuffer': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glStencilMask': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glAttachShader': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glGetError': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glClearColor': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glBlendColor': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glTexParameterf': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glTexParameterfv': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glGetShaderInfoLog': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glDepthFunc': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glStencilOp': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glStencilFunc': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glEnableVertexAttribArray': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): error C2085: 'PFN_glBlendFunc': not in formal parameter list
.\deps\flecs_systems_sokol.c(5662): fatal error C1003: error count exceeds 100; stopping compilation
[  error] command returned 2
   cl.exe /nologo /EHsc /Od -D__BAKE__ -D__BAKE__ /D_WINDOWS /D_USRDLL /DCGLM_EXPORTS /DCGLM_DLL /DBAKE_PROJECT_ID=\"tower_defense\" /Dtower_defense_EXPORTS /I C:\Users\sudo\bake\include /I .\include /c .\deps\flecs_systems_sokol.c /Fo.bake_cache\x64-Windows-debug\obj\flecs_systems_sokol.obj /Zi
[   from] command for task 'flecs_systems_sokol.c' failed
[   from] dependency 'objects' failed
[   from] failed to build rule 'ARTEFACT'
[  error] build interrupted for tower_defense in .
[  error] project tower_defense built with errors
[  error] failed to build '.'
[  error] build failed, cannot run

I've tried looking through the flecs docs for any install steps I may have missed for OpenGL, as these errors seem to be related, but I can't seem to find any issues or references to the problems I'm having.

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.