GDR Forum Index
Podcast Podcast
Dev Dev Logs
Search Search
RSS RSS
Register Register
Log in Log in
Reply to topic GDR Forum Index -> Game Developer's Refuge -> Development Log - KOFFE
View previous topic :: View next topic  
Author Message
Niunio Martinez
Member

Joined: 26 Nov 2013
Posts: 97

PostPosted: Sun Dec 01, 2013 3:14 am    Post subject: Development Log - KOFFE Reply with quote

I think I should show you what I'm doing.

KOFFE means KOF'91 Fightng Engine. I decided to do it KOF'91 compatible because I like to create a new character just modifying the PCX files and a text configuration file instead of dealing with compilation data used by M.U.G.E.N.

I was working on this project since 2010, but I was doing it in extreme programming without planning so I have a lot of stuff that does things (even animates characters and backgrounds!) but next step (add player control and IA) will be hard, so some days ago I did some planning with few UML-Class diagrams and now I'm sorting the code I have. Yesterday I finished the new old-style sprite engine and now I'm modifying all drawing stuff to use it.

If you want to see how actual Object Pascal code looks like you can browse the code from SourceForge's SVN repository.
_________________
Under redaction...
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9387
Location: Not Finland
PostPosted: Sun Dec 01, 2013 7:46 am    Post subject: Reply with quote

91-93 are pretty much my favorite KoF games: good roster, tight controls, decent balancing.

Quote:

I was working on this project since 2010, but I was doing it in extreme programming without planning


Heh... I gave that a shot (extreme programming, that is) early this year. It's good for one-off projects you don't intend to grow or reuse, but it's so easy to paint yourself into a corner. But there is the allure of having a few days/weeks to work on something and just doing it without any regard to what comes next :)
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
Niunio Martinez
Member

Joined: 26 Nov 2013
Posts: 97

PostPosted: Wed Dec 25, 2013 1:33 am    Post subject: Reporting... Reply with quote

So, how's Hollydays doing?

I was working on the internals of the engine. I've rewrote the HUD and I'm rewritting the internal flow. I want to make it "state driven", each part of the game is a "state" (menu, character selection, fighting, etc), so it will be more flexible.

A lot of work but nothing to show yet.
_________________
Under redaction...
View user's profile Send private message Visit poster's website
mikedoty
Developer

Joined: 18 Mar 2006
Posts: 1788

PostPosted: Thu Dec 26, 2013 2:49 pm    Post subject: Reply with quote

Is that kind of like approaching each of those states (menu, etc) as its own standalone application, or something like that? I do something that I think is vaguely similar. Typically I launch my game with a menu() loop, which in turn calls a run() loop for the game itself. When the user goes "back to menu" the application will gracefully return to the menu loop. (This might actually be completely different than what you're describing!)
_________________
The end of the game, yes, is pretty much getting the weapon and killing off the population.
mashup games . com | Finally! - A Lode Runner Story
View user's profile Send private message Visit poster's website AIM Address
Niunio Martinez
Member

Joined: 26 Nov 2013
Posts: 97

PostPosted: Sun Dec 29, 2013 4:15 am    Post subject: Reply with quote

Since I have a sprite engine I can use states to do the logic and the sprite engine to render. So the loop is something like this:
Code:

PROCEDURE MainLoop; INLINE;
BEGIN
  StateMachine.Current := StateMenu;
  REPEAT
    TRY
      StateMachine.Run;
      SpriteEngine.Render;
    EXCEPT
      ON Error: Exception DO BEGIN
        DrawErrorMessage (Error.Message);
        StateMachine.Current := StateMenu;
      END;
    END;
  UNTIL EndGame;
END;

States are objects. EndGame is a global booblean variable.
_________________
Under redaction...
View user's profile Send private message Visit poster's website
Niunio Martinez
Member

Joined: 26 Nov 2013
Posts: 97

PostPosted: Fri Mar 07, 2014 5:09 am    Post subject: Reply with quote

It was loooooooong, but I almost finished to move the old "multi-loop" logic to the new state-driven one. It works from initial menu to the player and stage selection (were needed).

Now I should re-work the fighting loop. I'm not sure what to do:
  1. A big single fighting state that contains its own state machine with states for each stage of the fight (intro animation, fight, end animation, stage 2...), or
  2. A collection of small states for each stage of the fight.
That's why I stopped here.
_________________
Under redaction...
View user's profile Send private message Visit poster's website
Niunio Martinez
Member

Joined: 26 Nov 2013
Posts: 97

PostPosted: Mon Sep 22, 2014 12:19 am    Post subject: Reply with quote

The project was in stand-by for a long time, but I've done some improvements the last weeks. Looks like I'm a perfectionist so I was rewriting a lot of internal stuff, so nothing new to see, but it looks better with a smaller executable and a more modular engine.

I've created a Game object in the way Delphi and Lazarus does. It contains all common stuff, such as the configuration, interface graphics and so. It also contains the main loop and manages all resources.

Next step is work on the "figthing stuff". You know, user input, character animation, collisions, etc. Don't know when it will became playable, but I'm optimistic.
_________________
Under redaction...
View user's profile Send private message Visit poster's website
Reply to topic GDR Forum Index -> Game Developer's Refuge -> Development Log - KOFFE
Game Developer's Refuge
is proudly hosted by,

HostGator

All trademarks and copyrights on this page are owned by their respective owners. All comments owned by their respective posters.
phpBB code © 2001, 2005 phpBB Group. Other message board code © Kevin Reems.