On this Page is my programming diary for the development of 'Tale of the Patriarch' CRPG
The discussions should be of use to other beginning programmers

My Other related pages

Art Projects
Old Diary from a few years back.




September 10, 2004
Been spending time recently on cleaning up some gameSpaces plug-ins - Straightener, SnapFlat, and I'll be doing some error-trapping on SpinQ. SnapFlat and Straightener required a full scene search in gameSpace and I'll be using that code to create a simple level exporter for gameSpace.


August 20, 2004
I've been spending some serious time doing up a Armour Calculater for a pen & paper role-playing system - Harn/Harnmaster. It has a dynamically loading armour values that can be modified in a text file. It also has printouts. I need to do some error-checking code and to do the file saving and loading functions. This coding will be very useful for my RPG as I'm using the same combat system.
GoldCalc HarnMaster Armour Calculator pic


July 23, 2004
I've done a lot of work on the Art path for the tiling game. I've created the loading screen for the art but I'm having difficulty with the Cutting region. I need to paste it to other screen but my diagonal algorithm seems to be off. I also need to learn about dynamic menu items so I can paste the cut tiles to different tilesheets.
June 22, 2004
I've been goofing off a bit from programming but progress has been made.
1st - the goofing off.
I picked up the game Thief: Deadly shadows(Thief3) and have been really getting into the world. You play the Master Thief Garrett and are involved with skulking, thieving, and discovery of secrets involving prophecies. I'm a substantial way into the game and it's great. I hang out at the Thief on-line forums and an RPG issue came up. Someone wanted to add skills that increased as time went on. But the unique nature of Garrett comes from his very good skill and his bitter attitude. While there's a lot of game-play to starting a blank character, there's a lot of emotional value from a character with his own personality. If the player plays too many RPGs, they tend to be of the same style and emotional range.
Other goofing off - Been doing some UT2004 after down-loading some community bonus map packs including more ONSLAUGHT maps. And been trying to finish off my game of TRON 2.0 - fabulous game. I've gotten a bit tired of 1st person shooters but this was fun. I was stuck for a long while when faced with a Data Wurm - I looked up some cheats and was about to try them when I loaded up TRON 2.0. I panicked and started hitting buttons and brought up a Super killy weapon - something called a Dim - It just seemed to suck the energy out of the Data Wurm. Kewlness! and I got past that obstacle.
On the programming front I had to do a deep think about multiple art sources for the tiles. For example, if my buddy Jack created his own tiles, how would that mesh into my tiles without conflicts? I finally figured out that the tiles would be Exported a sheet at a time with the TileInfo added. During the importing is where the conflicts would be sorted out.
I've made good progress in the Tile Editing functions. I can dynamically load Tile Sheets from a text file, select groups of tiles from the current Tile Sheet, and I'm close to being able to paste them from tile sheet to the Encounter Map. But I've got to set up the Encounter Map. In dealing with the raw Tile art, I've got my cutting functions to work out. Currently I can select a square area and turn it into a tile but that ends up rotating it 90 degrees. I want a direct copy of the art without that distortion; I think that would be better looking. The distorted art is harder to deal with - I've worked with that in my earlier 16bit editor. I also did some learning about STL vectors - I've got the Tiles, Tile Selections and the list of TileSheets on vectors. With the vector of Tiles, I had to figure out a way to access them without error or error controlled. Here is that STL Vector discussion on GameDev.Net - my 1st choice for programming questions.

June 5, 2004
Back to TileData storage. My thinkings progressed to the point where I've got a system of tile Sets. I'm going to storing a Global Tile Sheet object so I know which tile I'm painting with. I'll take a look at my code int PatEdit16 for tile copying that allowed me to Cut and Paste groups of tiles.
May 30, 2004
I did some programming this weekend. The TileData pixel data was stored in an 16bit array and I had to make it 32bit.
At a higher level of design, I had to figure out the TileData storage. Unlike most tile games where there's a set # of tile Sets, I'm going to be allowing the addition of more sheets of tiles. I've stored the list of tiles and each tile will have the .bmp that it goes with. At the time of the Level saving for the game files, I'll probably strip the bmp names and maybe have a header that records the bumpnames. I should have a common sheet of tiles though that's automatically loaded.
May 27, 2004
I've done some work on loading in the Raw Art that will be converted into tiles - sweet looking. But the Tile Cutting will have to be converted to 32 bit ands I have to review the code I currently have. I've totally forgotten about its functioning. My old code only cuts the surface into squares and then rotates them 90 degrees. I'm going to have to develop new code that accepts the surface AS IS and cuts tiles along the diagonals. The original was very tricky but this cutting style should be easier.
I'm re-working the Sprite Editing as well. I've got a lot of old code that needs to be refactored to 32bit but at least the interface is easier as I can use buttons the Sprite Property Page. Though I want to ade a menu to the Page. Not functioning. That should take the weekend


