Mechanics hobby RTS + start C++ implementatie

Door Gamebuster op maandag 13 april 2015 19:09 - Reacties (6)
Categorie: Hobby RTS, Views: 1.919

C++ coders, code review is welkom:
https://github.com/tobyhinloopen/My-CPP-RTS



De Hobby RTS waar ik al enkele artikeltjes over heb geschreven is nog steeds hard in ontwikkeling.

Om te beginnen, de RTS heeft o.a. energie en massa als resources. Er is geen globale opslag van resources. Energie kan draadloos gedeeld worden, moet gegenereerd worden met Massa of moet opgevangen worden met zonnecellen. Massa moet fysiek opgenomen, opgehaald, gedeeld of overgebracht worden.

Ik werk nu de mechanics uit. De "droom" van de game is groot, 1 significant deel van de "droom" is de mogelijkheid om je eigen units te ontwerpen. Hierbij bepaalt de uitrusting - de geselecteerde componenten - van de unit de eigenschappen van de unit.

Een unit begint volledig niet-bestaand. Er is geen "basis-unit" of frame; je begint met niets. Iedere feature die een unit kan hebben, moet je zelf toevoegen. Stel, we willen een simpel gevechtsvliegtuig maken.

Je gevechtsvliegtuig begin je dan bijv. met het geven van een frame. Dit frame is puur visueel en heeft geen invloed op de eigenschappen van de unit.

Voor een gevechtsvliegtuig heb je uiteraard wapens nodig. Als speler beschik je uit een set componenten, waaronder enkele wapens. We geven het vliegtuigje 2 laserwapens.

De toegevoegde laserwapens hebben stroom nodig om te schieten. Voor de stroom voegen we een power generator toe; deze zet een zeer kleine hoeveelheid mass om in stroom. De mass die nodig is om omgezet te worden wordt opgeslagen in een mass storage, die ook toegevoegd wordt aan de unit.

Onze unit kan nu schieten, mits er Mass opgeslagen is in de MassStorage.

De unit kan zich echter nog niet verplaatsen. Hiervoor voegen we een kleine verbrandingsmotor toe. Deze verbrandingsmotor verbruikt massa en zet deze om in beweging. De massa is afkomstig van de mass storage die we eerder al hebben toegevoegd. Uiteraard moet er wel massa aanwezig zijn in de storage; de MassStorage kan dus opraken, waarna de unit zonder wapens of motor zit. Bij het maken van de unit kan de mass storage ook meteen gevuld worden, maar dit is niet vereist (instelbaar)

Tot slot voegen we armor toe aan de unit. Per eenheid "armor" neemt de armor-eigenschap toe van de unit, waardoor de andere onderdelen beschermd zijn tegen damage. Hoe het toevoegen van armor visueel eruit zal zien, weet ik nog niet. Wel weet ik al dat de visuele indeling van units geen impact hebben op de eigenschappen van de unit. De indeling is puur visueel. De unit eigenschappen worden gebaseerd op puur de aanwezigheid van componenten, niet de positionering ervan.

Onze unit bestaat nu uit:

20x Armor
MassStorage (kleine opslag voor massa)
PowerGenerator (zet zeer kleine hoeveelheden massa om in energie)
LaserWeapon (x2, verbruikt energie per schot)
CombustionEngine (verbruikt mass)

Alle onderdelen die toegevoegd zijn hebben o.a. de volgende basis eigenschappen:

Shield
Wanneer een component een shield heeft, voegt deze shield-armor toe aan de unit. Shield beschermt de componenten tegen inkomende schade en kan kosteloos herladen worden. Verbruikt energie om online te houden en kan tegen extra energieverbruik zich herstellen tot maximale capaciteit na schade.

Armor
Armor beschermt de componenten wanneer er geen shield (meer) is. Bij schade verliest de armor zijn massa tot deze 0 is en de armor geen bescherming meer biedt. Reparatie van armor is alleen mogelijk door weer massa toe te voegen met speciale componenten bedoelt voor reparatie of constructie.

Health
Wanneer shield en armor geen bescherming meer bieden, blijft de health van een component over. De health is vaak laag; de componenten met de minste health zullen het eerste uitschakelen of zelfs exploderen wanneer deze van nature instabiel zijn. Reparatie van componenten die beschadigd zijn kan alleen gedaan worden door constructie units en verbruikt meer energie dan de oorspronkelijke constructie van de componenten.

Volatility
Sommige onderdelen zijn van nature explosief, zoals accus, generatoren en motoren. Wanneer de onderdelen beschadigd raken, kunnen ze dus schade toebrengen aan andere onderdelen in de unit en/of omliggende units. Volatility kan misbruikt worden voor suicide units.

Complexiteit
Bepaalt hoeveel energie en beÔnvloed de hoeveelheid tijd er nodig is om de component te maken of te repareren.

Massa
Bepaalt het gewicht van de unit, wat nadelig werkt op de behendigheid en snelheid van de unit. De massa is ook nodig bij het maken van de unit. Voor een Mass Storage telt de opgeslagen massa mee met het gewicht van de unit.

