The specifications gathered here are intended to be programmed into a piece of software - I can't make it clear enough that this is not a simple information-gathering exercise, after which we will all pat ourselves on the back and allow the ideas to rot, forever unachieved. Whilst it would be foolhardy of me to ignore the failure of similar efforts, I hope that this posting can show how this is different. So, let's answer some questions before we get started:
Who are you?
My name is Fred - I am a final-year PhD student living in the United Kingdom, where most of my work has been in software engineering. I love simulation games, and I love programming - I cut my teeth on SimCity, but also found many charms in the lovely OpenTTD project. After reading endless requests from people on many forums where I lurk, I decided to give it a go myself.
That said, I've already alluded to the many failures for this kind of thing to pick up - but I have worked out why!
So, why did the others fail?
Very simply, because most people don't know how to do specifications - if you read through the relevant headings over at the Simtropolis forums you'll see that the requirements are all in terms of individual posters' particular bugbears with their current software, or with cool little features that aren't actually core to the game. Things aren't much better at OpenTTD when spin-offs are proposed.
Crucially, the core simulation is never specified so all programmers would be left with is a floating collection of objectives with no core substance upon which to base them.
How does this blog work then?
I have a rough specifications document that I have pieced together, that only refers to the simulation of a city and its transport network. I haven't yet specified anything about graphics (see the next question to find out why!) and subsequent posts will have the following headings:
- Customisation - so fundamental to the specification, I need to get it out the way early!
- Simulating people - how do we simulate individuals in our game universe?
- Simulating traffic - from stations to vehicles and everything in between
- Buildings - how do these fit in?
- Economy and businesses - buying and selling of goods, movement of money
- Policies - how to influence these elements with "laws" that may raise taxes, redistribute money, control prices, etc. and the framework to extend these
- Competition - opponents in the form of AI and a discussion of multiplayer
After each post, you are invited to comment so that I can refine the ideas into a final specification document. From that, I can write the technical implementation plan, and finally program it!
But...graphics!
I believe in the separation of simulation from graphical interface - that way I can update one part of the program without having to change everything. It also allows the possibility of changing the graphics interface in different systems or at later dates as hardware improves.
And graphics is about more than a battle between isometric and 3D. It's also about the story of how you, the gamer, wants to play the game - how do you lay a road? Where do you click? And until I know what the simulation does, it is hard to specify how to allow you to interact with it.
What don't you want?
A wish list of features. This is not the stage of the development for wanting specific types of vehicle, or timetables, or feature X or feature Y. This is about the fundamentals of the game. I promise that, once this is done, it will be obvious what features are possible, which aren't, and how they are implemented!
Hope you hang around - it's going to be quick, with a post every few days from me with the latest copy and paste from my Word document!
Fred
Sounds great :) I hope that we will benefit from each other ;)
ReplyDelete=smallfly=