May 24, 2004
Sometimes it's hard to see the work that been done until a whole system has been entered and compiled. Some changes are short, quick, and sweetly visible.
I've just finished in the last few minutes adding functional ALT-TAB; I just added and modified the CMainFrame::OnActivate() to block the Blitting.
I've added 2 more Editing Modes - Tile Editing - the 1st mode will allow editing of the details of individual tile settings and the 2nd submode will allow me to Import art and Cut Tiles. But I've just set it up; I'm going to have to dig deeply into the TileLists and Tile Editing to complete it. Might take the Entire week with reworking to add the 32 bit tile-cutting and storage. The coolness I added allows anyone add any number of tile sheets to the Editor. So an artist can render out a 3d screen to 2D, import it to PatEd, cut it into tiles and save it into the PatEd system for use.
Maybe I'll take some time to create a 3d cobbled Town Plaza to play with.
I've also got a lot of reworking of the Sprite Editing to do, especially the 32 bit stuff and loading.


May 19, 2004
When I Alt-Tab to another Program, the ScreenPaint doesn't paint over but it's not fully activated when I Alt-Tab back. I have to set the focus on the Main Painting Window. I use OnActivateView but as I've got 4 views in my program, if the focus is not on the Graphics View, then the screen won't re-activate correctly. I'm looking at WM_ACTIVATEAPP messages or checking the 3 other views.
I've hooked up a World page that will allow me to add areas and conversations. Haven't finalized the loading as yet; that's part of the WorldMap Object that'll load in the data.


May 17, 2004
I found out my screens were actually 32bit depth rather than my standard 16bit. I've got a good set of 16 bit code (edge-filtering and pixel manipulation and alpha-blending) and I was hoping I wouldn't need to modify it for the editor. But when you create the DirectX Interface, all surfaces match the regular Windows bit depth. I've left on GameDev web-site a GameDev question that asks if anyone knows of a way to have both 16 and 32bit surfaces.
A short while ago, I figured out how to do 32bit pixel manipulation. So some tension is gone from the Sprite Editing situation. Alpha-blending not so much. I still prefer to work in 16 bit. It cuts down on the memory footprint.
On the Task of Researching TabControls in order to place them on front, I found it was a simple m_pMyPropSheet->SetActivePage(). So when I switch to Sprite Editing, the Sprite Page shows up. Kewlness!!
===== Things to do ======
Issue - When I Alt-Tab to another Program, the ScreenPaint still shows through== DONE but not fully satisfactory
Review the CSV code to input the skills Masterlist.
Add a WorldMap class
Scan in a world map - will have to tile it and then figure out a multi-level method of using & editing it. Will use Alpha-blending code.
Diagram out encounters and work out the variables.
====Games
Read a nice preview of Thief 3. Looking forward to it. Picked up KOTOR for $30. Said to be ground-breaking. Don't get much time to actually play games. It's more pleasurable/satisfying to create my own. But I'm used to celebrating the small things I accomplish.
I've started playing Deus Ex: Invisible War. It's no System Shock 2 but I get to do a lot of hacking around. More anarchic than I'm used to in the standard 3D game. I start out as a trainee for a covert ops organization but when some religious cultists attack, I find out the covert ops guys have been watching me through 1-way glass. I'm going to Lower Seattle to talk to the cultists.
Lots of fun stuff/bits to do.

May 15, 2004
I've done the extraction of the Sprite Editing code from my old editor and the rendering to screen portion of it seems to be compatible. But the interface is going to have to be redone.
As the old Editor was a full screen app, I had to roll my own interface - PopUp choice boxes, DI data entry fields, windows handling system, menues. Very useful for creating the game interface but was not robust enough or debugged enough for an editor that I could hand off to someone else for content creation. A high volume of content has to be created and has to be done with as few user hassles as possible.
For that I went with MFC. So the Sprite Editing will have to be done through OnMouseMove and OnKeyUp functions.
I'm also going to be adding a Sprite Editing Tab Page to cover the necessities. Easier to leave the Controls on the TabPage than writing my own. I will have to do some interactivity on the Graphics area but I'll try to keep it to a minimum.


May 10, 2004
Started up my diary again just to keep focused on the Patriarch videogame I'm creating. It's a 2D Isometric CRPG. It'll be turn-based and possibly based on the Harn IP(Intellectual Property) It's more like fan fiction for private pleasure than a saleable game. But 90% of the game is my own creation with stuff that is not HArn specific(most of the story takes place off of HArn in imaginary made-up places). If I go for saleability, I'll strip out the IP stuff. I've made it modular enough to swap out the characters easily.
Currently I'm at the major step of creating the game Editor
View 1 of the Editor
Character Editor
Right now I puzzling out how to get the double-buffering to work. I was painting directly to the main editing surface but that produced flickering. I've set up a backbuffer and am know putting everything through that and then doing one Paint from the backbuffer to the primary. Very clean and crisp. Still have clipping issues for stuff I drag around on the screen with the mouse.
===== Things to do ======
Review the CSV code to input the skills Masterlist.
Find the codes that show the sunsigns and months. That should make the Spreadsheets easier.== DONE but they don't seem to make much difference
Add a World Map TreeList that so I can start creating Areas.== DONE
Scan in a world map - will have to tile it and then figure out a multi-level method of using & editing it. Will use Alpha-blending code.
Diagram out encounters and work out the variables.
Add mapped variables to the controls.== STOPPED have to review variable or Control Types
Hunt down the Sprite Editing code.==DONE and intergrating now
Reserch TabControls in order to place them on front.== DONE




Any Questions or comments?? Just e-mail me(John/Zoomboy) at my new e-mail address
zoomie _AT_ telus.net
jzoomiethomas@cs.com was my old e-mail address