User Tag List

Page 3 of 4 FirstFirst 1 2 3 4 LastLast
Results 21 to 30 of 34

Thread: Progress Report

  1. #21
    The Time-Loop Continues ZC Developer
    Gleeok's Avatar
    Join Date
    Apr 2007
    Posts
    4,815
    Mentioned
    259 Post(s)
    Tagged
    10 Thread(s)
    vBActivity - Stats
    Points
    12,933
    Level
    33
    vBActivity - Bars
    Lv. Percent
    23.44%
    Spent about 12 hours this week on it; about 4 on misc stuff and 8 hours compiling and doing a damage report on the map editor. Yes, that's really how long it took to fix about 1200 errors and crashes in the editor code (It hasn't been touched in many years--I hate it). So yeah, not really sure what to do about it. Editor still seems to be too much of a time sink for me right now. Might hack something together with it. We'll see.
    This post contains the official Gleeok seal of approval. Look for these and other posts in an area near you.

  2. #22
    Here lies mero. Died by his own dumbassitude.
    Join Date
    May 2011
    Posts
    929
    Mentioned
    102 Post(s)
    Tagged
    2 Thread(s)
    vBActivity - Stats
    Points
    5,527
    Level
    23
    vBActivity - Bars
    Lv. Percent
    13.96%
    @Gleeok
    Why not just rewrite the editor from scratch?

  3. #23
    The Time-Loop Continues ZC Developer
    Gleeok's Avatar
    Join Date
    Apr 2007
    Posts
    4,815
    Mentioned
    259 Post(s)
    Tagged
    10 Thread(s)
    vBActivity - Stats
    Points
    12,933
    Level
    33
    vBActivity - Bars
    Lv. Percent
    23.44%
    Quote Originally Posted by Tamamo View Post
    @Gleeok
    Why not just rewrite the editor from scratch?
    Well, that was the plan from the beginning. Problem is it just never happened and I don't have the time to just willy-nilly "write an editor from scratch." Hence the just hack something together for now approach. Not sure what it'll be, though. Maybe I'll think of something.
    Last edited by Gleeok; 11-15-2015 at 11:42 AM.
    This post contains the official Gleeok seal of approval. Look for these and other posts in an area near you.

  4. #24
    Quest Builder Anarchy_Balsac's Avatar
    Join Date
    Nov 2005
    Posts
    751
    Mentioned
    11 Post(s)
    Tagged
    2 Thread(s)
    vBActivity - Stats
    Points
    2,590
    Level
    16
    vBActivity - Bars
    Lv. Percent
    63.38%
    @Gleeok

    Code Jury-Rigging in other words.

  5. #25
    The Time-Loop Continues ZC Developer
    Gleeok's Avatar
    Join Date
    Apr 2007
    Posts
    4,815
    Mentioned
    259 Post(s)
    Tagged
    10 Thread(s)
    vBActivity - Stats
    Points
    12,933
    Level
    33
    vBActivity - Bars
    Lv. Percent
    23.44%
    It's a Christmas miracle! : I compiled the editor and added in a file tree which gets populated at start--basically like loading a quest but there's only one quest, etc. So, all game assets are now stored with the project file--basically like a game header, if that makes sense. The good news is that the engine has been updated to load complete "games" which crosses off about 30 todo's off my list. The bad news is without one it doesn't do anything, really. :x Also deleted about 10,000 LOC which was overdue.

    Added initial support for in-game editing as well. Currently there is only an 'active tileset' tile-mask mode, for solidity stuff, however, so now we have collisions and a debug draw:


    I'll have to figure out the door situation after warp events I suppose....

    Collision works the same way so far as just about any 2D game, including ALTTP and ZC. Each cell is split into 4 masks, which gives the option of diagonal or half-tile movement; although by default FF simply uses full tiles, so that's what I'll do.


    Also, apparently we are at 774 assets so far. If anybody is wondering why it's taking so long it's probably because of that. (...or the 80,000 lines of code might have something to do with it. ) NPC spritesets are the next thing on my list. Every map is going to have bats on it... lots and lots of bats. :)

    PS: I was profiling two different spriteset implementations I wrote (because I couldn't decide which one should get replaced), so I did a stress test while I was at it (You know, for fun) and had 1600 fully animated and scripted NPC's on screen and it was like 1% of the total frame time--I fucking kid you not. Of course the scripts don't do anything right now--collision and moving are nice, I know-- but that's still pretty absurd. I used to think we were about 80x faster than rpg maker but right now I'm thinking more like 400x is ballpark... That can't be right...
    Last edited by Gleeok; 12-26-2015 at 08:17 AM.
    This post contains the official Gleeok seal of approval. Look for these and other posts in an area near you.

  6. #26
    The Timelord
    QDB Manager
    ZC Developer

    Join Date
    Oct 2006
    Location
    Prydon Academy
    Posts
    1,396
    Mentioned
    112 Post(s)
    Tagged
    1 Thread(s)
    vBActivity - Stats
    Points
    4,760
    Level
    21
    vBActivity - Bars
    Lv. Percent
    68.7%
    Quote Originally Posted by Gleeok View Post
    It's a Christmas miracle! : I compiled the editor and added in a file tree which gets populated at start--basically like loading a quest but there's only one quest, etc. So, all game assets are now stored with the project file--basically like a game header, if that makes sense. The good news is that the engine has been updated to load complete "games" which crosses off about 30 todo's off my list. The bad news is without one it doesn't do anything, really. :x Also deleted about 10,000 LOC which was overdue.

    Added initial support for in-game editing as well. Currently there is only an 'active tileset' tile-mask mode, for solidity stuff, however, so now we have collisions and a debug draw:


    I'll have to figure out the door situation after warp events I suppose....

    Collision works the same way so far as just about any 2D game, including ALTTP and ZC. Each cell is split into 4 masks, which gives the option of diagonal or half-tile movement; although by default FF simply uses full tiles, so that's what I'll do.


    Also, apparently we are at 774 assets so far. If anybody is wondering why it's taking so long it's probably because of that. (...or the 80,000 lines of code might have something to do with it. ) NPC spritesets are the next thing on my list. Every map is going to have bats on it... lots and lots of bats. :)

    PS: I was profiling two different spriteset implementations I wrote (because I couldn't decide which one should get replaced), so I did a stress test while I was at it (You know, for fun) and had 1600 fully animated and scripted NPC's on screen and it was like 1% of the total frame time--I fucking kid you not. Of course the scripts don't do anything right now--collision and moving are nice, I know-- but that's still pretty absurd. I used to think we were about 80x faster than rpg maker but right now I'm thinking more like 400x is ballpark... That can't be right...


    What routines were those 1600 NPCs running? Movement, walkability, collision, solidity detection, character detection, event preprocessing, string updating (based on triggers)?

    It's fantastic, of course; and RPG Maker isn't exactly optimised in any way whatever. It was never meant to be, which is part of the problem. Clearly, you did something right; unless some existing components weren't running. So, where is our testing copy? :p

  7. #27
    The Time-Loop Continues ZC Developer
    Gleeok's Avatar
    Join Date
    Apr 2007
    Posts
    4,815
    Mentioned
    259 Post(s)
    Tagged
    10 Thread(s)
    vBActivity - Stats
    Points
    12,933
    Level
    33
    vBActivity - Bars
    Lv. Percent
    23.44%
    Quote Originally Posted by ZoriaRPG View Post
    What routines were those 1600 NPCs running? Movement, walkability, collision, solidity detection, character detection, event preprocessing, string updating (based on triggers)?
    Like I said; none. Just an empty script.

    Most of those things are all the same thing though. It's not like NPCs in RPGs are really complex until you add in messages with events, etc. But even those are only run when activated so I don't think it'll matter much.

    The way rpg maker, game maker, et al. do it is everything is a "god object'. ex; an npc is an event is an sprite is an waypoint is a object is a battle character, etc. IMHO this is the worst kind of abuse of OOP design, and is just bad to do whenever performance is an issue. I'm not doing this at all. I'll be putting in small, specialized cases. If you want a warp event at location x,y, you don't put a particle system or NPC there, you put a warp there. It's just common sense. Only a player can interact with warps so that's instant "optimization" if you want to think about it like that. I just think of it as sane.

    Speaking of god objects, here's a true story. I was looking at a platform layer for mobile a while back, came across cocos2d; apparently it's really popular, anyway--cutting to the end: The sprite class alone was like 1.5 kilobytes, allocated a bunch of stuff, had like 4 matrix4 transformations, and was virtual, and hierarchical. If you think I am full of shit when I say that everything is shit these days, just go take a look at that.
    This post contains the official Gleeok seal of approval. Look for these and other posts in an area near you.

  8. #28
    The Timelord
    QDB Manager
    ZC Developer

    Join Date
    Oct 2006
    Location
    Prydon Academy
    Posts
    1,396
    Mentioned
    112 Post(s)
    Tagged
    1 Thread(s)
    vBActivity - Stats
    Points
    4,760
    Level
    21
    vBActivity - Bars
    Lv. Percent
    68.7%
    Quote Originally Posted by Gleeok View Post
    Like I said; none. Just an empty script.

    Most of those things are all the same thing though. It's not like NPCs in RPGs are really complex until you add in messages with events, etc. But even those are only run when activated so I don't think it'll matter much.

    The way rpg maker, game maker, et al. do it is everything is a "god object'. ex; an npc is an event is an sprite is an waypoint is a object is a battle character, etc. IMHO this is the worst kind of abuse of OOP design, and is just bad to do whenever performance is an issue. I'm not doing this at all. I'll be putting in small, specialized cases. If you want a warp event at location x,y, you don't put a particle system or NPC there, you put a warp there. It's just common sense. Only a player can interact with warps so that's instant "optimization" if you want to think about it like that. I just think of it as sane.

    Speaking of god objects, here's a true story. I was looking at a platform layer for mobile a while back, came across cocos2d; apparently it's really popular, anyway--cutting to the end: The sprite class alone was like 1.5 kilobytes, allocated a bunch of stuff, had like 4 matrix4 transformations, and was virtual, and hierarchical. If you think I am full of shit when I say that everything is shit these days, just go take a look at that.


    ...but just about everything is shyte. That's just a fact.

    People don't care if what they make has good performance. They just tell you to buy a faster, more powerful system, which is rubbish. I occasionally do that too, but it's very minimal, and only because when things I make demand something faster/better/newer, it's faster/better/newer than ten-plus years ol; and then only because whatever I'm using as a base requires it, with all my modifications pushing it to its limits.

    I'm not about to go back to doing things in raw assembly though.

    To clarify my earlier question: How many other objects do NPCs examine to gauge interaction, their movement, and such? Do they consider other NPCs as a factor, as that is something that I would expect to cause exponential performance hindrance.

  9. #29
    The Time-Loop Continues ZC Developer
    Gleeok's Avatar
    Join Date
    Apr 2007
    Posts
    4,815
    Mentioned
    259 Post(s)
    Tagged
    10 Thread(s)
    vBActivity - Stats
    Points
    12,933
    Level
    33
    vBActivity - Bars
    Lv. Percent
    23.44%
    Quote Originally Posted by ZoriaRPG View Post
    I'm not about to go back to doing things in raw assembly though.
    I actually just realized that I could do generics in c or c++ without template crap, function pointers, or switch cases. For example:
    Code:
    inline void InvokeSomeFunction(void* obj, void* f, void* param0)
    {
    	__asm
    	{
    		push param0
    		mov ecx, obj;
    		call f
    	}
    }
    Stupid crap like 'type safety' 'iso standards' is just getting in my way. haha ..Oh boy and think of all the MACROS ! :)


    Quote Originally Posted by ZoriaRPG View Post
    .
    To clarify my earlier question: How many other objects do NPCs examine to gauge interaction, their movement, and such? Do they consider other NPCs as a factor, as that is something that I would expect to cause exponential performance hindrance.
    I've actually never had collisions as a bottleneck so I am literally zero-worried about that. Since 2D rpgs probably have the least collisions of any game I'll probably just use brute force as a placeholder to be honest.

    As for what can collide with what, you're welcome to request something. I was thinking of throwing in filter mask for now.
    This post contains the official Gleeok seal of approval. Look for these and other posts in an area near you.

  10. #30
    The Timelord
    QDB Manager
    ZC Developer

    Join Date
    Oct 2006
    Location
    Prydon Academy
    Posts
    1,396
    Mentioned
    112 Post(s)
    Tagged
    1 Thread(s)
    vBActivity - Stats
    Points
    4,760
    Level
    21
    vBActivity - Bars
    Lv. Percent
    68.7%
    Suggestions/requests for NPCs:

    Option to have NPCs treat one another as solid, and halt, turning in a walk pattern, if they try to collide.
    Collision between NPC(npc), NPC(object), NPC(player), etc., generates event (e.g. planned encounter, special dialogue, and so forth).
    NPCs take action on collision, with similar collision options (e.g. steal from player).

    I presume some of these can be handled with scripts, but I don;t know how much you want to force the user to rely on scripts to do these types of effects.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
About us
Armageddon Games is a game development group founded in 1997. We are extremely passionate about our work and our inspirations are mostly drawn from games of the 8-bit and 16-bit era.
Social