Menu

Tree [11ad29] master /
 History

HTTPS access


File Date Author Commit
 resources 2014-03-18 Andreas Tasoulas Andreas Tasoulas [c9c41f] Neutral ground functionality now supported in w...
 src 2014-03-22 Andreas Tasoulas Andreas Tasoulas [b33de5] Command-line parameters supported (issue #10)
 test 2014-03-14 Andreas Tasoulas Andreas Tasoulas [b4faaf] unit tests
 README.md 2014-03-14 Andreas Tasoulas Andreas Tasoulas [aa2bc4] Web app deployment: Necessary resources are now...
 build.properties 2014-03-14 Andreas Tasoulas Andreas Tasoulas [3125f4] web application resources integrated to the pro...
 build.xml 2014-03-18 Andreas Tasoulas Andreas Tasoulas [c9c41f] Neutral ground functionality now supported in w...
 changelog.txt 2014-03-22 Andreas Tasoulas Andreas Tasoulas [11ad29] changelog for release 0.2
 pom.xml 2014-03-14 Andreas Tasoulas Andreas Tasoulas [a9f610] organizing resources and build properties

Read Me

SimpleFootie

This is a text-based football match engine simulation. This is not my first one. A previous attempt, "openfootie",
created some 4 years ago is already pushed.

I am happy with openfootie as a first attempt and thing that "just works", but now starting again with some lessons learned:

  • Start simple

I wanted to create a sufficiently complex match engine, complex enough for having a realistic element. Ok, I did that
but now I need to go back and start simple again. Trying to do a complex thing as a first attempt, you inevitably
mis-implement some abstractions and violate your initial assumptions. Then, you somehow lose the understanding of
how things work. Finally, you introduce redundant detail for the maximum level of realism you will achieve anyway.

  • Integrate

A football match engine is not an island in itself. I wanted to create openfootie as a library which would be plugged
into a "host" application, whether it was a game or some other kind of simulation. This part I think failed miserably.
At the same time, I treated the match engine as agnostic to the domain in which would be applied. However, I don't
think now this was a good choice. I think the simulation must be built at least with a minimal layer of host
functionality around it, for at least the inputs and outputs are affected by the domain and inevitably this will affect
the mechanics of the engine itself.

Based on the above thoughts, I am starting a simple football (soccer, duh!) match engine simulation from the very basics
(this version will implement just scores calculation) with the aim of raising the level of sophistication gradually.
There are a lot of approaches you could follow and of course there is eventual visualization. My aim is to create a
unified open source reference for football (and other sports' possibly) match engines, where different levels of
abstraction and approaches will be tried.

Currently, I am also working on an openfootie rewrite (an example of another approach), which strips away all the
redundant details and fixes some deviations from the original assumptions. However, this is going to be a more
slow-paced, experimental kind of sub-project.

So, this project is about simulating score calculations. Nothing fancy at first glance but good to build
a basis on.

It also includes a Java web application interface, if you don't want to run it through the console (I assume you will use an IDE to run it anyway). No overhead of database configuration needed (as in other similar poorly-thought-in-advance projects like openfootie), so you just set your server's path in the build.properties file (I used Apache TomEE as you'll see in the file), deploy based on build.xml and hopefully everything will work. There is one minor variation in features between the console and the web app, and the console edition will be generally more complete.

There is also a dependency in the SJON library I created for this project specifically, so you need to pull this too and reference it, in the project for running through the console. For the web application, the jar file is included in the resources folder and copied automatically to the server's lib folder, so you could just add it to your build path as well for running through an IDE.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.