Front Office Football Central  

Go Back   Front Office Football Central > Main Forums > Dynasty Reports
Register FAQ Members List Calendar Mark Forums Read Statistics

Reply
 
Thread Tools
Old 11-04-2004, 03:24 AM   #1
Sebastian Palkowski
Mascot
 
Join Date: Nov 2004
Location: Hamburg, Germany
A Programmer Dynasty (Baseball Manager)

Before I start on why I start this thread just a little background on my person:

I´m from Germany and 26 years old. At the moment I study History to become a teacher someday. As most people in Europe I love football (and by that I mean soccer for all your Americans) and watch all of the games by my hometeam (Borussia Dortmund) on TV. 6 years ago I became a huge Redsox fan and during my 5 month stay in Boston I became a diehard. I watch as much games as possible here in Germany (MLB.tv) and still have photos of me in front of the Green Monster on my wall. During the 5 month in Boston I went to about 10 games (2 of them against the Ya*ke*s, one with "the old Pedro" on the mound) at Fenwaypark. I know pretty much about how Baseball is played and just started to learn more about the "fun stuff" like Win Shares or DIPS.

So why do I try to program a Baseball Manager? First of all, I have to learn C++ for one class and for me it is always easier to learn something with a projct. I´m a big fan of Ootp (in fact I´m betatester since version 5) and I have a long running Ootp-league (since 2001, 1 SIM/day) going. But as every game in my opinion Ootp is good but far from perfect and with Markus going to SI I think the game loses something from it´s charm. So I have this league and I know what problems Ootp has in some areas and I always wished that Markus would address this problem and I needed a project and so my Baseball Manager idea was born. Another reason is that I want to improve my english skills so writing this will help me to learn the language.

The final goal for this project is to have a "playable version" of this game but I have absoltly no timetable. On my "to do" list:

1. I need to learn (more) C++ stuff
2. I need to learn (more) Win32 stuff
3. I need to learn (more) Baseball stuff (like more in deep stats, the financial stuff and more about the history)

For the game:

1. I need a database to import into the game. (I have some stuff done here)
2. I need a gameengine to simulate games. (Again, some stuff is done)
3. I need some sort of GUI. (ideas but nothing done)
4. I need all the additional stuff like finances, coaches, scouting, contracts, etc. (nothing done but a lot of ideas)

Next time I will look what I already have and what sources I use (like books).

palli

Sebastian Palkowski is offline   Reply With Quote
Old 11-04-2004, 02:39 PM   #2
Sebastian Palkowski
Mascot
 
Join Date: Nov 2004
Location: Hamburg, Germany
Ok, next report:

First of all I want to write what sources I use to learn C++ and Baseball.

1. "Learning C++ in 21 days"
To learn the basic stuff in C++ I can recomend this book. I read the first 14 chapters and that was a good starting point. But I hate typing the examples from books like this because it is boring (thats one of the reasons for my project).

2. "GOTO C++"
Not as good as the first book but it has some advanced stuff like STL. Not good for learning C++ but a good book to look something up.

3. "Learning Visual C++.Net in 21 Days"
A big disapointment. I bought this book to learn more about Win32 programming but thats almost impossible. It always uses MFC and after the first 2 or 3 chapters I decided not to use MFC (games do not use MFC anyway).

4. "Tricks of the Windows Game Programming Gurus"
A great book! Exactly what I was searching for: Windows programming but absolutly no MFC.

5. "Windows Programming" (Petzold)
Another great book. For game programming it is a little bit "over the top" but to look up stuff like menues, windows or buttons it is perfect.

6. "Bill James Hisorical Baseball Abstract"
A good starting point to learn more about the history of the game.

7. "Win Shares" (Bill James)
I´m realy proud to have one here in Germany. I thing that a Baseball Manager can use a lot of stuff from Bill James and I will not only use Win Shares as a stat.

