|

Or SHOP HERE!!!
|
Alex's Freedom Fortress
Welcome to the World's Mightiest Freedom
Force Fan Site! - Open for fun since 2003!
January 27,
2012 |
SuperSquad: Developer
Diary #6 By The
Numbers ...
 |
A quick update today (wow, it's been less than a
week since the last one!)
In my last diary, I completed my history so far of the project. In today's
installment, I just want to get out some basic information about
the game and the effort so far.
The game is inspired by
Freedom Force, it could not have happened without the brilliant example of
Freedom Force, but it is NOT Freedom Force 3.
With FF, it shares the fact that it will be a
RPG/RTS hybrid - a series of tactical squad battles, held together
by a scripted storyline. Design goals also include:
- Easily moddable (characters, objects, maps, add
stories)
- More things to do between missions (random
quests, Team-Building, History Logs)
- Quick-Battle mode
However, it also draws inspiration from other
games, computer and non-computer (RPGs). This will become more apparent as
these dev diaries go on. I hope people who liked FF would enjoy this game
as well, but it is not intended to be a full "clone" of FF.
|
|
Some Facts and
Figures
As of this writing, I have written about 3,000 lines of
code for the game. That's actually not very much yet, but consider how
much the game does already:
- Character Selection Screen and Editor (powers
and all GUI elements not implemented)
- Reading and Writing "hero" files, reading "map"
files
- 1 simple test Battle Scene (city) with 18
different characters fighting at once.
- Melee fighting with accurate calculations using
strength, agility, and endurance. Characters get KO'd, synchronized
animations, flying melees
- Certain powers implemented: Flying, Growth,
Shrinking, Invisibility, Intangibility, Fast Healing, Motion Blurring
- HUD display shows life/energy status, squad
lineup, allows you to select player's character or powers
- Very basic "AI" - foes chase and attack, rest of
your team can fight without you.
- "Watch"-mode, "Slo-Mo" mode, Pause. |

|
Being a geeky coder, I keep logs of work I do. It's
actually quite helpful, when you take months off at a time (as I have done twice
already on this project!) Looking at my current log, here's some tidbits:
- Current version is
0.3.2 , which is the 23rd version of the code
since I started. I picked this up again in Dec 2011 and completed 3 features ,
while fixing 2 bugs. An additional 11 features and 7 bugs are on the plan right
now for this version.
- I've worked in
spurts: from Apr-Jun 2009, I did versions 0.1.0 - 0.2.5, which
covered 47 features and fixed 8 bugs. Next burst was from Apr-Sep
2010 , which delivered 69 features and
fixed 19 bugs.
- There are currently
388 items total on the plan (335 features and 53 bugs). Of these, 148 are
complete (119 features and 29 bugs). The total number on the plan will
definitely increase as the project goes on and I add more details, but if you go
by what we have now that means I'm 38% done . Of course, that's probably the easy
38% !
What's next?
The major features next on the agenda sare:
- Character Editor - needs more
user-friendly stuff added. For example, there's a field where you can type the
skin you want. I am going to change this to a dropdown list or a button you can
use to select (also will do this for meshes and animations)
- Power Editor -
have this designed, though I have
recently revisited my design and am considering a big change that makes it
less like FF and more like WOW or RPGs, but I think it make sense.
- Object Editor - basics are coded, but
have had trouble getting this to work smoothly. It's boring object-oriented
stuff that I need to figure out.
- Collisions - Collisions are working
(characters can land on roofs and bump into walls), but it is not optimized at
all. I'm getting 30-40 fps on my PC, even with 20 characters going at it in a
city scene, but this can improve.
- Sound - have recently added music
capabilities, but it's a bit buggy.
- Skins - Fix my placeholder skins for
my original characters
I am also working to stabilize what I have right now and
considering if releasing a preview is a good idea. The game is going to change a
lot as development goes on, so I don't want people to start getting used to
something only to change it next version. Plus, while I welcome feedback, I
won't be able to support or respond to every person who has an issue. If it
works, great, if not , wait for the next one. It is, after all,
"pre-pre-pre-alpha".
January
21, 2012 |
SuperSquad: Developer Diary #5
Every time ... they pull me
back in!
 |
