October was a very productive month for the project from my side. Not only did I compile several lists of open source strategy/adventure/rpg games (see the top threads in the forum) , but I also made progress regarding the lobby, the editor and the internal management of the scenario. So the next release is planned for the end of November/beginning of December and will feature new functions. I hope a primitive main screen will be among them.
Btw. I wouldn’t mind a bit of company in the community forum. So if you want to contribute one way or another I suggest heading over to the forum, registering and making some posts (even just to say hello).
The next release is coming closer. I made progress on some important points. The game design document will soon be automatically build and hosted on readthedocs. The game will run with the Qt5 (graphics framework) library bindings to Python provided by PyQt5. And there will be installers using PyInstaller.
I hope I can finish these tasks in a couple of weeks, make a release and move on from there, possibly gain momentum and interested people.
Much time has passed and for nearly half a year the project slept a beauty sleep. I admit, I lost a bit the interest. But I never fully lost it and recently I started working on it again. Mostly going a step backward and building better code, so that extending the code is easier later on. I also included work by two other programmers (Antoine Spitaels and WGroot) who especially work on a battle prototype. Antoine has made a nice hexagonal display. That is surely something which can be used right away.
With a bit of luck we might see another release in a couple of weeks. And then it’s possible the project gains speed again.
Recently the number and different ways of spam attacks on our community forum has increased dramatically to the average of around one successful spam account per day. For comparison, genuine registrations happen more on a monthly basis.
I’m not going to tolerate this and will defend the forum against spam. Therefore I had to turn off guest posting and immediate access after registration. Instead, I will unlock every registration attempt manually after writing a short welcome mail and analysing the answer (anti spam Turing test).
I will also do some research into more technical ways of fighting spam but for the time being this seems to be the most promising strategy.
Since the release of 0.2.1 in february I dug into PHP and SQL queries and remade the custom taskboard which shows available and completed development tasks of this remake. If someone is interested I put the sources on Github.
But now also the development of the main thing, the remake, can continue. It was a bit quiet in the last months but with me now working on the main game screen (and a bit more server-client architecture before) I hope to spark new interest very soon.
And there is another release. It’s rather a minor release and mostly changes the details shown in the view of the editor screen (rivers, cities, borders) and also the game lobby (where one selects a scenario to play). This means we are still far from any playable state.
However, the project is still active and this release also serves the purpose of showing this activity.
Interested in helping out or want to report and issue?
Drop a message in the contact form or register at the forum.
Some actual screen shots:
The last post was about 13 steps necessary for a release. Now lately I’ve been working on the network communication part of the game (required for a multi player game but also used in single player mode). And this actually also requires a lot of steps. Fortunately once the procedure has been established, one doesn’t need to take care of it anymore.
Just in case you wondered what possibly has to be done to display a few lines of text (names of available scenarios) from one computer running the remake to another and display it there at an appropriate place here is a look behind the curtain:
- Create empty list view in one computer (will show names of available scenarios)
- Register this list view as destination of any network messages with a certain ID (internally represented by a unique number)
- Send a certain request (specified by this ID) to the server asking for scenario titles
a) Serialize this request and all attached data to a unicode string (using YAML)
b) Encode this unicode string into bytes
c) Compress this byte sequence (zip, gzip, ..)
d) Wrap this byte sequence in a Qt ByteArray (which can be sent as one in Qt)
e) Send over TCP
- Receive a request on the other computer side
a) Obtain a Qt ByteArray holding all the bytes of the message
b) Uncompress the byte sequence
c) Decode into unicode string
d) Deserialize into Python object using YAML
- Look up a table (in Python a dictionary) to find a registered service associated with the ID of the message and call this service
- Service looks up all scenario files in the save games directory
- Service reads all scenario files and puts scenario titles and file names into a list
- Serviceputs the data list and a response message ID together in a struct/dictionary
- Other computer sends response message back to Client (as in 3.a to 3.e)
- Original computer receives response message (as in 4.a to 4.d)
- Response message is transferred to the list view (which had itself registered for it in step 2)
- List view updates itself and shows scenario titles
- List view deregisters itself (there won’t be another message of this type coming)
- User can see and select scenario titles
- If user selects a specific scenario the applications sends again another message asking for more details and registers itself to obtain the answer for this new case – this means that step 2-14 are repeated).
Quite a lot that’s going on under the hood, isn’t it.
Since development is currently going a bit slowly I thought about entertaining you with a list I made some time ago that show you what steps a project such as this has to do before each release. So here are the 13 steps to do before each release.
- Update version number in internal preferences and in the manual.
- Run the programm briefly and quickly check basic functionality.
- Make screenshots of new and interesting views of the game.
- Run packaging scripts (update version number there too).
- Run setup creator which produces an executable installer from the package.
- Archive screenshots and packages and installer locally.
- Upload installer and sources to a download center (sourceforge in our case).
- Manage wordpress powered blog site and adjust links and version number on download page and on frontpage.
- Upload screenshots to blog.
- Write news post (like this) and link to screenshots.
- Write announcement in the community forum.
- Copy current state of the develop branch of the Git repository to master and tag it as release.
- Review the task list and set completed task to complete and create new tasks if appropriate
This typically takes two hours and during this I haven’t written a single line of code to advance the game development. This shows maybe why I’m reluctant to release too often (and the lack of new features too).
After a bit more than a year there is a new release. Most prominently it features the transition from using Java as the programming language to using Python. The transition took place within four months and no major obstacles were found during this period.
However the functionality is still the same (or even less in some areas) – so do not expect a playable game. The current state is still not much more than a tech demonstration of what might be one day.
But the community behind this remake will now continue and after the transition to another programming language has been achieved one can expect more features in the near future.
Interested in helping out? Drop a message in the contact form or register at the forum.
Below some screenshots.
A screen, a bit of music, some buttons, a few half empty dialogs. This won’t be a game. And that is good because otherwise it would be a sad game. Still it’s important for us to show that we can continue the development of the project in Python. And the date of the first Python release comes closer – about two weeks from now.
I’m already excited about it and I hope everything will be fine then. Still a couple of issues to fix before we are even at the simple state described at the beginning of this post. So back to work…