Bill James is a good starting point. When I wrote the first version of my game engine I used Bill James Log5 method to determine the outcome of an AB. It was possible to take any batter and any pitcher from MLB and simmulate one (or more) AB. The batter was representet by Hits, Doubles, Triples, Homeruns, Walks, the pitcher by Hits-, Doubles-, Triples-Allowed, HRA and BBA. People who know Ootp3-5 will notice that this is more or less the same method. The big problem is that Strikeouts have no effect, they are just Stats. So as Ootp6 switched to DIPS, I did the same. The DIPS system is much more complicated to simulate but I wrote the second version with a very simple form of DIPS. There was only the possibility of a Walk, Strikeout, Homerun or Ball into Play.

When I "finished" the second version I decided to work on the database first. The reason is simple. To test the gameengine I need more then one batter and pitcher, I need a league with teams. So the last few weeks I worked on the database.

The Lahman database is the perfect startingpoint. Now I needed just a way to import the database into my classes. I use the CSV-version and firstly I wrote a parser to write every table into different arrays. The problem was that this system was not very flexible. So I wrote a new parser and used vecors this time. Now I can import every table and have a vector with the master table, one vector with the pitching table and so on. The vectors consist of strings. The only problem remaining is that after the import all strings (only text, not the numbers) have "" around them. So I need to find a way to remove them.

Next, I choose a startyear and search for all players that had AB´s or IP´s in that year and write the playernumber in another array so that I have exactly all players from one year. I created a simple CPlayer class (I will expand the class later) and can now fill in the information.

My next project was to save the data to disc and my fist plan was to write the whole class to disc. Here I had my fist problem. I have a hard time to understand pointer and the use of Stack/Heap. I know I have to put the classes into the Heap (and I did that with "new") but then my plan to save the casses did not work anymore. So I wrote a save-function for CPlayer where I simply write every variable after variable to disc. It seems to work nicely so far.

palli
Sebastian Palkowski is offline   Reply With Quote
Old 11-04-2004, 05:36 PM   #3
GoldenEagle
Grizzled Veteran
 
Join Date: Dec 2002
Location: Little Rock, AR
Good luck with your game. I am into the whole programming thing myself as well. I have read many of the same books. Right now I am using the GUI toolkit called Qt. It seems really cool. I got the non-commercial version for the time being. Real nifty.

Stay far far away from MFC.
__________________
Xbox 360 Gamer Tag: GoldenEagle014
GoldenEagle is offline   Reply With Quote
Old 11-05-2004, 01:16 AM   #4
Sebastian Palkowski
Mascot
 
Join Date: Nov 2004
Location: Hamburg, Germany
Thank you. I heard of Qt but could you please tell me more about it?

palli
Sebastian Palkowski is offline   Reply With Quote
Old 11-05-2004, 10:34 AM   #5
dixieflatline
High School Varsity
 
Join Date: Sep 2003
QT info here:
hxxp://www.trolltech.com/

Baseball statistical analysis here:
hxxp://www.baseballprospectus.com/
hxxp://www.baseballthinkfactory.org/

Baseball prospectus has gone to a pay site but there still are some interesting stats kept on the website that are free. Also, old articles that were written before they started to charge are still there and free.

Pure statistics here:
hxxp://www.retrosheet.org/
hxxp://www.baseball1.com/
hxxp://www.baseball-reference.com/

Statistics for every player who basically played baseball and the parks they played in.

Good luck. There are some good programmers here on the board and several people who know baseball in and out so feel free to ask some questions.
dixieflatline is offline   Reply With Quote
Old 11-05-2004, 07:09 PM   #6
GoldenEagle
Grizzled Veteran
 
Join Date: Dec 2002
Location: Little Rock, AR
Qt allows you to code a GUI interface very quickly. It also does not create the overhead that MFC does. A bought the book C++ GUI Programming with Qt 3 which comes with a non-commerical version for Windows. The actual software is a bit pricy, so you will have to decide if it is worth it.
__________________
Xbox 360 Gamer Tag: GoldenEagle014
GoldenEagle is offline   Reply With Quote
Old 11-05-2004, 07:21 PM   #7
JeeberD
General Manager
 