Hi again, happy new year! As promised, here's a new dev diary and you
didn't have to wait a year for it!
Quick summary update: Yeah, I'm working on this
again!
When we last left off, it
was end of August 2010 .
Tommy and I had stopped working on the game in
summer 2009, but had picked it up again around
March of 2010
, and we had moved forward with a
vengeance.
Much progress had been made on the game. I had completely overhauled
the basic structure of the code to be more object-oriented, which had made
it much easier and faster to continually add new capabilities. My
characters could do interesting things like fly, turn invisible, shrink,
and grow.
Tommy had added new art assets like buildings and
trees. He had updated his models to have facial expressions which he could
animate. He had conquered the big hurdle of creating animations that would work for all his
meshes (male/female, caped, non-caped) This made it very easy to have add new
meshes and have them come alive! |
|
One other major new feature was "synchronized" melee combat. As shown in
the pic on the right, I created code which would match the fighters'
movements to each other in a flexible way (basically using the anim names
to do this, but with a level of randomness to take advantage of the large
amount of anims that Tommy had done). This resulted in engaging
combat that was fun to just watch. A "grappling" feature
added even further variety.
This
carried over to flying melee as well, as shown on the right. Yes, that
feature long-wished-for by fans of the FF games was working in my game.
With this, resistances had not yet been implemented, but otherwise
melee combat was largely complete. Additional features like stun and
knockback would be added in future updates, but I wanted to get cracking
on ranged combat as well as creating object and map editors.
The Cat's out of the bag ...
As I mentioned in the last Dev Diary, it was around this time in 2010,
that news of the project slipped out on the FR Forums. I personally had
not been active on FR in a number of years, but Tommy did still post there
and he shared some screenshots.
I really had no problem with this, as it wasn't like I was actively
keeping a secret, it was more that it was just something I was working on
and hadn't even thought if others would find it interesting, especially if
it never got finished!
Well, it turned out there was plenty of interest
and lots of good questions were asked. Tommy and I did our best to answer
what we could. The publicity was actually kind of nice, after having worked on
it for so long without much feedback other than a few people. I started these
Dev Diaries to share a bit about the history of the project
and the current status.
|


|
|


