Recent posts

#1
I have added tree leafes reacting to player collision, I rotated them based on the proximity to the players / enemies, multiplied with the angle to the player, looks really nice.

I have completly rewritten the collision engine, now it is even smoother than before for diagonals, even with high frameskip values.

Now it is time to implement the player editor ( for assigning animation frames to different actions ) and a player action editor ( basically making combat moves editable ). Then I will add some fire calculations / effects, because I need burning lawn / trees for the story ). After this I can finally implement the new story / gameplay ( I made some maps for this allready ).

#2
Nevermind, I found a good tutorial on hawk threads, I will give it a try sometime
#3
That was just a short side project, all calculations done on single thread and still almost 60fps (of course map is small) but it's unachievable for let's say many popular game making solutions :) Generally standard  A* is good for turn based games, RPG, or when you have few units, as when you introduce proper collisions/tile occupy state there are a lot of problems that you need to take care on. And popular solution is to use regions/portals/waypoints pathfinding globally and fast A* locally when traveling between portals, or when previously calculated path is blocked - so the unit need to find some other way or wait path to clear and so on. And it would be best to do this on separate thread so this also have some requirements - local map data for pathfinding thread... And all that is a 'little' more work that such small project. Hopefully I will revisit pathfinding in this year to tune JPS/regions for proper game.
#4
I know what you mean, and on one hand it's good idea as you can focus on coding and other stuff but on other you still need to prepare those sprites to be usable with your code, and later you need to reedit all objects that use such graphic again. But it all depends from the developer and their approach for handling assets.


lately there is so much audio packs avaialble..

Music Producer Pro Pack: Synths & Sounds on Humble Bundle.
Tiers:
3 items -> €1.00
4 items -> €9.29
12 items -> €18.59
End date: 10.07.2024

Something rather for music producers and people that like to play with music creation software





