mdsteele / azimuth Goto Github PK
View Code? Open in Web Editor NEWA metroidvania with vector graphics
Home Page: https://mdsteele.games/azimuth/
License: GNU General Public License v3.0
A metroidvania with vector graphics
Home Page: https://mdsteele.games/azimuth/
License: GNU General Public License v3.0
clang version 3.6.2 (tags/RELEASE_362/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
Compiling out/debug/obj/azimuth/state/upgrade.o
src/azimuth/state/upgrade.c:207:9: error: unused typedef 'az_static_assertion_207'
[-Werror,-Wunused-local-typedef]
{ AZ_STATIC_ASSERT(AZ_ROCKETS_PER_HYPER_ROCKET == 3); }
^
src/azimuth/util/misc.h:71:15: note: expanded from macro 'AZ_STATIC_ASSERT'
typedef int AZ_JOIN(az_static_assertion_, __LINE__)[(condition) ? 1 : -1]
^
src/azimuth/util/misc.h:76:23: note: expanded from macro 'AZ_JOIN'
#define AZ_JOIN(a, b) AZ_JOIN2_(a, b)
^
src/azimuth/util/misc.h:77:25: note: expanded from macro 'AZ_JOIN2_'
#define AZ_JOIN2_(a, b) a##b
^
<scratch space>:13:1: note: expanded from here
az_static_assertion_207
^
src/azimuth/state/upgrade.c:211:9: error: unused typedef 'az_static_assertion_211'
[-Werror,-Wunused-local-typedef]
{ AZ_STATIC_ASSERT(AZ_BOMBS_PER_MEGA_BOMB == 3); }
^
src/azimuth/util/misc.h:71:15: note: expanded from macro 'AZ_STATIC_ASSERT'
typedef int AZ_JOIN(az_static_assertion_, __LINE__)[(condition) ? 1 : -1]
^
src/azimuth/util/misc.h:76:23: note: expanded from macro 'AZ_JOIN'
#define AZ_JOIN(a, b) AZ_JOIN2_(a, b)
^
src/azimuth/util/misc.h:77:25: note: expanded from macro 'AZ_JOIN2_'
#define AZ_JOIN2_(a, b) a##b
^
<scratch space>:15:1: note: expanded from here
az_static_assertion_211
^
src/azimuth/state/upgrade.c:215:9: error: unused typedef 'az_static_assertion_215'
[-Werror,-Wunused-local-typedef]
{ AZ_STATIC_ASSERT(AZ_HIGH_EXPLOSIVES_POWER_MULTIPLIER == 1.5); }
^
src/azimuth/util/misc.h:71:15: note: expanded from macro 'AZ_STATIC_ASSERT'
typedef int AZ_JOIN(az_static_assertion_, __LINE__)[(condition) ? 1 : -1]
^
src/azimuth/util/misc.h:76:23: note: expanded from macro 'AZ_JOIN'
#define AZ_JOIN(a, b) AZ_JOIN2_(a, b)
^
src/azimuth/util/misc.h:77:25: note: expanded from macro 'AZ_JOIN2_'
#define AZ_JOIN2_(a, b) a##b
^
<scratch space>:17:1: note: expanded from here
az_static_assertion_215
^
src/azimuth/state/upgrade.c:218:9: error: unused typedef 'az_static_assertion_218'
[-Werror,-Wunused-local-typedef]
{ AZ_STATIC_ASSERT(AZ_ATTUNED_EXPLOSIVES_RADIUS_FACTOR == 1.5); }
^
src/azimuth/util/misc.h:71:15: note: expanded from macro 'AZ_STATIC_ASSERT'
typedef int AZ_JOIN(az_static_assertion_, __LINE__)[(condition) ? 1 : -1]
^
src/azimuth/util/misc.h:76:23: note: expanded from macro 'AZ_JOIN'
#define AZ_JOIN(a, b) AZ_JOIN2_(a, b)
^
src/azimuth/util/misc.h:77:25: note: expanded from macro 'AZ_JOIN2_'
#define AZ_JOIN2_(a, b) a##b
^
<scratch space>:19:1: note: expanded from here
az_static_assertion_218
^
src/azimuth/state/upgrade.c:219:9: error: unused typedef 'az_static_assertion_219'
[-Werror,-Wunused-local-typedef]
{ AZ_STATIC_ASSERT(AZ_ATTUNED_EXPLOSIVES_DAMAGE_FACTOR == 0.25); }
^
src/azimuth/util/misc.h:71:15: note: expanded from macro 'AZ_STATIC_ASSERT'
typedef int AZ_JOIN(az_static_assertion_, __LINE__)[(condition) ? 1 : -1]
^
src/azimuth/util/misc.h:76:23: note: expanded from macro 'AZ_JOIN'
#define AZ_JOIN(a, b) AZ_JOIN2_(a, b)
^
src/azimuth/util/misc.h:77:25: note: expanded from macro 'AZ_JOIN2_'
#define AZ_JOIN2_(a, b) a##b
^
<scratch space>:21:1: note: expanded from here
az_static_assertion_219
^
src/azimuth/state/upgrade.c:228:9: error: unused typedef 'az_static_assertion_228'
[-Werror,-Wunused-local-typedef]
{ AZ_STATIC_ASSERT(AZ_BOMBS_PER_ORION_BOOST == 2); }
^
src/azimuth/util/misc.h:71:15: note: expanded from macro 'AZ_STATIC_ASSERT'
typedef int AZ_JOIN(az_static_assertion_, __LINE__)[(condition) ? 1 : -1]
^
src/azimuth/util/misc.h:76:23: note: expanded from macro 'AZ_JOIN'
#define AZ_JOIN(a, b) AZ_JOIN2_(a, b)
^
src/azimuth/util/misc.h:77:25: note: expanded from macro 'AZ_JOIN2_'
#define AZ_JOIN2_(a, b) a##b
^
<scratch space>:23:1: note: expanded from here
az_static_assertion_228
^
src/azimuth/state/upgrade.c:232:9: error: unused typedef 'az_static_assertion_232'
[-Werror,-Wunused-local-typedef]
{ AZ_STATIC_ASSERT(AZ_ARMOR_DAMAGE_FACTOR == 0.8); }
^
src/azimuth/util/misc.h:71:15: note: expanded from macro 'AZ_STATIC_ASSERT'
typedef int AZ_JOIN(az_static_assertion_, __LINE__)[(condition) ? 1 : -1]
^
src/azimuth/util/misc.h:76:23: note: expanded from macro 'AZ_JOIN'
#define AZ_JOIN(a, b) AZ_JOIN2_(a, b)
^
src/azimuth/util/misc.h:77:25: note: expanded from macro 'AZ_JOIN2_'
#define AZ_JOIN2_(a, b) a##b
^
<scratch space>:25:1: note: expanded from here
az_static_assertion_232
^
src/azimuth/state/upgrade.c:233:9: error: unused typedef 'az_static_assertion_233'
[-Werror,-Wunused-local-typedef]
{ AZ_STATIC_ASSERT(AZ_HARDENED_ARMOR_WALL_DAMAGE_FACTOR == 0.5); }
^
src/azimuth/util/misc.h:71:15: note: expanded from macro 'AZ_STATIC_ASSERT'
typedef int AZ_JOIN(az_static_assertion_, __LINE__)[(condition) ? 1 : -1]
^
src/azimuth/util/misc.h:76:23: note: expanded from macro 'AZ_JOIN'
#define AZ_JOIN(a, b) AZ_JOIN2_(a, b)
^
src/azimuth/util/misc.h:77:25: note: expanded from macro 'AZ_JOIN2_'
#define AZ_JOIN2_(a, b) a##b
^
<scratch space>:27:1: note: expanded from here
az_static_assertion_233
^
src/azimuth/state/upgrade.c:292:9: error: unused typedef 'az_static_assertion_292'
[-Werror,-Wunused-local-typedef]
{ AZ_STATIC_ASSERT(AZ_ROCKETS_PER_AMMO_UPGRADE == 5); }
^
src/azimuth/util/misc.h:71:15: note: expanded from macro 'AZ_STATIC_ASSERT'
typedef int AZ_JOIN(az_static_assertion_, __LINE__)[(condition) ? 1 : -1]
^
src/azimuth/util/misc.h:76:23: note: expanded from macro 'AZ_JOIN'
#define AZ_JOIN(a, b) AZ_JOIN2_(a, b)
^
src/azimuth/util/misc.h:77:25: note: expanded from macro 'AZ_JOIN2_'
#define AZ_JOIN2_(a, b) a##b
^
<scratch space>:29:1: note: expanded from here
az_static_assertion_292
^
src/azimuth/state/upgrade.c:326:9: error: unused typedef 'az_static_assertion_326'
[-Werror,-Wunused-local-typedef]
{ AZ_STATIC_ASSERT(AZ_BOMBS_PER_AMMO_UPGRADE == 3); }
^
src/azimuth/util/misc.h:71:15: note: expanded from macro 'AZ_STATIC_ASSERT'
typedef int AZ_JOIN(az_static_assertion_, __LINE__)[(condition) ? 1 : -1]
^
src/azimuth/util/misc.h:76:23: note: expanded from macro 'AZ_JOIN'
#define AZ_JOIN(a, b) AZ_JOIN2_(a, b)
^
src/azimuth/util/misc.h:77:25: note: expanded from macro 'AZ_JOIN2_'
#define AZ_JOIN2_(a, b) a##b
^
<scratch space>:31:1: note: expanded from here
az_static_assertion_326
^
src/azimuth/state/upgrade.c:352:9: error: unused typedef 'az_static_assertion_352'
[-Werror,-Wunused-local-typedef]
{ AZ_STATIC_ASSERT(AZ_ENERGY_PER_CAPACITOR == 25); }
^
src/azimuth/util/misc.h:71:15: note: expanded from macro 'AZ_STATIC_ASSERT'
typedef int AZ_JOIN(az_static_assertion_, __LINE__)[(condition) ? 1 : -1]
^
src/azimuth/util/misc.h:76:23: note: expanded from macro 'AZ_JOIN'
#define AZ_JOIN(a, b) AZ_JOIN2_(a, b)
^
src/azimuth/util/misc.h:77:25: note: expanded from macro 'AZ_JOIN2_'
#define AZ_JOIN2_(a, b) a##b
^
<scratch space>:33:1: note: expanded from here
az_static_assertion_352
^
src/azimuth/state/upgrade.c:366:9: error: unused typedef 'az_static_assertion_366'
[-Werror,-Wunused-local-typedef]
{ AZ_STATIC_ASSERT(AZ_SHIELDS_PER_BATTERY == 25); }
^
src/azimuth/util/misc.h:71:15: note: expanded from macro 'AZ_STATIC_ASSERT'
typedef int AZ_JOIN(az_static_assertion_, __LINE__)[(condition) ? 1 : -1]
^
src/azimuth/util/misc.h:76:23: note: expanded from macro 'AZ_JOIN'
#define AZ_JOIN(a, b) AZ_JOIN2_(a, b)
^
src/azimuth/util/misc.h:77:25: note: expanded from macro 'AZ_JOIN2_'
#define AZ_JOIN2_(a, b) a##b
^
<scratch space>:35:1: note: expanded from here
az_static_assertion_366
I fixed it with:
+++ b/Makefile
@@ -33,7 +33,7 @@ ALL_TARGETS = $(BINDIR)/azimuth $(BINDIR)/editor $(BINDIR)/unit_tests \
CFLAGS = -I$(SRCDIR) -Wall -Werror -Wempty-body -Winline \
-Wmissing-field-initializers -Wold-style-definition -Wshadow \
- -Wsign-compare -Wstrict-prototypes -Wundef
+ -Wsign-compare -Wstrict-prototypes -Wundef -Wno-unused-local-typedef
ifeq "$(BUILDTYPE)" "debug"
CFLAGS += -O1 -g
Hello. I recently packaged your game for the nix package manager (NixOS/nixpkgs#59071), and I think it'll be interesing to add an install target. The one I made is :
mkdir -p $out/bin
cp out/release/host/bin/azimuth $out/bin/azimuth
cp out/release/host/bin/editor $out/bin/azimuth-editor
cp out/release/host/bin/muse $out/bin/azimuth-muse
cp out/release/host/bin/zfxr $out/bin/azimuth-zfxr
mkdir -p $out/share/doc/azimuth
cp doc/* README.md LICENSE $out/share/doc/azimuth
mkdir -p $out/share/icons/hicolor/128x128/apps $out/share/icons/hicolor/64x64/apps $out/share/icons/hicolor/48x48/apps $out/share/icons/hicolor/32x32/apps
cp data/icons/icon_128x128.png $out/share/icons/hicolor/128x128/apps/azimuth.png
cp data/icons/icon_64x64.png $out/share/icons/hicolor/64x64/apps/azimuth.png
cp data/icons/icon_48x48.png $out/share/icons/hicolor/48x48/apps/azimuth.png
cp data/icons/icon_32x32.png $out/share/icons/hicolor/32x32/apps/azimuth.png
mkdir -p $out/share/applications
cp data/azimuth.desktop $out/share/applications
and
substituteInPlace data/azimuth.desktop \
--replace Exec=azimuth "Exec=$out/bin/azimuth" \
--replace "Version=%AZ_VERSION_NUMBER" "Version=${version}"
Trying to build the current master
(89f9b48) on Debian Buster, amd64.
GCC version info:
$ gcc --version
gcc (Debian 8.2.0-16) 8.2.0
Error:
src/editor/audit.c: In function ‘az_audit_scenario’:
src/editor/audit.c:150:10: error: ‘console_kind’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
if (console_kind == AZ_CONS_SAVE) {
^
Setting console_kind
to AZ_NODE_NOTHING
on audit.c:146
fixes it for me.
Currently it is harder for Linux users than for Windows or Mac users to download and run the game.
Please provide an AppImage for Linux along the lines of mdsteele/syzygy#6. Thanks!
Apologies for putting this in the Issues log. Not sure how else to get in touch with you.
Matt from metroidvanias.com here. I have no idea how to build your game, but have been dropping by every few months in hopes of there being a playable build of azimuth.
Would you mind getting in touch with me if you're still working on this? Would love to see screens/video if you have them.
The hints system has been invaluable so far but I'm in the part where I have all weapons but one (I can see where it is) and all other power-ups but one, in the red part of the map. No idea how to break through the white girders. I'm hoping to get to finish the game before reviewing it for a site I write reviews for.
Hmm that isn't a real issue, but I don't found any music file under a format I know : only musicXX.txt files in ./data/music, where I read a title, tempo, and raw notes (abcdefg).
Where can I find them ? (I've seen "WAVE file generation" in ./src/muse, so I think I could have find them...)
I actually really enjoyed them (the game, too =), and I wanted to share them to my friend (in accordance with license terms of course).
Another question : the license talks about the program and code, but what about the music ? I actually already covered three of them (attached in pdf), that I didn't published yet (sheet music may don't look very finished, but I mostly didn't want to make mistake with license).
Am I allowed to publish them, for example making records on YouTube or post the sheet music on Musescore ?
I truly congratulate you for this game, that I enjoyed. I know C, I think making a game like that will take me years !
Rayerdyne.
Azimuth-Barrag.pdf
Azimuth-Sarvari.pdf
Azimuth-Title_screen.pdf
Azimuth has 100% CPU usage on my machine. (Annoying because my PC has always had a problem where it gets super noisy and then dies under prolonged excessive load (underpowered PSU maybe, I don't know). Azimuth manages to kill it in about 10 minutes :) ). The problem goes away if I comment out the glFinish call.
I don't believe glFlush and glFinish are needed in modern times, when you have vsync and SDL_GL_SwapBuffers. I think glFinish blocks until all draw commands are completed, which is not something you need, and it seems to do this in a very wasteful way.
Couple random links:
My machine: Ubuntu 18 and GeForce GTX 750 Ti. No idea if my drivers are up to date.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.