Changing things


Creating an environment with rules only which you apply seems very godlike. On one hand it feels like it's a great fun, though - you control the playground, create toys, manage the atmosphere. On the other hand it's a long term process with many tiny and big decisions which implicate final character of your project.

I am in the middle of something like this schema.

I want to to get acquainted the users with object oriented programming by this simulation, as it is the next level with game development (especially when you didn't learn programming languages earlier). My goal was to make them feel confident with this new concept.  So I thought about showing many practical examples of OOP, some kind of interactive presentation. User can visit rooms, where every room present one rule.  For example, for inheritance there is a wall with text "class Animals" and with subclasses "Cat, Dog or Rabbit". It's simple. When I acquainted with that, it was firstly surprise for me, because from now I should look on some classes with abstraction, like they are just a concept with some traits which are inherited by others. It's not different from our lives, really. Every day we talk to each other with that same idea - "bring me the glass of water", "I would like this beer please", "the world is warming". Every world is an empty phrase, but it is the interpretation and circumstances gave the meaning of all those (it's easy when you look at the object, but with eyes closed and zero orientation in space how you could say you want this or that?). It's similar to linguistics terms: referent, denotation and names. Of course it's only the thought, and could be wrong, but it occurs to me like that.

With some prepared examples I started to create that simulation. I found examples of fruit, animal and furniture very useful, so I started to create all of that. In the meanwhile, I change my concept of having one room - one method (eg first room would have only a wall with inheritance example second room would have only polymorphism etc.) to one room - all four method of OOP (one room, four walls with abstraction, inheritance, polymorphism and encapsulation). And then, some thoughts arose: 

- Can I prepare the room that will be simple, understandable and well organised with so many informations at once?

- Should rooms be with numerical order?

- Should it be only presentation or examing the user also?

- How put the OOP in every example? How not complicate these examples?

- Is it necessary to put the path? Maybe some info on the floor?

So I struggled them and more, and I am not sure about the project anymore - especially about the part to put that knowledge in a clear way. Especially, that I am learning the OOP exactly like the user and I am not sure that I understand it clearly.


I had problem with ABSTRACTION. Does it mean that the methods should be separated or that the class should be abstract? Both means that some code is reusable and the data are abstracted somehow. Is the POLYMORPHISM is only to override methods? Can the child class have they own, separated methods? Is it then abstraction or polymorphism? I mean, maybe it's obvious for some people, but somehow it seems like those schemas are mixed. Maybe that's the case.

Now, I try my best to fully understand it and implement that in a simple way. How it will look like? Time will show. 

And about changing things - I found it very useful to write a documentation with timeline and features to implement. Without it it gets chaotic. I recommend to not changing things, especially that core one.

Leave a comment

Log in with itch.io to leave a comment.