Join Date: Nov 2002
Location: The Town of Flower Mound
Not to threadjack, but where in Germany do you live?
__________________
UTEP Miners!!!

I solemnly swear to never cheer for TO
JeeberD is offline   Reply With Quote
Old 11-06-2004, 04:02 AM   #8
Sebastian Palkowski
Mascot
 
Join Date: Nov 2004
Location: Hamburg, Germany
I was born in Dortmund but moved to the north 16 years ago. I´m now in Hamburg. Maybe that is the reason for my love of the city Boston because Hamburg and Beantown are very similar.

palli
Sebastian Palkowski is offline   Reply With Quote
Old 11-06-2004, 08:15 AM   #9
Sebastian Palkowski
Mascot
 
Join Date: Nov 2004
Location: Hamburg, Germany
Argh, I´m working on the function to save my CPlayer class and I search for a way to save the informations like names. I use std::string to store them and I know that it is not possible to store this type to disc so now I look for a way to convert a string to some sort of char so I can save it to disc. So if someone has any idea I would be very happy.

palli
Sebastian Palkowski is offline   Reply With Quote
Old 11-06-2004, 10:56 AM   #10
JeeberD
General Manager
 
Join Date: Nov 2002
Location: The Town of Flower Mound
Quote:
Originally Posted by palli
I was born in Dortmund but moved to the north 16 years ago. I´m now in Hamburg. Maybe that is the reason for my love of the city Boston because Hamburg and Beantown are very similar.

palli

Very cool. My father was in the Army and we spent seven years in Deutschland, though more to the south. We lived in Frankfurt for three years in the early eighties and in Stuttgart for four years in the late eighties/early nineties.

I miss Germany something fierce, especially around this time of the year. The Kristkindle Markt is what I visualize when I think about Germany. Gluwein, hiesse maronie, and mandeln are what it's all about.

Sigh...
__________________
UTEP Miners!!!

I solemnly swear to never cheer for TO

Last edited by JeeberD : 11-06-2004 at 10:57 AM.
JeeberD is offline   Reply With Quote
Old 11-06-2004, 11:06 AM   #11
fantastic flying froggies
Pro Rookie
 
Join Date: Nov 2002
Location: Sunny South of France
Quote:
Originally Posted by JeeberD
Very cool. My father was in the Army and we spent seven years in Deutschland, though more to the south. We lived in Frankfurt for three years in the early eighties and in Stuttgart for four years in the late eighties/early nineties.

I miss Germany something fierce, especially around this time of the year. The Kristkindle Markt is what I visualize when I think about Germany. Gluwein, hiesse maronie, and mandeln are what it's all about.

Sigh...

I know the feeling Jeeb. I spent nearly 3 years in Dresden (after the fall) and the period leading up to Christmas was probably the best, even if it was damn cold! But that 's what they have the Gluhwein for, eh?
__________________
Detroit Vampires (CFL) : Ve 're coming for your blood!
Camargue Flamingos (WOOF): pretty in Pink
fantastic flying froggies is offline   Reply With Quote
Old 11-06-2004, 12:55 PM   #12
Sebastian Palkowski
Mascot
 
Join Date: Nov 2004
Location: Hamburg, Germany
Me and my girlfriend are already very excited about the "Weihnachtsmarkt" which will start in 2 weeks.

If someone is interested, my legaue can be found here:

German Baseball League

We simulate every day (always 2 or 3 days) and we just started our 8. season (we were founded in 2001). We already have 2 Americans (Florida and Minnesota), one who lifes in Germany, the other is a teacher in New Jersey.

palli
Sebastian Palkowski is offline   Reply With Quote
Old 11-06-2004, 01:10 PM   #13
GoldenEagle
Grizzled Veteran
 
