A pill that speaks

In world that I am creating every pill needs to fill its needs. As you may remeber from previous post, there are two basic needs implemented right now – food and water.

These needs will be possible to refill at „Need refill stations” as I call them now. I am not 100% sure how the refilling process will look at the end, but that is not today’s post subject. Today I will tell word or two about implementing communication between pills.

So firstly – why?

Well, communication is one of basic skills of intelligent lifeforms.

Secondly – how it works?

To be totally honest, o took the cheap and easy way of giving them telepathy. Every agent stores two lists of objects. First one is list of „Friends” – these are object that pill already met. Second one is list of known need fulfillers –  objects that pill will go towards when coresponding need fullfillment value is bellow the refill trigger value.

Now whenever two pills met, two big things are happening.

  1. Pills are chcecking their friends list, to check if the other pill is there. If not, pill is added to list and becomes friend.
  2. What follows friendship status check is information exchange. Both pills are exchanging informations about known need fullfillers, and update them if there is need to do so.

Information exhange occurs also when one of pills meets new need fulfiller.

That is basically it. It may not seem as much, but it looks like good starting point.

I have to admit, the project is a bit of clusterfuck right now. Coding without plan is can be at times a crazy fun, but this time I want my project to serve some purpose (even if that purpose is weird and uncommon). So I have a question to all reading – what kind of planning method do you use in your personnal projects? And how do you set goals in these projects? Are these goals clear or fuzzy?

Oh, all code is already on GitHub.

PS. The question stated at the end of post was also tweeted. If you are into tweeting, feel free to respond me there!

 

A pill that speaks

I’ve just drawn some ugly looking UML diagram.

Well, that was one hell of a clickbait. But let’s get into details, shall we?

 

I’ve decided, that this time, since goal of the project is to serve people of the internet who want to build their own world of wonders inside of a computer, I need to document whatever I am doing with it.

And yes, I think that means UML too. But since target of this project are developers I need to provide some kind of instruction. It will be in some kind of GitHub wiki I guess.

This week, while developing some code for this project I tested two UML tools.

One of them was StarUML. You can see output of my work bellow.

skrenuml

It is not impressive (never meant to be!). All I really wanted was simple class diagram, to not get lost, and well… It delivers, sort of.  But it requires time and skill, and I am not software analysis specialist.

So I needed something simpler. Luckily though, Visual Studio has cure for my needs.

umlvs

It can be generated, and updates automatically as I edit the code. So it’s good for what I need right now.

How to make your own? Simply, really:

howtoclass

When it comes to implementation… Well there was some progress, indeed.

There is some basic intelligence implemented already. I’ve made up the following scene:

scene

We have some kind of 3D box, our Pill and lots of grass. Our AI agent has hardcoded two basic needs – food and water. When they decrease bellow some level, he seeks for fulfiller of that need and goes there. That’s kinda it.

I am not going to get into details of the implementation, because you can check them out on my repository.

As the final note – question. How do you come to topic of documenting your code? Do you use UML, or just make notes?

I’ve just drawn some ugly looking UML diagram.

Get Noticed 2017 – Let’s get this started!

Here I go again. Maciej Aniserowicz is making his big Get Noticed competition again. I am of course down for it, so I decided to reactive my blog. If you are here the first time – welcome, please enjoy your stay. I will try to post valuable content as often as I can. You may find that most of the content is written in Polish, and sadly it will stay that way for some time.

For people who already know me – i hope you will like new face of my blog.

Okay, if we have greetings out of the board, let’s discuss my project!

Simulation Pills

What is that? Well I am glad you asked.

Computers bring us big power. Power to create living, breathing worlds… Well, sort of. We are still quite limited. But with enugh ammount of skill and hard work it should be possible to create simple world and put there simple „organisms”. It is not going to be perfect mock (like Matrix), but something smaller and simpler (like terrarium).

But why Simullation Pills?

Well…

pills

Look at these capsules. What do you think about idea of these capsules being living organisms which are going to be simulated?

Well it actually does not matter, because decission was made. Also that title sounds so cool.

If it comes to my tech stack, I am going to do it with Unity3D, and Visual Studio.

So I think there is really nothing else I can do, than post link to my GitHub repo with source code.

https://github.com/damoch/simulation-pills

If you want more info about me, there is state-of-art GitHub page answering your questions.

Bye!

PS. If my broken english hurts your feelings in some way, well everybody started somewhere.

Get Noticed 2017 – Let’s get this started!

Jak wymyślić oryginalną grę komputerową?

Mógłbym w tytule dopisać „mój sposób”, ale taki tytuł dałby mniej kliknięć. Więc jeżeli oczekujesz uniwersalnego sposobu, źle trafiłeś. Ja mogę dać tylko własny.

Więc jaki on jest?

Ogranicz się

Nie, serio. Większość guru-kołczów powie Ci coś w stylu „nie ograniczaj się, uwolnij swój potencjał”, ja mówię „postaw sobie barierę, której nie będziesz mógł przejść”.

Dlaczego?

Wyobraź sobie, że tworzysz grę w której może być użyty tylko jeden przycisk.

To sprawdzi Twoją umiejętność „myślenia poza pudełkiem”. Miałeś pewnie pomysł na super RPG-a, który przebiłby Wiedźmina, ale okazuje się że jedyny input jaki możesz odebrać to ten cholerny jeden przycisk.