Het verbruik en productie van resources per onderdeel is ook vastgelegd. Dit kan bijv. zijn:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Laser, in gebruik, per stuk:
  power_consumption: 40

Power Generator, in gebruik
  mass_consumption: 0.1
  energy_production: 60
  mass_capacity: 10
  energy_capacity: 240

Mass Storage
  mass_capacity: 40

CombustionEngine, in gebruik (vol gas)
  mass_consumption: 0.1



In detail:

De bovengenoemde onderdelen kunnen in totaal dus 50 massa opslaan. De generator kan zelf 240 energie opslaan en per seconde 60 genereren. Zodra energie "verbruikt" wordt, wordt dit opgenomen uit die 240. Zolang de energie opslag niet vol is, blijft er energie geproduceerd worden. Een lege accu kan in 4 seconden gevuld worden.

Met de in totaal 50 massa die opgeslagen kan zijn in de unit, kan de accu bijgeladen worden met 60 per seconde voor 50/0.1=500 seconden. Er kan dus in totaal 60*500=30.000 energie gegenereerd worden met een volle massa opslag.

Met 30.000 energie kunnen kan 1 laser 750 seconden lang schieten. Omdat er maximaal 60 energie per seconde geproduceerd kan worden en er 80 energie per seconde verbruikt wordt bij het afvuren van beide lasers, is er 20 energie per seconde nodig uit de accu voor het in stand houden van het vuren van de lasers. Dit houdt in dat de 2 lasers maximaal 240/20=12 seconden op vol vermogen kunnen vuren. Daarna neemt de fire-rate af tot 60/80=75%.

De bovenstaande situatie gaat er echter van uit dat de unit zich nooit verplaatst. De verbrandingsmotor verbruikt ook massa. Wanneer de unit nooit schiet, kan de unit op vol vermogen vliegen voor 50/0.1=500 seconden.

Wanneer de opslag leeg is, moet deze bijgeladen worden. Dit kan bij units die beschikken over opgeslagen massa en een component die mass transfer mogelijk maakt. O.a. de fabrieks-unit waar de unit in gemaakt is, heeft de mogelijkheid om de unit weer "bij te vullen". Tevens kan de fabrieks-unit ook beschadigde armor en componenten repareren. Je kan je unit ook demonteren bij de fabrieks-unit om de massa in de unit componenten weer op te nemen.

De game zal veel draaien rondom het verzamelen en beheren van Massa. Energie is makkelijk te verkrijgen en te beheren. Massa is zeldzaam en "uitdagend" te beheren. Omdat je energie kan verkrijgen uit massa, zullen de meeste units een energy generator en een mass storage aan boord hebben.

Massa zal nooit verloren gaan in een game. Bij het maken van een unit gaat de massa uit de fabrieks-unit's mass storages naar de componenten van de nieuwe unit. Alle massa blijft in die unit tot deze gedemonteerd wordt. Zelfs wanneer een unit volledig vernietigd is, kan de massa herbruikt worden. In enkele situaties kan massa van de units af gaan, door verbranding of vernietiging van bepaalde componenten. In dit geval zal de "verloren" massa "opgenomen" worden door de wereld, klaar om opnieuw verzameld te worden.

Neem eens 7 minuten en 19 seconden rust.

Door Gamebuster op woensdag 08 april 2015 10:41 - Reacties (10)
Categorie: musique, Views: 3.745

Pak je koptelefoon, ga er rustig voor zitten, zet de onderstaande video (met geluid) aan en neem eens 7 minuten en 19 seconden rust op deze mistige ochtend.



Genoeg gerust? Overweeg een boterham met chocopasta.

Chocolade pasta Chocolade pasta Chocolade pasta Chocolade pasta Chocolade pasta Chocolade pasta Choc

Door Gamebuster op vrijdag 27 maart 2015 10:22 - Reacties (23)
Categorie: quite useless, Views: 1.993

Chocolade pasta Chocolade pasta Chocolade pasta Chocolade pasta Chocolade pasta Chocolade pasta Chocolade pasta Chocolade pasta

Extra puur Extra puur Extra puur Extra puur Extra puur Extra puur Extra puur Extra puur

http://i.imgur.com/7U13oSZl.jpg

30% cacao 30% cacao 30% cacao 30% cacao 30% cacao 30% cacao 30% cacao 30% cacao

Blog verwijderd

Door Gamebuster op woensdag 11 februari 2015 13:06 - Reacties (13)
Categorie: quite useless, Views: 4.814

Ik had per ongeluk mijn gehele blog verwijderd. Ik wilde 1 post verwijderen, maar blijkbaar verwijderde ik dus alles.

Toch hebben de lieve adjes van t.net mijn blog weten terug te zetten uit een backup.

Tnx adjes!

[Video] POV van de Kat

Door Gamebuster op woensdag 07 januari 2015 19:13 - Reacties (7)
Categorie: funvids, Views: 1.930