Join Date: Dec 2002
Location: Little Rock, AR
Quote:
Originally Posted by palli
Argh, I´m working on the function to save my CPlayer class and I search for a way to save the informations like names. I use std::string to store them and I know that it is not possible to store this type to disc so now I look for a way to convert a string to some sort of char so I can save it to disc. So if someone has any idea I would be very happy.

palli

Try a dynamic cast to conver them to char so they can be put into the buffer.

It would go something like Sting char

I know String is not a built in varaible but I think you can still do it with class objects.
__________________
Xbox 360 Gamer Tag: GoldenEagle014
GoldenEagle is offline   Reply With Quote
Old 06-26-2005, 10:12 AM   #14
Sebastian Palkowski
Mascot
 
Join Date: Nov 2004
Location: Hamburg, Germany
Wow, almost 1 year since my last post but I still found the thread.

The great thing for me is, that I continued with my project and worked almost every day on it. To read what I posted back in my first post and to see what I have now is amazing.

It is a long time but I did a lot of stuff. The game engine is now mostly done (the scoring is just basic and the defense needs more work) and I´m very pleased. The Batter/Pitcher matchup is 100% DIPS and the defense is based on zones (the ones from Retrosheet). I only use stuff that is widely accepted and proofed in the Sabermetric world. Which brings me to an importend point:

I want this game as realistic as possible. So I will not use any modificators that "force" realistic results. So far everything works fine, my first test with an average league (defined by Baseball Prospectus) got me exactly the results you would expect.

One more thing I worked hard on is the GUI. I hope it looks good but you can check the first 3 screenshots on my page.

From now on I will continue "in public", I think that is more fun. I will post regulary what I´m working on here (the big updates) and in my forum (almost daily). Everyone who is interested can visit my webpage and read more about the project, the features and see some screenshots. Ideas and critics are welcome and if you have any questions just ask here or on my forum.

Every idea from the comunity will be looked at and discussed so if you ever wanted to follow the development of a baseball manager and work on ideas then visit me:

Perfect Game

Btw, I´m still German, so excuse my bad grammer.

palli
Sebastian Palkowski is offline   Reply With Quote
Old 06-26-2005, 01:07 PM   #15
fantastic flying froggies
Pro Rookie
 
Join Date: Nov 2002
Location: Sunny South of France
Nice to see this did not turn into vaporware.

Nice work so far, keep going!
__________________
Detroit Vampires (CFL) : Ve 're coming for your blood!
Camargue Flamingos (WOOF): pretty in Pink
fantastic flying froggies is offline   Reply With Quote
Old 06-26-2005, 01:26 PM   #16
condors
College Starter
 
Join Date: Oct 2000
any thought given to have online head to head play?
condors is offline   Reply With Quote
Old 06-26-2005, 02:10 PM   #17
Sebastian Palkowski
Mascot
 
Join Date: Nov 2004
Location: Hamburg, Germany
Quote:
Originally Posted by condors
any thought given to have online head to head play?

Online play will be a big part of Perfect Game. I´m a Commish since 4 years so I know a lot of stuff that makes my life hard, so there is enough room to improve.

There will be the possibility to play out games and then send the result to the commish. We (hopefully) found a way so it is not possible to cheat.

Then there is H2H. We will look into this and we would love to build it into the game and I think sometimes it will be done but maybe not in the first release.

palli
Sebastian Palkowski is offline   Reply With Quote
Old 06-30-2005, 07:34 AM   #18
Sebastian Palkowski
Mascot
 
Join Date: Nov 2004
Location: Hamburg, Germany
Another productive week.

Right now I work on the League-Schedule-Screen and most of the functionality is done. I can go to the screen and see the actual games (Hometeam, Awayteam, Gametime and both Starter). Then I can sim the day and I get the boxscores for all played games (Error and total Hits are missing right now, I have to add them next). I had some problems first to display the right set of graphics (games played or games not played) but at the end it was again easy.

I hope to finish the screen this week to present a new screenshot.

If you want more regular updates visit my bord, there I write small updates on a daily basis:

Perfect Game Bord

Next I want to make an update on my book-list (from one of the first posts in this thread):

