Afterwarp Development  

Go Back   Afterwarp Development > Software/Game Development > Project Showcase
Project Showcase Feel free to post any screenshots/demos of any WIP or finished projects you have made.

Reply
 
Thread Tools Display Modes
  (#11) Old
Huehnerschaender Huehnerschaender is offline
Honoured
Huehnerschaender has much to be proud ofHuehnerschaender has much to be proud ofHuehnerschaender has much to be proud ofHuehnerschaender has much to be proud ofHuehnerschaender has much to be proud ofHuehnerschaender has much to be proud ofHuehnerschaender has much to be proud ofHuehnerschaender has much to be proud of
 
Posts: 445
Join Date: Oct 2005
30-Sep-2006, 21:18

Already posted my comments at PGD forums...

Greetings,
Dirk
Reply With Quote
  (#12) Old
The Wicked Flea The Wicked Flea is offline
Honoured
The Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud of
 
The Wicked Flea's Avatar
 
Posts: 692
Join Date: Oct 2005
Location: world.usa.find('East Coast');
30-Sep-2006, 21:41

Just a note, but there is a new version uploaded that may repair the startup fatal errors. I just found something I did that was really stupid.


"If we knew what we were doing, it wouldn't be called research, would it?"
-- Albert Einstein

IntelliArchiver 1.00 RC1 is here!
Finished Projects: Just DIE Already!, Asphyre 4 Zip Archive Handler
Reply With Quote
  (#13) Old
The Wicked Flea The Wicked Flea is offline
Honoured
The Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud of
 
The Wicked Flea's Avatar
 
Posts: 692
Join Date: Oct 2005
Location: world.usa.find('East Coast');
Arrow Final Release of JDA, and project close. - 09-Jan-2007, 23:11

This is the final, full release of Just Die Already. Full sources are included excepting that of the images, which doesn't matter anyhow. Remember it is MPL licensed and you can read the full license text here: http://www.mozilla.org/MPL/

I have made no changes, but have decided that this project is about as good as I can make it. And that it's time for a better idea in the first place.

You may download the files in either a 7Zip archive (fixed), or as a standard Zip archive. And for those who want to know how I did my screen transitions, here's the excerpt of code:
Code:
(*******************************************************************************

    The contents of this file are subject to the Mozilla Public License
    Version 1.1 (the "License"); you may not use this file except in
    compliance with the License. You may obtain a copy of the License at
    http://www.mozilla.org/MPL/

    Software distributed under the License is distributed on an "AS IS"
    basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
    License for the specific language governing rights and limitations
    under the License.

    The Original Code is AsphyreIntroduction.pas.

    The Initial Developer of the Original Code is Robert Kosek.
    Portions created by Robert Kosek are Copyright (C) Sept 2006
    by Robert Kosek. All Rights Reserved.

    Contributor(s): N/A.

*******************************************************************************)

unit AsphyreIntroduction;

interface

uses AsphyreCanvas, AsphyreImages, AsphyreDef, Math;

type
  TCustomIntro = class
  private
    fDrawNum,fLifetime, fImageIndex, fPos: integer;
    fDrawFx: cardinal;
    fAlpha: byte;
  public
    constructor Create(show_length, image_index, draw_id: integer; draw_fx: cardinal);
    procedure Process; virtual;
  end;

  TIntroManager = class
  strict private
    fIntros: array of TCustomIntro;
    fCanvas: TAsphyreCanvas;
    fImages: TAsphyreImages;
    fScreen: TPoint4;
    fCurrentIntro,fIntroCount: Integer;
    fDone: Boolean;
  public
    property Finished: Boolean read fDone;
    procedure AppendIntro(i: TCustomIntro);
    procedure Update;
    procedure Draw;
    constructor Create(screensize: TPoint2; Canvas: TAsphyreCanvas; Images: TAsphyreImages);
    destructor Destroy; override;
  end;

  TOverlayIntro = class(TCustomIntro)
  public
    procedure Process; override;
  end;

implementation

{ TIntroManager }

procedure TIntroManager.AppendIntro(i: TCustomIntro);
var p: integer;
begin
  p := length(fIntros);
  SetLength(fIntros,p+1);
  fIntros[p] := i;
end;

constructor TIntroManager.Create(screensize: TPoint2; Canvas: TAsphyreCanvas;
  Images: TAsphyreImages);
begin
  fCanvas := Canvas;
  fImages := Images;
  fScreen := pBounds4(0,0,Round(screensize.x),Round(screensize.y));

  fCurrentIntro := 0;
  fIntroCount   := 0;
end;

destructor TIntroManager.Destroy;
var
  Item: TCustomIntro;
begin
  for Item in fIntros do
    Item.Free;

  inherited;
end;

procedure TIntroManager.Draw;
var i: integer;
begin
  for i := 0 to Length(fIntros) - 1 do
    if fIntros[i].fDrawNum = fCurrentIntro then
      fCanvas.TexMap(fImages[fIntros[i].fImageIndex],fScreen,cAlpha4(fIntros[i].fAlpha),tcNull,fIntros[i].fdrawfx);
end;

procedure TIntroManager.Update;
var i,l: integer;
begin
  if fDone then
    Exit;

  l := -1;
    
  if fIntroCount = 0 then
    for I := 0 to Length(fIntros) - 1 do
      if fIntros[i].fDrawNum <> l then begin
        l := fIntros[i].fDrawNum;
        fIntroCount := fIntroCount+1;
      end;

  if fCurrentIntro >= fIntroCount then begin
    fDone := True;
    Exit;
  end;

  for i := 0 to Length(fIntros) - 1 do
    if fIntros[i].fDrawNum = fCurrentIntro then
      if fIntros[i] is TOverlayIntro then
        TOverlayIntro(fIntros[i]).Process
      else
        fIntros[i].Process;

  { Find the first intro in a set.  Intro Groups are assumed to have the same
    duration... }
  for i := 0 to Length(fIntros) - 1 do
    if fIntros[i].fDrawNum = fCurrentIntro then
      if fIntros[i].fPos >= fIntros[i].fLifetime then begin
        fCurrentIntro := fCurrentIntro+1;
        Break;
      end;
end;

{ TCustomIntro }

constructor TCustomIntro.Create(show_length, image_index, draw_id: integer;
  draw_fx: cardinal);
begin
  fLifetime := show_length;
  fImageIndex := image_index;
  fDrawFx := draw_fx;
  fDrawNum := draw_id;
  fPos := 0;
  fAlpha := 0;
end;

procedure TCustomIntro.Process;
var stepsize, stopfade: real;
begin
  stepsize := fLifetime / 10;
  stopfade := fLifetime - stepsize;

  fPos := fPos+1;

  if fPos <= stepsize then
    fAlpha := min(Trunc((fPos / stepsize) * 255),255)
  else if fPos >= stopfade then
    fAlpha := max(Trunc((1 - ((fPos - stopfade) / stepsize)) * 255),0);
end;

{ TOverlayIntro }

procedure TOverlayIntro.Process;
var stepsize, stopfade: real;
begin
  stepsize := fLifetime / 10;
  stopfade := fLifetime - stepsize;

  fPos := fPos+1;

  if fPos <= stepsize then
    fAlpha := min(Trunc((fPos / stepsize) * 255) div 2,255)
  else if fPos >= stopfade then
    fAlpha := max(Trunc((1 - ((fPos - stopfade) / stepsize)) * 255) div 2,0);
end;

end.


"If we knew what we were doing, it wouldn't be called research, would it?"
-- Albert Einstein

IntelliArchiver 1.00 RC1 is here!
Finished Projects: Just DIE Already!, Asphyre 4 Zip Archive Handler

Last edited by The Wicked Flea; 15-Jan-2007 at 01:07. Reason: Updated archives in case of a missing file.
Reply With Quote
  (#14) Old
Mike Mike is offline
Reputable
Mike is on a distinguished road
 
Mike's Avatar
 
Posts: 107
Join Date: Jan 2006
Location: Denmark
10-Jan-2007, 10:09

How do you play the game?

What controls must be used?


Regards,
Mike
Reply With Quote
  (#15) Old
The Wicked Flea The Wicked Flea is offline
Honoured
The Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud of
 
The Wicked Flea's Avatar
 
Posts: 692
Join Date: Oct 2005
Location: world.usa.find('East Coast');
10-Jan-2007, 13:03

All you do is avoid the missiles which split based upon an internal timer in each of them; you play using the arrow keys. It's okay really, but it's a place to start. And start I have.


"If we knew what we were doing, it wouldn't be called research, would it?"
-- Albert Einstein

IntelliArchiver 1.00 RC1 is here!
Finished Projects: Just DIE Already!, Asphyre 4 Zip Archive Handler
Reply With Quote
  (#16) Old
lifepower lifepower is offline
Developer
lifepower has much to be proud oflifepower has much to be proud oflifepower has much to be proud oflifepower has much to be proud oflifepower has much to be proud oflifepower has much to be proud oflifepower has much to be proud oflifepower has much to be proud of
 
lifepower's Avatar
 
Posts: 1,775
Join Date: Oct 2005
Location: Pointer = nil;
Send a message via ICQ to lifepower Send a message via MSN to lifepower
10-Jan-2007, 15:54

Robert, so what's next?


M.Sc. Yuriy Kotsarenko
Ixchel Studios

Reply With Quote
  (#17) Old
The Wicked Flea The Wicked Flea is offline
Honoured
The Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud of
 
The Wicked Flea's Avatar
 
Posts: 692
Join Date: Oct 2005
Location: world.usa.find('East Coast');
10-Jan-2007, 16:14

At this point, I don't know. I am mulling around on a few ideas I have scattered about my brains, and am trying to pick one and develop it. But I most likely will go with one in specific.

Some 8 years back I came up with an idea for what I called "Stratego on Paper", based off the boardgame Stratego of course, but rather was a turn-based strategy game that merely took two people, pencils, and a sheet or ordinary paper. I wrote up a one page rulesheet and created a few units to go along with the rules. You started with a base, formed your facilities (prereqs for specific units), and could build walls, barbed wire, and tank traps all in specific amounts per turn. For instance you could start the airport, which took 3 turns IIRC, on your first turn but side track yourself the next by making some barbed wire or train some basic grunts. Each unit could move a specific distance and fire once or twice depending upon type, lasers crossed the field and so could be great snipers (if you could get the pencil to slide in a straight enough line). To fire or move you'd rest your pencil upright upon the unit, pull back while pushing down lightly, so the pencil slid outwards in the direction you wanted it to go in with some randomness. I thought it was pretty cool and it was amazingly balanced for my first shot.

I think I want to make it with the potential to do it PBEM style. For a game on paper it had remarkable depth and strategy behind it, IMO rivaling games like Tiberian Sun; I just could never get anyone to play with me. It will have less depth in the PC because I couldn't detect exactly where you shot tanks, you could blow treads and guns off tanks so they'd have to return for repairs (assuming they made it ), but it should still be the same old game I made. I still have the rules and unit sheets around here somewhere...

Heh, think Warhammar 40k for pencil and paper over lunch breaks. Stow it and go back to work, only to decimate your co-worker the next day! But for that, I'd need art and music.


"If we knew what we were doing, it wouldn't be called research, would it?"
-- Albert Einstein

IntelliArchiver 1.00 RC1 is here!
Finished Projects: Just DIE Already!, Asphyre 4 Zip Archive Handler
Reply With Quote
  (#18) Old
lifepower lifepower is offline
Developer
lifepower has much to be proud oflifepower has much to be proud oflifepower has much to be proud oflifepower has much to be proud oflifepower has much to be proud oflifepower has much to be proud oflifepower has much to be proud oflifepower has much to be proud of
 
lifepower's Avatar
 
Posts: 1,775
Join Date: Oct 2005
Location: Pointer = nil;
Send a message via ICQ to lifepower Send a message via MSN to lifepower
10-Jan-2007, 23:56

Robert, seems rather a good idea to me. I would particularly interested in having this game a strong AI, so I could challenge it in some spare time.

Quote:
Originally Posted by The Wicked Flea View Post
I think I want to make it with the potential to do it PBEM style.
Why aiming at PBEM and not just simple multiplayer? Turn-based multiplayer games can be very entertaining - we're still playing Alpha Centauri (Alien Crossfire expansion actually) on LAN from time to time here. Although computer AI isn't one of its strong points.


M.Sc. Yuriy Kotsarenko
Ixchel Studios

Reply With Quote
  (#19) Old
The Wicked Flea The Wicked Flea is offline
Honoured
The Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud ofThe Wicked Flea has much to be proud of
 
The Wicked Flea's Avatar
 
Posts: 692
Join Date: Oct 2005
Location: world.usa.find('East Coast');
11-Jan-2007, 01:57

Because I don't know how to create a server/client setup, and how I would involve the players in a strict sense. Although the more I think of it, the better it would be. Any tips, examples, or articles that would help me? Internet and networked programming is very new to me I'm afraid.

Quote:
I would particularly interested in having this game a strong AI, so I could challenge it in some spare time.
I'm no wizard at AI, but the principle of the game is very simple: destroy your opponent's base at all costs without losing yours. There's no money, no morale, and no actual playing field aside from the various constructed obstacles. It would take quite a bit of work to make strong AI, but I could at least make it robust right at the beginning.

I'll start a planning thread eventually, outlining what I intend to do and the basis of how the game will operate.


"If we knew what we were doing, it wouldn't be called research, would it?"
-- Albert Einstein

IntelliArchiver 1.00 RC1 is here!
Finished Projects: Just DIE Already!, Asphyre 4 Zip Archive Handler
Reply With Quote
  (#20) Old
lifepower lifepower is offline
Developer
lifepower has much to be proud oflifepower has much to be proud oflifepower has much to be proud oflifepower has much to be proud oflifepower has much to be proud oflifepower has much to be proud oflifepower has much to be proud oflifepower has much to be proud of
 
lifepower's Avatar
 
Posts: 1,775
Join Date: Oct 2005
Location: Pointer = nil;
Send a message via ICQ to lifepower Send a message via MSN to lifepower
11-Jan-2007, 02:23

Quote:
Originally Posted by The Wicked Flea View Post
Any tips, examples, or articles that would help me? Internet and networked programming is very new to me I'm afraid.
In my own experience, multiplayer programming is more a logical problem rather than technical. Yes, there are several technical limitations: latency and bandwidth, but fortunately, they can't be really solved or avoided, so don't bother.

My suggestion is the following (which is the same thing I did back in 1999, when was starting my multiplayer experiments): at start, try to think how several users will play your game, how their interaction will be. It's easier to do this on paper. Then, try to think on logic of the communication, in terms of packets (at this point, think of them as a bunch of data). Finally, find some development tools that simplify the implementation. The technical part doesn't matter much - you will end up using either TCP/IP or UDP, perhaps embedded into some higher-level component (examples of such high-level components wrapping UDP are TNetCom and TNetExchange in Asphyre).

If you have specific technical questions about multiplayer implementation, don't hesitate to ask, I'll be able to provide you with the relevant links to articles and such.

Quote:
Originally Posted by The Wicked Flea View Post
I'm no wizard at AI, but the principle of the game is very simple: destroy your opponent's base at all costs without losing yours.
You'll be surprised how primitive the computer AI is in games. In your case, you will most likely end up with some search algorithm. Nothing fancy - just review all building and movement possibilities, try to give a score to each one of them and select the course of action which maximizes your score. A* and Dijkstra algorithms will be your friends.


M.Sc. Yuriy Kotsarenko
Ixchel Studios

Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Soundsystem for Asphyre Lazarus Published Resources 39 18-Jul-2007 05:16
TANX - Beta version Huehnerschaender Project Showcase 25 07-May-2006 01:09



vBulletin® is copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
vBulletin Skin developed by: vBStyles.com
Copyright (c) 2000 - 2008 Afterwarp Development. All rights reserved.