Streak Club is a place for hosting and participating in creative streaks.
See https://github.com/haxpor/vector_c
This is as part of tutorial 28 of lazyfoo
Improved collision detection in 28, learned what we need to study in the future and on the go.
It would take around 3-6 months from start to finish for porting a game to console. For preparation / publishing phase would take around 2-4 weeks.
Dod design would need a later-in-the-process of adding another wrapper of structure data (but it's not clear yet) to make data fitting inside the cacheline which can be 64 or 128 bytes mostly.
C build system especially about static
keyword will hide definitions from other translation unit to see it when compile, per se making it private
in C language. It will be in handy when compile multiple .c source files.
Rough collider introduced before fine-grained checking with colliders.
Stepped into Dod a little bit by introducing another app-level system to do specific stuff like bounding position against window size; through function pointer of struct.
Involve
-O2
, -Os
, -O3
Actually there's no need to modify cpp source file, but we still need to slightly modify header file very little bit.
Combined knowledge of C/C++ linkage to C++ library to produce C linkage so that C source file can call functions properly. Check symbol table dumped via objdump -t ...
.
As well the technique to directly use .dylib
file to solve -l
issue ("lib" prefix) is good.
More topics discovered and researched.
More beat'em up games found, and realize that this is what I want to make although the art part I need to acquire this skill set.
Collision box best practices are good to know.
There are tools out there to make fighting or beat'em up games i.e. MUGEN, and OpenBor.
Bought two games River City Random : Underground which made with monogame and uses tiled for its level design to specify collision box. Time to study more.
Made progress and understand practices and techniques used in making cimgui on top of imgui.
imgui has several native implementations to use i.e. sdl2 with opengl2/3.
Anyway, right now still facing the issue of segmentation fault: 11 via gl3w, and Assertion failed "Invalid DisplaySize value" (via glew).
Add 27
27_collisionDetection/.gitignore
27_collisionDetection/LButton.c
27_collisionDetection/LButton.h
27_collisionDetection/LTexture.c
27_collisionDetection/LTexture.h
27_collisionDetection/LTimer.c
27_collisionDetection/LTimer.h
27_collisionDetection/Makefile
27_collisionDetection/collision.c
27_collisionDetection/common.c
27_collisionDetection/common.h
27_collisionDetection/dot.bmp
--
really did deep to sdl2 internal, and bunch of vim research.
Update template to render FPS at the top right corner
8bitwondor.ttf
template.c
Add 26
26_motion/LButton.c
26_motion/LButton.h
26_motion/LTexture.c
26_motion/LTexture.h
26_motion/LTimer.c
26_motion/LTimer.h
26_motion/Makefile
26_motion/README.md
26_motion/common.c
26_motion/common.h
26_motion/dot.bmp
26_motion/motion.c
--
Add script to quickly kickstart creating a new sample directory
README.md
createsample.sh
Add 25
25_cappingFramerate/.gitignore
25_cappingFramerate/LButton.c
25_cappingFramerate/LButton.h
25_cappingFramerate/LTexture.c
25_cappingFramerate/LTexture.h
25_cappingFramerate/LTimer.c
25_cappingFramerate/LTimer.h
25_cappingFramerate/Makefile
25_cappingFramerate/README.md
25_cappingFramerate/cframerate.c
25_cappingFramerate/common.c
25_cappingFramerate/common.h
25_cappingFramerate/lazy.ttf
25_cappingFramerate/template.c
Add 24
24_framerate/.gitignore
24_framerate/LButton.c
24_framerate/LButton.h
24_framerate/LTexture.c
24_framerate/LTexture.h
24_framerate/LTimer.c
24_framerate/LTimer.h
24_framerate/Makefile
24_framerate/README.md
24_framerate/common.c
24_framerate/common.h
24_framerate/framerate.c
24_framerate/lazy.ttf
Add 23
23_advancedTiming/.gitignore
23_advancedTiming/LButton.c
23_advancedTiming/LButton.h
23_advancedTiming/LTexture.c
23_advancedTiming/LTexture.h
23_advancedTiming/LTimer.c
23_advancedTiming/LTimer.h
23_advancedTiming/Makefile
23_advancedTiming/adv_timing.c
23_advancedTiming/common.c
23_advancedTiming/common.h
23_advancedTiming/lazy.ttf
Add 22
22_timing/.gitignore
22_timing/LButton.c
22_timing/LButton.h
22_timing/LTexture.c
22_timing/LTexture.h
22_timing/Makefile
22_timing/README.md
22_timing/common.c
22_timing/common.h
22_timing/lazy.ttf
22_timing/timing.c
Add 21. Removed unneeded README.md file from 18 and 20.
This sample also demonstrates how to do mroe complicated cross-compile
for libraries that also have dependencies namely SDL_image and
SDL_mixer.
18_keyStates/README.md
20_forcefeedback/README.md
21_sfxMusic/.gitignore
21_sfxMusic/LButton.c
21_sfxMusic/LButton.h
21_sfxMusic/LTexture.c
21_sfxMusic/LTexture.h
21_sfxMusic/Makefile
21_sfxMusic/README.md
21_sfxMusic/beat.wav
21_sfxMusic/bensound-ukulele.mp3
21_sfxMusic/bensound-ukulele.ogg
21_sfxMusic/common.c
21_sfxMusic/common.h
21_sfxMusic/high.wav
21_sfxMusic/libmpg123.dylib
21_sfxMusic/libvorbisfile.dylib
21_sfxMusic/low.wav
21_sfxMusic/medium.wav
21_sfxMusic/prompt.png
21_sfxMusic/scratch.wav
21_sfxMusic/sfxmusic.c
21_sfxMusic/sfxmusic.exe
--
Successfully tested cross-compile result on Windows 32 bit on top of VirtualBox, and on dev machine macOS. Works fine. But hardware acceleration support on virtualbox makes it slower to run.
This whole process uses mingw64 to build both 32 and 64 bit app.
Along the way, updated virtualbox (windows xp) to support 3d acceleration thus it will be able to run opengl app.
I asked my friend if he's willing to help me test on real windows machine to confirm.
PS. build against SDL 2.0.9
This submission is continued and same same to #24.
I now made progress on building on platforms I will be targeting, sorted accordingly to priority
PC
Android
iOS
The last one is the most difficult among others, I will write blog post about this on blog.wasin.io as well. Now, it's ok!
The screenshots are from rectangles.c sample.
First one from ios device, another from PC (for testing).
Add 20
With improved over setting NULL to freed variables in close() from 19.
20_forcefeedback/.gitignore
20_forcefeedback/LButton.c
20_forcefeedback/LButton.h
20_forcefeedback/LTexture.c
20_forcefeedback/LTexture.h
20_forcefeedback/Makefile
20_forcefeedback/README.md
20_forcefeedback/common.c
20_forcefeedback/common.h
20_forcefeedback/haptic.c
20_forcefeedback/splash.png
--
have to go back to use xcode 9.4 to build sdl2 on mojave to get rid of initial black screen on mojave.
Finish 19 with improved and spread into 2 sub-sample
2 sub-sample taking into account both joystick and game controller
sub-system. Each of both has subtle APIs to deal with in code.
19_gamepadsAndJoysticks/.gitignore
19_gamepadsAndJoysticks/LButton.c
19_gamepadsAndJoysticks/LButton.h
19_gamepadsAndJoysticks/LTexture.c
19_gamepadsAndJoysticks/LTexture.h
19_gamepadsAndJoysticks/Makefile
19_gamepadsAndJoysticks/README.md
19_gamepadsAndJoysticks/arrow.png
19_gamepadsAndJoysticks/common.c
19_gamepadsAndJoysticks/common.h
19_gamepadsAndJoysticks/controllers.c
19_gamepadsAndJoysticks/joysticks.c
daily from
Post a comment