Over the last year I got a lot of new baseball books. I have now Baseball Prospectus from 2000 to 2005 and I learned a lot from this books. I will use some stuff in the game. Additionaly I got the Bill James Abstract from 1985 and his book "Historical Abstracts", both great books. Most recently I got the Palmer/Gilette Baseball Encyclopedia and it is ... big. Another great book is "Baseball by the numbers", it is hard to read but I got through it somehow.

palli
Sebastian Palkowski is offline   Reply With Quote
Old 07-04-2005, 07:06 AM   #19
Sebastian Palkowski
Mascot
 
Join Date: Nov 2004
Location: Hamburg, Germany
One week of work and a lot of frustration.

I worked almost every free minute on the league-schedule screen and the functionality behind that (sim one day, sim until a future day). I got most of the stuff finished, I can display the actual day with both teams, the starters (I need to add W-L and Era) and the time of play. After the day is simmed I display the played games with Winning- and Losing-Pitcher, Runs per Inning, total Hits and total Runs. The stuff behind the schedule screen was more work then I expectet. I have now a "world date" and a seperatet "league-schedule date". Since all results will be updatet right as they happen (e.g. the endurance for the pitchers) in the game and the "next starter" is changed right after the game (and not after all games are played) doubleheader should be no problem.

Right now I have a very frustrating error that I can´t locat. I hope to find that buf asap to continue my work.

On my project page I uploaded 2 new screenshots from the leagueschedule-screen:

Project Page

palli
Sebastian Palkowski is offline   Reply With Quote
Old 07-20-2005, 04:56 AM   #20
Sebastian Palkowski
Mascot
 
Join Date: Nov 2004
Location: Hamburg, Germany
A new update:

School is over and I have more time now.

I work hard on the defense system and because it takes so long I wrote a small information on the system:

"The Defense-System in PG is based on zones. We do not use the ones from Stats Inc., we use the ones from Retrosheet. That has 2 advantages. Firstly we can use the PbP data from Retrosheet and secondly we can use UZR from MGL. The first one (the Retrosheet data) is importent to make the system realistic, the second point is importent to get realistic defense ratings for player.

So how does the system work?

After the Batter/Pitcher Matchup is decided (DIPS) and the ball is put into play the defense comes into play:

First we decide the typ of hit (G/F/L). This is based on the G/F rating of the pitcher. After we now the typ we need a location. This is based on the R/L of the batter. Now we can decide the zone where the ball goes.

The next step is to determine if the ball is a Hit or an Out. By analysing the PbP data from Retrosheet (this is an ongoing process) we know what the average is for every zone. Later we can combine that with the defender and get the result (Hit/Out).

As the GM you will get a lot of informations out of this system:

1. For every game you will get the location of every BIP and the result (1B, 2B, 3B, HR, Out, Error)

2. For every player you get exact informations on all zones he played at least 1 Inning (Career and Season).

That is the short form how it works. The Game-Engine is now around 6000 lines of code and the defense-system takes a lot of this lines."

The Thread is here.

I hope to get the system done by the end of this week but it is a lot of coding.

After that I will continue with the Boxscore/Gamelog-Screen.

Btw, the League-Schedule screen is already finished (you can find a screenshot on my page) and so is the Team-Schedule screen (no shot right now). So a first Demo (maybe more a snapshot) is still a possibility for late August.

palli
Sebastian Palkowski is offline   Reply With Quote
Old 07-27-2005, 05:29 AM   #21
Sebastian Palkowski
Mascot
 
Join Date: Nov 2004
Location: Hamburg, Germany
Ok, I had no time to finish the defense system because I had to clean up the code. I had this on my "to-do" list for a long time and I had to force me to do it. It took a week and it was everything but fun.

I changed the GUI a little bit, take a look at the "new" screens. Additionaly I added a Newsletter to the site so if you are interested in my project please subscribe to always get informations on updates.

Perfect Game