and it looks that I missed one bunle: Epic Royalty-Free Music Collection vol. 2  :(
but there is something even better, 3rd pack from Ovani:


Audio Arcade: The Definitive Collection Of Music And Sound Fx From Ovani Sound on Humble Bundle.
Tiers:
6 items -> €1.00
20 items -> €17.09
40 items -> €18.71
End date: 15.07.2024

PR info:
Give your project that last bit of audio polish it needs to truly shine with this bundle from Ovani Sound. You'll get a vast collection of royalty-free music and sound FX ready to plug into your project, as well as powerful time-saving audio plugins usable on all major game engines. From masterfully crafted gunshots and explosions and music packs that span moods and genres, to music and ambiance plugins for Godot, Unity, and Unreal Engine, your audio needs will be well and fully sorted. Plus, your purchase helps the Children's Miracle Network.


#5
Is there some example how to use the threads?
I was last using threads with posix threads back in 2017.
What I want to achieve is loading data in a seperate thread and continue refreshing the screen in the main thread. Of course I wont access the ressources that are loaded from the main thread while it is loading.
So basically I saw how to create a thread, but how to delegate work to the thread, send an interupt from the side thread to the main thread etc.?
#6
GLBasic - de / Re: IDE, gibts da noch mehr?
Last post by nabz32 - 2024-Jun-24
Ja, vielen Dank, es gibt sogar Bookmarks? Sehr nützlich. :good:
#7
Bug Reports / Re: Jpg doesn't work
Last post by Kitty Hello - 2024-Jun-24
did you push the GETNUMJOYSTICKS fix to the git repository?
#8
Hier ist die accelerator-table. Hilft das?

IDR_MAINFRAME ACCELERATORS
BEGIN
    "0",            ID_EDIT_TOGGLE_BOOKMARK0, VIRTKEY, CONTROL, NOINVERT
    "0",            ID_EDIT_GO_BOOKMARK0,  VIRTKEY, ALT, NOINVERT
    "1",            ID_EDIT_TOGGLE_BOOKMARK1, VIRTKEY, CONTROL, NOINVERT
    "1",            ID_EDIT_GO_BOOKMARK1,  VIRTKEY, ALT, NOINVERT
    "2",            ID_EDIT_TOGGLE_BOOKMARK2, VIRTKEY, CONTROL, NOINVERT
    "2",            ID_EDIT_GO_BOOKMARK2,  VIRTKEY, ALT, NOINVERT
    "3",            ID_EDIT_TOGGLE_BOOKMARK3, VIRTKEY, CONTROL, NOINVERT
    "3",            ID_EDIT_GO_BOOKMARK3,  VIRTKEY, ALT, NOINVERT
    "4",            ID_EDIT_TOGGLE_BOOKMARK4, VIRTKEY, CONTROL, NOINVERT
    "4",            ID_EDIT_GO_BOOKMARK4,  VIRTKEY, ALT, NOINVERT
    "5",            ID_EDIT_TOGGLE_BOOKMARK5, VIRTKEY, CONTROL, NOINVERT
    "5",            ID_EDIT_GO_BOOKMARK5,  VIRTKEY, ALT, NOINVERT
    "6",            ID_EDIT_TOGGLE_BOOKMARK6, VIRTKEY, CONTROL, NOINVERT
    "6",            ID_EDIT_GO_BOOKMARK6,  VIRTKEY, ALT, NOINVERT
    "7",            ID_EDIT_TOGGLE_BOOKMARK7, VIRTKEY, CONTROL, NOINVERT
    "7",            ID_EDIT_GO_BOOKMARK7,  VIRTKEY, ALT, NOINVERT
    "8",            ID_EDIT_TOGGLE_BOOKMARK8, VIRTKEY, CONTROL, NOINVERT
    "8",            ID_EDIT_GO_BOOKMARK8,  VIRTKEY, ALT, NOINVERT
    "9",            ID_EDIT_TOGGLE_BOOKMARK9, VIRTKEY, CONTROL, NOINVERT
    "9",            ID_EDIT_GO_BOOKMARK9,  VIRTKEY, ALT, NOINVERT
    "A",            ID_EDIT_SELECT_ALL,    VIRTKEY, CONTROL, NOINVERT
    "C",            ID_EDIT_COPY,          VIRTKEY, CONTROL, NOINVERT
    "E",            ID_EDIT_FIND_MATCHING_BRACE, VIRTKEY, CONTROL, NOINVERT
    "F",            ID_EDIT_FIND,          VIRTKEY, CONTROL, NOINVERT
    "F",            ID_INSERT_FUNCTION,    VIRTKEY, CONTROL, ALT, NOINVERT
    "F",            ID_EDIT_FIND_IN_FILES,  VIRTKEY, SHIFT, CONTROL, NOINVERT
    "G",            ID_EDIT_GOTO_DEFINITION, VIRTKEY, CONTROL, NOINVERT
    "H",            ID_EDIT_REPLACE,        VIRTKEY, CONTROL, NOINVERT
    "K",            ID_EDIT_COMMENT_BLOCK,  VIRTKEY, CONTROL, NOINVERT
    "K",            ID_KEYCODE_TABLE,      VIRTKEY, ALT, NOINVERT
    "L",            ID_EDIT_GOTO_LINE,      VIRTKEY, CONTROL, NOINVERT
    "N",            ID_FILE_NEW,            VIRTKEY, CONTROL, NOINVERT
    "O",            ID_FILE_OPEN,          VIRTKEY, CONTROL, NOINVERT
    "P",            ID_FILE_PRINT,          VIRTKEY, CONTROL, NOINVERT
    "S",            ID_FILE_SAVE,          VIRTKEY, CONTROL, NOINVERT
    "S",            ID_INSERT_SUB,          VIRTKEY, CONTROL, ALT, NOINVERT
    "S",            ID_FILE_SAVE_ALL,      VIRTKEY, SHIFT, CONTROL, NOINVERT
    "T",            ID_EDIT_COMPLETE_WORD,  VIRTKEY, CONTROL, NOINVERT
    "U",            ID_EDIT_MAKE_LOWERCASE, VIRTKEY, CONTROL, NOINVERT
    "U",            ID_EDIT_MAKE_UPPERCASE, VIRTKEY, SHIFT, CONTROL, NOINVERT
    "V",            ID_EDIT_PASTE,          VIRTKEY, CONTROL, NOINVERT
    VK_BACK,        ID_EDIT_DELETE_BACK,    VIRTKEY, NOINVERT
    VK_BACK,        ID_EDIT_DELETE_WORD_BACK, VIRTKEY, CONTROL, NOINVERT
    VK_BACK,        ID_EDIT_UNDO,          VIRTKEY, ALT, NOINVERT
    VK_BACK,        ID_EDIT_DELETE_BACK,    VIRTKEY, SHIFT, NOINVERT
    VK_CANCEL,      ID_COMPILER_STOP,      VIRTKEY, CONTROL, NOINVERT
    VK_CANCEL,      ID_DEBUGGER_PAUSE,      VIRTKEY, CONTROL, ALT, NOINVERT
    VK_DELETE,      ID_EDIT_DELETE,        VIRTKEY, NOINVERT
    VK_DELETE,      ID_EDIT_CUT,            VIRTKEY, SHIFT, NOINVERT
    VK_DOWN,        ID_EDIT_LINE_DOWN,      VIRTKEY, NOINVERT
    VK_DOWN,        ID_EDIT_SCROLL_DOWN,    VIRTKEY, CONTROL, NOINVERT
    VK_DOWN,        ID_EDIT_EXT_LINE_DOWN,  VIRTKEY, SHIFT, NOINVERT
    VK_END,        ID_EDIT_LINE_END,      VIRTKEY, NOINVERT
    VK_END,        ID_EDIT_TEXT_END,      VIRTKEY, CONTROL, NOINVERT
    VK_END,        ID_EDIT_EXT_LINE_END,  VIRTKEY, SHIFT, NOINVERT
    VK_END,        ID_EDIT_EXT_TEXT_END,  VIRTKEY, SHIFT, CONTROL, NOINVERT
    VK_F1,          ID_HELP_INDEX,          VIRTKEY, NOINVERT
    VK_F10,        ID_DEBUG_NEXTLINE,      VIRTKEY, NOINVERT
    VK_F10,        ID_DEBUGGER_STEP_INTO,  VIRTKEY, CONTROL, NOINVERT
    VK_F10,        ID_DEBUGGER_STEP_UP,    VIRTKEY, SHIFT, NOINVERT
    VK_F11,        ID_CALCULATOR,          VIRTKEY, NOINVERT
    VK_F12,        ID_TOGGLE_OUTPUT,      VIRTKEY, NOINVERT
    VK_F2,          ID_EDIT_GOTO_NEXT_BOOKMARK, VIRTKEY, NOINVERT
    VK_F2,          ID_EDIT_TOGGLE_BOOKMARK, VIRTKEY, CONTROL, NOINVERT
    VK_F2,          ID_EDIT_GOTO_PREV_BOOKMARK, VIRTKEY, SHIFT, NOINVERT
    VK_F2,          ID_EDIT_CLEAR_ALL_BOOKMARKS, VIRTKEY, SHIFT, CONTROL, NOINVERT
    VK_F3,          ID_EDIT_REPEAT,        VIRTKEY, NOINVERT
    VK_F3,          ID_EDIT_FIND_SELECTED,  VIRTKEY, CONTROL, NOINVERT
    VK_F3,          ID_EDIT_FIND_PREVIOUS,  VIRTKEY, SHIFT, NOINVERT
    VK_F4,          ID_BROWSE_FOR_SUB,      VIRTKEY, NOINVERT
    VK_F5,          ID_COMPILER_RUN,        VIRTKEY, NOINVERT
    VK_F5,          ID_COMPILER_RUN,        VIRTKEY, CONTROL, NOINVERT
    VK_F5,          ID_DEBUG_STOP,          VIRTKEY, SHIFT, NOINVERT
    VK_F8,          ID_COMPILER_GPC,        VIRTKEY, NOINVERT
    VK_F8,          ID_COMPILE_MULTIPLATFORM, VIRTKEY, SHIFT, NOINVERT
    VK_F9,          ID_EDIT_TOGGLE_BREAKPOINT, VIRTKEY, NOINVERT
    VK_HOME,        ID_EDIT_HOME,          VIRTKEY, NOINVERT
    VK_HOME,        ID_EDIT_TEXT_BEGIN,    VIRTKEY, CONTROL, NOINVERT
    VK_HOME,        ID_EDIT_EXT_HOME,      VIRTKEY, SHIFT, NOINVERT
    VK_HOME,        ID_EDIT_EXT_TEXT_BEGIN, VIRTKEY, SHIFT, CONTROL, NOINVERT
    VK_INSERT,      ID_EDIT_SWITCH_OVRMODE, VIRTKEY, NOINVERT
    VK_INSERT,      ID_EDIT_COPY,          VIRTKEY, CONTROL, NOINVERT
    VK_INSERT,      ID_EDIT_PASTE,          VIRTKEY, SHIFT, NOINVERT
    VK_LEFT,        ID_EDIT_CHAR_LEFT,      VIRTKEY, NOINVERT
    VK_LEFT,        ID_EDIT_WORD_LEFT,      VIRTKEY, CONTROL, NOINVERT
    VK_LEFT,        ID_EDIT_NAVIGATE_BACK,  VIRTKEY, ALT, NOINVERT
    VK_LEFT,        ID_EDIT_EXT_CHAR_LEFT,  VIRTKEY, SHIFT, NOINVERT
    VK_LEFT,        ID_EDIT_EXT_WORD_LEFT,  VIRTKEY, SHIFT, CONTROL, NOINVERT
    VK_NEXT,        ID_EDIT_PAGE_DOWN,      VIRTKEY, NOINVERT
    VK_NEXT,        ID_EDIT_EXT_PAGE_DOWN,  VIRTKEY, SHIFT, NOINVERT
    VK_PAUSE,      ID_COMPILER_STOP,      VIRTKEY, CONTROL, NOINVERT
    VK_PRIOR,      ID_EDIT_PAGE_UP,        VIRTKEY, NOINVERT
    VK_PRIOR,      ID_EDIT_EXT_PAGE_UP,    VIRTKEY, SHIFT, NOINVERT
    VK_RIGHT,      ID_EDIT_CHAR_RIGHT,    VIRTKEY, NOINVERT
    VK_RIGHT,      ID_EDIT_WORD_RIGHT,    VIRTKEY, CONTROL, NOINVERT
    VK_RIGHT,      ID_EDIT_NAVIGATE_FORWARD, VIRTKEY, ALT, NOINVERT
    VK_RIGHT,      ID_EDIT_EXT_CHAR_RIGHT, VIRTKEY, SHIFT, NOINVERT
    VK_RIGHT,      ID_EDIT_EXT_WORD_RIGHT, VIRTKEY, SHIFT, CONTROL, NOINVERT
    VK_SPACE,      ID_EDIT_COMPLETE_WORD,  VIRTKEY, CONTROL, NOINVERT
    VK_UP,          ID_EDIT_LINE_UP,        VIRTKEY, NOINVERT
    VK_UP,          ID_EDIT_SCROLL_UP,      VIRTKEY, CONTROL, NOINVERT
    VK_UP,          ID_EDIT_EXT_LINE_UP,    VIRTKEY, SHIFT, NOINVERT
    "X",            ID_EDIT_CUT,            VIRTKEY, CONTROL, NOINVERT
    "Y",            ID_EDIT_REDO,          VIRTKEY, CONTROL, NOINVERT
    "Z",            ID_EDIT_UNDO,          VIRTKEY, CONTROL, NOINVERT
END
#9
Try to run the code in parallel, when you have 10000 units. Search for "hawkthreads". It's built into GLBasic, and there's a wrapper for the API.
#10
Off Topic / Re: Interesting deals on asset...
Last post by SnooPI - 2024-Jun-24
:good:


Quote from: dreamerman on 2024-Jun-23The problem with many of those 'cheaper' tileset assets is that they are missing some kind of tiles for example transition tile from grass to dirt/sand, or they are incomplete - just in basic 8 directions without variations, or character animations have only basic movement/idle states so they are good as some kind of base for something simpler or some sketch / mockups projects, yet I shouldn't also demend to much from such pack's because even with those minor issues they contain a lot of assets and offert great value to their price.

I think a good way to make a game for an indie developer is to use the graphics from an old commercial game during development and then redo them.
For example, if we are developing an RTS we can use the graphics from Warcraft 2 (even zooming them if the game is in HD) then if the game is satisfactory redo the graphics, either ourselves (with or without paid assets) or by paying a graphic designer.
This avoids wasting time or money if the game is not satisfactory.

I don't know if I explained myself well, it's not easy in English  =D