Jobbar ni med C/C++? Vad gör ni och vad eftersöks?
Jobbar med C på atmega328p och stm32 mikrokontrollers med RTOS.
Tror jag var den första som implementerade pekare i vår kod, men ogillade starkt hur de hade använt 8 bit-shift för att uppnå pekare++, men det funkade ju att köra utan pekare. Man bör ju ha koll på hur hexadecimal och binärt reflekterar tal i minnet, t.ex. att 0xff är en byte full av 1or mer än att man vet att 0x200 = 512, och hur stora tal du kan få plats med i en byte, 10-bit, att en byte är 8 bitar osv.
Något man bör ha koll på är t.ex. att pekare _kan_ vara "farligt" om man inte gör rätt.
RTOS har som en typ av scheduling time slicing för att köra flera uppgifter parallellt, man bör ha koll på när man ska och inte ska låsa, och inte låser tråden i onödan.
Som ny utvecklare så måste man vara flexibel eller vänta på rätt jobb, så beror helt på dig, vad du vill jobba med eller om du är öppen. Men du bör åtminstone kunna grunderna bra för C, om du vill hålla på med C++ bör du kunna objektorienterad programmering ganska bra.
Men det är också mycket runt som kan vara helt nytt eller olikt hur du gjort när du sitter ensam.
Kan du git, rebase, merge, fixa merge conflicts. De kan använda ett annat verktyg för att fixa reviews än pull requests. Vet du vad jenkins är, docker? Kan du skriva tester för din kod, vet du vad CI betyder osv. Make, Cmake.
Vi har även en kontroller som kör Linux med Qt, men den sidan har jag inte mycket koll på.
Om du jobbar med mikrokontrollers så bör man kunna lite kommunikationsstandarder också så som UART, SPI, I2C osv.
Du kommer nog få svar från andra som har helt olika upplevelser från vad jag har också.
Jobbar med C på atmega328p och stm32 mikrokontrollers med RTOS.
Tror jag var den första som implementerade pekare i vår kod, men ogillade starkt hur de hade använt 8 bit-shift för att uppnå pekare++, men det funkade ju att köra utan pekare. Man bör ju ha koll på hur hexadecimal och binärt reflekterar tal i minnet, t.ex. att 0xff är en byte full av 1or mer än att man vet att 0x200 = 512, och hur stora tal du kan få plats med i en byte, 10-bit, att en byte är 8 bitar osv.
Något man bör ha koll på är t.ex. att pekare _kan_ vara "farligt" om man inte gör rätt.
RTOS har som en typ av scheduling time slicing för att köra flera uppgifter parallellt, man bör ha koll på när man ska och inte ska låsa, och inte låser tråden i onödan.
Intressant !! Jag tycker jag kan hantera det binära talsystemet bra, inklusive bitwise operators. Men måste erkänna att jag aldrig tänkt på att använda bit-shift för att uppnå pekare++, hur ser det ens ut? Jag får nog öva lite på hexadecimala talsystemet då!
Men det är också mycket runt som kan vara helt nytt eller olikt hur du gjort när du sitter ensam.
Kan du git, rebase, merge, fixa merge conflicts. De kan använda ett annat verktyg för att fixa reviews än pull requests. Vet du vad jenkins är, docker? Kan du skriva tester för din kod, vet du vad CI betyder osv. Make, Cmake.
Vi har även en kontroller som kör Linux med Qt, men den sidan har jag inte mycket koll på.
Git kan jag, jenkins och docker har jag hört talas om men aldrig använt. Jag kollade upp CI, men hade du skrivit "continuous integration" så hade jag fattat. Jag har faktiskt spenderat onödigt mycket tid på att lära mig Make, CMake och Premake - så hoppas jag kommer få använda något av dem.
Om du jobbar med mikrokontrollers så bör man kunna lite kommunikationsstandarder också så som UART, SPI, I2C osv.
Jag har ingen aning om vad det är; de enda protocols jag kan har med networking att göra. Är det något du har erfarenhet av att koda, eller används färdiga bibliotek för det (networking)?
Intressant !! Jag tycker jag kan hantera det binära talsystemet bra, inklusive bitwise operators. Men måste erkänna att jag aldrig tänkt på att använda bit-shift för att uppnå pekare++, hur ser det ens ut? Jag får nog öva lite på hexadecimala talsystemet då!
Sammanfattat så kan man säga att vi ville spara variabler i olika storlekar i en byte array i permanent minne.
Koden de hade liknade:
uint8_t storage[1024] = {0xff};
void store(uint16_t address, uint64_t data, uint8_t size){
for(uint8_t i = 0; i < size; i++){
storage[address + i] = (uint8_t)data;
data >>= 8;
}
}
Det gör att vi endast sparar de lägsta 8 bitarna i ett tal, sen flyttar hela talet 8 bitar till höger vilket gör att de första bitarna nu är bitar 9-17.
Git kan jag, jenkins och docker har jag hört talas om men aldrig använt. Jag kollade upp CI, men hade du skrivit "continuous integration" så hade jag fattat. Jag har faktiskt spenderat onödigt mycket tid på att lära mig Make, CMake och Premake - så hoppas jag kommer få använda något av dem.
Ledsen för CI, men du kommer få förkortningar kastade på dig i arbetslivet också
Jag har ingen aning om vad det är; de enda protocols jag kan har med networking att göra. Är det något du har erfarenhet av att koda, eller används färdiga bibliotek för det (networking)?
Det kan handla om att koda lösningarna själv, ofta finns bibliotek, men man kanske behöver ha lite koll på slav adresser eller andra saker som är inblandat för att koda om datan man ska skicka eller ta emot. Eller skapa ett kompatibelt API.
Jag jobbar som spelutvecklare och skriver mest C++.
Vad är det man bör vara duktigt på; ex templates, pekare, binära/hexadecimala talsystemet?
Jag skulle inte säga att man måste vara grym på det, men du behöver ha grundläggande kunskaper. Dvs du behöver förstå vad "std::vector<Foo>" faktiskt är men att kunna använda tex "std::enable_if" fullt ut är absolut inget krav. Hur bekväm med pekare du behöver vara beror på område men du behöver iaf förstå vad det är. Om du inte är helt bekväm med trippelpekare är det i 99% av fallen lugnt ändå Binära/hexadecimala talsystemet är väl egentligen inte något krav men jag skulle vara rätt skeptisk till att anställa en programmerare som inte vet det eftersom det är så pass grundläggande kunskap.
Hur ofta förekommer trådning (threads) i er kod; behöva man vara grym på det?
Eftersom både PS5 och Xbox SX har 8 HT-cores så är det så många vi använder Sen är det verkligen inte alla som behöver sätta upp hur allt ska trådas men du måste absolut har grundläggande kunskap om synkroniseringsprimitiver, dead-locks, atomära operation osv.
Vilken version C++ använder ni?
Lite flytande men minst C++14 och oftast inte den senaste.
Vad ska man öva på, och vad kan vara vettigt att nischa sig på idag?
Det som branchen du vill in i använder Vilket språk man använder för spel är rätt ointressant idag. Vi anställer folk som bara skrivit C# förut och dom lär sig oftast C++ rätt snabbt. Samma sak åt andra hållet.
Vilka bibliotek tycker ni är viktiga att lära sig in och ut; ex Qt, chrono, STL?
stl är väl det som är mest troligt att du kommer stöta på, men inte ens det är någon garanti. Spelbranchen har en förkärlek för egna bibliotek och om du skriver embedded så har det inte funnits minne för det innan så jag skulle tro att det är rätt ovanligt. Jag skulle säga att det viktigaste är att du hittar något du tycker är tillräckligt roligt för att du vilja fortsätta.
Jag jobbar som spelutvecklare och skriver mest C++.
Jag skulle inte säga att man måste vara grym på det, men du behöver ha grundläggande kunskaper. Dvs du behöver förstå vad "std::vector<Foo>" faktiskt är men att kunna använda tex "std::enable_if" fullt ut är absolut inget krav. Hur bekväm med pekare du behöver vara beror på område men du behöver iaf förstå vad det är. Om du inte är helt bekväm med trippelpekare är det i 99% av fallen lugnt ändå Binära/hexadecimala talsystemet är väl egentligen inte något krav men jag skulle vara rätt skeptisk till att anställa en programmerare som inte vet det eftersom det är så pass grundläggande kunskap.
Eftersom både PS5 och Xbox SX har 8 HT-cores så är det så många vi använder Sen är det verkligen inte alla som behöver sätta upp hur allt ska trådas men du måste absolut har grundläggande kunskap om synkroniseringsprimitiver, dead-locks, atomära operation osv.
Lite flytande men minst C++14 och oftast inte den senaste.
Det som branchen du vill in i använder Vilket språk man använder för spel är rätt ointressant idag. Vi anställer folk som bara skrivit C# förut och dom lär sig oftast C++ rätt snabbt. Samma sak åt andra hållet.
stl är väl det som är mest troligt att du kommer stöta på, men inte ens det är någon garanti. Spelbranchen har en förkärlek för egna bibliotek och om du skriver embedded så har det inte funnits minne för det innan så jag skulle tro att det är rätt ovanligt. Jag skulle säga att det viktigaste är att du hittar något du tycker är tillräckligt roligt för att du vilja fortsätta.
Coolt!
Hur är den branschen i övrigt? Svårt att få jobb, bra lön, mycket crunch?
Du sa att spelbranchen har en förkärlek för egna bibliotek, men hur är det med själva spelmotorn? Är det något ni skriver själva eller använder ni typ Unreal, Unity...Godot?
Även om jag kan det binära/hexadecimala talsystemet, så har jag egentligen aldrig använt det hexadecimala talsystemet i kod per se. Det verkar som att jag får färska upp minnet där och använda det mer när jag kodar (?)
Vad jobbar du med som spelutvecklare? Gameplay?
Jag har ingen aning om vad det är; de enda protocols jag kan har med networking att göra. Är det något du har erfarenhet av att koda, eller används färdiga bibliotek för det (networking)?
SPI/SMBus och I2C är protokoll för seriekommunikation mellan delenheter (mestadels i alla fall), inuti förhållandevis små/enkla/billiga system. UART är seriekommunikation och används mest ut/in från en svagare enhet till en PC (enligt min amatörmässiga erfarenhet). De protokollen är vanliga i elektronikprylar, en vanlig konsumentrouter kan använda alla tre internt/externt. I lite större system, typ bilar, är CAN vanligt, både för intern kommunikation och kommunikation med omgivningen. Inget av de ovanstående används på ett mer normalt datornätverk (ethernet/IP/TCP).
Coolt!
Hur är den branschen i övrigt? Svårt att få jobb, bra lön, mycket crunch?
Jag gillar den även om den har blivit lite tråkigare på senare år eftersom den tekniska utvecklingen går så mycket långsammare nu. Men det är kul med en arbetsplats där i princip alla är spelnördar och att få jobba med så olika personer. Att lösa svåra tekniska problem samtidigt som man samarbetar tätt mer kreativa personer är en utmaning ibland men roligt Idag skriker nästan alla företag efter folk så det är inte omöjligt så länge du har intresse och har något att visa upp. Eller så kan du gå en KY (typ futuregames eller game assembly). Lön är rätt varierande men ingångslönen för en junior utvecklare är helt klart lägre än andra brancher. Som mer senior är den mer konkurrenskraftig. Sen beror det på vad man prioriterar. Jag tar hellre ett jobb jag verkligen ser fram emot att gå till på söndagkvällen över några extra tusenlappar i månaden. Det är inte jättemycket crunch idag på dom lite större företagen, iaf dom seriösare. Sen kör det ju alltid ihop sig på något sätt innan release så lite övertid har nog alla
Du sa att spelbranchen har en förkärlek för egna bibliotek, men hur är det med själva spelmotorn? Är det något ni skriver själva eller använder ni typ Unreal, Unity...Godot?
Beror på företag men det går mer och mer mot unreal eller unity eftersom det är svårt att motivera kostnaden för en in-house-motor. Här kan du förresten läsa om motiveringen till EA:s egna STL: https://github.com/electronicarts/EASTL/blob/master/doc/FAQ.m...
Även om jag kan det binära/hexadecimala talsystemet, så har jag egentligen aldrig använt det hexadecimala talsystemet i kod per se. Det verkar som att jag får färska upp minnet där och använda det mer när jag kodar (?)
Det är mer att det är bra att inte bli förvirrad om du ser kod i stil med "(x >> 8) & 0xff"
Vad jobbar du med som spelutvecklare? Gameplay?
Jag jobbar med AI, dvs typ gameplay.
Jag gillar den även om den har blivit lite tråkigare på senare år eftersom den tekniska utvecklingen går så mycket långsammare nu. Men det är kul med en arbetsplats där i princip alla är spelnördar och att få jobba med så olika personer. Att lösa svåra tekniska problem samtidigt som man samarbetar tätt mer kreativa personer är en utmaning ibland men roligt Idag skriker nästan alla företag efter folk så det är inte omöjligt så länge du har intresse och har något att visa upp. Eller så kan du gå en KY (typ futuregames eller game assembly). Lön är rätt varierande men ingångslönen för en junior utvecklare är helt klart lägre än andra brancher. Som mer senior är den mer konkurrenskraftig. Sen beror det på vad man prioriterar. Jag tar hellre ett jobb jag verkligen ser fram emot att gå till på söndagkvällen över några extra tusenlappar i månaden. Det är inte jättemycket crunch idag på dom lite större företagen, iaf dom seriösare. Sen kör det ju alltid ihop sig på något sätt innan release så lite övertid har nog alla
Beror på företag men det går mer och mer mot unreal eller unity eftersom det är svårt att motivera kostnaden för en in-house-motor. Här kan du förresten läsa om motiveringen till EA:s egna STL: https://github.com/electronicarts/EASTL/blob/master/doc/FAQ.m...
Det är mer att det är bra att inte bli förvirrad om du ser kod i stil med "(x >> 8) & 0xff"
Jag jobbar med AI, dvs typ gameplay.
Kul att höra! Jag har varit inne på att söka till branschen, men det kändes osäkert av någon anledning. Kör du på distans eller bor du i någon av de större städerna, för det verkar ju vara där (Gbg, Malmö, Stkhlm) företagen/jobben finns?
AI verkar intressant och har en givande framtid. Jag hade dock kanske fokuserat på procedural content generation, men det kanske tillhör AI?
Har du några tips på hur man tar sig in i spelbranschen? Behöver jag släppa ett spel på Steam? Göra en egen spelmotor? Måste jag kunna Unreal/Unity bra innan jag söker jobb? Vad är det som eftersöks? Har man ens en chans att få in en fot som Junior?
- Realtek High Definition Audio jack och högtalarinställningar upprör0
- Rykte: Microsoft vill köpa upp Valve164
- Det här med Blocket...9744
- Ny USB-sticka håller i 200 år – men det finns en hake50
- Här är funktionerna Microsoft tar bort i Windows 11 24H220
- Portabel AC inför sommaren [Samlingstråd]5034
- Formel 1-tråden9034
- 5G-setup med bra stöd för VPN2
- Kommer inte åt filer på datorn..2
- Tråden om Nintendo Switch och Switch Lite9908
- Säljes Kingston FURY Beast DDR5 5600MHz 32GB (2x16)
- Säljes AMD Ryzen 7 7700X CPU
- Säljes Roccat Sova Mk.II + Logitech G502
- Köpes Söker ddr4 4800
- Säljes Keychron q3 pro SE (iso). Med gsa retro highlight
- Säljes CTC EcoAir Luft-vatten värmepump + CTC Eco Elpanna
- Säljes MSI GeForce RTX 4060 Ti GAMING X SLIM 16GB
- Säljes 7700K ASUS 1080Ti, RM750x, 27" 144hz 1440p m.m.
- Säljes Diverse Nätverksutrustning, Unifi och Netgear
- Säljes I9-10850k 3060ti 32gb ram, 5tb hdd
- Moddare bygger in hel PC i bord5
- Här är funktionerna Microsoft tar bort i Windows 11 24H220
- Komplicerat lämna spelbibliotek till arvingar30
- Avgoogla ditt liv med Linus Tech Tips38
- Ny USB-sticka håller i 200 år – men det finns en hake50
- Krönika: Gör inte kunder till försökskaniner, Sony!24
- ICQ kastar in handduken efter nästan 30 år85
- Helgsnack: Vad är viktigt när du väljer laptop?51
- Apple förklarar bildbuggen i IOS 17.517
- G.Skill lanserar primärminnen med extra bling18