Today I will continue with the defense system and I hope to get it done finaly by Friday. It is just typing a lot of numbers (and I mean a lot!) and it is boring as hell.

palli
Sebastian Palkowski is offline   Reply With Quote
Old 07-31-2005, 04:17 AM   #22
Sebastian Palkowski
Mascot
 
Join Date: Nov 2004
Location: Hamburg, Germany
Just a very quick note: I finished the "basic" Defense system. WHOOO!

Take a look at my page, I wrote some stuff:

Perfect Game HP

palli
Sebastian Palkowski is offline   Reply With Quote
Old 10-13-2005, 03:38 PM   #23
Sebastian Palkowski
Mascot
 
Join Date: Nov 2004
Location: Hamburg, Germany
Finally, after a lot of hard work the first Demo (Version 0.1a) was released today!

The purpose of this first Demo is to give a first look at the Game-Engine and to take a look at the interface.

It is "just" possible to sim very year (day by day or a season) and look at some League- Team- and Player-Stats. From know on I will release a new Demo every few weeks (or smaller updates every few days) so you can foloww the development.

The final version is scheduled for April 2006 so I have about 6 month to add more stuff. Next on my list are:

- In-Game mode (to give you something to play)
- set Lineups/Bullpen for one team or all teams
- Playoffs
- more Stats

Feedback (good and bad) or ideas are more then welcome!

You can find the Download here:

Perfect Game

Not bad what I did in just 1 year since my first post.

palli
Sebastian Palkowski is offline   Reply With Quote
Old 10-13-2005, 04:00 PM   #24
sterlingice
Hall Of Famer
 
Join Date: Apr 2002
Location: Back in Houston!
I'll have to check this out

SI
__________________
Houston Hippopotami, III.3: 20th Anniversary Thread - All former HT players are encouraged to check it out!

Janos: "Only America could produce an imbecile of your caliber!"
Freakazoid: "That's because we make lots of things better than other people!"


sterlingice is offline   Reply With Quote
Old 03-28-2006, 02:42 PM   #25
Sebastian Palkowski
Mascot
 
Join Date: Nov 2004
Location: Hamburg, Germany
Wow, a long time since my last post.

I worked a lot on Perfect Game and I want to get this thread back to life so here is a first update:

I founded a small company together with a friend. I´m still a student and have to do a job to get money but hey, maybe 2006 is my breakthrough year (just dreaming).

With Perfect Game I made some decisions to find the right place with the game. Realism is still my number one priority and so far I´m realy happy with my results. Over the last few month I changed the way I store stats (now I use a DB that stores every AB in a Retrosheet way), so now I can show almost every stat or split-stat I want. Additionaly I finished the progress of a season (except for Spring Training) so I can start longtime testing. The financial engine is implementet and I did a lot of research: you can find different type of fans and ballpark sections but all this features are optional (if you don´t want to take care of it just let the CPU do the job but still look at the detailed outputs).

Maybe the biggest visual improvment is an early In-Game screen (actualy two, the strategy screen and the action screen). You can find some screenshots at my new home:

Minos Games

Just go to Perfect Game and select Screenshots (a total of 6 on 3 sides!).

My next step is the Boxscore, something I hate to do but sometime I have to start.

palli
Sebastian Palkowski is offline   Reply With Quote
Old 03-31-2006, 01:20 AM   #26
fantastic flying froggies
Pro Rookie
 
Join Date: Nov 2002
Location: Sunny South of France
Nice to see you still going at this, and coming along nicely.

One suggestion, on your web site, get rid of that release date, even if it is only an estimate.

Recent events have shown it was probably best not to post a release date unless you are absolutely certain you can meet it...
__________________
Detroit Vampires (CFL) : Ve 're coming for your blood!
Camargue Flamingos (WOOF): pretty in Pink
fantastic flying froggies is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

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

vB code is On
Smilies are On
[IMG] code is On
HTML code is On
Forum Jump


All times are GMT -5. The time now is 05:25 PM.



Powered by vBulletin Version 3.6.0
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.