IronManBeta
Posts: 4132
Joined: 2/25/2002 From: Burlington, Ontario Status: offline
|
Hi there. I didn't expect to see SimCan mentioned again but it sounds like at least a few of us have fond memories of it still. SimCan was run by Steve Newberg who had a PhD in nuclear physics and was an officer on nuclear subs for a time. After leaving the navy he moved to rural Canada and programmed computers - mainly writing software for the local telephone companies as I recall. The whole SimCan board game and computer game was a sideline that he much enjoyed. Steve St. John and Bill Nichols also released a lot of games under the SimCan umbrella, and yours truly did 3 - Malta Storm, Midway Storm and Solomons Storm back in the 80s and 90s. I wanted to do a version of Divine Wind on the whole Pacific War but never managed to complete it. I always wanted to do a brigade level 1940- 43 North African game for SimCan. Steve eventually retired to the west coast and looked for a buyer for SimCan. Finding none, he tied up with David Heath at Matrix and licensed all the games for redevelopment. That was in 2001 as I recall. I had just discovered Matrix myself and was lurking all the time and saw the announcement. After a few months I wrote David and asked how things were going. Before I knew it he had talked me into doing one of the games ("it will only take six months") and he offered me the choice of (drum roll please) "Main Battle Tank" and "Red Sky at Morning". I picked MBT because it was slightly closer to my interests at the time and so I converted my unfinished Desert War game into a demo for MBT. I went down to Origins to meet him in 2002 and pitched him on the idea. He was happy and the game that became Flashpoint Germany was started and came out in Feb 2005. Steve Newberg got a royalty on it and Matrix even created a "SimCan" logo to slap on it - Steve never got around to creating a corporate logo! Another programmer was working on one of the other games but sadly it never saw the light of day. I think we were the only two that worked on any of the SimCan titles. Somewhere along the line though David sent me all the source code for the various SimCan computer games and I have Red Sky at Morning still sitting on my hard drive. It was written in Turbo Pascal and the source files are dated March 1991. I seem to recall that I bought a copy of that game at Origins but I don't see it on my shelves any more. I wonder if I gave it up when I sold my house a couple of years back and downsized into my current abode. Yikes! The rules and such are hopefully on the web somewhere as I no longer have them. At least two sites purport to have the game as a download if you are interested and can run it (presumably) in DOS BOX or some such thing. It looks like someone at Matrix tried to do a Delphi 1 port of the game in 2001 and I have that too. They just mocked up a potential Windows UI for the menu structure but did not hook up any of the game code by the look of it. Interesting... What I found when I did FPG was that the old code made a good inspiration for getting started but very little of it was all that useful in our modern object-oriented world. Using modern tools to reproduce obsolete code structures just wasn't that fun or productive for me. It *was* fascinating to look through all the old code though and I loved reading the AI parts. I definitely took inspiration from that back in 2003- 2004. If someone came along and wanted to talk to Matrix now about it I'm sure they would get a hearing. You sit down with all the code and reverse engineer it to extract the data structures, game mechanics and AI rules. The UI too but that would not be kept. This takes a few months. From that you would try to estimate how many months it would take to turn that into modern software. Then multiply by 3 or 5 or some other random variable and that is when you will really ship it, lol. Here is a snippet of code from Red Dawn at Morning that returns true or false if a potential target is within air range of a particular air base. Talk about a blast from the past. It is readable though (at least before HTML ate all the white spaces) and I suppose at least some of what I am writing now for FPRS is not really all that different: FUNCTION TargetInRange( AirBaseID,TargetArea,TargetSubarea:INTEGER; TGT_X_ORD,TGT_Y_ORD : LONGINT):BOOLEAN; VAR TGTRANGE,MAXRANGE:LONGINT; SQ,AC_CL : INTEGER; result : boolean; BEGIN Result := FALSE; TGTRANGE := 0; MAXRANGE := -1; WITH AirBaseInfo[AirBaseID]^ DO FOR SQ := 1 TO ORD(AB_MaxSqdns) DO IF (AB_Aircraft[SQ].AC_Sqdn_ID <> CHR(0)) AND (AB_Aircraft[SQ].AC_Ready_Now <> CHR(0)) AND NOT AB_Aircraft[Sq].AC_TRANSFER THEN BEGIN AC_CL := ORD(AB_Aircraft[SQ].AC_Sqdn_ID); IF (AircraftData[AC_CL]^.AC_Type = FTR) OR (AircraftData[AC_CL]^.AC_TYPE = BMR) OR (AircraftData[AC_CL]^.AC_TYPE = FTRBMR) THEN MAXRANGE := LMAX(MAXRANGE,ORD(AircraftData[AC_CL]^. AC_Range)); END; RANGE_FROM_AIRBASE( AIRBASEINFO[AirBaseID]^, TargetArea, TargetSubarea, TGT_X_ORD,TGT_Y_ORD, TGTRANGE); {NOTE: TGTRANGE IN 100'S OF MILES, MAXRANGE IN 50'S OF MILES} IF 2*TGTRANGE <= 1.5*MAXRANGE THEN Result := TRUE; TargetInRange := result; {NOTE: FACTOR OF 1.5 FOR EXTENDED RANGE STRIKES} (*** DEBUG CODE ***) (* writeln('airbase = ',airbaseinfo[airbaseid]^.ab_name); writeln( 'tgtrange = ',100*tgtrange,' mi. ', 'maxrange = ',50*maxrange*1.5,' mi.'); writeln('target in range = ',Result); writeln; *) END;
|