|
Even more monumental (well it was to me, anyway) -
I actually got to meet Tommy face-to-face in person (3D even!) for the
first time. It was a blast to finally get to speak to someone I'd
only known over the net for years. We had just a few hours, but spent
a great evening chatting about ideas for the game and where we
needed to go next.
With things out in the open, we agreed that we needed to perhaps start
introducing more of our original creations into the game, so as to not be
seen as infringing on the Big 2's (DC & Marvel) stuff. We had been
testing with familiar characters as it was fun, but this was always
intended to be an original game with original characters.
Tommy showed some of his on the FR Forums: Sgt. Shield, Green
Goddess, and Granite Girl. I quickly whipped up
"work-in-progress" skins for Hyperwave and Pulsar (see
pics on left), some characters I'd created years ago but never used.
Backstories for them? Well, I have a few things, but we haven't gotten to
the big storyline portion of this project yet, so I'll leave that for
another day.
Our good friend, Lightning Man, also gave us
permission to put his original characters in there somewhere and he
provided a nice splash screen.
But then ... Break #2!!!
Work continued steadily - Tommy was optimizing the use of textures on
his meshes and continually tweaking the many animations. I added a simple
animation viewer so he could test. In addition, I was doing a lot of code
cleanup and optimizations. Really boring stuff actually, but necessary for
the game to work.
My immediate goal was to get into ranged combat (which was going to be
tricky) and the object/map editors. Maybe even release a quick demo or
character viewer so people could check things out.
But then ... it happened again - an unplanned break.
It was October 2010, and just like the previous year,
all work slowly came to a halt. Again, it wasn't any one thing, but
various ones: Tommy started having issues with his hard drive and had to
rebuild his PC (it's possible he may have lost some of his work, I'm still
too afraid to ask how much). I got really involved with my job and family,
as often happens to me at that time of year.
Maybe we also were feeling burnout again. We had accomplished even more
than during our first stab at this in 2009, but we did not keep going.
|
|
Days and weeks turned into months passed and before I knew it, it was
2011. At some point (I don't recall exactly when), the FR
forums got hacked into oblivion and so we had even less reason to keep at
it. The Panda3D forums also got kinda quiet and I lost interest in reading
them for new improvements and bits of information. It seemed that there
was no real interest from anyone anymore.
I honestly did not think about the game for a long
while. Not until Nov 2011, well over a year
later.
A new hope?
A few things happened around Oct-Nov 2011 that pulled me back into the
project.
First of all, I completed an important project at my job that
I had been responsible for and working on since 2009. Completing this gave
me not only more free time, but a general feeling of "wow, I have my life
back".
Secondly, DCU Online went free-to-play. I had been interested in this
game since I heard about it (even got on the beta), but could not justify
the expense or time to play it. With my work project done and no money
barrier, I dove in.
|
|
|


|
Turns out I really enjoy DCU Online. I've played
other superhero MMORPGs, but this one just worked for me (doesn't hurt
that I'm a DC fanboy, probably). I any case, as I played, I started
noticing little things that reminded me of things I'd been working on for
my game. The way that you pick a combat-type in DCU (brawler, martial artist) was very much like what I
had in mind for my own game. The character customization
was something that Tommy and I had discussed a bit and seeing (and liking)
DCU's made me feel like getting mine completed.
Finally, I discovered BiL (BeardedInLair's) posts at the FR forums on his experiments
with Unity3D. His excellent stuff inspired me to take a
look at what I had done again. (and I also realized that the FR
forums were back up again thanks to BiL!)
I actually started looking at Unity. It seems like
a fantastic tool, but, at least right now, I can't get the hang of it! I
read a post from someone who said "Unity provides a really amazing art
pipeline, and an adequate programming API. Panda provides
the opposite: a really amazing programming API, and an adequate art
pipeline. So, whichever one of them looks better to you will depend on
whether you're looking at it from an artist's point of view, or from a
programmer's
."
At
the moment, I tend to agree. And I'm a programmer not an artist, so
I started getting my Panda code running again.
SuperSquad Rebirth
It had been over a year since I'd even looked at
this stuff. So I started slowly - installed the latest Panda SDK and
changed my game font to an opensource one. Looked good! I started a
reorg of the Character Editor (see at left) and started
squashing some coding bugs I'd left a year ago. I'd left off as version
v0.3.1, so I started a new one, v0.3.2.
In just the couple of weeks I've been back at this
(which included Christmas break), I have made the latest version a lot
more stable. Mainly by adding more classes to my code (boring techie stuff, but it's made a difference). I've also started programming the
game UI in a lot more detail. Inspired by DCU,
but even more by Warcraft III and World of Warcraft. The latest UI can
be see in the pic at the left.
I am glad to see that the Panda forums seems active
again and a major new SDK version (1.8) is just around the corner. My
immediate plan is to stabilize the UI by adding action butons (I know all
the power keys, but no one else would) and after that maybe even releasing
a pre-pre-pre-alpha version for people to play around with. Stay
tuned ... !
|
December 2, 2011 |
SuperSquad: Developer Diary #4
Magical Mystery Tour!
 |
Welcome back ... at the end of the last installment,
... wait a second - last installment was over a freakin'
year ago!?!?! Oops sorry about that, looks like another one of
my timeouts (I'll explain). Actually, I only realized the
Freedom Reborn forums were back up this week (they were gone for
quite a while). I had thought my audience (of like ... 5 people)
was gone forever.
I would guess the main questions for
anyone reading this - Is it done? Is it further along? Are you
still working on it?
Answers: No, not done. Yes,
much further along, though I have not touched it in about 6
months. Am I still working on it? Well, my posting this is a
sign that I'm at least thinking about jumping back in. (though
I'm not sure about Tommy, who is pretty critical)
In
any case, back to the story: I had left off around July 9,
2009. Things were rolling on the SuperSquad project. Tommy
and I thought ...3 , maybe 4 months ... we're done and we
release the game, become famous, and get hired by a game company
to make more games.
And then everything stopped. What
happened? Well, blame The Beatles.
Back in Dev Diary #1,
I mentioned my guitar/songwriting hobby. I had just picked up my
guitar again in 2008 after many years. Well, 2009 was the year
of the Beatles' comeback . All the albums were remastered and
Beatles: Rock Band came out. Seeing all the Fab goodness,
reminded me how they had gotten me interested in being a
musician all those years ago. The pic below shows part of my
guitar collection (the Beatles part!) |
I started spending more time rediscovering the
guitar and the Beatles' genius and less time coding Super Squad.
I started jamming with friends and even with people on the internet.
I started writing a song a day. Honestly, I think I was also feeling
burnt out on the Panda and coding. I needed a break.
Interestingly, Tommyman was also feeling the same , I think. Without
really saying anything we just stopped doing as much. Even though we
still chatted about other topics, the game was not mentioned as much
anymore.
Until Jan 5, 2010 ...
That day, posted that
I had learned of a new update to Panda. Also the Panda site itself had
been transformed to be more user-friendly and the documentation had been
updated (to make more sense IMO). I continued to look and learn with
some trepidation, as I was insanely busy at work (and still doing
music). |
 |
 |
- Finally, in early March I took the plunge again and by
Apr 8, 2010, I had coded a title screen and had the
beginnings of a character editor. (well ... at least I could show a
list of hero files from a folder, pick one, and have the model pop
up).
I worked to add a screen with all the fields in the hero
file to the editor , so you could .... y'know ... edit them. I also
reminded the few people who knew about this that my target date for
finishing this game was still 2012. (Hmmm... that's kinda close now)
By the end of April, the editor was working, along with
Resistances, the ability to save, copy, and delete characters (all
of this was trickier than it sounds).
To do these screens, I
was learning the Panda 2D GUI interface objects - something called
DirectGUI. Which is a massive pain in the ass. Really. I love so
much about Panda but this specific part of it is hard to work with -
it uses a different scale than 3d objects, there are very few built
in objects, you have to construct things out of parts.For example,
in order to have names pop up that I could click in a scrolling
list. I had to write a routine to add button objects for the names.
And routines to scroll a page at a time, etc. Not fun! I tested it
with up to about 2,000 hero files. It got really slow after that.
Made a note to optimize it more in the future.
But it got
done!
|
A note on game design: I had mentioned this
previously, but I designed it so you have direct control over character
Resistances.
This has several advantages over FF (IMO): - You
can customize defense very specifically (more combinations than FF) -
no wasting attribute slots (I call them "traits") to bump up your cold
defense, etc. You just set it here exactly how you want it. - No
passive defenses at all, freeing up power slots. - "0" is standard.
You can go 5 above and 5 below to choose whether you're very
invulnerable or vulnerable to a specific attack. (Again more levels than
what FF offered)
A reinvigorated Tommy started producing tons of
art - new meshes, improved meshes, new animations, skins, and objects.
By August 2010, I had gotten back to the main part
of the code and had greatly improved the AI as well as cleaning up my
code by removing unneeded functions and cutting down its size. |
 |
 |
I added the feature that made me "famous" in the FF world
in the first place (and a personal favorite) - "watch-mode" by pressing
Ctrl-W, All the characters would now just go at it until one side
(heroes or villains) were completely defeated. All melee punching of
course, nothing fancy. But all the characters who could - were
flying and running faster than others (remember all their hero files had
stats which the game was using for speed, strength, etc. - only
resistance was not taken into account yet) So it was a battle to behold!
I had no limits on squad sizes (still don't) so I was watching 8 vs
8 or 15 vs 1, whatever I would set my map file to. And Tommy kept
cranking out more and more meshes. Every time he did, a new warrior
joined the fray.
At this point, I added the capability for
characters to grow, shrink, and turn invisible. In the pic at the left,
you can see examples of this. All these meshes are the same size (and
visibility) normally. I simply wrote code to have them grow, shrink, or
go transparent when the player clicked the right button (And if the hero
file had the right trait in it). |
Tommy was innovating plenty himself. He took a
break from the characters and whipped up some buildings. By editing the
simple map text files to place the buildings, he created a quick city
that made the battle scene even cooler.
Tommy also figured out
the lines of Panda code that could make the game go into slo-mo mode.
Perfect for capturing some great superhero action shots with the
screenshot function I added.
At this point, I had a rough roadmap
written down. All the goodies to date comprised version 0.3 of
SuperSquad.
Version 0.4 would add: - Basic (very basic)
projectile/beam combat - Clean up the hero editor a bit (more
pulldowns, power editor) - Add a "Set up city battle" screen - you
pick your squad , the foes and then you fight. (rather than having to
manually edit the map file - Add energy costs to powers and
replenishing
|
 |
Version 0.5 would add: - Bug fixes (we had plenty of those) -
Better AI - better tactics (use power properly, AI editor) - Shield
powers - Keep implementing traits (had fly, grow, shrink, invisible,
and fast healing so far)
Story modes and missions would follow
after this.
This Dev Diary has gone on for quite a bit, so I'm
gonna try to wrap it up and promise to do another one before too long.
Yes, I will not wait another year!!
One last feature to mention.
On Aug 30, 2010, I was able to add dynamic speed
trails. As you can see in the pic on the right, a character running with
this feature turned on leaves a "trail" behind him , much like what you
see in comics. This is done completely with code I put together, There
is nothing special about the mesh, no special art file required. You
simply give a character this trait and they do this when they run.
Coincidentally, this was around the same time that our little
project was "outed" on the FR forums. Suddenly, everyone knew what Tommy
and I had been doing. Is that good or bad? Time will tell.
And
with that, I bid you adieu. Until next time .... |
 |
January 14, 2011 |
To get the new year going in the right way,
KennX is back with a dazzling array of new stuff. A
big 25 new custom meshes with skins for characters you never thought you'd see!
Been waiting for Wonder Woman in a wetsuit? Kenn's got you covered. Need some
Milestone characters? Kenn's your man. Been working on that Crest toothpaste vs
Snow Men mod and waiting for someone to make Crest toothpaste meshes with
toothbrushes? Kenn heard ya! (really!) Enjoy!




September
28, 2010 |
A cool dozen for y'all today! KennX unveils his latest ...
Enjoy!!!



September
20, 2010 |
SuperSquad: Developer Diary #3
Getting Somewhere!
 |
In the last dev diary, SuperSquad had been setup with 8
different meshes and it was possible to move them around with
WASD controls. Tons of enhancements followed over the
next few weeks: Hero files Added a whole subsystem
to read "hero" files from a specific folder and use the
information in them to know what mesh to load, etc. SuperSquad's
hero files are at the moment, simple CSV files (delimited by ";"
rather than ","). Still adding to this, but here's where it is:
NAME - character name MODEL - 3d model (or "mesh") used
SKIN - skin folder used ANIMS - animations folder used (more
on this later) STRENGTH - to be used to calc melee damage and
other things SPEED - to be used to calc char movement
AGILITY - to be used to calc % to hit for melee
(offense/defense) ACCURACY - to be used to calc % to hit for
ranged ENDURANCE - to be used to calc Hit points ENERGY -
to be used to calc Energy points TRAITS - a list of traits a
character has (ex: "Flight", "Shrinking") RESISTANCES - a
list of 9 resistances vs attacks (Acid, Energy, Heat, Mystic,
etc.) POWER1 - Still being defined NOTES - Freeform
comments about your character (ex: "Capt. Hero was born in
Alaska...")
|
As you can see, the hero files are
quite familiar but not quite the same as FF's. Major differences
include: - Energy rating controls amount of Energy, not
energy recharge rate - Resistance ratings allow you to
directly tweak how a char responds to different attacks like
Heat and Cold. No need to use Attributes or Materials to set
this up - Traits are like Attributes in FF , but a) you can
have 10 instead of 5 and b) there are no Traits to control
resistances to attacks as those are all covered elsewhere. -
There are other differences.
Camera controls
Panda's default 3d camera control is, IMO, not usable for a
RTS-style game. So code was written to make it closer to what
you would expect. To be honest, I'm still not 100% happy with
it, but it's getting there. It's patterned after FF, since I am
so used to that, but with a few differences. Will continue
tweaking this. |
 |
Collisions Panda supports collision handling of
3d objects (which is good - otherwise it would be quite the pain to
write a game like this). Added a little code at each character's
creation, so they would no longer walk through each other. Instead, they
push each other around.
AI It was now around
April 18, 2009 and I decided to take the plunge into
AI. The first time I had ever done anything in Python was way back in
2002 when I wrote a little mod for FF called EZ Danger Room.
Basically, it made characters chase each other and make decisions like
should I fly or not? I actually dug up my old EZ Danger Room code to
look at how I had done it and believe it or not, I was able to adapt it
to SuperSquad without too much of a hassle. (Did have to learn about
Panda intervals first).
 |
Suddenly, things were in motion for real as the enemy characters
started running after your squad.
A few more revisions
later (we were up to SuperSquad 0.1.8 at this
point), and the foes were intelligently deciding if they should
fly (taking off and landing on their own). One simple
change later and suddenly your squad members could do
everything the foes were doing. I'm making it sound easy, but
there was plenty of hair-pulling to solve glitches and bugs
(rotation issues, animations, etc)
Clicking
Characters One simple thing you're gonna need to do
for a game like this is to click stuff - click where you want to
go, click someone to fight, click an object to pick up, etc.
Panda fully supports this, but to do so, you start getting deep
into the collision system. There's a whole section of the Panda
manual on collision handlers that I'm only now starting to fully
understand, but by version 0.2, I had added the ability to
select a character by clicking them. |
Melee By
May 2, 2009, I was sick of the characters
chasing each just to say "hi", so I added basic melee. You could
now punch foes by clicking on them and eventually even knock
them out. Plenty of bugs, though: - after 1 punch, couldn't
seem to switch back to idle mode - have to fix the combat
text , right now it keeps writing on top of itself until it's
unreadable - you could attack a foe just by clicking them, it
doesn't check if you're near enough or for collisions - you
can cheat by clicking the mouse button repeatedly (without
waiting for the anim to complete) and it still counts as an
attack
It did use STR to calculate damage and you and
your foe's AGL to calc % chance to hit and subtracts dmg from
foe's HP correctly. So it was a major step forward. This is one
of the times (it's happened a few times before and after as
well), that Tommy famously remarked, "it's starting to feel like
an actual game!" |
 |
 |
When I code, I really make an effort to use as little code as
possible (less code=less bugs is an old programmer's mantra).
Also, always trying to write code so it can be reused. So I was
very satisfied when just adding 1 line of code suddenly made the
foes capable of fighting back!
Version 0.2.4
added basic flying melee. Tommy is hard at work as I write this
to add some new anims to this, but the basic logic is fully
functional.
BTW - our test scene, even now, is JLA vs
Avengers as those are the sample meshes and skins that Tommy
made.
Maps At this point (May
23, 2009), also added the concept of "map" files. These
are plain text files that are read by a function in my code to
create the scene. Obviously, they will be created by a
still-to-be-made map editor eventually. |
For now, I just created a quick map in notepad:
#TERRAIN;name;model;pos;hpr;scale #OBJECT;name;model;pos;hpr;scale
#SKYBOX;name;model;pos;hpr;scale #LIGHT;name;type;color;pos;hpr
#HERO;name;model;pos;hpr;scale #FOE;name;model;pos;hpr;scale
T;map;world;(0,0,0);(0,0,0);(1,1,1)
S;skybox;skybox;(0,0,0);(0,0,0);(800,1600,1000)
O;dustbin;dustbin;(30,20,0);(0,0,0);(1,1,1)
O;dustbin_lid;dustbin_lid;(30,20,13);(0,0,0);(1,1,1)
O;lamp_post;lamp_post;(20,20,0);(0,0,0);(1,1,1)
O;pave;paving_slab1;(0,0,0);(0,0,0);(1,1,1)
L;light_1;ambient;(0.3,0.3,0.3,1);(0,0,0);(0,0,0)
L;light_2;directional;(0.74,0.7,0.7,1);(0,0,0);(0.7,0.2,-0.2)
H;superman;superman;(100,0,0);(0,0,0);(1,1,1)
H;batman;batman;(75,0,0);(0,0,0);(1,1,1) H;wonder woman;wonder
woman;(50,0,0);(0,0,0);(1,1,1) H;green lantern;green
lantern;(25,0,0);(0,0,0);(1,1,1)
H;flash;flash;(0,0,0);(0,0,0);(1,1,1) F;naked
guy;male_basic;(100,-400,0);(0,0,0);(1,1,1)
F;hulk;hulk;(75,-400,0);(0,0,0);(1,1,1) F;iron
man;ironman_21;(50,-400,0);(0,0,0);(1,1,1) F;captain america;captain
america;(25,-400,0);(0,0,0);(1,1,1)
F;hawkeye;hawkeye;(0,-400,0);(0,0,0);(1,1,1)
F;thing;thing;(-25,-400,0);(0,0,0);(1,1,1)
Movement Switched
to point-and-click movement like a traditional RTS, which
required more collision system code. WASD controls are still in
there, though.
Pausing Yeah, RTS
games can be hard, so of course, a Pause feature had to be
added. Not hard to do, but like much in Panda, you have to code
it yourself. Remember, it's an SDK , not
a "game creator".
Skins We definitely
wanted for skins to work like they do in FF, where you can
choose a skin folder for a model to use. This turned out to be
quite tricky in Panda as models have multiple image files mapped
to them, etc. Eventually, got some code working that did the
trick and this is now called when loading your character, to set
the skin to the folder specified in the hero file. At the right,
is an early test pic of the Supes model using Cap's skin.
Doesn't look bad, actually... |
 |
 |
Art Throughout this, Tommy was creating tons
of new animations (remember we wanted everything in the game to
be original) and adding an occasional character to the roster.
He also did lots of great research into Physics and LOD (level
of detail). Things we may implement later.
Other stuff After
fixing all the melee issues, I added various miscellaneous
features, usually just because I had just heard about them on
the Panda forums. The picture at the left shows an option I
added to show the scene in wireframe mode. I also added options
to remove all textures from the scene, and take screenshots.
But Then.... It was now June 9,
2009, I had started to look at adding title and menu
screens (no idea how to do it :) ). But then ... all work on
SuperSquad stopped. Why? stay tuned ... |
September 3, 2010 |
SuperSquad: Developer Diary #2
Fast and Furious!
 |
Welcome back ... at the end of the last installment,
Tommyman had discovered plutonium ... that is, he'd successfully
converted one of his meshes to Panda format.
A flurry of
activity occurred over the next several days as we poured over
the Panda documentation and learned all we could.
Tommyman converted more meshes and started adding animations. He
gushed over the capabilities of the Panda engine - bump maps,
blending animations, half-body animations, sharing animations
among meshes. All things that we knew FF couldn't do, but could
be achieved with Panda.
I started looking at how to code
this thing. The Panda documentation is all online and I just
started working through the introductory tutorial. In 2 minutes
and using only Notepad, I had a panda walking across the screen.
Something I hadn't done in 2 years with other engines. |
Tommy threw his Hulk and Thing
meshes into one of the Panda sample programs. It was great fun
discovering how easily we were seeing amazing things on screen.
I played around with the code that controlled camera movement to
make it work more like FF.
Tommy and I both set out to
start building our dream superhero games, agreeing to share art
assets (which was very nice of him as I had none :) ), and help
learn the coding side (ah, I can help there ... :) )
As
I think he's stated elsewhere, his was more action-oriented,
i.e. Marvel Ultimate Alliance or even fighting-game like. Mine
was Super Squad, more like Freedom Force,
RTS-style. Remember, I had designed all this in my head as a
turn-based game years ago. FF just made me see how a real-time
version could work. |
 |
The Coming of Super
Squad
On April 5, 2009, I coded
the initial version of SuperSquad. And here it is:
FILE- MAIN.PY
from supersquad import *
loadMap("world") hulk =
loadChar("hulk", (0,0,0), .5,.5,.5) thing = loadChar("thing",
(5,5,5), .5,.5,.5) run()
This code also requires a supersquad.py file which I did:
FILE- SUPERSQUAD.PY
import direct.directbase.DirectStart from
direct.showbase.ShowBaseGlobal import * from
direct.interval.IntervalGlobal import * from direct.gui.DirectGui
import * from direct.showbase import DirectObject from
direct.actor import Actor from direct.task import Task from
pandac.PandaModules import * from direct.showbase.PythonUtil
import * import random, sys, os, math, glob
def
loadMap(mesh, pos=(0,0,0), hpr=(0,0,0), scale=(1.00,1.00,1.00)):
print "Loading model: " + mesh map =
loader.loadModel("art/objects/" + mesh + "/" + mesh)
map.setPos(pos) map.setHpr(hpr) map.setScale(scale)
map.reparentTo(render) return map
def loadChar(hero,
pos= (0,0,0),h=0,p=0, r=0, scale=(1.00,1.00,1.00)): char =
Actor.Actor("art/characters/" + hero + "/" + hero)
char.setPos(pos) char.setHpr(h,p,r) char.setScale(scale)
char.reparentTo(render) return char
My thought was to write a library of functions (supersquad.py)
that "issue" files would call.
I'm kinda embarrased to post this as it doesn't do much - just makes 2 characters
appear on a flat map. Plus, it is quite sloppy code (too many imports, too many
parameters as I would learn). Still it showed me that I could start getting the hang of this. I
quickly added loading of animation files and a moveTo function to get these
dudes moving around.
Around this time, Tommy went Panda-exclusive (stopped doing FF stuff for a
while) as he was learning how to best export meshes and creating all-new
geometry, animations and skins. We agreed that we wanted everything in the game to be
original, that is created for the game itself. We didn't know if there would
ever be a finished game, of course, but we wanted it to be something we had done.
That being said, moddability, was (and still is) high on the list of things to
deliver. We want people to do stuff with it in the future.
I quickly did a new version of Supersquad that
read little text files (i.e. "hero files") from a folder and used the
information in them (name, mesh, skin, stats) to know how to load a
character and their animations.
I added WASD controls to walk
around, put up little portraits (can't click em, but they look cool),
and you could press the number keys 1-8 to choose which squad member to
control. Yes 1-8! Unlike FF, I wanted there to be the possibility of
having big squads. A 7-man Justice League needed to be possible, dammit!
You can see the fateful initial screenshot of the original lineup to
the right! As you can see, Tommy had converted more meshes and
animations.
And it was now April 11, 2009. The first week of
Panda excitement had come to an end.
TO BE CONTINUED ... |
 |
August 30, 2010 |
Since the personal project I've been working on was revealed recently on the ol' freedomreborn.net forums - I decided to post this
to share a little more information about the game development work I've embarked
on (embarked on quite a while back, but more on that in a bit).
|
SuperSquad: Developer Diary #1
A Little Background...

|
First a
little about me -- obviously, I'm a lifelong comics geek (and
guitarist/songwriter, but that's another diary). Essentially growing up with
superheroes, I always thought, why doesn't anyone make a great superhero
computer game?
Back in the 1980s and 90s, before I even heard of Freedom Force (I
first heard about it
while it was in development in 2001), I had mapped out the superhero game of
my dreams. Inspired by things I'd only read about on the net, like the
original Champions and Guardians: Agents of Justice
(games which never were completed or released - go ahead, google 'em), I'd
designed my perfect game - complete with basic RPG stats (Strength, Speed,Agility, etc), Powers (Shields, Energy
Blasts, grenades, Flying, etc), random missions and scenarios (alien invasion,
rescue hostages, foil bank robbery, time travel, alien world, robot armies,
ancient evil, etc), and other little goodies (design your team's super HQ,
gain "fame" points and add labs, costumes, weapons, more team members).
I am a
computer software developer by profession, but on the biz
application/database side - definitely not on the game visuals side, so my
game was (in my head) a turn-based affair. Basically, a superhero XCOM
or Heroes of Might & Magic or D&D Gold Box Series. I
started doing things in languages I knew like Visual Basic, Delphi, etc.
Probably still have some of that code lying around. I did figure out all
the basic RPG mechanics and gameflow. |
And then I heard about Freedom Force and got very
excited about it. Realtime? 3D?, moddable? Wow! As my running this site
shows, I think the FF series was a great success and brought lots of fun to
me and many others (hard to believe it's almost 10 yrs since I first heard
about it)
Now, I haven't been active in the FF world in recent years (really since
2005) due to personal issues I'd rather not get into. I don't even curently
have either of the FF games installed on my PCs. I do, however, keep in
touch with a handful of folks I met online during the FF heyday. Funnily
enough, I have not yet met any of them in person, but I count them as close
friends. We chat on a private forum about all sorts of stuff, only a small
part of it FF-related. The Dream Reborn
And so,
back on Jun 3, 2007 (it's handy to have a forum to track the dates for you
:) ), I posted this:
I got an email recently from someone re: my
hero recipes for FF. It's been a looong time since someone tracked me down
about FF. I said I'd check my files and send him what I could (he wanted the
list of what meshes/skins I use - I may have it somewhere).
It
started me thinking that with Windows Vista already out there - FF (and
FFv3R?) may soon no longer be playable. (Anyone know if they work on Vista?)
And it's a shame, as there is no other way to satisfy a real
superhero game fix. Sure, the MUA and JL:Heroes of the world are fine, but
the FF series had a lot going for it. (customisable, moddable, the
silver-agey feel).
I started thinking wouldn't it be great if there
was a new project to build a FF-like framework that we could still play
around with and it would even improve the FF we all know. Things like more
attributes than the usual 5 (10? 20?), more granularity in the stats (1-100
instead of 1-10?), Some of the FFX-like stuff, etc?
I'm not a good
enough C++ programmer to make it happen, but maybe someone will pick this
up.
Or maybe a turn-based strategy version (like XCOM which is said
to have inspired FF in the first place). I was around when FF was still a
rumor and I'm pretty sure going to RTS-type game play was something that was
added later. But maybe a tactical strategy version could work (and I'm
probably a decent enough programmer for that ).
Anyway, just
rambling, but I thought I'd throw it out there for your thoughts.
The other guys on the forum were interested and encouraging, so I
spent the next month or so doing some VB prototypes (I still have all this
code) - it showed how the new game would be a host for individual "comics"
(mods). The initial screen lets you pick what comic you want to play and
then you're in that game. I built a rough hero editor (used micro heroes
artwork for placeholders and assumed turn-based game). The codename was "FF
Tactics" (Yeah I know there's a Final Fantasy Tactics) as it was turn-based. However, I couldn't get my head around
how to do the art part of it, so I lost interest and stopped working on it.
Super 3D Pandas!I never forgot about the game though and kept
googling the net for ideas/tools. Finally, on Mar 29, 2009 (thanks again
forum dates), I posted :
After much googling over the past few
months, I stumbled across this:
http://panda3d.etc.cmu.edu/index.php
a totally free 3d engine that can be used for commercial purposes
originally developed by disney and used for their 2 mmo games (pirates and
toontown) and best of all - it's programmable in Python!
This may
be what could be used to build the new game we were discussing a while back.
Tommyman (one of the folks I met through FF who I consider a good friend), pointed out to me that Bearded had found it a few months
before but no one had been able to get the Max importers working. I thought
it looked like a great game development tool. Tommy said he'd look at it
again. And then on April 4, 2009 - Tommy had done it! One of
his FF meshes converted to Panda
! (see the milestone pic below)

With this one major step forward - we were off and running ....
TO BE CONTINUED ....
April 1, 2010 |
It's come to my attention that there are rumors of an April 1 update here at
the Fortress. Y'know ... like the one we did last year.
Yeah, that was a good one ... but we've all had a busy year and haven't
gotten around to Freedom Force stuff recently.
So sorry... no update this time around. Happy Easter, though.

Proud winner of 2 Golden Skinny Awards

ARCHIVED UPDATES
2009 2007 2005 2004 2003 2002
|