Ile rzeczy będziesz musiał wyciąć ze swojej gry, aby zmieścić się w tym ograniczeniu? Ile musisz dodać? Jak bardzo zmieni się Twoja koncepcja? A może masz zupełnie nowy pomysł?

I najważniejsze – jakie mechaniki to tworzy?

To tylko jeden przykład ograniczenia jakie możesz sobie narzucić. Pomyśl o innych.

Powodzenia!

Jak wymyślić oryginalną grę komputerową?

Miał być post, nie było postu, ale teraz jest post [Coast Defence Force #1]

Tak, to ma sens.

Pochwaliłem się swoim projektem na kilku forach. Postanowiłem, aby moja gra wzięła udział w warsztatowym Summer of Code.

To taki jakby Game Jam, z tym że trwa 3 miechy. To dość dużo czasu aby wprowadzić większość mechanik które wymyśliłem. A sam Warsztat to jedno z największych polskich for o gamedevie. Gorąco polecam.

No ale dosyć marketingowego bulszitu, let’s get into code!

Głównym ulepszeniem jakiego dokonałem to poprawa zachowań monsterów. Gameplay który zaprezentowałem w poprzednim poście jest już nieaktualny – balans przechylił się w drugą stronę.

Właśnie – balans. Zastanawiam się, czy nie zablokować możliwości poruszania się atakowanych jednostek. Albo nie zwolnić tych mających status poniżej 50%. Bo jeżeli potwory nie zalewają gracza, to gra robi się trochę zbyt łatwa.

Nie wiem co więcej napisać, więc rzucę randomowym screenem:

2016-07-12

Aby poprawić jakość tego postu rzucę jakimś fajnym utworem:

Miał być post, nie było postu, ale teraz jest post [Coast Defence Force #1]

To będzie kolejny nudny post podsumowujący

W tym tygodniu pracowałem nad dwoma projektami. Jeden ogłosiłem światu w ostatnim poście, a drugi zaczął się tydzień temu. Podsumuję teraz co robiłem:

Coast Defence Force

Tu będzie łatwo, bo postanowiłem pokazać jak wygląda obecny stan gry:

Oczywiście, gra jest zupełnie niezbalansowana i nawet główna mechanika nie działa dobrze, ale robimy postępy 🙂 Napiszę o niej więcej w kolejnym poście.

HashtaGenerator

Nad tym pracowałem znacznie krócej niż nad CDF, ale udało mi się uporządkować kod i dodać zalążki nowych ficzerów. Możecie je zobaczyć tutaj. Aby opowiedzieć w skrócie – podjąłem działania, które umożliwią zbudowanie fajnej aplikacji (do tej pory przypominało to konsolowy skrypt). Mam już obraz jak to będzie wyglądało.

No cóż… To tyle 🙂

To będzie kolejny nudny post podsumowujący

Coast Defence Force #0

Moje ostatnie zabawy z projektem bazy kodu pod RTS-a udowodniły mi dwie rzeczy:

a) Robienie gry > Robienie bazy kodu pod grę

b) Game Maker > Unity* **

Dlatego Base.RTS zostaje na razie zawieszone. Odskakuję też od Unity, wracam do Game Makera.

Zapytacie pewnie „Co w zamian?”. Otóż w zamian…

[werble]

Coast Defence Force

(Tytuł roboczy)

Będzie to gra, w której staniemy na czele jednostki wojskowej mającej na celu ewakuację nadmorskich miast podczas inwazji potworów z dna oceanu. Oprócz dbania o to, aby cywile bezpiecznie dotarli do strefy ewakuacji, gracz będzie musiał powstrzymywać hordy potworów przy użyciu różnorodnych oddziałów wojskowych.

Gra kończy się w momencie, kiedy ostatnia grupa cywilów opuści mapę (zostanie uratowana lub zabita). Następnie gracz będzie oceniony na podstawie tego ilu cywilów udało mu się uratować, jakie straty poniosły jego wojska i ile miast utrzymuje. Podczas gry, posiadane przez gracza miasta będą generowały przychody w postaci „Punktów kontroli” za które gracz będzie mógł zakupić dodatkowe oddziały. Jeżeli jednak miasto wpadnie w ręce potworów, zamieni się w siedlisko z którego „spawnować” się będą kolejne bestie.

Jak niektórzy może zauważyli gra jest mocno inspirowana XCOM-em 🙂 Chciałbym aby jej styl graficzny przypominał DEFCON

screenshot2

Oczywiście nie na taką skalę.

Oto jak wyglądają moje obecne postępy:

2016-07-01

Trochę się różni 🙂

Jak widać, tymczasowe spritey to tymczasowe spritey z MegaMinesweepera. W następnym poście mam zamiar podzielić się działającym grywalnym prototypem, w którym gotowa będzie główna mechanika.

Dodatkowo, w ramach zwiększania fejmu (i nauki angielskiego) postanowiłem założyć anglojęzycznego bloga. Prawdopodobnie jeszcze dziś pojawi się tam pierwszy post, ale chętnych ostrzegam – Maj engrish is not very gut

https://damochdev.wordpress.com/

CDF nie będzie (przynajmniej na razie) projektem z otwartym źródłem.

Będę starał się wrzucić co najmniej jeden post tygodniowo.

* Mówimy tu o robieniu gier

** Uważasz inaczej? To dobrze! Nie zaczynajmy silnikowej wojny.

Coast Defence Force #0